diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..02f1089 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,59 @@ +name: Deploy to GitHub Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Allow this job to clone the repo and create a page deployment +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Setup PNPM + uses: pnpm/action-setup@v2.2.2 + with: + version: 7.x.x + + - name: Install deps + run: pnpm install + + - name: Build + run: pnpm run build + + - name: Upload Pages Artifact + uses: actions/upload-pages-artifact@v1 + with: + path: "./dist/" + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6704566 --- /dev/null +++ b/.gitignore @@ -0,0 +1,104 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/ai-unchive.iml b/.idea/ai-unchive.iml new file mode 100644 index 0000000..10a4077 --- /dev/null +++ b/.idea/ai-unchive.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/jsonSchemas.xml b/.idea/jsonSchemas.xml new file mode 100644 index 0000000..3c73328 --- /dev/null +++ b/.idea/jsonSchemas.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..80db9e9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..2eb0751 --- /dev/null +++ b/biome.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "ignore": [] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + } +} diff --git a/build/index.html b/build/index.html deleted file mode 100644 index f1ed14d..0000000 --- a/build/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - Unchive - - - - - - - diff --git a/build/unchive/ai_project.js b/build/unchive/ai_project.js deleted file mode 100644 index fea4588..0000000 --- a/build/unchive/ai_project.js +++ /dev/null @@ -1 +0,0 @@ -import{DescriptorGenerator}from"./aia_reader.js";import{View}from"../views/view.js";export class AIProject{constructor(e){this.name=e,this.screens=[],this.extensions=[],this.assets=[]}addAssets(e){for(let t of e)this.addAsset(t)}addScreens(e){for(let t of e)this.addScreen(t)}addExtensions(e){for(let t of e)this.addExtension(t)}addAsset(e){if(!(e instanceof AIAsset))throw new TypeError("Attempt to add "+typeof e+" to AIProject");this.assets.push(e)}addScreen(e){if(!(e instanceof AIScreen))throw new TypeError("Attempt to add "+typeof e+" to AIProject");this.screens.push(e)}addExtension(e){if(!(e instanceof AIExtension))throw new TypeError("Attempt to add "+typeof e+" to AIProject");this.extensions.push(e)}}export class AIScreen{async init(e,t,s,r){if(this.addToProject(r),this.form=await this.generateSchemeData(e),this.generateBlocks(t),this.name=s,null==s)throw new TypeError("Screen name cannot be null!");return this}addToProject(e){if(!(e instanceof AIProject))throw new TypeError("Attempt to set "+typeof e+"as project of AIScreen");this.project=e}async generateSchemeData(e){var t=JSON.parse(e.substring(9,e.length-3));return this.generateComponent(t.Properties)}async generateComponent(e){var t,s=this.project.extensions.find(t=>t.name.split(".").pop()==e.$Type);if(null!=s){var r=s.descriptorJSON;t="EXTENSION"}else t="BUILT-IN";var o=new Component(e.$Name,e.$Type,e.Uuid||0,t);o.properties=await o.loadProperties(e,r||null);for(let t of e.$Components||[])o.addChild(await this.generateComponent(t));return o}generateBlocks(e){this.blocks=e}}class Component{constructor(e,t,s,r){this.name=e,this.type=t,this.uid=s,this.children=[],this.origin=r,this.properties=[],this.faulty=!1}loadProperties(e,t){return new Promise(async(s,r)=>{null==AIProject.descriptorJSON&&(AIProject.descriptorJSON=await DescriptorGenerator.generate());var o=new Worker("unchive/property_processor.js");try{o.postMessage({type:this.name,propertyJSON:e,descriptorJSON:(t||AIProject.descriptorJSON.find(e=>e.type=="com.google.appinventor.components.runtime."+this.type)).properties||[]})}catch(e){console.log("Error in "+this.name+"("+this.uid+" / "+this.type+"), message: "+e.message),this.faulty=!0,s([]),o.terminate()}o.addEventListener("message",e=>{s(e.data.properties),o.terminate()})})}addChild(e){if(!(e instanceof Component))throw new TypeError("Attempt to add "+typeof e+" to Component.");this.children.push(e)}}export class AIExtension{constructor(e,t){this.name=e,this.descriptorJSON=t}}export class AIAsset{constructor(e,t,s){this.name=e,this.type=t,this.blob=s,this.size=s.size,this.url=""}getURL(){return""==this.url&&(this.url=URL.createObjectURL(this.blob)),this.url}revokeURL(){URL.revokeObjectURL(this.url)}}export class BlocklyWorkspace{constructor(e){this.workspaceView=new View("DIV"),this.loaded=!1,this.blocks=e,this.faulty=!1,this.validTypes=["global_declaration","component_event","procedures_defnoreturn","procedures_defreturn"]}initializeWorkspace(){this.loaded?this.resizeWorkspace():(this.loaded=!0,this.workspace=Blockly.inject(this.workspaceView.domElement,{toolbox:!1,trashcan:!1,readOnly:!0,scrollbars:!1}),this.workspace.setScale(1),this.workspace.getDescriptor=function(e){let t=AIProject.descriptorJSON.find(t=>t.type=="com.google.appinventor.components.runtime."+e);if(null==t)for(let t of RootPanel.project.extensions)if(t.name.split(".").pop()==e)return t.descriptorJSON;return t},this.addBlocksToWorkspace(),this.resizeWorkspace())}addBlocksToWorkspace(){try{Blockly.Xml.domToBlock(this.blocks,this.workspace).setCollapsed(!1)}catch(e){this.faulty=!0}finally{-1==this.validTypes.indexOf(this.blocks.getAttribute("type"))&&(this.faulty=!0)}}resizeWorkspace(){let e=this.workspace.getMetrics();this.workspaceView.setAttribute("style","height: "+e.contentHeight+"px;width: "+e.contentWidth+"px;"),Blockly.svgResize(this.workspace)}getWorkspaceView(){return this.workspaceView}} \ No newline at end of file diff --git a/build/unchive/aia_reader.js b/build/unchive/aia_reader.js deleted file mode 100644 index f8d68cc..0000000 --- a/build/unchive/aia_reader.js +++ /dev/null @@ -1 +0,0 @@ -import{AIProject,AIScreen,AIExtension,AIAsset}from"./ai_project.js";export class AIAReader{static async read(e){return new Promise(async(t,i)=>{AIProject.descriptorJSON=await DescriptorGenerator.generate();var n=new AIProject,s=e instanceof Blob?new zip.BlobReader(e):new zip.HttpReader(e);zip.createReader(s,e=>{e.getEntries(async e=>{e.length&&(n.addExtensions(await this.generateExtensions(e.filter(e=>"json"==this.getFileType(e)))),n.addScreens(await this.generateScreens(e.filter(e=>"scm"==this.getFileType(e)||"bky"==this.getFileType(e)),n)),n.addAssets(await this.generateAssets(e.filter(e=>"assets"==e.filename.split("/")[0]&&null==e.filename.split("/")[2]))),t(n))})})})}static async generateScreens(e,t){var i=[],n=[],s=[];for(let t of e){var a=await this.getFileContent(t);"scm"==this.getFileType(t)?i.push({name:this.getFileName(t),scm:a}):"bky"==this.getFileType(t)&&n.push({name:this.getFileName(t),bky:a})}for(let e of i){let i=new AIScreen;s.push(i.init(e.scm,n.find(t=>t.name==e.name).bky,e.name,t))}return Promise.all(s)}static async generateExtensions(e){var t=[],i=[],n=[];for(let n of e){var s=await this.getFileContent(n);"component_build_infos"==this.getFileName(n)||"component_build_info"==this.getFileName(n)?t.push({name:n.filename.split("/")[2],info:JSON.parse(s)}):"components"!=this.getFileName(n)&&"component"!=this.getFileName(n)||i.push({name:n.filename.split("/")[2],descriptor:JSON.parse(s)})}for(let e of t)if(Array.isArray(e.info))for(let t of e.info)n.push(new AIExtension(t.type,i.find(t=>t.name==e.name).descriptor[e.info.indexOf(t)]));else n.push(new AIExtension(e.info.type,i.find(t=>t.name==e.name).descriptor));return n}static async generateAssets(e){var t=[];for(let n of e){var i=await this.getFileContent(n,new zip.BlobWriter);t.push(new AIAsset(this.getFileName(n),this.getFileType(n),i))}return t}static getFileContent(e,t=new zip.TextWriter){return new Promise((i,n)=>{e.getData(t,e=>{i(e)})})}static getFileType(e){return e.filename.split(".").pop()}static getFileName(e){return e.filename.split("/").pop().split(".")[0]}}export class DescriptorGenerator{static generate(){return new Promise((e,t)=>{this.fetchJSON(t=>{e(JSON.parse(t))})})}static fetchJSON(e){var t=new XMLHttpRequest;t.overrideMimeType("application/json"),t.open("GET",fetchDir("unchive/simple_components.json"),!0),t.onreadystatechange=function(){4==t.readyState&&"200"==t.status&&e(t.responseText)},t.send(null)}} \ No newline at end of file diff --git a/build/unchive/block_writer.js b/build/unchive/block_writer.js deleted file mode 100644 index 2a1a647..0000000 --- a/build/unchive/block_writer.js +++ /dev/null @@ -1 +0,0 @@ -export class BlockWriter{static initConstants(){this.COMPONENT_EVENT="component_event",this.COMPONENT_METHOD="component_method",this.COMPONENT_SET_GET="component_set_get",this.GLOBAL_DECLARATION="global_declaration",this.LOGIC_FALSE="logic_false",this.LOGIC_TRUE="logic_true",this.COMPONENT_COMPONENT_BLOCK="component_component_block"}static writeBlock(t){switch(BlockWriter.initConstants(),t.getAttribute("type")){case this.COMPONENT_EVENT:return this.writeComponentEvent(t);case this.COMPONENT_SET_GET:return this.writeComponentSetGet(t);case this.COMPONENT_METHOD:return this.writeComponentMethod(t);case this.GLOBAL_DECLARATION:return this.writeGlobalDeclaration(t);case this.LOGIC_FALSE:case this.LOGIC_TRUE:return this.writeLogic(t);case this.COMPONENT_COMPONENT_BLOCK:return this.writeComponentComponentBlock(t)}}static validGlobalBlock(t){switch(t.getAttribute("type")){case this.COMPONENT_EVENT:case this.GLOBAL_DECLARATION:return!0}return!1}static next(t){var e=t.children[t.children.length-1],n="";return"next"==e.tagName&&(n+=this.writeBlock(e.children[0])),n}static writeComponentEvent(t){return'when '+t.children[0].getAttribute("instance_name")+"."+t.children[0].getAttribute("event_name")+" do:"+this.writeBlock(t.children[2].children[0])}static writeComponentSetGet(t){var e=''+t.children[0].getAttribute("instance_name")+"."+t.children[0].getAttribute("property_name");return"set"==t.children[0].getAttribute("set_or_get")&&(e+=" = "+this.writeBlock(t.children[3].children[0])),e+="",e+=this.next(t)}static writeComponentMethod(t){var e=''+t.children[0].getAttribute("instance_name")+"."+t.children[0].getAttribute("method_name")+"(",n=!1;for(let i of t.children)"value"==i.tagName&&(e+=this.writeBlock(i.children[0])+", ",n=!0);return n&&(e=e.replace(/.$/,"")),e+=")"+this.next(t)}static writeGlobalDeclaration(t){return''+t.children[0].innerHTML+" = "+this.writeBlock(t.children[1].children[0])+""}static writeLogic(t){return''+t.children[0].innerHTML.toLowerCase()+""}static writeComponentComponentBlock(t){return''+t.children[0].getAttribute("instance_name")+""}} \ No newline at end of file diff --git a/build/unchive/property_processor.js b/build/unchive/property_processor.js deleted file mode 100644 index 48d8cd4..0000000 --- a/build/unchive/property_processor.js +++ /dev/null @@ -1 +0,0 @@ -this.addEventListener("message",function(e){var a=e.data.propertyJSON,t=e.data.descriptorJSON,r=[];for(let e of t)a.hasOwnProperty(e.name)?r.push({name:e.name,value:a[e.name]}):r.push({name:e.name,value:e.defaultValue,editorType:e.editorType});this.postMessage({properties:r})},!1); \ No newline at end of file diff --git a/build/unchive/simple_components.json b/build/unchive/simple_components.json deleted file mode 100644 index 958c247..0000000 --- a/build/unchive/simple_components.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":"com.google.appinventor.components.runtime.AccelerometerSensor","name":"AccelerometerSensor","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"Non-visible component that can detect shaking and measure acceleration approximately in three dimensions using SI units (m/s2). The components are: ","helpUrl":"https://docs.kodular.io/components/sensors/accelerometer/","showOnPalette":"true","nonVisible":"true","iconName":"images/accelerometersensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"LegacyMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"MinimumInterval","editorType":"non_negative_integer","defaultValue":"400","propertyType":"common","editorArgs":[]},{"name":"Sensitivity","editorType":"accelerometer_sensitivity","defaultValue":"2","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"LegacyMode","description":"Prior to the release that added this property the AccelerometerSensor component passed through sensor values directly as received from the Android system. However these values do not compensate for tablets that default to Landscape mode, requiring the MIT App Inventor programmer to compensate. However compensating would result in incorrect results in Portrait mode devices such as phones. We now detect Landscape mode tablets and perform the compensation. However if your project is already compensating for the change, you will now get incorrect results. Although our preferred solution is for you to update your project, you can also just set this property to “true” and our compensation code will be deactivated. Note: We recommend that you update your project as we may remove this property in a future release.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"MinimumInterval","description":"The minimum interval, in milliseconds, between phone shakes","type":"number","rw":"read-write","deprecated":"false"},{"name":"Sensitivity","description":"A number that encodes how sensitive the accelerometer is. The choices are: 1 = weak, 2 = moderate, 3 = strong.","type":"number","rw":"read-write","deprecated":"false"},{"name":"XAccel","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"YAccel","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"ZAccel","description":"","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"AccelerationChanged","description":"Indicates the acceleration changed in the X, Y, and/or Z dimensions.","deprecated":"false","params":[{"name":"xAccel","type":"number"},{"name":"yAccel","type":"number"},{"name":"zAccel","type":"number"}]},{"name":"Shaking","description":"Indicates the device started being shaken or continues to be shaken.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.ActivityStarter","name":"ActivityStarter","external":"false","version":"6","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"A component that can launch an activity using the StartActivity method.

Activities that can be launched include:

\nYou can also launch activities that return text data. See the documentation on using the Activity Starter for examples.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/activityStarter.png","androidMinSdk":19,"properties":[{"name":"Action","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ActivityClass","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ActivityPackage","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"DataType","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"DataUri","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ExtraKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ExtraValue","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ResultName","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Action","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"ActivityClass","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"ActivityPackage","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"DataType","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"DataUri","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"ExtraKey","description":"Returns the extra key that will be passed to the activity.\nDEPRECATED: New code should use Extras property instead.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ExtraValue","description":"Returns the extra value that will be passed to the activity.\nDEPRECATED: New code should use Extras property instead.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Extras","description":"","type":"list","rw":"read-write","deprecated":"false"},{"name":"Result","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"ResultName","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"ResultType","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"ResultUri","description":"","type":"text","rw":"read-only","deprecated":"false"}],"events":[{"name":"ActivityCanceled","description":"Event raised if this ActivityStarter returns because the activity was canceled.","deprecated":"false","params":[]},{"name":"ActivityError","description":"The ActivityError event is no longer used. Please use the Screen.ErrorOccurred event instead.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"AfterActivity","description":"Event raised after this ActivityStarter returns.","deprecated":"false","params":[{"name":"result","type":"text"}]}],"methods":[{"name":"ResolveActivity","description":"Returns the name of the activity that corresponds to this ActivityStarter, or an empty string if no corresponding activity can be found.","deprecated":"false","params":[],"returnType":"text"},{"name":"StartActivity","description":"Start the activity corresponding to this ActivityStarter.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.AdAmazon","name":"AdAmazon","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"AdAmazon component allows you to monetize your app. You must have a valid publisher id that can be obtained from https://developer.amazon.com. If your publisher id is invalid, the AdAmazon banner will not display on the emulator or the device.","helpUrl":"https://docs.kodular.io/components/monetization/amazon-banner/","showOnPalette":"true","nonVisible":"false","iconName":"images/amazon.png","androidMinSdk":19,"properties":[{"name":"PublisherId","editorType":"string","defaultValue":"AmazonPublisherId","propertyType":"common","editorArgs":[]},{"name":"RefreshAd","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"PublisherId","description":"Sets the Amazon Ad Publisher Id and refreshes the ad.","type":"text","rw":"read-write","deprecated":"false"},{"name":"RefreshAd","description":"Refreshes the ad.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TestMode","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AdDismissed","description":"Event to detect that a ad was dismissed.","deprecated":"false","params":[]},{"name":"AdExpanded","description":"Event to detect that a ad was expanded.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Event to detect that the try to load a ad was not successful.","deprecated":"false","params":[{"name":"errCode","type":"text"},{"name":"errorMessage","type":"text"}]},{"name":"AdLoaded","description":"Event to detect that a ad was loaded.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.AdAmazonInterstitial","name":"AdAmazonInterstitial","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"An interstitial ad is a full-page ad. AdAmazonInterstitial component allows you to monetize your app. You must have a valid Amazon Application Key. If your application key is invalid, the ad will not display on the emulator or the device. Warning: Make sure you're in test mode during development to avoid being disabled for clicking your own ads. ","helpUrl":"https://docs.kodular.io/components/monetization/amazon-interstitial/","showOnPalette":"true","nonVisible":"true","iconName":"images/amazon.png","androidMinSdk":19,"properties":[{"name":"ApplicationKey","editorType":"string","defaultValue":"ApplicationKey","propertyType":"common","editorArgs":[]},{"name":"CommissionInterstitialAdsNetwork","editorType":"commission_interstitial_ads_network","defaultValue":"unity","propertyType":"common","editorArgs":[]},{"name":"EnableDebug","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"EnableGeoLocationTargeting","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"EnableTesting","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TargetAge","editorType":"integer","defaultValue":"0","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApplicationKey","description":"Enter Application Key. Go to Amazon Developer Portal and sign-in for your ApplicationKey","type":"text","rw":"invisible","deprecated":"false"},{"name":"CommissionInterstitialAdsNetwork","description":"Sets the ad network used to take the commission.","type":"text","rw":"write-only","deprecated":"false"},{"name":"EnableDebug","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableGeoLocationTargeting","description":"If set to true, uses latitude and longitude coordinates as part of an ad request","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableTesting","description":"For debugging / development purposes flag all ad requests as tests, but set to false for production builds","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TargetAge","description":"You can pass age information to the Amazon Mobile Ad Network to target specific age groups. If set as 0, Age Targetting will not be used","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Triggered when the close button of the interstitial ad is clicked. It's important to remember only one interstitial ad can be shown at a time. The previous ad has to be dismissed before a new ad can be shown.","deprecated":"false","params":[]},{"name":"AdCollapsed","description":"After a user clicks on the close ad button on an expanded ad, this callback is called immediately after collapsing the ad. This callback can be used to do things like resume your app or restart audio.","deprecated":"false","params":[]},{"name":"AdExpanded","description":"This callback is called each time an ad is successfully loaded. You can use this to log metrics on ad views and assist with initial integration. Detailed information about the ad that loaded can be obtained from the AdProperties object.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Whenever an ad fails to be retrieved, the event is called, returning the error message.","deprecated":"false","params":[{"name":"error","type":"text"},{"name":"message","type":"text"}]},{"name":"AdFailedToShow","description":"Called when an an attempt was made to display the ad, but the ad was not ready to display","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"AdLoaded","description":"Triggered each time an ad is successfully loaded. But you don't have to display the ad right after it's loaded. For example, set a flag to true and then at a transition point, if flag=true, then display the ad.","deprecated":"false","params":[]}],"methods":[{"name":"LoadAd","description":"Loads a new ad.","deprecated":"false","params":[]},{"name":"ShowInterstitialAd","description":"It will show the Interstitial Ad","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.AdMobInterstitial","name":"AdMobInterstitial","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"An interstitial ad is a full-page ad. AdMobInterstitial component allows you to monetize your app. You must have a valid AdMob account and AdUnitId that can be obtained from http://www.google.com/AdMob . If your id is invalid, the AdMobInterstitial will not display on the emulator or the device. Warning: Make sure you're in test mode during development to avoid being disabled for clicking your own ads. ","helpUrl":"https://docs.kodular.io/components/monetization/admob-interstitial/","showOnPalette":"true","nonVisible":"true","iconName":"images/admob.png","androidMinSdk":19,"properties":[{"name":"AdEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"AdUnitID","editorType":"string","defaultValue":"ca-app-pub-3940256099942544/1033173712","propertyType":"common","editorArgs":[]},{"name":"CommissionInterstitialAdsNetwork","editorType":"commission_interstitial_ads_network","defaultValue":"unity","propertyType":"common","editorArgs":[]},{"name":"ConsentDevelopmentMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ConsentMessage","editorType":"string","defaultValue":"Can we continue to use your data to tailor ads for you?","propertyType":"common","editorArgs":[]},{"name":"ConsentTitle","editorType":"string","defaultValue":"Data Protection","propertyType":"common","editorArgs":[]},{"name":"TargetAge","editorType":"non_negative_integer","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TargetForChildren","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"TargetGender","editorType":"gender_options","defaultValue":"ALL","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AdEnabled","description":"This property must be set to true to receive ads.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"AdUnitID","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"CommissionInterstitialAdsNetwork","description":"Sets the ad network used to take the commission.","type":"text","rw":"write-only","deprecated":"false"},{"name":"ConsentDevelopmentMode","description":"If enabled you will see the consent dialog no matter if you are located in Europe or not. Please use this option only in development. If this setting is enabled ALL taken consents will not be saved.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ConsentMessage","description":"The message for the consent dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ConsentTitle","description":"The title for the consent dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"PersonalizedResult","description":"Returns the current personalized consent. If true user has consent to personalized ads.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"TargetAge","description":"Leave 0 for targeting ALL ages","type":"number","rw":"read-write","deprecated":"false"},{"name":"TargetForChildren","description":"Indicate whether you want Google to treat your content as child-directed when you make an ad request. Info here: https://developers.google.com/mobile-ads-sdk/docs/admob/android/targeting#child-directed_setting","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TargetGender","description":"","type":"text","rw":"write-only","deprecated":"false"},{"name":"TestMode","description":"If you want to test the component then that this property to true. Then you will receive test ads.","type":"boolean","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when an ad was closed.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdFailedToShow","description":"Called when an an attempt was made to display the ad, but the ad was not ready to display.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"AdLeftApplication","description":"Called when an ad leaves the application (e.g., to go to the browser).","deprecated":"false","params":[]},{"name":"AdLoaded","description":"Called when an ad request was loaded.","deprecated":"false","params":[]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"OnConsentChanged","description":"Event triggered when the consent was changed.","deprecated":"false","params":[{"name":"personalized","type":"boolean"}]}],"methods":[{"name":"LoadAd","description":"Load a new AdMob Interstitial ad.","deprecated":"false","params":[]},{"name":"RevokeConsent","description":"Deletes the user's consent. Useful if you want to test the consent dialog in development.","deprecated":"false","params":[]},{"name":"ShowInterstitialAd","description":"It will show the Interstitial Ad","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.AdmobBanner","name":"AdmobBanner","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"AdMob Banner component","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/admob.png","androidMinSdk":19,"properties":[{"name":"AdEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"AdUnitId","editorType":"string","defaultValue":"ca-app-pub-3940256099942544/6300978111","propertyType":"common","editorArgs":[]},{"name":"ConsentDevelopmentMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ConsentMessage","editorType":"string","defaultValue":"Can we continue to use your data to tailor ads for you?","propertyType":"common","editorArgs":[]},{"name":"ConsentTitle","editorType":"string","defaultValue":"Data Protection","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AdEnabled","description":"This property must be set to true to receive ads.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"AdUnitId","description":"Set Ad Unit ID","type":"text","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ConsentDevelopmentMode","description":"If enabled you will see the consent dialog no matter if you are located in Europe or not. Please use this option only in development. If this setting is enabled ALL taken consents will not be saved.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ConsentMessage","description":"The message for the consent dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ConsentTitle","description":"The title for the consent dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"PersonalizedResult","description":"Returns the current personalized consent. If true user has consent to personalized ads.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TestMode","description":"If you want to test the component then that this property to true. Then you will receive test ads.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when an ad was closed.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdLoaded","description":"Called when an ad request was loaded.","deprecated":"false","params":[]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"OnConsentChanged","description":"Event triggered when the consent was changed.","deprecated":"false","params":[{"name":"personalized","type":"boolean"}]}],"methods":[{"name":"LoadAd","description":"Load a new AdMob Banner ad.","deprecated":"false","params":[]},{"name":"RevokeConsent","description":"Deletes the user's consent. Useful if you want to test the consent dialog in development.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.AdmobRewardedVideo","name":"AdmobRewardedVideo","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"add description in OdeMessage ","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/admob.png","androidMinSdk":19,"properties":[{"name":"AdEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"AdUnitId","editorType":"string","defaultValue":"ca-app-pub-3940256099942544/5224354917","propertyType":"common","editorArgs":[]},{"name":"ConsentDevelopmentMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ConsentMessage","editorType":"string","defaultValue":"Can we continue to use your data to tailor ads for you?","propertyType":"common","editorArgs":[]},{"name":"ConsentTitle","editorType":"string","defaultValue":"Data Protection","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AdEnabled","description":"This property must be set to true to receive ads.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"AdUnitId","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"ConsentDevelopmentMode","description":"If enabled you will see the consent dialog no matter if you are located in Europe or not. Please use this option only in development. If this setting is enabled ALL taken consents will not be saved.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ConsentMessage","description":"The message for the consent dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ConsentTitle","description":"The title for the consent dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"PersonalizedResult","description":"Returns the current personalized consent. If true user has consent to personalized ads.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"TestMode","description":"If you want to test the component, that this property to true. After it you will receive test ads.","type":"boolean","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when an ad was closed.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdLeftApplication","description":"Called when an ad leaves the application (e.g., to go to the browser).","deprecated":"false","params":[]},{"name":"AdLoaded","description":"Called when an ad request was loaded.","deprecated":"false","params":[]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"AdVideoCompleted","description":"Called when an video ad was completed.","deprecated":"false","params":[]},{"name":"AdVideoStarted","description":"Called when an video ad started to show content.","deprecated":"false","params":[]},{"name":"OnConsentChanged","description":"Event triggered when the consent was changed.","deprecated":"false","params":[{"name":"personalized","type":"boolean"}]},{"name":"Rewarded","description":"User watched video and should be rewarded.","deprecated":"false","params":[{"name":"type","type":"text"},{"name":"amount","type":"number"}]}],"methods":[{"name":"LoadAd","description":"Load a new AdMob Rewarded Video ad.","deprecated":"false","params":[]},{"name":"RevokeConsent","description":"Deletes the user's consent. Useful if you want to test the consent dialog in development.","deprecated":"false","params":[]},{"name":"ShowAd","description":"It will show the Video","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Audio","name":"Audio","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for Audio","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/audio.png","androidMinSdk":19,"properties":[{"name":"ShowUI","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"GetAudioMode","description":"Returns the current audio mode as string. Possiple returns are \"NORMAL\", \"RINGTONE\", \"CALL\" or \"COMMUNICATION\".","type":"text","rw":"read-only","deprecated":"false"},{"name":"ShowUI","description":"If set to true you will see system ui.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"VolumeAlarm","description":"Returns the current volume index in percent.","type":"number","rw":"read-write","deprecated":"false"},{"name":"VolumeMusic","description":"Returns the current volume index in percent.","type":"number","rw":"read-write","deprecated":"false"},{"name":"VolumeRing","description":"Returns the current volume index in percent.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"ErrorOccurred","description":"Event triggered when a error occurred.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]}],"methods":[{"name":"IsSoundEffectsEnabled","description":"Returns true whether a component should have sound effects enabled for events such as clicking and touching.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"boolean"},{"name":"RingerModeNormal","description":"Sets the ringer mode to \"normal\".","deprecated":"false","params":[]},{"name":"RingerModeSilent","description":"Sets the ringer mode to \"silent\".","deprecated":"false","params":[]},{"name":"RingerModeVibrate","description":"Sets the ringer mode to \"vibrate\".","deprecated":"false","params":[]},{"name":"SoundEffectsEnabled","description":"Set whether a component should have sound effects enabled for events such as clicking and touching.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"enabled","type":"boolean"}]}]},{"type":"com.google.appinventor.components.runtime.AudioPicker","name":"AudioPicker","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"A special-purpose button. When the user taps an audio picker, the device's audio gallery appears, and the user can choose an audio file.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Selection","description":"Path to the file containing the audio file that was selected.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Event to be raised after the picker activity returns its\n result and the properties have been filled in.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"BeforePicking","description":"Event to raise when the button of the component is clicked or the list is shown\n using the Open block. This event occurs before the list of items is displayed, and\n can be used to prepare the list before it is shown.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"Open","description":"Opens the picker, as though the user clicked on it.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Ball","name":"Ball","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ANIMATION","helpString":"

A round 'sprite' that can be placed on a Canvas, where it can react to touches and drags, interact with other sprites (ImageSprites and other Balls) and the edge of the Canvas, and move according to its property values.

For example, to have a Ball move 4 pixels toward the top of a Canvas every 500 milliseconds (half second), you would set the Speed property to 4 [pixels], the Interval property to 500 [milliseconds], the Heading property to 90 [degrees], and the Enabled property to True. These and its other properties can be changed at any time.

The difference between a Ball and an ImageSprite is that the latter can get its appearance from an image file, while a Ball's appearance can only be changed by varying its PaintColor and Radius properties.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Heading","editorType":"float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Interval","editorType":"non_negative_integer","defaultValue":"100","propertyType":"common","editorArgs":[]},{"name":"PaintColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Radius","editorType":"non_negative_integer","defaultValue":"5","propertyType":"common","editorArgs":[]},{"name":"Speed","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"X","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"Y","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"Z","editorType":"float","defaultValue":"1.0","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Enabled","description":"Controls whether the sprite moves when its speed is non-zero.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Heading","description":"Returns the sprite's heading in degrees above the positive x-axis. Zero degrees is toward the right of the screen; 90 degrees is toward the top of the screen.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Interval","description":"The interval in milliseconds at which the sprite's position is updated. For example, if the interval is 50 and the speed is 10, then the sprite will move 10 pixels every 50 milliseconds.","type":"number","rw":"read-write","deprecated":"false"},{"name":"PaintColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Radius","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Speed","description":"The speed at which the sprite moves. The sprite moves this many pixels every interval.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"True if the sprite is visible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"X","description":"The horizontal coordinate of the left edge of the sprite, increasing as the sprite moves to the right.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Y","description":"The vertical coordinate of the top of the sprite, increasing as the sprite moves down.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Z","description":"How the sprite should be layered relative to other sprits, with higher-numbered layers in front of lower-numbered layers.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"CollidedWith","description":"Handler for CollidedWith events, called when two sprites collide.\n Note that checking for collisions with a rotated ImageSprite currently\n checks against the sprite's unrotated position. Therefore, collision\n checking will be inaccurate for tall narrow or short wide sprites that are\n rotated.","deprecated":"false","params":[{"name":"other","type":"component"}]},{"name":"Dragged","description":"Handler for Dragged events. On all calls, the starting coordinates\n are where the screen was first touched, and the \"current\" coordinates\n describe the endpoint of the current line segment. On the first call\n within a given drag, the \"previous\" coordinates are the same as the\n starting coordinates; subsequently, they are the \"current\" coordinates\n from the prior call. Note that the Sprite won't actually move\n anywhere in response to the Dragged event unless MoveTo is\n specifically called.","deprecated":"false","params":[{"name":"startX","type":"number"},{"name":"startY","type":"number"},{"name":"prevX","type":"number"},{"name":"prevY","type":"number"},{"name":"currentX","type":"number"},{"name":"currentY","type":"number"}]},{"name":"EdgeReached","description":"Event handler called when the sprite reaches an edge of the screen. If Bounce is then called with that edge, the sprite will appear to bounce off of the edge it reached. Edge here is represented as an integer that indicates one of eight directions north(1), northeast(2), east(3), southeast(4), south (-1), southwest(-2), west(-3), and northwest(-4).","deprecated":"false","params":[{"name":"edge","type":"number"}]},{"name":"Flung","description":"When a fling gesture (quick swipe) is made on the sprite: provides\n the (x,y) position of the start of the fling, relative to the upper\n left of the canvas. Also provides the speed (pixels per millisecond) and heading\n (0-360 degrees) of the fling, as well as the x velocity and y velocity\n components of the fling's vector.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"speed","type":"number"},{"name":"heading","type":"number"},{"name":"xvel","type":"number"},{"name":"yvel","type":"number"}]},{"name":"NoLongerCollidingWith","description":"Event indicating that a pair of sprites are no longer colliding.","deprecated":"false","params":[{"name":"other","type":"component"}]},{"name":"TouchDown","description":"When the user begins touching the sprite (places finger on sprite and\n leaves it there): provides the (x,y) position of the touch, relative\n to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"TouchUp","description":"When the user stops touching the sprite (lifts finger after a\n TouchDown event): provides the (x,y) position of the touch, relative\n to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"Touched","description":"When the user touches the sprite and then immediately lifts finger: provides\n the (x,y) position of the touch, relative to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]}],"methods":[{"name":"Bounce","description":"Makes this sprite bounce, as if off a wall. For normal bouncing, the edge argument should be the one returned by EdgeReached.","deprecated":"false","params":[{"name":"edge","type":"number"}]},{"name":"CollidingWith","description":"Indicates whether a collision has been registered between this sprite\n and the passed sprite.","deprecated":"false","params":[{"name":"other","type":"component"}],"returnType":"boolean"},{"name":"MoveIntoBounds","description":"Moves the sprite back in bounds if part of it extends out of bounds,\n having no effect otherwise. If the sprite is too wide to fit on the\n canvas, this aligns the left side of the sprite with the left side of the\n canvas. If the sprite is too tall to fit on the canvas, this aligns the\n top side of the sprite with the top side of the canvas.","deprecated":"false","params":[]},{"name":"MoveTo","description":"Moves the sprite so that its left top corner is at the specfied x and y coordinates.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"PointInDirection","description":"Turns the sprite to point towards the point with coordinates as (x, y).","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"PointTowards","description":"Turns the sprite to point towards a designated target sprite. The new heading will be parallel to the line joining the centerpoints of the two sprites.","deprecated":"false","params":[{"name":"target","type":"component"}]}]},{"type":"com.google.appinventor.components.runtime.BarcodeScanner","name":"BarcodeScanner","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"Component for using the Barcode Scanner to read a barcode","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/barcodeScanner.png","androidMinSdk":19,"properties":[{"name":"UseExternalScanner","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Result","description":"Text result of the previous scan.","type":"text","rw":"read-only","deprecated":"false"},{"name":"UseExternalScanner","description":"If true App Inventor will look for and use an external scanning program such as \"Bar Code Scanner.\"","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterScan","description":"Indicates that the scanner has read a (text) result and provides the result","deprecated":"false","params":[{"name":"result","type":"text"}]}],"methods":[{"name":"DoScan","description":"Begins a barcode scan, using the camera. When the scan is complete, the AfterScan event will be raised.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Billing","name":"Billing","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MONETIZATION_GENERAL","helpString":"In-App Purchases component by Pavitra.","helpUrl":"https://docs.kodular.io/components/monetization/in-app-billing/","showOnPalette":"true","nonVisible":"true","iconName":"images/billing.png","androidMinSdk":19,"properties":[{"name":"SuppressToast","editorType":"boolean","defaultValue":"false","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"false","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"IsIabServiceAvailable","description":"Check Play Market services availability.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"IsOneTimePurchaseSupported","description":"Is one time purchase supported.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"IsSubscriptionUpdateSupported","description":"Is subscription update supported.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"ReadyToPurchase","description":"Whether In-app billing service is ready to purchase.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"SuppressToast","description":"Do not use this block anymore. This block is deprecated and does nothing and will be removed in the future!","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"TestMode","description":"Whether it is testing mode enabled or not.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterPurchase","description":"After purchase event.","deprecated":"false","params":[{"name":"productId","type":"text"}]},{"name":"ErrorOccurred","description":"Error occurred event.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"GotOwnedPurchases","description":"Got Owned Purchases","deprecated":"false","params":[{"name":"ownedProducts","type":"list"},{"name":"ownedSubscriptions","type":"list"}]},{"name":"GotProductDetails","description":"Got Product Details","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"productId","type":"text"},{"name":"title","type":"text"},{"name":"description","type":"text"},{"name":"currency","type":"text"},{"name":"price","type":"text"}]},{"name":"GotSubscriptionDetails","description":"Got Subscription Details","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"isSubscription","type":"boolean"},{"name":"subscriptionId","type":"text"},{"name":"title","type":"text"},{"name":"description","type":"text"},{"name":"currency","type":"text"},{"name":"price","type":"text"}]}],"methods":[{"name":"Consume","description":"Do not use this block anymore. This block is deprecated and does nothing and will be removed in the future!","deprecated":"true","params":[{"name":"productId","type":"text"}]},{"name":"Initialize","description":"Do not use this block anymore. This block is deprecated and does nothing and will be removed in the future!","deprecated":"true","params":[{"name":"licenseKey","type":"text"},{"name":"merchantId","type":"text"}]},{"name":"IsPurchased","description":"Returns true if the product with the specific id is purchased.","deprecated":"false","params":[{"name":"productId","type":"text"}],"returnType":"boolean"},{"name":"IsSubscribed","description":"Returns true if the product is subscribed.","deprecated":"false","params":[{"name":"subscriptionId","type":"text"}],"returnType":"boolean"},{"name":"LoadOwnedPurchases","description":"Load Owned Purchases from Google.","deprecated":"false","params":[]},{"name":"ProductDetails","description":"Get product details from the specific product id.","deprecated":"false","params":[{"name":"productId","type":"text"}]},{"name":"Purchase","description":"Purchase a product with the given product id.","deprecated":"false","params":[{"name":"productId","type":"text"}]},{"name":"Subscribe","description":"Subscribe a product with the given product id.","deprecated":"false","params":[{"name":"subscriptionId","type":"text"}]},{"name":"SubscriptionDetails","description":"Get subscription details from the given id.","deprecated":"false","params":[{"name":"subscriptionId","type":"text"}]},{"name":"UpdateSubscription","description":"Do not use this block anymore. This block is deprecated and does nothing and will be removed in the future!","deprecated":"true","params":[{"name":"subscriptionId","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.BluetoothAdmin","name":"BluetoothAdmin","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"BluetoothAdmin component to control the Bluetooth.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/bluetoothAdmin.png","androidMinSdk":19,"properties":[{"name":"UseCodes","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"UseCodes","description":"Use codes instead of strings in returns for ScanMode and State","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterPairing","description":"Event triggers when Pairing has finished.","deprecated":"false","params":[{"name":"address","type":"text"}]},{"name":"AfterScanning","description":"Event triggers when Scanning has finished","deprecated":"false","params":[{"name":"pairedDevices","type":"any"},{"name":"newDevices","type":"any"}]},{"name":"AfterUnpairing","description":"Event triggers when Unpairing has finished.","deprecated":"false","params":[{"name":"address","type":"text"}]},{"name":"ErrorOccurred","description":"Event triggers when an error occurred.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"StateChanged","description":"Event triggers when the bluetooth state changed","deprecated":"false","params":[{"name":"state","type":"text"}]}],"methods":[{"name":"Disable","description":"Disable Bluetooth","deprecated":"false","params":[]},{"name":"Enable","description":"Enable Bluetooth","deprecated":"false","params":[]},{"name":"HasBluetooth","description":"Returns if the device has Bluetooth","deprecated":"false","params":[],"returnType":"boolean"},{"name":"MacAddress","description":"Returns the Bluetooth MacAdress","deprecated":"false","params":[],"returnType":"text"},{"name":"Pair","description":"Pair Bluetooth device.","deprecated":"false","params":[{"name":"address","type":"text"}]},{"name":"Scan","description":"Scan Bluetooth devices. Caution: Performing device discovery is a heavy procedure for the Bluetooth adapter and will consume a lot of its resources. If you already hold a connection with a device, then performing discovery can significantly reduce the bandwidth available for the connection, so you should not perform discovery while connected.","deprecated":"false","params":[]},{"name":"ScanMode","description":"Returns the scan mode of the Bluetooth Adapter","deprecated":"false","params":[],"returnType":"text"},{"name":"State","description":"Returns the state of the Bluetooth Adapter","deprecated":"false","params":[],"returnType":"text"},{"name":"Toggle","description":"Toggle Bluetooth","deprecated":"false","params":[]},{"name":"Unpair","description":"Unpair Bluetooth device.","deprecated":"false","params":[{"name":"address","type":"text"}]},{"name":"ValidateMacAddress","description":"Returns true if the MacAddress is valid","deprecated":"false","params":[{"name":"macAddress","type":"text"}],"returnType":"boolean"},{"name":"ValidateUserMacAddress","description":"Returns true if the User MacAddress is valid","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.BluetoothClient","name":"BluetoothClient","external":"false","version":"6","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"Bluetooth client component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/bluetoothClient.png","androidMinSdk":19,"properties":[{"name":"CharacterEncoding","editorType":"string","defaultValue":"UTF-8","propertyType":"common","editorArgs":[]},{"name":"DelimiterByte","editorType":"non_negative_integer","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"HighByteFirst","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Secure","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AddressesAndNames","description":"The addresses and names of paired Bluetooth devices","type":"list","rw":"read-only","deprecated":"false"},{"name":"Available","description":"Whether Bluetooth is available on the device","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"CharacterEncoding","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"DelimiterByte","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Enabled","description":"Whether Bluetooth is enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"HighByteFirst","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"IsConnected","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Secure","description":"Whether to invoke SSP (Simple Secure Pairing), which is supported on devices with Bluetooth v2.1 or higher. When working with embedded Bluetooth devices, this property may need to be set to False. For Android 2.0-2.2, this property setting will be ignored.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"BluetoothError","description":"The BluetoothError event is no longer used. Please use the Screen.ErrorOccurred event instead.","deprecated":"false","params":[{"name":"functionName","type":"text"},{"name":"message","type":"text"}]}],"methods":[{"name":"BytesAvailableToReceive","description":"Returns an estimate of the number of bytes that can be received without blocking","deprecated":"false","params":[],"returnType":"number"},{"name":"Connect","description":"Connect to the Bluetooth device with the specified address and the Serial Port Profile (SPP). Returns true if the connection was successful.","deprecated":"false","params":[{"name":"address","type":"text"}],"returnType":"boolean"},{"name":"ConnectWithUUID","description":"Connect to the Bluetooth device with the specified address and UUID. Returns true if the connection was successful.","deprecated":"false","params":[{"name":"address","type":"text"},{"name":"uuid","type":"text"}],"returnType":"boolean"},{"name":"Disconnect","description":"Disconnect from the connected Bluetooth device.","deprecated":"false","params":[]},{"name":"IsDevicePaired","description":"Checks whether the Bluetooth device with the specified address is paired.","deprecated":"false","params":[{"name":"address","type":"text"}],"returnType":"boolean"},{"name":"ReceiveSigned1ByteNumber","description":"Receive a signed 1-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveSigned2ByteNumber","description":"Receive a signed 2-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveSigned4ByteNumber","description":"Receive a signed 4-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveSignedBytes","description":"Receive multiple signed byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.","deprecated":"false","params":[{"name":"numberOfBytes","type":"number"}],"returnType":"list"},{"name":"ReceiveText","description":"Receive text from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.","deprecated":"false","params":[{"name":"numberOfBytes","type":"number"}],"returnType":"text"},{"name":"ReceiveUnsigned1ByteNumber","description":"Receive an unsigned 1-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveUnsigned2ByteNumber","description":"Receive a unsigned 2-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveUnsigned4ByteNumber","description":"Receive a unsigned 4-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveUnsignedBytes","description":"Receive multiple unsigned byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.","deprecated":"false","params":[{"name":"numberOfBytes","type":"number"}],"returnType":"list"},{"name":"RemoveNameFromAddress","description":"Remove the Name from a Bluetooth Address and Name String.","deprecated":"false","params":[{"name":"addressAndName","type":"text"}],"returnType":"text"},{"name":"Send1ByteNumber","description":"Send a 1-byte number to the connected Bluetooth device.","deprecated":"false","params":[{"name":"number","type":"text"}]},{"name":"Send2ByteNumber","description":"Send a 2-byte number to the connected Bluetooth device.","deprecated":"false","params":[{"name":"number","type":"text"}]},{"name":"Send4ByteNumber","description":"Send a 4-byte number to the connected Bluetooth device.","deprecated":"false","params":[{"name":"number","type":"text"}]},{"name":"SendBytes","description":"Send a list of byte values to the connected Bluetooth device.","deprecated":"false","params":[{"name":"list","type":"list"}]},{"name":"SendText","description":"Send text to the connected Bluetooth device.","deprecated":"false","params":[{"name":"text","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.BluetoothServer","name":"BluetoothServer","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"Bluetooth server component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/bluetoothServer.png","androidMinSdk":19,"properties":[{"name":"CharacterEncoding","editorType":"string","defaultValue":"UTF-8","propertyType":"common","editorArgs":[]},{"name":"DelimiterByte","editorType":"non_negative_integer","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"HighByteFirst","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Secure","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"Whether Bluetooth is available on the device","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"CharacterEncoding","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"DelimiterByte","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Enabled","description":"Whether Bluetooth is enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"HighByteFirst","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"IsAccepting","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"IsConnected","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Secure","description":"Whether to invoke SSP (Simple Secure Pairing), which is supported on devices with Bluetooth v2.1 or higher. When working with embedded Bluetooth devices, this property may need to be set to False. For Android 2.0-2.2, this property setting will be ignored.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"BluetoothError","description":"The BluetoothError event is no longer used. Please use the Screen.ErrorOccurred event instead.","deprecated":"false","params":[{"name":"functionName","type":"text"},{"name":"message","type":"text"}]},{"name":"ConnectionAccepted","description":"Indicates that a bluetooth connection has been accepted.","deprecated":"false","params":[]}],"methods":[{"name":"AcceptConnection","description":"Accept an incoming connection with the Serial Port Profile (SPP).","deprecated":"false","params":[{"name":"serviceName","type":"text"}]},{"name":"AcceptConnectionWithUUID","description":"Accept an incoming connection with a specific UUID.","deprecated":"false","params":[{"name":"serviceName","type":"text"},{"name":"uuid","type":"text"}]},{"name":"BytesAvailableToReceive","description":"Returns an estimate of the number of bytes that can be received without blocking","deprecated":"false","params":[],"returnType":"number"},{"name":"Disconnect","description":"Disconnect from the connected Bluetooth device.","deprecated":"false","params":[]},{"name":"ReceiveSigned1ByteNumber","description":"Receive a signed 1-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveSigned2ByteNumber","description":"Receive a signed 2-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveSigned4ByteNumber","description":"Receive a signed 4-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveSignedBytes","description":"Receive multiple signed byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.","deprecated":"false","params":[{"name":"numberOfBytes","type":"number"}],"returnType":"list"},{"name":"ReceiveText","description":"Receive text from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.","deprecated":"false","params":[{"name":"numberOfBytes","type":"number"}],"returnType":"text"},{"name":"ReceiveUnsigned1ByteNumber","description":"Receive an unsigned 1-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveUnsigned2ByteNumber","description":"Receive a unsigned 2-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveUnsigned4ByteNumber","description":"Receive a unsigned 4-byte number from the connected Bluetooth device.","deprecated":"false","params":[],"returnType":"number"},{"name":"ReceiveUnsignedBytes","description":"Receive multiple unsigned byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.","deprecated":"false","params":[{"name":"numberOfBytes","type":"number"}],"returnType":"list"},{"name":"Send1ByteNumber","description":"Send a 1-byte number to the connected Bluetooth device.","deprecated":"false","params":[{"name":"number","type":"text"}]},{"name":"Send2ByteNumber","description":"Send a 2-byte number to the connected Bluetooth device.","deprecated":"false","params":[{"name":"number","type":"text"}]},{"name":"Send4ByteNumber","description":"Send a 4-byte number to the connected Bluetooth device.","deprecated":"false","params":[{"name":"number","type":"text"}]},{"name":"SendBytes","description":"Send a list of byte values to the connected Bluetooth device.","deprecated":"false","params":[{"name":"list","type":"list"}]},{"name":"SendText","description":"Send text to the connected Bluetooth device.","deprecated":"false","params":[{"name":"text","type":"text"}]},{"name":"StopAccepting","description":"Stop accepting an incoming connection.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Button","name":"Button","external":"false","version":"11","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Button with the ability to detect clicks. Many aspects of its appearance can be changed, as well as whether it is clickable (Enabled), can be changed in the Designer or in the Blocks Editor.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"User tapped and released the button.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LongClick","description":"User held the button down.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Camcorder","name":"Camcorder","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"A component to record a video using the device's camcorder.After the video is recorded, the name of the file on the phone containing the clip is available as an argument to the AfterRecording event. The file name can be used, for example, to set the source property of a VideoPlayer component.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/camcorder.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"AfterRecording","description":"Indicates that a video was recorded with the camera and provides the path to\n the stored picture.","deprecated":"false","params":[{"name":"clip","type":"text"}]}],"methods":[{"name":"RecordVideo","description":"Records a video, then raises the AfterRecoding event.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Camera","name":"Camera","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"A component to take a picture using the device's camera. After the picture is taken, the name of the file on the phone containing the picture is available as an argument to the AfterPicture event. The file name can be used, for example, to set the Picture property of an Image component.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/camera.png","androidMinSdk":19,"properties":[],"blockProperties":[{"name":"UseFront","description":"Specifies whether the front-facing camera should be used (when available). If the device does not have a front-facing camera, this option will be ignored and the camera will open normally.","type":"boolean","rw":"read-write","deprecated":"true"}],"events":[{"name":"AfterPicture","description":"Returns the taken picture.","deprecated":"false","params":[{"name":"image","type":"text"}]}],"methods":[{"name":"HasFlash","description":"Returns true if your device has a flash.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"TakePicture","description":"Take a picture with the camera of your device.","deprecated":"false","params":[]},{"name":"ToggleLight","description":"Toggle the flash of your device to on or off.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Canvas","name":"Canvas","external":"false","version":"12","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ANIMATION","helpString":"

A two-dimensional touch-sensitive rectangular panel on which drawing can be done and sprites can be moved.

The BackgroundColor, PaintColor, BackgroundImage, Width, and Height of the Canvas can be set in either the Designer or in the Blocks Editor. The Width and Height are measured in pixels and must be positive.

Any location on the Canvas can be specified as a pair of (X, Y) values, where

.

There are events to tell when and where a Canvas has been touched or a Sprite (ImageSprite or Ball) has been dragged. There are also methods for drawing points, lines, and circles.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"BackgroundImage","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"LineWidth","editorType":"non_negative_float","defaultValue":"2.0","propertyType":"common","editorArgs":[]},{"name":"PaintColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"The color of the canvas background.","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundImage","description":"The name of a file containing the background image for the canvas","type":"text","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontSize","description":"The font size of text drawn on the canvas.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"LineWidth","description":"The width of lines drawn on the canvas.","type":"number","rw":"read-write","deprecated":"false"},{"name":"PaintColor","description":"The color in which lines are drawn","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextAlignment","description":"Determines the alignment of the text drawn by DrawText() or DrawAngle() with respect to the point specified by that command: point at the left of the text, point at the center of the text, or point at the right of the text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Dragged","description":"When the user does a drag from one point (prevX, prevY) to\n another (x, y). The pair (startX, startY) indicates where the\n user first touched the screen, and \"draggedAnySprite\" indicates whether a\n sprite is being dragged.","deprecated":"false","params":[{"name":"startX","type":"number"},{"name":"startY","type":"number"},{"name":"prevX","type":"number"},{"name":"prevY","type":"number"},{"name":"currentX","type":"number"},{"name":"currentY","type":"number"},{"name":"draggedAnySprite","type":"boolean"}]},{"name":"Flung","description":"When a fling gesture (quick swipe) is made on the canvas: provides\n the (x,y) position of the start of the fling, relative to the upper\n left of the canvas. Also provides the speed (pixels per millisecond) and heading\n (0-360 degrees) of the fling, as well as the x velocity and y velocity\n components of the fling's vector. The value \"flungSprite\" is true if a sprite\n was located near the the starting point of the fling gesture.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"speed","type":"number"},{"name":"heading","type":"number"},{"name":"xvel","type":"number"},{"name":"yvel","type":"number"},{"name":"flungSprite","type":"boolean"}]},{"name":"Scale","description":"This event is invoked when two-finger pinches. ScaleFactor is the ratio of the average distance between two-fingers from current and previous scale event.","deprecated":"false","params":[{"name":"scaleFactor","type":"number"}]},{"name":"TouchDown","description":"When the user begins touching the canvas (places finger on canvas and\n leaves it there): provides the (x,y) position of the touch, relative\n to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"TouchUp","description":"When the user stops touching the canvas (lifts finger after a\n TouchDown event): provides the (x,y) position of the touch, relative\n to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"Touched","description":"When the user touches the canvas and then immediately lifts finger: provides\n the (x,y) position of the touch, relative to the upper left of the canvas. TouchedAnySprite\n is true if the same touch also touched a sprite, and false otherwise.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"touchedAnySprite","type":"boolean"}]}],"methods":[{"name":"Clear","description":"Clears anything drawn on this Canvas but not any background color or image.","deprecated":"false","params":[]},{"name":"DrawArc","description":"Draw an arc on Canvas, by drawing an arc from a specified oval (specified by left, top, right & bottom). Start angle is 0 when heading to the right, and increase when rotate clockwise. When useCenter is true, a sector will be drawed instead of an arc. When fill is true, a filled arc (or sector) will be drawed instead of just an outline.","deprecated":"false","params":[{"name":"left","type":"number"},{"name":"top","type":"number"},{"name":"right","type":"number"},{"name":"bottom","type":"number"},{"name":"startAngle","type":"number"},{"name":"sweepAngle","type":"number"},{"name":"useCenter","type":"boolean"},{"name":"fill","type":"boolean"}]},{"name":"DrawCircle","description":"Draws a circle (filled in) with the given radius centered at the given coordinates on the canvas","deprecated":"false","params":[{"name":"centerX","type":"number"},{"name":"centerY","type":"number"},{"name":"radius","type":"number"},{"name":"fill","type":"boolean"}]},{"name":"DrawLine","description":"Draws a line between the given coordinates on the canvas.","deprecated":"false","params":[{"name":"x1","type":"number"},{"name":"y1","type":"number"},{"name":"x2","type":"number"},{"name":"y2","type":"number"}]},{"name":"DrawPoint","description":"Draws a point at the given coordinates on the canvas.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"DrawShape","description":"Draws a shape on the canvas. pointList should be a list contains sub-lists with two number which represents a coordinate. The first point and last point does not need to be the same. e.g. ((x1 y1) (x2 y2) (x3 y3)) When fill is true, the shape will be filled.","deprecated":"false","params":[{"name":"pointList","type":"list"},{"name":"fill","type":"boolean"}]},{"name":"DrawText","description":"Draws the specified text relative to the specified coordinates using the values of the FontSize and TextAlignment properties.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"DrawTextAtAngle","description":"Draws the specified text starting at the specified coordinates at the specified angle using the values of the FontSize and TextAlignment properties.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"angle","type":"number"}]},{"name":"GetBackgroundPixelColor","description":"Gets the color of the specified point. This includes the background and any drawn points, lines, or circles but not sprites.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}],"returnType":"number"},{"name":"GetPixelColor","description":"Gets the color of the specified point.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}],"returnType":"number"},{"name":"Save","description":"Saves a picture of this Canvas to the device's external storage. If an error occurs, the Screen's ErrorOccurred event will be called.","deprecated":"false","params":[],"returnType":"text"},{"name":"SaveAs","description":"Saves a picture of this Canvas to the device's external storage in the file named fileName. fileName must end with one of .jpg, .jpeg, or .png, which determines the file type.","deprecated":"false","params":[{"name":"fileName","type":"text"}],"returnType":"text"},{"name":"SetBackgroundPixelColor","description":"Sets the color of the specified point. This differs from DrawPoint by having an argument for color.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"color","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.CheckBox","name":"CheckBox","external":"false","version":"6","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Checkbox that raises an event when the user clicks on it. There are many properties affecting its appearance that can be set in the Designer or Blocks Editor.","helpUrl":"https://docs.kodular.io/components/user-interface/checkbox/","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00FFFFFF","propertyType":"common","editorArgs":[]},{"name":"CheckboxColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Checked","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"CheckboxColor","description":"Change the checkbox component color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Checked","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontSize","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Text","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Changed","description":"Default Changed event handler.","deprecated":"false","params":[]},{"name":"Click","description":"Indicates a user has clicked on the checkbox.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Default GotFocus event handler.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Default LostFocus event handler.","deprecated":"false","params":[]}],"methods":[{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Circle","name":"Circle","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"Circle","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Description","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Draggable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"EnableInfobox","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FillColor","editorType":"color","defaultValue":"&HFFF34336","propertyType":"common","editorArgs":[]},{"name":"Latitude","editorType":"latitude","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Longitude","editorType":"longitude","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Radius","editorType":"non_negative_float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"integer","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Description","description":"The description displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Draggable","description":"The Draggable property is used to set whether or not the user can drag the Marker by long-pressing and then dragging the marker to a new location.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableInfobox","description":"Enable or disable the infobox window display when the user taps the feature.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FillColor","description":"The paint color used to fill in the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Latitude","description":"The latitude of the center of the circle.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Longitude","description":"The longitude of the center of the circle.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Radius","description":"The radius of the circle in meters.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeColor","description":"The paint color used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeWidth","description":"The width of the stroke used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Title","description":"The title displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Type","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"The user clicked on the feature.","deprecated":"false","params":[]},{"name":"Drag","description":"The user dragged the map feature.","deprecated":"false","params":[]},{"name":"LongClick","description":"The user long-pressed on the feature. This event will only trigger if Draggable is false.","deprecated":"false","params":[]},{"name":"StartDrag","description":"The user started a drag operation.","deprecated":"false","params":[]},{"name":"StopDrag","description":"The user stopped a drag operation.","deprecated":"false","params":[]}],"methods":[{"name":"DistanceToFeature","description":"Compute the distance, in meters, between two map features.","deprecated":"false","params":[{"name":"mapFeature","type":"component"},{"name":"centroids","type":"boolean"}],"returnType":"number"},{"name":"DistanceToPoint","description":"Compute the distance, in meters, between a map feature and a latitude, longitude point.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"},{"name":"centroid","type":"boolean"}],"returnType":"number"},{"name":"HideInfobox","description":"Hide the infobox if it is shown. If the infobox is not visible this function has no effect.","deprecated":"false","params":[]},{"name":"SetLocation","description":"Set the center of the Circle.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"ShowInfobox","description":"Show the infobox for the feature. This will show the infobox even if","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Clock","name":"Clock","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that provides the instant in time using the internal clock on the phone. It can fire a timer at regularly set intervals and perform time calculations, manipulations, and conversions.

Methods to convert an instant to text are also available. Acceptable patterns are empty string, MM/DD/YYYY HH:mm:ss a, or MMM d, yyyyHH:mm. The empty string will provide the default format, which is \"MMM d, yyyy HH:mm:ss a\" for FormatDateTime \"MMM d, yyyy\" for FormatDate. To see all possible format, please see here.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/clock.png","androidMinSdk":19,"properties":[{"name":"TimerAlwaysFires","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TimerEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TimerInterval","editorType":"non_negative_integer","defaultValue":"1000","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"TimerAlwaysFires","description":"Will fire even when application is not showing on the screen if true","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TimerEnabled","description":"Fires timer if true","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TimerInterval","description":"Interval between timer events in ms","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"Timer","description":"Timer has gone off.","deprecated":"false","params":[]}],"methods":[{"name":"AddDays","description":"An instant in time some days after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddDuration","description":"An instant in time some duration after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddHours","description":"An instant in time some hours after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddMinutes","description":"An instant in time some minutes after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddMonths","description":"An instant in time some months after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddSeconds","description":"An instant in time some seconds after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddWeeks","description":"An instant in time some weeks after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"AddYears","description":"An instant in time some years after the argument","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"quantity","type":"number"}],"returnType":"InstantInTime"},{"name":"DayOfMonth","description":"The day of the month","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"Duration","description":"Milliseconds elapsed between instants","deprecated":"false","params":[{"name":"start","type":"InstantInTime"},{"name":"end","type":"InstantInTime"}],"returnType":"number"},{"name":"DurationToDays","description":"convert duration to days","deprecated":"false","params":[{"name":"duration","type":"number"}],"returnType":"number"},{"name":"DurationToHours","description":"convert duration to hours","deprecated":"false","params":[{"name":"duration","type":"number"}],"returnType":"number"},{"name":"DurationToMinutes","description":"convert duration to minutes","deprecated":"false","params":[{"name":"duration","type":"number"}],"returnType":"number"},{"name":"DurationToSeconds","description":"convert duration to seconds","deprecated":"false","params":[{"name":"duration","type":"number"}],"returnType":"number"},{"name":"DurationToWeeks","description":"convert duration to weeks","deprecated":"false","params":[{"name":"duration","type":"number"}],"returnType":"number"},{"name":"FormatDate","description":"Text representing the date of an instant in the specified pattern","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"pattern","type":"text"}],"returnType":"text"},{"name":"FormatDateTime","description":"Text representing the date and time of an instant in the specified pattern","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"},{"name":"pattern","type":"text"}],"returnType":"text"},{"name":"FormatTime","description":"Text representing the time of an instant","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"text"},{"name":"GetMillis","description":"The instant in time measured as milliseconds since 1970.","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"Hour","description":"The hour of the day","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"MakeDate","description":"Allows the user to set the clock to be a date value.\nValid values for the month field are 1-12 and 1-31 for the day field.","deprecated":"false","params":[{"name":"year","type":"number"},{"name":"month","type":"number"},{"name":"day","type":"number"}],"returnType":"InstantInTime"},{"name":"MakeInstant","description":"An instant in time specified by MM/dd/YYYY hh:mm:ss or MM/dd/YYYY or hh:mm","deprecated":"false","params":[{"name":"from","type":"text"}],"returnType":"InstantInTime"},{"name":"MakeInstantFromMillis","description":"An instant in time specified by the milliseconds since 1970.","deprecated":"false","params":[{"name":"millis","type":"number"}],"returnType":"InstantInTime"},{"name":"MakeInstantFromParts","description":"Allows the user to set the date and time to be displayed when the clock opens.\nValid values for the month field are 1-12 and 1-31 for the day field.","deprecated":"false","params":[{"name":"year","type":"number"},{"name":"month","type":"number"},{"name":"day","type":"number"},{"name":"hour","type":"number"},{"name":"minute","type":"number"},{"name":"second","type":"number"}],"returnType":"InstantInTime"},{"name":"MakeTime","description":"Allows the user to set the time of the clock - Valid format is hh:mm:ss","deprecated":"false","params":[{"name":"hour","type":"number"},{"name":"minute","type":"number"},{"name":"second","type":"number"}],"returnType":"InstantInTime"},{"name":"Minute","description":"The minute of the hour","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"Month","description":"The month of the year represented as a number from 1 to 12)","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"MonthName","description":"The name of the month","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"text"},{"name":"Now","description":"The current instant in time read from phone's clock","deprecated":"false","params":[],"returnType":"InstantInTime"},{"name":"Second","description":"The second of the minute","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"SystemTime","description":"The phone's internal time","deprecated":"false","params":[],"returnType":"number"},{"name":"Weekday","description":"The day of the week represented as a number from 1 (Sunday) to 7 (Saturday)","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"},{"name":"WeekdayName","description":"The name of the day of the week","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"text"},{"name":"Year","description":"The year","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.CloudDB","name":"CloudDB","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EXPERIMENTAL","helpString":"Non-visible component that communicates with CloudDB server to store and retrieve information.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/cloudDB.png","androidMinSdk":19,"properties":[{"name":"DefaultRedisServer","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ProjectID","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RedisPort","editorType":"integer","defaultValue":"6381","propertyType":"common","editorArgs":[]},{"name":"RedisServer","editorType":"string","defaultValue":"DEFAULT","propertyType":"common","editorArgs":[]},{"name":"Token","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"UseSSL","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"DefaultRedisServer","description":"The Default Redis Server to use.","type":"text","rw":"invisible","deprecated":"false"},{"name":"ProjectID","description":"Gets the ProjectID for this CloudDB project.","type":"text","rw":"read-only","deprecated":"false"},{"name":"RedisPort","description":"The Redis Server port to use. Defaults to 6381","type":"number","rw":"read-only","deprecated":"false"},{"name":"RedisServer","description":"The Redis Server to use to store data. A setting of \"DEFAULT\" means that the MIT server will be used.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Token","description":"This field contains the authentication token used to login to the backed Redis server. For the \"DEFAULT\" server, do not edit this value, the system will fill it in for you. A system administrator may also provide a special value to you which can be used to share data between multiple projects from multiple people. If using your own Redis server, set a password in the server's config and enter it here.","type":"text","rw":"invisible","deprecated":"false"},{"name":"UseSSL","description":"Set to true to use SSL to talk to CloudDB/Redis server. This should be set to True for the \"DEFAULT\" server.","type":"boolean","rw":"invisible","deprecated":"false"}],"events":[{"name":"CloudDBError","description":"Indicates that an error occurred while communicating with the CloudDB Redis server.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"DataChanged","description":"Indicates that the data in the CloudDB project has changed.\n Launches an event with the tag and value that have been updated.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"value","type":"any"}]},{"name":"FirstRemoved","description":"Event triggered by the \"RemoveFirstFromList\" function. The argument \"value\" is the object that was the first in the list, and which is now removed.","deprecated":"false","params":[{"name":"value","type":"any"}]},{"name":"GotValue","description":"Indicates that a GetValue request has succeeded.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"value","type":"any"}]},{"name":"TagList","description":"Event triggered when we have received the list of known tags. Used with the \"GetTagList\" Function.","deprecated":"false","params":[{"name":"value","type":"list"}]}],"methods":[{"name":"AppendValueToList","description":"Append a value to the end of a list atomically. If two devices use this function simultaneously, both will be appended and no data lost.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"itemToAdd","type":"any"}]},{"name":"ClearTag","description":"Remove the tag from CloudDB","deprecated":"false","params":[{"name":"tag","type":"text"}]},{"name":"CloudConnected","description":"returns True if we are on the network and will likely be able to connect to the CloudDB server.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"GetTagList","description":"Get the list of tags for this application. When complete a \"TagList\" event will be triggered with the list of known tags.","deprecated":"false","params":[]},{"name":"GetValue","description":"Get the Value for a tag, doesn't return the value but will cause a GotValue event to fire when the value is looked up.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueIfTagNotThere","type":"any"}]},{"name":"RemoveFirstFromList","description":"Return the first element of a list and atomically remove it. If two devices use this function simultaneously, one will get the first element and the the other will get the second element, or an error if there is no available element. When the element is available, the \"FirstRemoved\" event will be triggered.","deprecated":"false","params":[{"name":"tag","type":"text"}]},{"name":"StoreValue","description":"Store a value at a tag.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueToStore","type":"any"}]}]},{"type":"com.google.appinventor.components.runtime.ContactPicker","name":"ContactPicker","external":"false","version":"11","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"A button that, when clicked on, displays a list of the contacts to choose among. After the user has made a selection, the following properties will be set to information about the chosen contact: \n

Other properties affect the appearance of the button (TextAlignment, BackgroundColor, etc.) and whether it can be clicked on (Enabled).\n

The ContactPicker component might not work on all phones. For example, on Android systems before system 3.0, it cannot pick phone numbers, and the list of email addresses will contain only one email.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ContactName","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"ContactUri","description":"URI that specifies the location of the contact on the device.","type":"text","rw":"read-only","deprecated":"false"},{"name":"EmailAddress","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"EmailAddressList","description":"","type":"list","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"PhoneNumber","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"PhoneNumberList","description":"","type":"list","rw":"read-only","deprecated":"false"},{"name":"Picture","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Event to be raised after the picker activity returns its\n result and the properties have been filled in.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"BeforePicking","description":"Event to raise when the button of the component is clicked or the list is shown\n using the Open block. This event occurs before the list of items is displayed, and\n can be used to prepare the list before it is shown.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"Open","description":"Opens the picker, as though the user clicked on it.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"ViewContact","description":"view a contact via its URI","deprecated":"false","params":[{"name":"uri","type":"text"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.DatePicker","name":"DatePicker","external":"false","version":"7","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"

A button that, when clicked on, launches a popup dialog to allow the user to select a date.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Day","description":"the Day of the month that was last picked using the DatePicker.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Instant","description":"the instant of the date that was last picked using the DatePicker.","type":"InstantInTime","rw":"read-only","deprecated":"false"},{"name":"Month","description":"the number of the Month that was last picked using the DatePicker. Note that months start in 1 = January, 12 = December.","type":"number","rw":"read-only","deprecated":"false"},{"name":"MonthInText","description":"Returns the name of the Month that was last picked using the DatePicker, in textual format.","type":"text","rw":"read-only","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Year","description":"the Year that was last picked using the DatePicker","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"AfterDateSet","description":"Event that runs after the user chooses a Date in the dialog","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"LaunchPicker","description":"Launches the DatePicker popup.","deprecated":"false","params":[]},{"name":"SetDateToDisplay","description":"Allows the user to set the date to be displayed when the date picker opens.\nValid values for the month field are 1-12 and 1-31 for the day field.","deprecated":"false","params":[{"name":"year","type":"number"},{"name":"month","type":"number"},{"name":"day","type":"number"}]},{"name":"SetDateToDisplayFromInstant","description":"Allows the user to set the date from the instant to be displayed when the date picker opens.","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.DeviceTools","name":"DeviceTools","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for DeviceTools","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/devicetools.png","androidMinSdk":19,"properties":[{"name":"ShowSuccessToast","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AndroidVersion","description":"Get the android version of device.","type":"text","rw":"read-only","deprecated":"false"},{"name":"ApiVersion","description":"The user-visible SDK version of the framework.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Board","description":"The name of the underlying board, like \"goldfish\".","type":"text","rw":"read-only","deprecated":"false"},{"name":"BootloaderVersion","description":"The system bootloader version number.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Brand","description":"The consumer-visible brand with which the product/hardware will be associated, if any.","type":"text","rw":"read-only","deprecated":"false"},{"name":"BuildNumber","description":"Get the build number(Software) of the device.","type":"text","rw":"read-only","deprecated":"false"},{"name":"CountryCode","description":"The result is the code of your country.","type":"text","rw":"read-only","deprecated":"false"},{"name":"DeviceName","description":"The name of the industrial design.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Fingerprint","description":"A string that uniquely identifies this build.","type":"text","rw":"read-only","deprecated":"false"},{"name":"GetDeviceId","description":"Returns the unique device specific 'AndroidID'. Developed by Cian.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Hardware","description":"The name of the hardware (from the kernel command line or /proc).","type":"text","rw":"read-only","deprecated":"false"},{"name":"Id","description":"Either a changelist number, or a label like \"M4-rc20\".","type":"text","rw":"read-only","deprecated":"false"},{"name":"LanguageCode","description":"The result is the code of your device language.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Manufacturer","description":"The manufacturer of the product/hardware.","type":"text","rw":"read-only","deprecated":"false"},{"name":"ModelName","description":"The end-user-visible name for the end product.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Product","description":"The name of the overall product.","type":"text","rw":"read-only","deprecated":"false"},{"name":"RadioVersion","description":"Returns the version string for the radio firmware. May return null (if, for instance, the radio is not currently on).","type":"text","rw":"read-only","deprecated":"false"},{"name":"Serial","description":"DEPRECATED. DO NOT USE THIS ANYMORE. USE 'Get Serial' INSTEAD!","type":"text","rw":"read-only","deprecated":"true"},{"name":"ShowSuccessToast","description":"Returns true if 'Show Success Toast' is enabled.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Tags","description":"Comma-separated tags describing the build, like \"unsigned,debug\".","type":"text","rw":"read-only","deprecated":"false"},{"name":"Type","description":"The type of build, like \"user\" or \"eng\".","type":"text","rw":"read-only","deprecated":"false"}],"events":[{"name":"GotIMEI","description":"Event to get the IMEI after it was requested.","deprecated":"false","params":[{"name":"imei","type":"text"}]},{"name":"GotSerial","description":"Event to get the serial number after it was requested.","deprecated":"false","params":[{"name":"serial","type":"text"}]}],"methods":[{"name":"CheckForDangerousAPK","description":"Returns TRUE if one of 12 known patching or root emulating packages is installed. The name of the package is not returned, so the user does not know which package name to change. Developed by Cian.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"Copy","description":"Copy text to clipboard. In case 'Show Success Toast' is true, the toast with your message will be shown after copying a text to the clipboard.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"successToastMessage","type":"text"}]},{"name":"GetIMEI","description":"Get the IMEI of the device. The result will be then at the 'Got IMEI' event.","deprecated":"false","params":[]},{"name":"GetSerial","description":"A hardware serial number, if available. Alphanumeric only, case-insensitive. For apps targeting SDK higher than N_MR1 this field is set to UNKNOWN.","deprecated":"false","params":[]},{"name":"Parse","description":"Parse a text between two strings. Example: text = abcdef, start = a, end = d, result = bc. If there is a problem the 'if Text Not Found' will be returned.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"start","type":"text"},{"name":"end","type":"text"},{"name":"ifTextNotFound","type":"text"}],"returnType":"text"},{"name":"Paste","description":"Paste text from clipboard. In case 'Show Success Toast' is true, the toast with your message will be shown after pasting a text from the clipboard.","deprecated":"false","params":[{"name":"successToastMessage","type":"text"}],"returnType":"text"},{"name":"isADBDebuggingEnabled","description":"This returns TRUE if ADB debugging is enabled, which could be a sign of hacking your app, or a compromised device. Developed by Cian.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isEmulator","description":"Returns TRUE if the device operating on an emulator. Developed by Cian.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isPlayStoreInstalled","description":"Returns TRUE if the app was installed from Play Store. Developed by Cian.","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.Download","name":"Download","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"The Download component is a non-visible component that allows users to downlod any file to the device","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/download.png","androidMinSdk":19,"properties":[{"name":"AllowedOverRoaming","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Description","editorType":"string","defaultValue":"Downloading file..","propertyType":"common","editorArgs":[]},{"name":"DownloadUrl","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RequiresCharging","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"RequiresDeviceIdle","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SaveFileAs","editorType":"string","defaultValue":"NewFile.png","propertyType":"common","editorArgs":[]},{"name":"ScanningByMediaScanner","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ShowNotification","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"SuppressWarnings","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"string","defaultValue":"Download..","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AllowedOverRoaming","description":"Set whether this download may proceed over a roaming connection.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Description","description":"Set the desription that you will see in the download notification.","type":"text","rw":"read-write","deprecated":"false"},{"name":"DownloadUrl","description":"Set here the url to the file that you want to download.","type":"text","rw":"read-write","deprecated":"false"},{"name":"RequiresCharging","description":"Specify that to run this download, the device needs to be plugged in. Works only for devices with api >= 24.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"RequiresDeviceIdle","description":"Specify that to run, the download needs the device to be in idle mode. Idle mode is a loose definition provided by the system, which means that the device is not in use, and has not been in use for some time. Works only for devices with api >= 24.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SaveFileAs","description":"Set here the new filename for the file that you want to download.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ScanningByMediaScanner","description":"If the file to be downloaded is to be scanned by MediaScanner.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowNotification","description":"Control whether a system notification is posted by the download manager while this download is running or when it is completed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SuppressWarnings","description":"If false you will see a toast message with a error message when a error is occurred.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Title","description":"Set the title that you will see in the download notification.","type":"text","rw":"read-write","deprecated":"false"},{"name":"isDownloadManagerAvailable","description":"This function is deprecated. Do not use it anymore. We will remove it in the future. Since we support min API 14 the download manager is by default available. The download manager was added in API 9.","type":"boolean","rw":"read-only","deprecated":"true"}],"events":[{"name":"DownloadComplete","description":"Event to detect if the download is successful finished. You can use the \"filePath\" to use the downloaded file into your app. The \"fileSize\" will be returned in bytes.","deprecated":"false","params":[{"name":"filePath","type":"text"},{"name":"fileName","type":"text"},{"name":"fileSize","type":"number"}]},{"name":"DownloadProgress","description":"Get the progress (in percentage) of the current download task.","deprecated":"false","params":[{"name":"progress","type":"number"}]},{"name":"GotFileSize","description":"Event to detect file size is ready to be used.","deprecated":"false","params":[{"name":"size","type":"number"}]},{"name":"NotificationClicked","description":"Event to detect when the user clicks on a running download, either from a system notification or from the downloads UI.","deprecated":"false","params":[]}],"methods":[{"name":"Download","description":"Start the download process of the given download url.","deprecated":"false","params":[]},{"name":"GetFileSize","description":"Get the file size (in bytes) of a file that is stored online or on your device. The block detect automatic if it is a online path or not. You will get the result in the \"Got File Size\" event.","deprecated":"false","params":[{"name":"path","type":"text"}]},{"name":"ShowDownload","description":"You can open the download folder with this block.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.EmailPicker","name":"EmailPicker","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"An EmailPicker is a kind of text box. If the user begins entering the name or email address of a contact, the phone will show a dropdown menu of choices that complete the entry. If there are many contacts, the dropdown can take several seconds to appear, and can show intermediate results while the matches are being computed.

The initial contents of the text box and the contents< after user entry is in the Text property. If the Text property is initially empty, the contents of the Hint property will be faintly shown in the text box as a hint to the user.

\n

Other properties affect the appearance of the text box (TextAlignment, BackgroundColor, etc.) and whether it can be used (Enabled).

\n

Text boxes like this are usually used with Button components, with the user clicking on the button when text entry is complete.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"CursorColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"advanced","editorArgs":[]},{"name":"CursorVisible","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"Hint","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HintColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"The background color of the input box. You can choose a color by name in the Designer or in the Blocks Editor. The default background color is 'default' (shaded 3-D look).","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CurrentPosition","description":"Get the current cursor position.","type":"number","rw":"read-only","deprecated":"false"},{"name":"CursorColor","description":"The color of the cursor.","type":"number","rw":"read-write","deprecated":"false"},{"name":"CursorVisible","description":"Makes the cursor visible (the default) or invisible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableCopyPaste","description":"DEPRECATED since this feature is not working. Use 'Enabled' instead.","type":"boolean","rw":"read-write","deprecated":"true"},{"name":"Enabled","description":"Whether the user can enter text into this input box. By default, this is true.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"Whether the font for the text should be bold. By default, it is not.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"Whether the text should appear in italics. By default, it does not.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontSize","description":"The font size for the text. By default, it is 14.0 points.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"The font for the text. The value can be changed in the Designer.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Hint","description":"Text that should appear faintly in the input box to provide a hint as to what the user should enter. This can only be seen if the Text property is empty.","type":"text","rw":"read-write","deprecated":"false"},{"name":"HintColor","description":"Set a custom hint text color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"LineColor","description":"Please delete this block from your project.This block is deprecated and not longer supported.","type":"number","rw":"read-write","deprecated":"true"},{"name":"RotationAngle","description":"Sets the degrees that the textbox is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Text","description":"The text in the input box, which can be set by the programmer in the Designer or Blocks Editor, or it can be entered by the user (unless the Enabled property is false).","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Whether the text should be left justified, centered, or right justified. By default, text is left justified.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"The color for the text. You can choose a color by name in the Designer or in the Blocks Editor. The default text color is black.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextLength","description":"Returns the current text length as number.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"GotFocus","description":"Event raised when this component is selected for input, such as by\n the user touching it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Event raised when this component is no longer selected for input, such\n as if the user touches a different text box.","deprecated":"false","params":[]},{"name":"OnTextChanged","description":"Event to detect text changes.","deprecated":"false","params":[]}],"methods":[{"name":"RequestFocus","description":"Sets the textbox active.","deprecated":"false","params":[]},{"name":"SetCursorAt","description":"Set the cursor to the given position.","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"SetCursorAtEnd","description":"Set the cursor to the end of the text.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Ev3ColorSensor","name":"Ev3ColorSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a high-level interface to a color sensor on a LEGO MINDSTORMS EV3 robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"AboveRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BelowRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BottomOfRange","editorType":"non_negative_integer","defaultValue":"30","propertyType":"common","editorArgs":[]},{"name":"ColorChangedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Mode","editorType":"lego_ev3_color_sensor_mode","defaultValue":"reflected","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_ev3_sensor_port","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TopOfRange","editorType":"non_negative_integer","defaultValue":"60","propertyType":"common","editorArgs":[]},{"name":"WithinRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboveRangeEventEnabled","description":"Whether the AboveRange event should fire when the light level goes above the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BelowRangeEventEnabled","description":"Whether the BelowRange event should fire when the light level goes below the BottomOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"},{"name":"BottomOfRange","description":"The bottom of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ColorChangedEventEnabled","description":"Whether the ColorChanged event should fire when the Mode property is set to \"color\" and the detected color changes.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Mode","description":"Get the current sensor mode.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"TopOfRange","description":"The top of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WithinRangeEventEnabled","description":"Whether the WithinRange event should fire when the light level goes between the BottomOfRange and the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AboveRange","description":"Light level has gone above the range.","deprecated":"false","params":[]},{"name":"BelowRange","description":"Light level has gone below the range.","deprecated":"false","params":[]},{"name":"ColorChanged","description":"Called when the detected color has changed. The ColorChanged event will occur if the Mode property is set to \"color\" and the ColorChangedEventEnabled property is set to True.","deprecated":"false","params":[{"name":"colorCode","type":"number"},{"name":"colorName","type":"text"}]},{"name":"WithinRange","description":"Light level has gone within the range.","deprecated":"false","params":[]}],"methods":[{"name":"GetColorCode","description":"It returns the color code from 0 to 7 corresponding to no color, black, blue, green, yellow, red, white and brown.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetColorName","description":"Return the color name in one of \"No Color\", \"Black\", \"Blue\", \"Green\", \"Yellow\", \"Red\", \"White\", \"Brown\".","deprecated":"false","params":[],"returnType":"text"},{"name":"GetLightLevel","description":"It returns the light level in percentage, or -1 when the light level cannot be read.","deprecated":"false","params":[],"returnType":"number"},{"name":"SetAmbientMode","description":"Make the sensor read the light level without reflected light.","deprecated":"false","params":[]},{"name":"SetColorMode","description":"Enter the color detection mode.","deprecated":"false","params":[]},{"name":"SetReflectedMode","description":"Make the sensor read the light level with reflected light.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Ev3Commands","name":"Ev3Commands","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a low-level interface to a LEGO MINDSTORMS EV3 robot, with functions to send system or direct commands to EV3 robots.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"GetBatteryCurrent","description":"Get the battery current.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetBatteryVoltage","description":"Get the battery voltage.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetFirmwareBuild","description":"Get the firmware build on EV3.","deprecated":"false","params":[],"returnType":"text"},{"name":"GetFirmwareVersion","description":"Get the firmware version on EV3.","deprecated":"false","params":[],"returnType":"text"},{"name":"GetHardwareVersion","description":"Get the hardware version of EV3.","deprecated":"false","params":[],"returnType":"text"},{"name":"GetOSBuild","description":"Get the OS build on EV3.","deprecated":"false","params":[],"returnType":"text"},{"name":"GetOSVersion","description":"Get the OS version on EV3.","deprecated":"false","params":[],"returnType":"text"},{"name":"KeepAlive","description":"Keep the EV3 brick from shutdown for a period of time.","deprecated":"false","params":[{"name":"minutes","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Ev3GyroSensor","name":"Ev3GyroSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a high-level interface to a gyro sensor on a LEGO MINDSTORMS EV3 robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Mode","editorType":"lego_ev3_gyro_sensor_mode","defaultValue":"angle","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_ev3_sensor_port","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"SensorValueChangedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"},{"name":"Mode","description":"The sensor mode can be a text constant of either \"rate\" or \"angle\", which correspond to SetAngleMode or SetRateMode respectively.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"SensorValueChangedEventEnabled","description":"Whether the SensorValueChanged event should fire when the sensor value changed.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"SensorValueChanged","description":"Called then the sensor value changed.","deprecated":"false","params":[{"name":"sensorValue","type":"number"}]}],"methods":[{"name":"GetSensorValue","description":"Returns the current angle or rotation speed based on current mode, or -1 if the value cannot be read from sensor.","deprecated":"false","params":[],"returnType":"number"},{"name":"SetAngleMode","description":"Measures the orientation of the sensor.","deprecated":"false","params":[]},{"name":"SetRateMode","description":"Measures the angular velocity of the sensor.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Ev3Motors","name":"Ev3Motors","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides both high- and low-level interfaces to a LEGO MINDSTORMS EV3 robot, with functions that can control the motors.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"EnableSpeedRegulation","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"MotorPorts","editorType":"string","defaultValue":"ABC","propertyType":"common","editorArgs":[]},{"name":"ReverseDirection","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"StopBeforeDisconnect","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TachoCountChangedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"WheelDiameter","editorType":"float","defaultValue":"4.32","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"},{"name":"EnableSpeedRegulation","description":"The robot adjusts the power to maintain the speed if speed regulation is enabled.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MotorPorts","description":"The motor ports that the motors are connected to. The ports are specified by a sequence of port letters.","type":"text","rw":"invisible","deprecated":"false"},{"name":"ReverseDirection","description":"It specifies if the direction of the motors is reversed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"StopBeforeDisconnect","description":"Whether to stop the motor before disconnecting.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TachoCountChangedEventEnabled","description":"Whether the TachoCountChanged event should fire when the angle is changed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"WheelDiameter","description":"The diameter of the wheels attached on the motors in centimeters.","type":"number","rw":"invisible","deprecated":"false"}],"events":[{"name":"TachoCountChanged","description":"Called when the tacho count has changed.","deprecated":"false","params":[{"name":"tachoCount","type":"number"}]}],"methods":[{"name":"GetTachoCount","description":"Get the current tacho count.","deprecated":"false","params":[],"returnType":"number"},{"name":"ResetTachoCount","description":"Set the current tacho count to zero.","deprecated":"false","params":[]},{"name":"RotateInDistance","description":"Rotate the motors in a distance.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"distance","type":"number"},{"name":"useBrake","type":"boolean"}]},{"name":"RotateInDuration","description":"Rotate the motors in a period of time.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"milliseconds","type":"number"},{"name":"useBrake","type":"boolean"}]},{"name":"RotateInTachoCounts","description":"Rotate the motors in a number of tacho counts.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"tachoCounts","type":"number"},{"name":"useBrake","type":"boolean"}]},{"name":"RotateIndefinitely","description":"Start to rotate the motors.","deprecated":"false","params":[{"name":"power","type":"number"}]},{"name":"RotateSyncInDistance","description":"Rotate the motors at the same speed for a distance in cm.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"distance","type":"number"},{"name":"turnRatio","type":"number"},{"name":"useBrake","type":"boolean"}]},{"name":"RotateSyncInDuration","description":"Rotate the motors at the same speed in a period of time.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"milliseconds","type":"number"},{"name":"turnRatio","type":"number"},{"name":"useBrake","type":"boolean"}]},{"name":"RotateSyncInTachoCounts","description":"Rotate the motors at the same speed in a number of tacho counts.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"tachoCounts","type":"number"},{"name":"turnRatio","type":"number"},{"name":"useBrake","type":"boolean"}]},{"name":"RotateSyncIndefinitely","description":"Start to rotate the motors at the same speed.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"turnRatio","type":"number"}]},{"name":"Stop","description":"Stop the motors of the robot.","deprecated":"false","params":[{"name":"useBrake","type":"boolean"}]},{"name":"ToggleDirection","description":"Toggle the direction of motors.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Ev3Sound","name":"Ev3Sound","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a high-level interface to sound functionalities on LEGO MINDSTORMS EV3 robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"PlayTone","description":"Make the robot play a tone.","deprecated":"false","params":[{"name":"volume","type":"number"},{"name":"frequency","type":"number"},{"name":"milliseconds","type":"number"}]},{"name":"StopSound","description":"Stop any sound on the robot.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Ev3TouchSensor","name":"Ev3TouchSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a high-level interface to a touch sensor on a LEGO MINDSTORMS EV3 robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"PressedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ReleasedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_ev3_sensor_port","defaultValue":"1","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"},{"name":"PressedEventEnabled","description":"Whether the Released event should fire when the touch sensor is pressed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ReleasedEventEnabled","description":"Whether the Released event should fire when the touch sensor is released.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"Pressed","description":"Called when the touch sensor is pressed.","deprecated":"false","params":[]},{"name":"Released","description":"Called when the touch sensor is pressed.","deprecated":"false","params":[]}],"methods":[{"name":"IsPressed","description":"Returns true if the touch sensor is pressed.","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.Ev3UI","name":"Ev3UI","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a high-level interface to a LEGO MINDSTORMS EV3 robot, with functions to draw graphs on EV3 screen.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"DrawCircle","description":"Draw a circle on the screen.","deprecated":"false","params":[{"name":"color","type":"number"},{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"fill","type":"boolean"}]},{"name":"DrawIcon","description":"Draw a built-in icon on screen.","deprecated":"false","params":[{"name":"color","type":"number"},{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"type","type":"number"},{"name":"no","type":"number"}]},{"name":"DrawLine","description":"Draw a line on the screen.","deprecated":"false","params":[{"name":"color","type":"number"},{"name":"x1","type":"number"},{"name":"y1","type":"number"},{"name":"x2","type":"number"},{"name":"y2","type":"number"}]},{"name":"DrawPoint","description":"Draw a point on the screen.","deprecated":"false","params":[{"name":"color","type":"number"},{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"DrawRect","description":"Draw a rectangle on the screen.","deprecated":"false","params":[{"name":"color","type":"number"},{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"},{"name":"fill","type":"boolean"}]},{"name":"FillScreen","description":"Fill the screen with a color.","deprecated":"false","params":[{"name":"color","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Ev3UltrasonicSensor","name":"Ev3UltrasonicSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EV3","helpString":"A component that provides a high-level interface to an ultrasonic sensor on a LEGO MINDSTORMS EV3 robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsEv3.png","androidMinSdk":19,"properties":[{"name":"AboveRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BelowRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BottomOfRange","editorType":"non_negative_integer","defaultValue":"30","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_ev3_sensor_port","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TopOfRange","editorType":"non_negative_integer","defaultValue":"90","propertyType":"common","editorArgs":[]},{"name":"Unit","editorType":"lego_ev3_ultrasonic_sensor_mode","defaultValue":"cm","propertyType":"common","editorArgs":[]},{"name":"WithinRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboveRangeEventEnabled","description":"Whether the AboveRange event should fire when the distance goes above the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BelowRangeEventEnabled","description":"Whether the BelowRange event should fire when the distance goes below the BottomOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"read-write","deprecated":"false"},{"name":"BottomOfRange","description":"The bottom of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"TopOfRange","description":"The top of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Unit","description":"The distance unit, which can be either \"cm\" or \"inch\".","type":"text","rw":"read-write","deprecated":"false"},{"name":"WithinRangeEventEnabled","description":"Whether the WithinRange event should fire when the distance goes between the BottomOfRange and the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AboveRange","description":"Called when the detected distance has gone above the range.","deprecated":"false","params":[]},{"name":"BelowRange","description":"Called when the detected distance has gone below the range.","deprecated":"false","params":[]},{"name":"WithinRange","description":"Called when the detected distance has gone within the range.","deprecated":"false","params":[]}],"methods":[{"name":"GetDistance","description":"Returns the current distance in centimeters as a value between 0 and 254, or -1 if the distance can not be read.","deprecated":"false","params":[],"returnType":"number"},{"name":"SetCmUnit","description":"Measure the distance in centimeters.","deprecated":"false","params":[]},{"name":"SetInchUnit","description":"Measure the distance in inches.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.FAB","name":"FAB","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"Floating Button Component to make a Floating Action Button on the right bottom of the screen","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/fab.png","androidMinSdk":19,"properties":[{"name":"Color","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Icon","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"MarginBottom","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"MarginRight","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"Size","editorType":"size","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"UseAnimation","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Color","description":"Returns Color","type":"number","rw":"read-write","deprecated":"false"},{"name":"Icon","description":"Returns Icon Path","type":"text","rw":"read-write","deprecated":"false"},{"name":"IsCreated","description":"Is FAB created?","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"MarginBottom","description":"Set Bottom Margin in dp, Default = 16","type":"number","rw":"read-write","deprecated":"false"},{"name":"MarginRight","description":"Set Right Margin in dp, Default = 16","type":"number","rw":"read-write","deprecated":"false"},{"name":"Size","description":"Set FAB Size.\nSet it to 1 for Normal size, 2 for Mini.","type":"number","rw":"read-write","deprecated":"false"},{"name":"UseAnimation","description":"Are animations on?","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Is FAB visible?","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"FAB Clicked","deprecated":"false","params":[]},{"name":"LongClick","description":"FAB Long Clicked","deprecated":"false","params":[]}],"methods":[{"name":"Create","description":"Create FAB","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.FeatureCollection","name":"FeatureCollection","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"A FeatureColletion contains one or more map features as a group. Any events fired on a feature in the collection will also trigger the corresponding event on the collection object. FeatureCollections can be loaded from external resources as a means of populating a Map with content.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"FeaturesFromGeoJSON","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Source","editorType":"geojson_type","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Features","description":"The list of features placed on this map. This list also includes any features created by calls to FeatureFromDescription","type":"list","rw":"read-write","deprecated":"false"},{"name":"FeaturesFromGeoJSON","description":"Loads a collection of features from the given string. If the string is not valid GeoJSON, the ErrorLoadingFeatureCollection error will be run with url = .","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Source","description":"Gets or sets the source URL used to populate the feature collection. If the feature collection was not loaded from a URL, this will be the empty string.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"FeatureClick","description":"The user clicked on a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureDrag","description":"The user dragged a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureLongClick","description":"The user long-pressed on a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureStartDrag","description":"The user started dragging a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureStopDrag","description":"The user stopped dragging a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"GotFeatures","description":"A GeoJSON document was successfully read from url. The features specified in the document are provided as a list in features.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"features","type":"list"}]},{"name":"LoadError","description":"An error was encountered while processing a GeoJSON document at the given url. The responseCode parameter will contain an HTTP status code and the errorMessage parameter will contain a detailed error message.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"responseCode","type":"number"},{"name":"errorMessage","type":"text"}]}],"methods":[{"name":"FeatureFromDescription","description":"Convert a feature description into an App Inventor map feature. Currently the only\n supported conversion is from a GeoJSON point to Marker component. If the feature has\n properties, they will be mapped into App Inventor properties using the following mapping:\n\n description becomes Description;\n draggable becomes Draggable;\n infobox becomes EnableInfobox;\n fill becomes FillColor;\n image becomes ImageAsset;\n stroke becomes StrokeColor;\n stroke-width becomes StrokeWidth;\n title becomes Title;\n visible becomes Visible","deprecated":"false","params":[{"name":"description","type":"list"}],"returnType":"any"},{"name":"LoadFromURL","description":"

Load a feature collection in GeoJSON format from the given url. On success, the event GotFeatures will be raised with the given url and a list of the features parsed from the GeoJSON as a list of (key, value) pairs. On failure, the LoadError event will be raised with any applicable HTTP response code and error message.

","deprecated":"false","params":[{"name":"url","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.File","name":"File","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"Non-visible component for storing and retrieving files. Use this component to write or read files on your device. The default behaviour is to write files to the private data directory associated with your App. The Companion is special cased to write files to /sdcard/Makeroid/data to facilitate debugging. If the file path starts with a slash (/), then the file is created relative to /sdcard. For example writing a file to /myFile.txt will write the file in /sdcard/myFile.txt.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/file.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"AfterFileSaved","description":"Event indicating that the contents of the file have been written.","deprecated":"false","params":[{"name":"fileName","type":"text"}]},{"name":"AfterUnzip","description":"Event indicating that the zip file have been created.","deprecated":"false","params":[]},{"name":"AfterZip","description":"Event indicating that the zip file have been created.","deprecated":"false","params":[]},{"name":"DirectoryCreated","description":"Event indicating that there was a directory created. The return value is 'true' or 'false'.","deprecated":"false","params":[{"name":"isDirectoryCreated","type":"boolean"}]},{"name":"GotText","description":"Event indicating that the contents from the file have been read.","deprecated":"false","params":[{"name":"text","type":"text"}]},{"name":"OnZipFailure","description":"Event indicating that there was any failure on zip or unzip a file.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]}],"methods":[{"name":"AppendToFile","description":"Appends text to the end of a file storage, creating the file if it does not exist. See the help text under SaveFile for information about where files are written.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"fileName","type":"text"}]},{"name":"Copy","description":"Copy file","deprecated":"false","params":[{"name":"input","type":"text"},{"name":"output","type":"text"}]},{"name":"CreateDirectory","description":"Create a new directory.","deprecated":"false","params":[{"name":"directory","type":"text"}]},{"name":"Delete","description":"Deletes a file from storage. Prefix the filename with / to delete a specific file in the SD card, for instance /myFile.txt. will delete the file /sdcard/myFile.txt. If the file does not begin with a /, then the file located in the programs private storage will be deleted. Starting the file with // is an error because assets files cannot be deleted.","deprecated":"false","params":[{"name":"fileName","type":"text"}]},{"name":"Exists","description":"Check whether a file exists","deprecated":"false","params":[{"name":"file","type":"text"}],"returnType":"boolean"},{"name":"FileSize","description":"Get file size","deprecated":"false","params":[{"name":"file","type":"text"}],"returnType":"number"},{"name":"GetFileName","description":"Get file name","deprecated":"false","params":[{"name":"file","type":"text"}],"returnType":"text"},{"name":"GetFreeSpace","description":"Get Free Space","deprecated":"false","params":[{"name":"path","type":"text"}],"returnType":"number"},{"name":"GetTotalSpace","description":"Get total space","deprecated":"false","params":[{"name":"path","type":"text"}],"returnType":"number"},{"name":"IsDirectory","description":"Check whether the path is a directory","deprecated":"false","params":[{"name":"path","type":"text"}],"returnType":"boolean"},{"name":"IsFile","description":"Check whether the path is a file","deprecated":"false","params":[{"name":"path","type":"text"}],"returnType":"boolean"},{"name":"Move","description":"Move file","deprecated":"false","params":[{"name":"input","type":"text"},{"name":"output","type":"text"}],"returnType":"boolean"},{"name":"ReadFrom","description":"Reads text from a file in storage. Prefix the filename with / to read from a specific file on the SD card. for instance /myFile.txt will read the file /sdcard/myFile.txt. To read assets packaged with an application (also works for the Companion) start the filename with // (two slashes). If a filename does not start with a slash, it will be read from the applications private storage (for packaged apps) and from /sdcard/AppInventor/data for the Companion.","deprecated":"false","params":[{"name":"fileName","type":"text"}]},{"name":"SaveFile","description":"Saves text to a file. If the filename begins with a slash (/) the file is written to the sdcard. For example writing to /myFile.txt will write the file to /sdcard/myFile.txt. If the filename does not start with a slash, it will be written in the programs private data directory where it will not be accessible to other programs on the phone. There is a special exception for the AI Companion where these files are written to /sdcard/AppInventor/data to facilitate debugging. Note that this block will overwrite a file if it already exists.\n\nIf you want to add content to a file use the append block.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"fileName","type":"text"}]},{"name":"Unzip","description":"Unzip a file with or without a password. If you dont need a passwort then let it empty.","deprecated":"false","params":[{"name":"targetZipFilePath","type":"text"},{"name":"destinationFolderPath","type":"text"},{"name":"password","type":"text"}]},{"name":"Zip","description":"Create a zip file with or without a password.","deprecated":"false","params":[{"name":"targetPath","type":"text"},{"name":"destinationFilePath","type":"text"},{"name":"password","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.FingerPrint","name":"FingerPrint","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"Component to check for a FingerScanner and read fingerprints from the scanner","helpUrl":"https://docs.kodular.io/components/sensors/fingerprint/","showOnPalette":"true","nonVisible":"true","iconName":"images/fingerprint.png","androidMinSdk":19,"properties":[{"name":"DialogHelpText","editorType":"string","defaultValue":"Scan your finger","propertyType":"common","editorArgs":[]},{"name":"DialogTitle","editorType":"string","defaultValue":"Sign in with your fingerprint","propertyType":"common","editorArgs":[]},{"name":"LightTheme","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"UseDialog","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"DialogHelpText","description":"Sets the dialog help text","type":"text","rw":"read-write","deprecated":"false"},{"name":"DialogTitle","description":"Sets the dialog title","type":"text","rw":"read-write","deprecated":"false"},{"name":"LightTheme","description":"Sets the current theme","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseDialog","description":"Whether to use a dialog","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"OnAuthenticationError","description":"Triggers when there is a Authentication Error","deprecated":"false","params":[{"name":"errorId","type":"number"},{"name":"message","type":"text"}]},{"name":"OnAuthenticationFailed","description":"Triggers when the Authentication Failed","deprecated":"false","params":[]},{"name":"OnAuthenticationHelp","description":"Triggers when there is a Authentication Help","deprecated":"false","params":[{"name":"helpId","type":"number"},{"name":"message","type":"text"}]},{"name":"OnAuthenticationSucceeded","description":"Trigger when the Authentication Succeeded","deprecated":"false","params":[]}],"methods":[{"name":"Authenticate","description":"Authenticate the user with a Fingerprint scanner","deprecated":"false","params":[]},{"name":"CancelScan","description":"Cancel the current Fingerprint Scan","deprecated":"false","params":[]},{"name":"HasFingerPrintScanner","description":"True if hardware is present and functional, false otherwise","deprecated":"false","params":[],"returnType":"boolean"},{"name":"HasFingersAdded","description":"True if at least one fingerprint is enrolled, false otherwise","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.FirebaseDB","name":"FirebaseDB","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Non-visible component that communicates with a Firebase to store and retrieve information.","helpUrl":"https://docs.kodular.io/components/google/firebase-database/","showOnPalette":"true","nonVisible":"true","iconName":"images/firebaseDB.png","androidMinSdk":19,"properties":[{"name":"DefaultURL","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"DeveloperBucket","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"FirebaseToken","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"FirebaseURL","editorType":"FirbaseURL","defaultValue":"DEFAULT","propertyType":"common","editorArgs":[]},{"name":"Persist","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ProjectBucket","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"DefaultURL","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"DeveloperBucket","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"FirebaseToken","description":"Returns the FirebaseToken from this FirebaseDB.","type":"text","rw":"read-write","deprecated":"false"},{"name":"FirebaseURL","description":"Gets the URL for this FirebaseDB.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Persist","description":"If true, variables will retain their values when off-line and the App exits. Values will be uploaded to Firebase the next time the App is run while connected to the network. This is useful for applications which will gather data while not connected to the network. Note: AppendValue and RemoveFirst will not work correctly when off-line, they require a network connection.

Note: If you set Persist on any Firebase component, on any screen, it makes all Firebase components on all screens persistent. This is a limitation of the low level Firebase library. Also be aware that if you want to set persist to true, you should do so before connecting the Companion for incremental development.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"ProjectBucket","description":"Gets the ProjectBucket for this FirebaseDB.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"DataChanged","description":"Indicates that the data in the Firebase has changed.\n Launches an event with the tag and value that have been updated.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"value","type":"any"}]},{"name":"FirebaseError","description":"Indicates that the communication with the Firebase signaled an error.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"FirstRemoved","description":"Event triggered by the \"RemoveFirst\" function. The argument \"value\" is the object that was the first in the list, and which is now removed.","deprecated":"false","params":[{"name":"value","type":"any"}]},{"name":"GotValue","description":"Indicates that a GetValue request has succeeded.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"value","type":"any"}]},{"name":"TagList","description":"Event triggered when we have received the list of known tags. Used with the \"GetTagList\" Function.","deprecated":"false","params":[{"name":"value","type":"list"}]}],"methods":[{"name":"AppendValue","description":"Append a value to the end of a list atomically. If two devices use this function simultaneously, both will be appended and no data lost.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueToAdd","type":"any"}]},{"name":"ClearTag","description":"Remove the tag from Firebase","deprecated":"false","params":[{"name":"tag","type":"text"}]},{"name":"GetTagList","description":"Get the list of tags for this application. When complete a \"TagList\" event will be triggered with the list of known tags.","deprecated":"false","params":[]},{"name":"GetValue","description":"GetValue asks Firebase to get the value stored under the given tag.\n It will pass valueIfTagNotThere to GotValue if there is no value stored\n under the tag.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueIfTagNotThere","type":"any"}]},{"name":"GoOffline","description":"Take the database offline","deprecated":"false","params":[]},{"name":"GoOnline","description":"Take the database online","deprecated":"false","params":[]},{"name":"RemoveFirst","description":"Return the first element of a list and atomically remove it. If two devices use this function simultaneously, one will get the first element and the the other will get the second element, or an error if there is no available element. When the element is available, the \"FirstRemoved\" event will be triggered.","deprecated":"false","params":[{"name":"tag","type":"text"}]},{"name":"StoreValue","description":"Asks Firebase to store the given value under the given tag.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueToStore","type":"any"}]},{"name":"Unauthenticate","description":"If you are having difficulty with the Companion and you are switching between different Firebase accounts, you may need to use this function to clear internal Firebase caches. You can just use the \"Do It\" function on this block in the blocks editor. Note: You should not normally need to use this block as part of an application.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Form","name":"Form","external":"false","version":"41","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"Top-level component containing all other components in the program","helpUrl":"","showOnPalette":"false","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"AboutScreen","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"AboutScreenBackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"AboutScreenLightTheme","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"AboutScreenTitle","editorType":"string","defaultValue":"About this application","propertyType":"common","editorArgs":[]},{"name":"AccentColor","editorType":"color","defaultValue":"&HFFFF4081","propertyType":"common","editorArgs":[]},{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AppId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"AppName","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"BackgroundImage","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"CloseScreenAnimation","editorType":"screen_animation","defaultValue":"default","propertyType":"common","editorArgs":[]},{"name":"HighQuality","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Icon","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"KeepScreenOn","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"MinSdk","editorType":"min_sdk","defaultValue":"19","propertyType":"advanced","editorArgs":[]},{"name":"NavigationBarColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"OpenScreenAnimation","editorType":"screen_animation","defaultValue":"default","propertyType":"common","editorArgs":[]},{"name":"PackageName","editorType":"string","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"PrimaryColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"PrimaryColorDark","editorType":"color","defaultValue":"&HFF303F9F","propertyType":"common","editorArgs":[]},{"name":"RTLSupport","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"ReceiveSharedText","editorType":"receive_types","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ScreenOrientation","editorType":"screen_orientation","defaultValue":"unspecified","propertyType":"common","editorArgs":[]},{"name":"Scrollable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ShowListsAsJson","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"ShowNavBar","editorType":"boolean","defaultValue":"True","propertyType":"experimental","editorArgs":[]},{"name":"ShowOptionsMenu","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ShowStatusBar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Sizing","editorType":"sizing","defaultValue":"Responsive","propertyType":"common","editorArgs":[]},{"name":"SplashEnabled","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"SplashIcon","editorType":"image_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"Theme","editorType":"theme","defaultValue":"AppTheme","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TitleBarFontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TitleBarSubTitle","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TitleBarTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"TitleVisible","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TutorialURL","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"VersionCode","editorType":"non_negative_integer","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"VersionName","editorType":"string","defaultValue":"1.0","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboutScreen","description":"Information about the screen. It appears when \"About this Application\" is selected from the system menu. Use it to inform people about your app. In multiple screen apps, each screen has its own AboutScreen info.","type":"text","rw":"read-write","deprecated":"false"},{"name":"AboutScreenBackgroundColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"AboutScreenLightTheme","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"AboutScreenTitle","description":"Define the title of the about application option.","type":"text","rw":"write-only","deprecated":"false"},{"name":"AccentColor","description":"This is the accent color used for highlights and other user interface accents.","type":"number","rw":"invisible","deprecated":"false"},{"name":"AlignHorizontal","description":"A number that encodes how contents of the screen are aligned horizontally. The choices are: 1 = left aligned, 2 = horizontally centered, 3 = right aligned.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"A number that encodes how the contents of the arrangement are aligned vertically. The choices are: 1 = aligned at the top, 2 = vertically centered, 3 = aligned at the bottom. Vertical alignment has no effect if the screen is scrollable.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AppId","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"AppName","description":"This is the display name of the installed application in the phone.If the AppName is blank, it will be set to the name of the project when the project is built.","type":"text","rw":"invisible","deprecated":"false"},{"name":"BackgroundColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundImage","description":"The screen background image.","type":"text","rw":"read-write","deprecated":"false"},{"name":"CloseScreenAnimation","description":"The animation for closing current screen and returning to the previous screen. Valid options are default, fade, zoom, slidehorizontal, slidevertical, and none","type":"text","rw":"read-write","deprecated":"false"},{"name":"DrawerArrowIconColor","description":"Set the drawer arrow icon color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Height","description":"Screen height (y-size).","type":"number","rw":"read-only","deprecated":"false"},{"name":"HighQuality","description":"If set to true, pictures will be loaded in high quality.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Icon","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"IsCompanion","description":"This block will return true, if you are running your project current in the companion application. Else it will return false.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"IsSideMenuAdded","description":"Returns true if a side menu is added to the screen.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"IsSideMenuOpen","description":"Returns true if a side menu is current open. Else it will return false.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"KeepScreenOn","description":"Keep the device's screen turned on and bright.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MinSdk","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"NavigationBarColor","description":"Set navigation bar color. This will work starting from API Level 21 (Android Lollipop)","type":"number","rw":"read-write","deprecated":"false"},{"name":"NavigationBarLightIcons","description":"This option tells the system to use dark navigation bar icons, useful for lighter colored navigation bars. Works only for devices with API >= 26.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"NavigationIconColor","description":"Set the navigation icon color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"OpenScreenAnimation","description":"The animation for switching to another screen. Valid options are default, fade, zoom, slidehorizontal, slidevertical, and none","type":"text","rw":"read-write","deprecated":"false"},{"name":"OptionsMenuIconColor","description":"Set the options menu icon color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"PackageName","description":"Set a custom PackageName for the app","type":"text","rw":"invisible","deprecated":"false"},{"name":"PrimaryColor","description":"This is the primary color used for Material UI elements, such as the ActionBar.","type":"number","rw":"invisible","deprecated":"false"},{"name":"PrimaryColorDark","description":"This is the primary color used for darker elements in Material UI.","type":"number","rw":"invisible","deprecated":"false"},{"name":"RTLSupport","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"ReceiveSharedText","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"ScreenOrientation","description":"The requested screen orientation, specified as a text value. Commonly used values are landscape, portrait, sensor, user and unspecified. See the Android developer documentation for ActivityInfo.Screen_Orientation for the complete list of possible settings.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Scrollable","description":"When checked, there will be a vertical scrollbar on the screen, and the height of the application can exceed the physical height of the device. When unchecked, the application height is constrained to the height of the device.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowListsAsJson","description":"If false, lists will be converted to strings using Lisp notation, i.e., as symbols separated by spaces, e.g., (a 1 b2 (c d). If true, lists will appear as in Json or Python, e.g. [\"a\", 1, \"b\", 2, [\"c\", \"d\"]]. This property appears only in Screen 1, and the value for Screen 1 determines the behavior for all screens. The property defaults to \"false\" meaning that the App Inventor programmer must explicitly set it to \"true\" if JSON/Python syntax is desired. At some point in the future we will alter the system so that new projects are created with this property set to \"true\" by default. Existing projects will not be impacted. The App Inventor programmer can also set it back to \"false\" in newer projects if desired. ","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"ShowNavBar","description":"Show/Hide Navigation Bar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowOptionsMenu","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"ShowStatusBar","description":"The status bar is the topmost bar on the screen. This property reports whether the status bar is visible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowTitlebarBackButton","description":"If true it will show in the TitleBar a back button only if no side menu was added. If a side menu was added it will remove the ‘hamburger’-menu icon but the side menu can still be opened.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Sizing","description":"If set to fixed, screen layouts will be created for a single fixed-size screen and autoscaled. If set to responsive, screen layouts will use the actual resolution of the device. See the documentation on responsive design in App Inventor for more information. This property appears on Screen1 only and controls the sizing for all screens in the app.","type":"text","rw":"invisible","deprecated":"false"},{"name":"SplashEnabled","description":"If set to true the user will see a splash screen while the app is loading the content.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"SplashIcon","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"StatusBarColor","description":"Set status bar color. This will work starting from API Level 21 (Android Lollipop","type":"number","rw":"read-write","deprecated":"false"},{"name":"StatusbarLightIcons","description":"This option tells the system to use dark statusbar icons, useful for lighter colored status bars. Works only for devices with API >= 23.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Theme","description":"Sets the theme used by the application.","type":"text","rw":"invisible","deprecated":"false"},{"name":"Title","description":"The caption for the form, which apears in the title bar","type":"text","rw":"read-write","deprecated":"false"},{"name":"TitleBarColor","description":"Set title bar color","type":"number","rw":"write-only","deprecated":"false"},{"name":"TitleBarFontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TitleBarSubTitle","description":"Set the TitleBar's subtitle.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TitleBarTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"TitleVisible","description":"The title bar is the top gray bar on the screen. This property reports whether the title bar is visible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TitlebarTextColor","description":"Set a custom color for the TitleBar text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TutorialURL","description":"A URL to use to populate the Tutorial Sidebar while editing a project. Used as a teaching aid.","type":"text","rw":"invisible","deprecated":"false"},{"name":"VersionCode","description":"An integer value which must be incremented each time a new Android Application Package File (APK) is created for the Google Play Store.","type":"number","rw":"invisible","deprecated":"false"},{"name":"VersionName","description":"A string which can be changed to allow Google Play Store users to distinguish between different versions of the App.","type":"text","rw":"invisible","deprecated":"false"},{"name":"Width","description":"Screen width (x-size).","type":"number","rw":"read-only","deprecated":"false"},{"name":"isKeyboardVisible","description":"Returns the status of the keyboard. If the keyboard is visible then the result is true.","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"BackPressed","description":"Device back button pressed.","deprecated":"false","params":[]},{"name":"ErrorOccurred","description":"Event raised when an error occurs. Only some errors will raise this condition. For those errors, the system will show a notification by default. You can use this event handler to prescribe an error behavior different than the default.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"functionName","type":"text"},{"name":"errorNumber","type":"number"},{"name":"message","type":"text"}]},{"name":"GotReceivedShared","description":"Event to detect that a user shared content to your app throw the sharing dialog of any other app. Type stand for integer. 0 = nothing shared, 1 = audio, 2 = image, 3 = text or 4 = video","deprecated":"false","params":[{"name":"type","type":"number"},{"name":"value","type":"text"}]},{"name":"Initialize","description":"Screen starting","deprecated":"false","params":[]},{"name":"KeyboardVisiblityChanged","description":"Event will be invoked if the keyboard was visible or invisible.","deprecated":"false","params":[{"name":"isKeyboardVisible","type":"boolean"}]},{"name":"MenuInitialize","description":"Event to detect when the menu has loaded. Set here your blocks like TitleBarIcon or AddMenuItem.","deprecated":"false","params":[]},{"name":"MenuItemSelected","description":"Event to detect when a menu item has been selected.","deprecated":"false","params":[{"name":"menuItem","type":"text"}]},{"name":"OnAppPause","description":"The system calls this method as the first indication that the user is leaving your activity (though it does not always mean the activity is being destroyed).","deprecated":"false","params":[]},{"name":"OnAppResume","description":"When the activity enters the Resumed state, it comes to the foreground, and then the system invokes this event.","deprecated":"false","params":[]},{"name":"OnAppStop","description":"When your activity is no longer visible to the user, it has entered the Stopped state, and the system invokes this event.","deprecated":"false","params":[]},{"name":"OtherScreenClosed","description":"Event raised when another screen has closed and control has returned to this screen.","deprecated":"false","params":[{"name":"otherScreenName","type":"text"},{"name":"result","type":"any"}]},{"name":"PermissionDenied","description":"Event to handle when the app user has denied a needed permission.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"functionName","type":"text"},{"name":"permissionName","type":"text"}]},{"name":"PermissionGranted","description":"Event to handle when the app user has granted a needed permission. This event is only run when permission is\n granted in response to the AskForPermission method.","deprecated":"false","params":[{"name":"permissionName","type":"text"}]},{"name":"ScreenOrientationChanged","description":"Screen orientation changed","deprecated":"false","params":[]},{"name":"SideMenuClosed","description":"Event will be invoked if the side menu was closed.","deprecated":"false","params":[]},{"name":"SideMenuOpened","description":"Event will be invoked if the side menu was opened.","deprecated":"false","params":[]},{"name":"TitleBarIconSelected","description":"The event returns the 'icon' or 'name' of the selected icon.","deprecated":"false","params":[{"name":"icon","type":"text"},{"name":"name","type":"text"}]},{"name":"TitlebarBackButtonClicked","description":"Event to detect when a menu item has been selected.","deprecated":"false","params":[]}],"methods":[{"name":"AddMenuItem","description":"Add a new item to the menu. Use the 'make a list' block.","deprecated":"false","params":[{"name":"menuItem","type":"list"}]},{"name":"AddMenuItemWithIcon","description":"Add a new item with a icon on the left side to the menu. This function does not use the make a list block. If you want more items with icon then use this block again.","deprecated":"false","params":[{"name":"menuItem","type":"text"},{"name":"menuIcon","type":"text"}]},{"name":"AddTitleBarIcon","description":"Add a new action icon to the TitleBar. You will see a toast message on a long click with your choosen name. Add this block to the \"MenuInitialize\" event.","deprecated":"false","params":[{"name":"icon","type":"text"},{"name":"name","type":"text"}]},{"name":"ArePermissionsGranted","description":"Returns true if ALL needed app permissions were granted, else false.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"AskForPermission","description":"Ask the user to grant access to a dangerous permission.","deprecated":"false","params":[{"name":"permissionName","type":"text"}]},{"name":"CanWriteSystemSettings","description":"Returns true if the app can write system settings, else it returns false. It will return true automatic for devices with android version below 6 (API 23).","deprecated":"false","params":[],"returnType":"boolean"},{"name":"HideKeyboard","description":"Hide the keyboard.","deprecated":"false","params":[]},{"name":"LockSideMenu","description":"Use this block to lock the side menu. This means the user can not open the side menu until the side menu unlock block is used.","deprecated":"false","params":[]},{"name":"MoveTaskToBack","description":"Move task to back. That means it will minimize your current app.","deprecated":"false","params":[]},{"name":"OpenAppSettings","description":"Opens the settings screen of the app. Useful if 'Are Permissions Granted' has returned false.","deprecated":"false","params":[]},{"name":"OpenSystemWriteSettings","description":"Opens the app's system settings page. This works only for devices with android 6+.","deprecated":"false","params":[]},{"name":"RemoveSideMenu","description":"Remove a first created side menu. This block will be usefull if you need to update a side menu dynamically. You can use this block too to test a side menu in the companion. Add then this block above of the 'Side Menu' block.","deprecated":"false","params":[]},{"name":"RemoveTitleBarIcons","description":"Remove all added action icons from the TitleBar.","deprecated":"false","params":[]},{"name":"ResetMenu","description":"Reset the menu back to its default","deprecated":"false","params":[]},{"name":"ShowAboutApplication","description":"Show the dialog which shows when pressing the \"About This Application\" button in the menu.","deprecated":"false","params":[]},{"name":"ShowKeyboard","description":"Show the keyboard","deprecated":"false","params":[]},{"name":"SideMenu","description":"Create a Side Menu. Set to \"layout\" your layout that will be then your side menu. Use as example a vertical arrangement. Your choosen layout will be then removed from the screen and only visible in the side menu.\"Information\": This block works on companion only if you add a side menu on button click.Don’t add it in companion on \"screen initialize event\". Else the companion will crash.Do NOT use this block with the Side Menu Layout component","deprecated":"false","params":[{"name":"layout","type":"component"}]},{"name":"SideMenuClose","description":"If you had set your side menu then you can use this block to close it as example with a button click.","deprecated":"false","params":[]},{"name":"SideMenuOpen","description":"If you had set your side menu then you can use this block to open it as example with a button click.","deprecated":"false","params":[]},{"name":"TaskDescription","description":"Sets information describing the task with this activity for presentation inside the Recents System UI. You will see the settings if the device API is >= 21 and you minimize the app.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"color","type":"number"}]},{"name":"UnlockSideMenu","description":"Use this block to unlock the side menu. This means the user can now open again the side menu.","deprecated":"false","params":[]},{"name":"VersionCode","description":"This block will returns the version code","deprecated":"false","params":[],"returnType":"number"},{"name":"VersionName","description":"This block will returns the version name","deprecated":"false","params":[],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.FusiontablesControl","name":"FusiontablesControl","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"

A non-visible component that communicates with Google Fusion Tables. Fusion Tables let you store, share, query and visualize data tables; this component lets you query, create, and modify these tables.

This component uses the Fusion Tables API V2.0.

Applications using Fusion Tables must authentication to Google's servers. There are two ways this can be done. The first way uses an API Key which you the developer obtain (see below). With this approach end-users must also login to access a Fusion Table. The second approach is to use a Service Account. With this approach you create credentials and a special \"Service Account Email Address\" which you obtain from the Google APIs Console. You then tell the Fusion Table Control the name of the Service Account Email address and upload the secret key as an asset to your application and set the KeyFile property to point at this file. Finally you check the \"UseServiceAuthentication\" checkbox in the designer. When using a Service Account, end-users do not need to login to use Fusion Tables, your service account authenticates all access.

To get an API key, follow these instructions.

  1. Go to your Google APIs Console and login if necessary.
  2. Select the Services item from the menu on the left.
  3. Choose the Fusiontables service from the list provided and turn it on.
  4. Go back to the main menu and select the API Access item.

Your API Key will be near the bottom of that pane in the section called \"Simple API Access\".You will have to provide that key as the value for the ApiKey property in your Fusiontables app.

Once you have an API key, set the value of the Query property to a valid Fusiontables SQL query and call SendQuery to execute the query. App Inventor will send the query to the Fusion Tables server and the GotResult block will fire when a result is returned from the server.Query results will be returned in CSV format, and can be converted to list format using the \"list from csv table\" or \"list from csv row\" blocks.

Note that you do not need to worry about UTF-encoding the query. But you do need to make sure the query follows the syntax described in the reference manual, which means that things like capitalization for names of columns matters, and that single quotes must be used around column names if there are spaces in them.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/fusiontables.png","androidMinSdk":19,"properties":[{"name":"ApiKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"KeyFile","editorType":"asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"LoadingDialogMessage","editorType":"string","defaultValue":"Please wait loading...","propertyType":"common","editorArgs":[]},{"name":"Query","editorType":"string","defaultValue":"show tables","propertyType":"common","editorArgs":[]},{"name":"ServiceAccountEmail","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ShowLoadingDialog","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"UseServiceAuthentication","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApiKey","description":"Your Google API Key. For help, click on the questionmark (?) next to the FusiontablesControl component in the Palette. ","type":"text","rw":"read-write","deprecated":"false"},{"name":"KeyFile","description":"Specifies the path of the private key file. This key file is used to get access to the FusionTables API.","type":"text","rw":"read-write","deprecated":"false"},{"name":"LoadingDialogMessage","description":"Set the loading message for the dialog.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Query","description":"The query to send to the Fusion Tables API.

For legal query formats and examples, see the Fusion Tables API v2.0 reference manual.

Note that you do not need to worry about UTF-encoding the query. But you do need to make sure it follows the syntax described in the reference manual, which means that things like capitalization for names of columns matters, and that single quotes need to be used around column names if there are spaces in them.

","type":"text","rw":"read-write","deprecated":"false"},{"name":"ServiceAccountEmail","description":"The Service Account Email Address when service account authentication is in use.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ShowLoadingDialog","description":"Whether or not to show the loading dialog","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseServiceAuthentication","description":"Indicates whether a service account should be used for authentication","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"GotResult","description":"Indicates that the Fusion Tables query has finished processing, with a result. The result of the query will generally be returned in CSV format, and can be converted to list format using the \"list from csv table\" or \"list from csv row\" blocks.","deprecated":"false","params":[{"name":"result","type":"text"}]}],"methods":[{"name":"DoQuery","description":"DEPRECATED. This block is deprecated as of the end of 2012. Use SendQuery.","deprecated":"true","params":[]},{"name":"ForgetLogin","description":"Forget end-users login credentials. Has no effect on service authentication","deprecated":"false","params":[]},{"name":"GetRows","description":"Gets all the rows from a specified fusion table. The tableId field is the id of therequired fusion table. The columns field is a comma-separeted list of the columns to retrieve.","deprecated":"false","params":[{"name":"tableId","type":"text"},{"name":"columns","type":"text"}]},{"name":"GetRowsWithConditions","description":"Gets all the rows from a fusion table that meet certain conditions. The tableId field isthe id of the required fusion table. The columns field is a comma-separeted list of the columns toretrieve. The conditions field specifies what rows to retrieve from the table, for example the rows in whicha particular column value is not null.","deprecated":"false","params":[{"name":"tableId","type":"text"},{"name":"columns","type":"text"},{"name":"conditions","type":"text"}]},{"name":"InsertRow","description":"Inserts a row into the specified fusion table. The tableId field is the id of thefusion table. The columns is a comma-separated list of the columns to insert values into. The values field specifies what values to insert into each column.","deprecated":"false","params":[{"name":"tableId","type":"text"},{"name":"columns","type":"text"},{"name":"values","type":"text"}]},{"name":"SendQuery","description":"Send the query to the Fusiontables server.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.GoogleAccountPicker","name":"GoogleAccountPicker","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Component to pick a Google Account.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/google.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"Picked","description":"Event raised after account has been picked.","deprecated":"false","params":[{"name":"accountName","type":"text"}]}],"methods":[{"name":"Pick","description":"Provide an account picker to pick a Google account.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.GoogleMap","name":"GoogleMap","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Visible component that show information on Google map.","helpUrl":"https://docs.kodular.io/components/google/google-maps/","showOnPalette":"true","nonVisible":"false","iconName":"images/gMap.png","androidMinSdk":19,"properties":[{"name":"CameraAngle","editorType":"non_negative_float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"CameraRotation","editorType":"non_negative_float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"CameraZoomLevel","editorType":"non_negative_float","defaultValue":"15","propertyType":"common","editorArgs":[]},{"name":"Theme","editorType":"google_map_theme","defaultValue":"standard","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CameraAngle","description":"Move the map's camera to the specified tilt, the angle (in degrees) from the nadir (directly facing the Earth). Must be a value between 0.0 and 90.0","type":"number","rw":"read-write","deprecated":"false"},{"name":"CameraRotation","description":"Move the map's camera to the specified bearing, the direction that the camera is pointing in (in degrees clockwise from north).","type":"number","rw":"read-write","deprecated":"false"},{"name":"CameraZoomLevel","description":"Move the map's camera to the specified zoom level.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CompassEnabled","description":"Indicates whether the compass widget is currently enabled in the map ui","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"MapCameraChangedListenerEnabled","description":"Indicates if the map camera's position changed listener is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"MapClickListenerEnabled","description":"Indicates if the mapClick event listener is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"MapLongClickListenerEnabled","description":"Indicates if the map longClick listener is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"MapType","description":"Indicates the current map type","type":"text","rw":"read-only","deprecated":"false"},{"name":"MyLocationEnabled","description":"Indicates whether my locaiton UI control is currently enabled for the Google map.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"RotateEnabled","description":"Indicates whether the capability to rotate a map on the ui is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ScrollEnabled","description":"Indicates whether the capability to scroll a map on the ui is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Style","description":"Sets the style of the map from json. Just use a text field and paste there the json data. Create a custom map style at https://mapstyle.withgoogle.com/. Set the theme to \"standard\" to clear the style json.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Theme","description":"Sets the theme of the map. The choices are \"standard\"(default), \"silver\", \"retro\", \"dark\", \"night\", \"aubergine\", \"vintage\", \"kodular\" and \"roads-only\".","type":"text","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ZoomControlEnabled","description":"Indicates whether the zoom widget on the map ui is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"ZoomGestureEnabled","description":"Indicates whether the zoom gesture is currently enabled","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"CameraPositionChanged","description":"Called after the camera position of a map has changed.","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"},{"name":"bearing","type":"number"},{"name":"tilt","type":"number"},{"name":"zoom","type":"number"}]},{"name":"FinishedDraggingCircle","description":"Event been raised after the action of moving a draggable circle is finished. Possible a user drag the center of the circle or drag the radius marker of the circle","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"centerLat","type":"number"},{"name":"centerLng","type":"number"},{"name":"radius","type":"number"}]},{"name":"InfoWindowClicked","description":"When the marker's infowindow is clicked, returning marker's id","deprecated":"false","params":[{"name":"markerId","type":"number"}]},{"name":"MapIsReady","description":"Indicates that the map has been rendered and ready for adding markers or changing other settings. Please add or updating markers within this event","deprecated":"false","params":[]},{"name":"OnLocationChanged","description":"Triggers this event when user location has changed. Only works when EnableMylocation is set to true","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"}]},{"name":"OnMapClick","description":"Called when the user makes a tap gesture on the map","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"}]},{"name":"OnMapLongClick","description":"Called when the user makes a long-press gesture on the map","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"}]},{"name":"OnMarkerClick","description":"When a marker is clicked","deprecated":"false","params":[{"name":"markerId","type":"number"},{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"OnMarkerDrag","description":"When a marker is been dragged","deprecated":"false","params":[{"name":"markerId","type":"number"},{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"OnMarkerDragEnd","description":"When the user drags a marker and finish the action, returning marker's id and it's latest position","deprecated":"false","params":[{"name":"markerId","type":"number"},{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"OnMarkerDragStart","description":"When a marker starts been dragged","deprecated":"false","params":[{"name":"markerId","type":"number"},{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"OnPointOfInterestClick","description":"This event will be invoked when a user clicks on a point of interest. This can be a shop, coffee-bar or else.","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"},{"name":"placeName","type":"text"},{"name":"placeID","type":"text"}]}],"methods":[{"name":"AddCircle","description":"Create a circle overlay on the map UI with specified latitude and longitude for center. \"hue\" (min 0, max 360) and \"alpha\" (min 0, max 255) are used to set color and transparency level of the circle, \"strokeWidth\" and \"strokeColor\" are for the perimeter of the circle. Returning a unique id of the circle for future reference to events raised by moving this circle. If the circle isset to be draggable, two default markers will appear on the map: one in the center of the circle, another on the perimeter.","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"},{"name":"radius","type":"number"},{"name":"alpha","type":"number"},{"name":"hue","type":"number"},{"name":"strokeWidth","type":"number"},{"name":"strokeColor","type":"number"},{"name":"draggable","type":"boolean"}],"returnType":"number"},{"name":"AddMarkers","description":"Adding a list of YailLists for markers. The representation of a maker in the inner YailList is composed of: lat(double) [required], long(double) [required], Color, title(String), snippet(String), draggable(boolean). Return a list of unqiue ids for the added markers. Note that the markers ids are not meant to persist after the app is closed, but for temporary references to the markers within the program only. Return an empty list if any error happen in the input","deprecated":"false","params":[{"name":"markers","type":"list"}],"returnType":"list"},{"name":"AddMarkersFromJson","description":"Adding a list of markers that are represented as JsonArray. The inner JsonObject represents a markerand is composed of name-value pairs. Name fields for a marker are: \"lat\" (type double) [required], \"lng\"(type double) [required], \"color\"(type int)[in hue value ranging from 0~360], \"title\"(type String), \"snippet\"(type String), \"draggable\"(type boolean)","deprecated":"false","params":[{"name":"jsonString","type":"text"}]},{"name":"AddMarkersHue","description":"Adding a list of YailList for markers. The inner YailList represents a marker and is composed of lat(Double) [required], long(Double) [required], color(int)[in hue value ranging from 0-360], title(String), snippet(String), draggable(boolean). Return a list of unique ids for the markers that are added","deprecated":"false","params":[{"name":"markers","type":"list"}],"returnType":"list"},{"name":"AddPolyline","description":"This block will return the unique id of the new added polyline. Create a new polyline on the map. Use for 'points' a list of lat, lng pairs. A integer for the 'width' (in pixel) and a valid color for the 'color' parameter.","deprecated":"false","params":[{"name":"points","type":"list"},{"name":"width","type":"number"},{"name":"color","type":"number"}],"returnType":"number"},{"name":"BoundCamera","description":"Transforms the camera such that the specified latitude/longitude bounds are centered on screen at the greatest possible zoom level. Need to specify both latitudes and longitudes for both northeast location and southwest location of the bounding box","deprecated":"false","params":[{"name":"neLat","type":"number"},{"name":"neLng","type":"number"},{"name":"swLat","type":"number"},{"name":"swLng","type":"number"}]},{"name":"EnableCompass","description":"Enables/disables the compass widget on the map's ui. Call this only after event \"MapIsReady\" is received","deprecated":"false","params":[{"name":"enable","type":"boolean"}]},{"name":"EnableMapCameraPosChangeListener","description":"Enable/Disable to listen to map's camera position changed event","deprecated":"false","params":[{"name":"enabled","type":"boolean"}]},{"name":"EnableMapClickListener","description":"Enable/Disable to listen to map's click event","deprecated":"false","params":[{"name":"enabled","type":"boolean"}]},{"name":"EnableMapLongClickListener","description":"Enable/disable to listen to map's long click event","deprecated":"false","params":[{"name":"enabled","type":"boolean"}]},{"name":"EnableMyLocation","description":"Enable or disable my location widget control for Google Map. One can call GetMyLocation() to obtain the current location after enable this.\"","deprecated":"false","params":[{"name":"enabled","type":"boolean"}]},{"name":"EnableRotate","description":"Enables/disables the capability to rotate a map on the ui. Call this only after the event \"MapIsReady\" is received.","deprecated":"false","params":[{"name":"enable","type":"boolean"}]},{"name":"EnableScroll","description":"Enables/disables the capability to scroll a map on the ui. Call this only after the event \"MapIsReady\" is received","deprecated":"false","params":[{"name":"enable","type":"boolean"}]},{"name":"EnableZoomControl","description":"Enables/disables the zoom widget on the map's ui. Call this only after the event \"MapIsReady\" is received","deprecated":"false","params":[{"name":"enable","type":"boolean"}]},{"name":"EnableZoomGesture","description":"Enables/disables zoom gesture on the map ui. Call this only after the event \"MapIsReady\" is received.","deprecated":"false","params":[{"name":"enable","type":"boolean"}]},{"name":"GetAllCircleIDs","description":"Get all circles Ids. A short cut to get all the references for the eixisting circles","deprecated":"false","params":[],"returnType":"list"},{"name":"GetAllMarkerID","description":"Get all the existing markers's Ids","deprecated":"false","params":[],"returnType":"list"},{"name":"GetAllPolylineIds","description":"This will return a list with all available polyline id's.","deprecated":"false","params":[],"returnType":"list"},{"name":"GetMarkers","description":"Add a list of markers composed of name-value pairs. Name fields for a marker are: \"lat\" (type double) [required], \"lng\"(type double) [required], \"color\"(type int)[in hue value ranging from 0~360], \"title\"(type String), \"snippet\"(type String), \"draggable\"(type boolean)","deprecated":"false","params":[],"returnType":"list"},{"name":"GetMyLocation","description":"Get current location using Google Map Service. Return a YailList with first item beingthe latitude, the second item being the longitude, and last time being the accuracy of the reading.","deprecated":"false","params":[],"returnType":"list"},{"name":"GetPointsFromJson","description":"Convert a JsonArray of points (lat, lng pairs) to a list.","deprecated":"false","params":[{"name":"jsonString","type":"text"}],"returnType":"list"},{"name":"MoveCamera","description":"Move the map's camera to the specified position and zoom level","deprecated":"false","params":[{"name":"lat","type":"number"},{"name":"lng","type":"number"},{"name":"zoom","type":"number"}]},{"name":"RemoveCircle","description":"Remove a circle for the map. Returns true if successfully removed, false if the circle does not exist with the specified id","deprecated":"false","params":[{"name":"circleId","type":"number"}],"returnType":"boolean"},{"name":"RemoveMarker","description":"Remove a marker from the map","deprecated":"false","params":[{"name":"markerId","type":"number"}]},{"name":"RemovePolyline","description":"Use this block to remove a polyline from the map. It will return true if it was successful.","deprecated":"false","params":[{"name":"polylineId","type":"number"}],"returnType":"boolean"},{"name":"SetMapType","description":"Set the layer of Google map. Default layer is \"normal\", other choices including \"hybrid\",\"satellite\", and \"terrain\"","deprecated":"false","params":[{"name":"layerName","type":"text"}]},{"name":"UpdateCircle","description":"Set the property of an existing circle. Properties include: \"alpha\"(number, value ranging from 0~255), \"color\" (nimber, hue value ranging 0~360), \"radius\"(number in meters)","deprecated":"false","params":[{"name":"circleId","type":"number"},{"name":"propertyName","type":"text"},{"name":"value","type":"any"}]},{"name":"UpdateMarker","description":"Set the property of a marker, note that the marker has to be added first or else will throw an exception! Properties include: \"color\"(hue value ranging from 0~360), \"title\", \"snippet\", \"draggable\"(give either true or false as the value).","deprecated":"false","params":[{"name":"markerId","type":"number"},{"name":"propertyName","type":"text"},{"name":"value","type":"any"}]},{"name":"UpdatePolyline","description":"Update any polyline with the given id. You can change the property values for 'width' (in pixel), 'color' or 'points (a list of lat, lng pairs).","deprecated":"false","params":[{"name":"polylineId","type":"number"},{"name":"propertyName","type":"text"},{"name":"points","type":"any"}]},{"name":"addOverlay","description":"Add overlay.","deprecated":"false","params":[]},{"name":"addPolygon","description":"A Polygon is an enclosed shape that can be used to mark areas on the map.","deprecated":"false","params":[{"name":"latMin","type":"number"},{"name":"latMax","type":"number"},{"name":"lonMin","type":"number"},{"name":"lonMax","type":"number"}]},{"name":"addTileOverlay","description":"Add title overlay.","deprecated":"false","params":[]},{"name":"clearAllPolygons","description":"Clear all Polygons.","deprecated":"false","params":[]},{"name":"drawCentralSquare","description":"Draw central square.","deprecated":"false","params":[]},{"name":"getBoundingBox","description":"Get bounding box.","deprecated":"false","params":[{"name":"latitudeInDegrees","type":"number"},{"name":"longitudeInDegrees","type":"number"},{"name":"halfSideInKm","type":"number"}],"returnType":"text"},{"name":"getMapCenter","description":"Get map center. If a error occures the output will be '-999'.","deprecated":"false","params":[],"returnType":"text"},{"name":"getZoomLevelInfo","description":"Deprecated block! Don't use this anymore. Use instead 'Camera Zoom Level'.","deprecated":"true","params":[],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.GoogleShortlink","name":"GoogleShortlink","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"A component to create Short links with the Google API","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/google.png","androidMinSdk":19,"properties":[{"name":"ApiKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApiKey","description":"Set here your api key to use the service. How to get a api key? Read here more: \"https://goo.gl/AFks2R\"","type":"text","rw":"write-only","deprecated":"false"},{"name":"DefaultApiKey","description":"Don't use this default api key for your final app's. This default api key is only for development mode. Sponsored by NMD (Next Mobile Development).","type":"text","rw":"read-only","deprecated":"false"}],"events":[{"name":"GotResponse","description":"Event to detect when a link was converted.","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"responseContent","type":"text"}]}],"methods":[{"name":"ShortToUrl","description":"Convert a short link from google into a normal link. Powerd by Google.","deprecated":"false","params":[{"name":"url","type":"text"}]},{"name":"UrlToShort","description":"Convert a link into a short link. Powerd by Google.","deprecated":"false","params":[{"name":"url","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.GravitySensor","name":"GravitySensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that measures the force of gravity in m/s2 that is applied to a device on all three physical axes (x, y, z).

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/gravitysensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MaximumRange","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"XAccel","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"YAccel","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"ZAccel","description":"","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"GravityChanged","description":"Indicates that the gravity sensor data has changed.","deprecated":"false","params":[{"name":"xAccel","type":"number"},{"name":"yAccel","type":"number"},{"name":"zAccel","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.GyroscopeSensor","name":"GyroscopeSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that can measure angular velocity in three dimensions in units of degrees per second.

In order to function, the component must have its Enabled property set to True, and the device must have a gyroscope sensor.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/gyroscopesensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"Indicates whether a gyroscope sensor is available.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"If enabled, then sensor events will be generated and XAngularVelocity, YAngularVelocity, and ZAngularVelocity properties will have meaningful values.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"XAngularVelocity","description":"The angular velocity around the X axis, in degrees per second.","type":"number","rw":"read-only","deprecated":"false"},{"name":"YAngularVelocity","description":"The angular velocity around the Y axis, in degrees per second.","type":"number","rw":"read-only","deprecated":"false"},{"name":"ZAngularVelocity","description":"The angular velocity around the Z axis, in degrees per second.","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"GyroscopeChanged","description":"Indicates that the gyroscope sensor data has changed. The timestamp parameter is the time in nanoseconds at which the event occurred.","deprecated":"false","params":[{"name":"xAngularVelocity","type":"number"},{"name":"yAngularVelocity","type":"number"},{"name":"zAngularVelocity","type":"number"},{"name":"timestamp","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.HorizontalArrangement","name":"HorizontalArrangement","external":"false","version":"9","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"

A formatting element in which to place components that should be displayed from left to right. If you wish to have components displayed one over another, use VerticalArrangement instead.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Scrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"UseRoundCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"isCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"A number that encodes how the contents of the arrangement are aligned vertically. The choices are: 1 = aligned at the top, 2 = vertically centered, 3 = aligned at the bottom. Alignment has no effect if the arrangement's height is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"Returns the component's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FullClickable","description":"","type":"boolean","rw":"invisible","deprecated":"true"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Specifies the path of the component's image. If there is both an Image and a BackgroundColor, only the Image will be visible.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Scrollbar","description":"Whether to display a scrollbar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseRoundCard","description":"If enabled the card layout will have then round corners.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"isCard","description":"If enabled the arrangement will be convert to a card view. You can detect clicks on it with the \"Click\" event.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"Click listener event.","deprecated":"false","params":[]},{"name":"LongClick","description":"Long click listener event.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.HorizontalScrollArrangement","name":"HorizontalScrollArrangement","external":"false","version":"7","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"

A formatting element in which to place components that should be displayed from left to right. If you wish to have components displayed one over another, use VerticalArrangement instead.

This version is scrollable.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/horizontalScroll.png","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Scrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"UseRoundCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"isCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"A number that encodes how the contents of the arrangement are aligned vertically. The choices are: 1 = aligned at the top, 2 = vertically centered, 3 = aligned at the bottom. Alignment has no effect if the arrangement's height is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"Returns the component's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FullClickable","description":"","type":"boolean","rw":"invisible","deprecated":"true"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Specifies the path of the component's image. If there is both an Image and a BackgroundColor, only the Image will be visible.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Scrollbar","description":"Whether to display a scrollbar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseRoundCard","description":"If enabled the card layout will have then round corners.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"isCard","description":"If enabled the arrangement will be convert to a card view. You can detect clicks on it with the \"Click\" event.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"Click listener event.","deprecated":"false","params":[]},{"name":"LongClick","description":"Long click listener event.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.Image","name":"Image","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Component for displaying images. The picture to display, and other aspects of the Image's appearance, can be specified in the Designer or in the Blocks Editor. You can also add gif images.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Picture","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"ScalePictureToFit","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Animation","description":"This is a limited form of animation that can attach a small number of motion types to images. The allowable motions are ScrollRightSlow, ScrollRight, ScrollRightFast, ScrollLeftSlow, ScrollLeft, ScrollLeftFast, and Stop","type":"text","rw":"write-only","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ImageTintColor","description":"Change the image tint color. You can use too alpha values if you want with the 'make a list' block. Do not forget to use the 'make color' block together with the 'make a list' block.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Picture","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"The angle at which the image picture appears rotated. This rotation does not appear on the designer screen, only on the device.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ScalePictureToFit","description":"Specifies whether the image should be resized to match the size of the ImageView.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Scaling","description":"This property determines how the picture scales according to the Height or Width of the Image. Scale proportionally (0) preserves the picture aspect ratio. Scale to fit (1) matches the Image area, even if the aspect ratio changes.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"Event to detect that a user has done a simple \"Click\".","deprecated":"false","params":[]},{"name":"LongClick","description":"Event to detect that a user has done a simple \"Long Click\".","deprecated":"false","params":[]}],"methods":[{"name":"ClearImageTintColor","description":"Clear the image tint color.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.ImageEditor","name":"ImageEditor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ANIMATION","helpString":"Non-visible component that allows users to edit images.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/imageEditor.png","androidMinSdk":19,"properties":[{"name":"SaveNewImageAs","editorType":"string","defaultValue":"NewImage.png","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"SaveNewImageAs","description":"Save the new created image to a folder/ name of your choice.","type":"text","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"BlurEffect","description":"This methods creates a blur effect.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"scale","type":"number"},{"name":"radius","type":"number"}],"returnType":"text"},{"name":"ColorBoostEffect","description":"Color boost technique is basically based on color filtering, which is to increase the intensity of a single color channel. For example: type = green/ blue or red; percent = 40%.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"type","type":"text"},{"name":"percent","type":"number"}],"returnType":"text"},{"name":"ColorFilter","description":"Set a color filter to your image. For example: red = 30; green = 40; blue = 20.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"red","type":"number"},{"name":"green","type":"number"},{"name":"blue","type":"number"}],"returnType":"text"},{"name":"FlipPicture","description":"Flip your image vertical or horizontal. For example: type = 1 (vertical); type = 2 (horizontal).","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"type","type":"number"}],"returnType":"text"},{"name":"GammaEffect","description":"Set a gamma effect to your image. For example: red = 5; green = 10; blue = 20.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"red","type":"number"},{"name":"green","type":"number"},{"name":"blue","type":"number"}],"returnType":"text"},{"name":"GreyscaleEffect","description":"Grayscale is a simple image effect that changes colors to grayscale by default.","deprecated":"false","params":[{"name":"imageA","type":"text"}],"returnType":"text"},{"name":"HighlightEffect","description":"Set a highlight effect to your image.","deprecated":"false","params":[{"name":"imageA","type":"text"}],"returnType":"text"},{"name":"HueFilter","description":"Change the hue of an image. For example: level = 1 or 2 or 3 or 4 etc.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"level","type":"number"}],"returnType":"text"},{"name":"ImageRotation","description":"Rotate the image to the degree you need it. For example: degree = 100.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"degree","type":"number"}],"returnType":"text"},{"name":"InvertEffect","description":"This effect inverts your image.","deprecated":"false","params":[{"name":"imageA","type":"text"}],"returnType":"text"},{"name":"MergeTwoImages","description":"This methods creates a new side by side horizontal image.","deprecated":"false","params":[{"name":"leftImage","type":"text"},{"name":"rightImage","type":"text"}],"returnType":"text"},{"name":"Pixelate","description":"This methods creates a pixelate image effect. Use as example as pixelation Amount '1' for a hugh pixel effect and '99' for a almost not visible pixel effect.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"pixelationAmount","type":"number"}],"returnType":"text"},{"name":"RoundCorner","description":"Set a round corner to your image. For example: round = 45.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"round","type":"number"}],"returnType":"text"},{"name":"ScaleCenterCrop","description":"This methods creates a new scale center crop image.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"height","type":"number"},{"name":"width","type":"number"}],"returnType":"text"},{"name":"SepiaToningEffect","description":"Set a sepia toning effect to your image. For example: depth = 20; red = 10; green = 20; blue = 25.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"depth","type":"number"},{"name":"red","type":"number"},{"name":"green","type":"number"},{"name":"blue","type":"number"}],"returnType":"text"},{"name":"SetBrightness","description":"Change the brightness of your image. For example: value = 50 (maximum = 255=100% brightness).","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"value","type":"number"}],"returnType":"text"},{"name":"SetColorDepth","description":"Change the color depth of an image as you wish. For example: bitOffset = 32 (bit) or bitOffset = 16 (bit).","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"bitOffset","type":"number"}],"returnType":"text"},{"name":"SetContrast","description":"This changes the contrast of your image. For example: value = 1.0 means normal picture contrast. Below 1.0 like as example 0.7 means dark contrast, above 1.0 as example 1.5 means light contrast.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"value","type":"number"}],"returnType":"text"},{"name":"ShadingFilter","description":"Make a new image with a shading filter. For example: shadingColor = green(rgb value).","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"shadingColor","type":"number"}],"returnType":"text"},{"name":"TintColorEffect","description":"That's a pretty new other cool effect. It changes the tint color of your image. For example: degree = 100.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"degree","type":"number"}],"returnType":"text"},{"name":"WatermarkEffect","description":"Set a watermark effect to an image and change the positon/size or color of the text. For example: text = hello; textSize = 25; textColor = red(rgb value); textAlphaValue = 255 (255= 100% visible,127.5= 50% visible, 0= 0% visible); pointX = 50; pointY = 100; text underline(boolean) = true or false.","deprecated":"false","params":[{"name":"imageA","type":"text"},{"name":"text","type":"text"},{"name":"textSize","type":"number"},{"name":"textColor","type":"number"},{"name":"textUnderline","type":"boolean"},{"name":"textAlphaValue","type":"number"},{"name":"pointX","type":"number"},{"name":"pointY","type":"number"}],"returnType":"text"},{"name":"isLandscape","description":"Return true if image is in landscape format, else return false.","deprecated":"false","params":[{"name":"image","type":"text"}],"returnType":"boolean"},{"name":"isPortrait","description":"Return true if image is in portrait format, else return false.","deprecated":"false","params":[{"name":"image","type":"text"}],"returnType":"boolean"},{"name":"isSquare","description":"Return true if image is in square format (means as high as wide or as wide as high), else return false.","deprecated":"false","params":[{"name":"image","type":"text"}],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.ImagePicker","name":"ImagePicker","external":"false","version":"10","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"A special-purpose button. When the user taps an image picker, the device's image gallery appears, and the user can choose an image.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Selection","description":"Path to the file containing the image that was selected.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Event to be raised after the picker activity returns its\n result and the properties have been filled in.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"BeforePicking","description":"Event to raise when the button of the component is clicked or the list is shown\n using the Open block. This event occurs before the list of items is displayed, and\n can be used to prepare the list before it is shown.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"Open","description":"Opens the picker, as though the user clicked on it.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.ImageSprite","name":"ImageSprite","external":"false","version":"6","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ANIMATION","helpString":"

A 'sprite' that can be placed on a Canvas, where it can react to touches and drags, interact with other sprites (Balls and other ImageSprites) and the edge of the Canvas, and move according to its property values. Its appearance is that of the image specified in its Picture property (unless its Visible property is False.

To have an ImageSprite move 10 pixels to the left every 1000 milliseconds (one second), for example, you would set the Speed property to 10 [pixels], the Interval property to 1000 [milliseconds], the Heading property to 180 [degrees], and the Enabled property to True. A sprite whose Rotates property is True will rotate its image as the sprite's Heading changes. Checking for collisions with a rotated sprite currently checks the sprite's unrotated position so that collision checking will be inaccurate for tall narrow or short wide sprites that are rotated. Any of the sprite properties can be changed at any time under program control.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Heading","editorType":"float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Interval","editorType":"non_negative_integer","defaultValue":"100","propertyType":"common","editorArgs":[]},{"name":"Picture","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Rotates","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Speed","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"X","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"Y","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"Z","editorType":"float","defaultValue":"1.0","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Enabled","description":"Controls whether the sprite moves when its speed is non-zero.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Heading","description":"Returns the sprite's heading in degrees above the positive x-axis. Zero degrees is toward the right of the screen; 90 degrees is toward the top of the screen.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Interval","description":"The interval in milliseconds at which the sprite's position is updated. For example, if the interval is 50 and the speed is 10, then the sprite will move 10 pixels every 50 milliseconds.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Picture","description":"The picture that determines the sprite's appearence","type":"text","rw":"read-write","deprecated":"false"},{"name":"Rotates","description":"If true, the sprite image rotates to match the sprite's heading. If false, the sprite image does not rotate when the sprite changes heading. The sprite rotates around its centerpoint.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Speed","description":"The speed at which the sprite moves. The sprite moves this many pixels every interval.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"True if the sprite is visible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"X","description":"The horizontal coordinate of the left edge of the sprite, increasing as the sprite moves to the right.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Y","description":"The vertical coordinate of the top of the sprite, increasing as the sprite moves down.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Z","description":"How the sprite should be layered relative to other sprits, with higher-numbered layers in front of lower-numbered layers.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"CollidedWith","description":"Handler for CollidedWith events, called when two sprites collide.\n Note that checking for collisions with a rotated ImageSprite currently\n checks against the sprite's unrotated position. Therefore, collision\n checking will be inaccurate for tall narrow or short wide sprites that are\n rotated.","deprecated":"false","params":[{"name":"other","type":"component"}]},{"name":"Dragged","description":"Handler for Dragged events. On all calls, the starting coordinates\n are where the screen was first touched, and the \"current\" coordinates\n describe the endpoint of the current line segment. On the first call\n within a given drag, the \"previous\" coordinates are the same as the\n starting coordinates; subsequently, they are the \"current\" coordinates\n from the prior call. Note that the Sprite won't actually move\n anywhere in response to the Dragged event unless MoveTo is\n specifically called.","deprecated":"false","params":[{"name":"startX","type":"number"},{"name":"startY","type":"number"},{"name":"prevX","type":"number"},{"name":"prevY","type":"number"},{"name":"currentX","type":"number"},{"name":"currentY","type":"number"}]},{"name":"EdgeReached","description":"Event handler called when the sprite reaches an edge of the screen. If Bounce is then called with that edge, the sprite will appear to bounce off of the edge it reached. Edge here is represented as an integer that indicates one of eight directions north(1), northeast(2), east(3), southeast(4), south (-1), southwest(-2), west(-3), and northwest(-4).","deprecated":"false","params":[{"name":"edge","type":"number"}]},{"name":"Flung","description":"When a fling gesture (quick swipe) is made on the sprite: provides\n the (x,y) position of the start of the fling, relative to the upper\n left of the canvas. Also provides the speed (pixels per millisecond) and heading\n (0-360 degrees) of the fling, as well as the x velocity and y velocity\n components of the fling's vector.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"speed","type":"number"},{"name":"heading","type":"number"},{"name":"xvel","type":"number"},{"name":"yvel","type":"number"}]},{"name":"NoLongerCollidingWith","description":"Event indicating that a pair of sprites are no longer colliding.","deprecated":"false","params":[{"name":"other","type":"component"}]},{"name":"TouchDown","description":"When the user begins touching the sprite (places finger on sprite and\n leaves it there): provides the (x,y) position of the touch, relative\n to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"TouchUp","description":"When the user stops touching the sprite (lifts finger after a\n TouchDown event): provides the (x,y) position of the touch, relative\n to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"Touched","description":"When the user touches the sprite and then immediately lifts finger: provides\n the (x,y) position of the touch, relative to the upper left of the canvas","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]}],"methods":[{"name":"Bounce","description":"Makes this sprite bounce, as if off a wall. For normal bouncing, the edge argument should be the one returned by EdgeReached.","deprecated":"false","params":[{"name":"edge","type":"number"}]},{"name":"CollidingWith","description":"Indicates whether a collision has been registered between this sprite\n and the passed sprite.","deprecated":"false","params":[{"name":"other","type":"component"}],"returnType":"boolean"},{"name":"MoveIntoBounds","description":"Moves the sprite back in bounds if part of it extends out of bounds,\n having no effect otherwise. If the sprite is too wide to fit on the\n canvas, this aligns the left side of the sprite with the left side of the\n canvas. If the sprite is too tall to fit on the canvas, this aligns the\n top side of the sprite with the top side of the canvas.","deprecated":"false","params":[]},{"name":"MoveTo","description":"Moves the sprite so that its left top corner is at the specfied x and y coordinates.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"PointInDirection","description":"Turns the sprite to point towards the point with coordinates as (x, y).","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"}]},{"name":"PointTowards","description":"Turns the sprite to point towards a designated target sprite. The new heading will be parallel to the line joining the centerpoints of the two sprites.","deprecated":"false","params":[{"name":"target","type":"component"}]}]},{"type":"com.google.appinventor.components.runtime.KodularAdColonyInterstitialAd","name":"KodularAdColonyInterstitialAd","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/adcolony-interstitial/","showOnPalette":"true","nonVisible":"true","iconName":"images/adcolony.png","androidMinSdk":19,"properties":[{"name":"AppID","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ZoneID","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AppID","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"UserConsent","description":"If set to true the user allowed the ad network to show personalized ads. You only need to request the consent from european users.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ZoneID","description":"","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdExpiring","description":"Called when the ad is expirung. You should load a new ad.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdLoaded","description":"Called when an ad is received.","deprecated":"false","params":[]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"Error","description":"Called when an ad request failed. The message will display the reason for why the ad failed.","deprecated":"false","params":[{"name":"error","type":"text"}]}],"methods":[{"name":"IsEuropeanUser","description":"Returns true if the current app user is located in europe. If true you must ask the user as example in a dialog if he give his consent for personalized ads.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"LoadAd","description":"Loads a new ad.","deprecated":"false","params":[]},{"name":"ShowAd","description":"Shows an ad to the user.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularAppLovin","name":"KodularAppLovin","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/app-lovin/","showOnPalette":"true","nonVisible":"true","iconName":"images/applovin.png","androidMinSdk":19,"properties":[{"name":"SdkKey","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"SdkKey","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"TestMode","description":"If you want to test the component then that this property to true. Then you will receive test ads.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UserConsent","description":"If set to true the user allowed the ad network to show personalized ads. You only need to request the consent from european users.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when an ad was closed.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdLoaded","description":"Called when an ad is received.","deprecated":"false","params":[]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"AdStarted","description":"Called when an ad was started.","deprecated":"false","params":[]},{"name":"Error","description":"Called when an ad request failed. The message will display the reason for why the ad failed.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]}],"methods":[{"name":"IsEuropeanUser","description":"Returns true if the current app user is located in europe. If true you must ask the user as example in a dialog if he give his consent for personalized ads.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"LoadAd","description":"Loads a new ad.","deprecated":"false","params":[]},{"name":"ShowAd","description":"Shows an ad to the user.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularBottomNavigation","name":"KodularBottomNavigation","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NAVIGATION","helpString":"A component that create a Bottom Navigation Menu in the app","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/bottomNavigation.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"SelectedColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"UnselectedColor","editorType":"color","defaultValue":"&HFF6E6E6E","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Set the background color of the Bottom Navigation Menu","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SelectedColor","description":"Set the color of the selected item of the Bottom Navigation Menu","type":"number","rw":"read-write","deprecated":"false"},{"name":"UnselectedColor","description":"Set the color of the unselected items of the Bottom Navigation Menu","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"ItemSelected","description":"Event triggers when an item was selected.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"}]}],"methods":[{"name":"AddItem","description":"Add an item to the bottom menu","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"image","type":"text"}]},{"name":"RemoveAllItems","description":"Remove all items from the bottom menu","deprecated":"false","params":[]},{"name":"RemoveItem","description":"Remove an item from the bottom menu","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"SelectItem","description":"Select an item from the bottom menu","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"UpdateItem","description":"Update an item of the bottom menu","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"image","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.KodularChameleonAd","name":"KodularChameleonAd","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"write in ode","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/chameleon.png","androidMinSdk":19,"properties":[{"name":"AppId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"UserId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AppId","description":"Input here your own Chameleon Ad 'App ID' (request one at account.kodular.io).","type":"text","rw":"write-only","deprecated":"false"},{"name":"TestMode","description":"If set to true, the device will receive test ads. This option must be set before you load a new ad.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UserId","description":"Input here your own Chameleon Ad 'User ID' (get yours at account.kodular.io).","type":"text","rw":"write-only","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Event triggered when ads are closed.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Event triggered when ads failed to load. Here is the list with all possible error codes (int) and error messages (string): '1' = The before loaded ad was not finished. It is not allowed to load a new one. The first must be in finished loading process. '2' = Ad failed to load. No internet connection available. '3' = Please enter a valid chameleon 'App ID'. '4' = Please enter a valid chameleon 'User ID'. '5' = UNKNOWN_WEB_VIEW_ERROR. '6' = There was an error validating the SSL Certificate.","deprecated":"false","params":[{"name":"errorMessage","type":"text"},{"name":"errorCode","type":"number"}]},{"name":"AdFailedToShow","description":"Event triggered when ads failed to show. Here is the list with all possible error codes (int) and error messages (string): '1' = UNKNOWN_ERROR_ON_SHOW_AD. '2' = The ad must first be loaded. After loading finished the ad can be shown.","deprecated":"false","params":[{"name":"errorMessage","type":"text"},{"name":"errorCode","type":"number"}]},{"name":"AdLoaded","description":"Event triggered when ads are loaded.","deprecated":"false","params":[]}],"methods":[{"name":"LoadAd","description":"Load a new interstitial chameleon ad.","deprecated":"false","params":[]},{"name":"ShowAd","description":"Show a chameleon interstitial ad after it was loaded.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularChatView","name":"KodularChatView","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"VIEWS","helpString":"write in ode","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/chatView.png","androidMinSdk":19,"properties":[{"name":"AutomaticScrollDown","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"DoubleTap","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"MessagesCornerRadius","editorType":"non_negative_float","defaultValue":"5","propertyType":"advanced","editorArgs":[]},{"name":"MessagesFontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"advanced","editorArgs":[]},{"name":"ReceiversBackgroundColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"common","editorArgs":[]},{"name":"ReceiversMessageColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"ReceiversTitleColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"ReceiversTypefaceMessage","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ReceiversTypefaceMessageImport","editorType":"asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"ReceiversTypefaceTitle","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ReceiversTypefaceTitleImport","editorType":"asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"Scrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"SendersBackgroundColor","editorType":"color","defaultValue":"&HFF8BC24A","propertyType":"common","editorArgs":[]},{"name":"SendersMessageColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"SendersTitleColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"SendersTypefaceMessage","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"SendersTypefaceMessageImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"SendersTypefaceTitle","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"SendersTypefaceTitleImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"Swipeable","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"TimestampCornerRadius","editorType":"non_negative_float","defaultValue":"5","propertyType":"advanced","editorArgs":[]},{"name":"TimestampFontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"advanced","editorArgs":[]},{"name":"TimestampTextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"TitleFontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AutomaticScrollDown","description":"If set to true the chat view will scroll down when a new message was send.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"Specifies the component's background color. The background color will not be visible if an Image is being displayed.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"DoubleTap","description":"Set the component enabled for double taps or not.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Specifies the path of the component's image. If there is both an Image and a BackgroundColor, only the Image will be visible.","type":"text","rw":"read-write","deprecated":"false"},{"name":"MessagesCornerRadius","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"MessagesFontSize","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ReceiversBackgroundColor","description":"Specifies the background color for receiver's messages.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ReceiversMessageColor","description":"Specifies the color for receivers's messages.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ReceiversTitleColor","description":"Specifies the color for receivers's title messages.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ReceiversTypefaceMessage","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ReceiversTypefaceMessageImport","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"ReceiversTypefaceTitle","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ReceiversTypefaceTitleImport","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Scrollbar","description":"Whether to display a scrollbar.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SendersBackgroundColor","description":"Specifies the background color for sender's messages.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SendersMessageColor","description":"Specifies the color for sender's messages.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SendersTitleColor","description":"Specifies the color for sender's title messages.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SendersTypefaceMessage","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SendersTypefaceMessageImport","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"SendersTypefaceTitle","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SendersTypefaceTitleImport","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"Swipeable","description":"If set to true you can swipe with your fingers through views.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TimestampCornerRadius","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TimestampFontSize","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TimestampTextColor","description":"Specifies the color for the timestamp.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TitleFontSize","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"Click listener event.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"sendAsSender","type":"boolean"},{"name":"imagePath","type":"text"},{"name":"withImage","type":"boolean"},{"name":"filePath","type":"text"},{"name":"fileThumbnail","type":"text"},{"name":"withFile","type":"boolean"}]},{"name":"DoubleTapClick","description":"Double tap click listener event.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"sendAsSender","type":"boolean"},{"name":"imagePath","type":"text"},{"name":"withImage","type":"boolean"},{"name":"filePath","type":"text"},{"name":"fileThumbnail","type":"text"},{"name":"withFile","type":"boolean"}]},{"name":"LongClick","description":"Long click listener event.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"sendAsSender","type":"boolean"},{"name":"imagePath","type":"text"},{"name":"withImage","type":"boolean"},{"name":"filePath","type":"text"},{"name":"fileThumbnail","type":"text"},{"name":"withFile","type":"boolean"}]},{"name":"Swipe","description":"Swipe listener event. The direction value returns '1' for right-to-left swipes, '2' for left-to-right swipes '3' for bottom-to-top swipes and '4' for top-to-bottom swipes","deprecated":"false","params":[{"name":"direction","type":"number"},{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"sendAsSender","type":"boolean"},{"name":"imagePath","type":"text"},{"name":"withImage","type":"boolean"},{"name":"filePath","type":"text"},{"name":"fileThumbnail","type":"text"},{"name":"withFile","type":"boolean"}]},{"name":"UserImageClick","description":"Click listener event for the user image.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"userImage","type":"text"}]}],"methods":[{"name":"AddComponentMessage","description":"Add a new simple component message into the chat view. If you do not want a user image or title or message or timestamp, then let the field empty. Make sure that the component is VISIBLE on the screen when you try to add it here. It will be then removed automatic from the screen and only visible again in the chat view.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"timestamp","type":"text"},{"name":"component","type":"component"},{"name":"id","type":"number"},{"name":"addAsSender","type":"boolean"}]},{"name":"AddDateTimestamp","description":"Add a new simple date timestamp into the chat view. You NEED to write a date, else this block will do nothing. This means the field 'date' can NOT be empty. Timestamp messages are not clickable.","deprecated":"false","params":[{"name":"date","type":"text"},{"name":"textColor","type":"number"},{"name":"backgroundColor","type":"number"},{"name":"id","type":"number"}]},{"name":"AddFileMessage","description":"Add a new simple file message into the chat view. If you do not want a user image or title or message or timestamp, then let the field empty.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"filePath","type":"text"},{"name":"fileThumbnail","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"addAsSender","type":"boolean"}]},{"name":"AddImageMessage","description":"Add a new simple image message into the chat view. If you do not want a user image or title or message or timestamp, then let the field empty.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"image","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"addAsSender","type":"boolean"}]},{"name":"AddMessage","description":"Add a new simple message into the chat view. If you do not want a user image or title or message or timestamp, then let the field empty.","deprecated":"false","params":[{"name":"userImage","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"timestamp","type":"text"},{"name":"id","type":"number"},{"name":"addAsSender","type":"boolean"}]},{"name":"ClearChatView","description":"Removes all messages and timestamps from the chat view.","deprecated":"false","params":[]},{"name":"CountDateTimestamp","description":"Returns the number of all date timestamps. Normal messages are not included.","deprecated":"false","params":[],"returnType":"number"},{"name":"CountMessages","description":"Returns the number of all messages. 'Date Timestamp' messages are not included.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetLastUsedId","description":"Returns the last used id.","deprecated":"false","params":[],"returnType":"number"},{"name":"RemoveMessage","description":"Remove a message or timestamp from the chat view.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"ScrollTo","description":"Scroll to a specific message in the chat view with the given id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"UpdateMessageBackgroundColor","description":"Update the background color of a chat view message.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"backgroundColor","type":"number"}]},{"name":"UpdateMessageContent","description":"Update the message content of a chat view message.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"},{"name":"textColor","type":"number"}]},{"name":"UpdateTimestampContent","description":"Update the timestamp content of a chat view message.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"},{"name":"textColor","type":"number"}]},{"name":"UpdateTitleContent","description":"Update the title content of a chat view message.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"},{"name":"textColor","type":"number"}]},{"name":"UpdateUserImage","description":"Update the user image of a chat view message. The image can only be updated if there was before a old image.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"userImage","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.KodularColorUtilities","name":"KodularColorUtilities","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"write in ode","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/colorUtilities.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[{"name":"ConvertHexToInt","description":"Convert a hex color to a integer color. The result is returned as integer.","deprecated":"false","params":[{"name":"hexColor","type":"text"}],"returnType":"number"},{"name":"ConvertIntToHex","description":"Convert a integer color to a hex color. The result is returned as string.","deprecated":"false","params":[{"name":"color","type":"number"}],"returnType":"text"},{"name":"GetLuminance","description":"Returns the luminance of a color as a float between 0.0 and 1.0. The result is returned as double.","deprecated":"false","params":[{"name":"color","type":"number"}],"returnType":"number"},{"name":"IsDarkColor","description":"Returns true if the color is dark, else it returns false, means the color is light. The result is returned as boolean.","deprecated":"false","params":[{"name":"color","type":"number"}],"returnType":"boolean"},{"name":"SetAlphaValue","description":"Set a alpha value to a color. The result is returned as integer.","deprecated":"false","params":[{"name":"color","type":"number"},{"name":"alpha","type":"number"}],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.KodularDonate","name":"KodularDonate","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MONETIZATION_GENERAL","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/donate/","showOnPalette":"true","nonVisible":"true","iconName":"images/kodulardonate.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[]},{"type":"com.google.appinventor.components.runtime.KodularDynamicCardView","name":"KodularDynamicCardView","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"DYNAMIC","helpString":"A component to create dynamic cardviews in Arrangments.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/cardview.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingBottom","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingLeft","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingRight","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingTop","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"CornerRadius","editorType":"non_negative_float","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"Elevation","editorType":"non_negative_float","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"FullClickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"non_negative_float","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Specifies the cards's background color.","type":"number","rw":"write-only","deprecated":"false"},{"name":"ContentPaddingBottom","description":"Sets the bottom padding between the card's edges and the children of card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"ContentPaddingLeft","description":"Sets the left padding between the card's edges and the children of card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"ContentPaddingRight","description":"Sets the right padding between the card's edges and the children of card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"ContentPaddingTop","description":"Sets the top padding between the card's edges and the children of card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"CornerRadius","description":"The corner radius from the card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"Elevation","description":"The card view elevation value.","type":"number","rw":"write-only","deprecated":"false"},{"name":"FullClickable","description":"If set to true, the card will consume all click events. This means if you have added as example buttons into the card, then will the card consume the touch event on the button. And this means that the button would not be clickable, but only the entire card.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"StrokeColor","description":"The stroke width for the card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"StrokeWidth","description":"The stroke width for the card view.","type":"number","rw":"write-only","deprecated":"false"},{"name":"TouchColor","description":"Set the touch color also known as ripple color to a card view component.","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"Event to detect that a user has done a simple click on a card view component with the specific id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"TouchDown","description":"Event to detect that a user has done a simple touch down on a card view component with the specific id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"TouchUp","description":"Event to detect that a user has done a simple touch up on a card view component with the specific id.","deprecated":"false","params":[{"name":"id","type":"number"}]}],"methods":[{"name":"AddComponentToCardView","description":"Add a component into the card view component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"}]},{"name":"ContentPadding","description":"Set the content padding of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"contentPaddingLeft","type":"number"},{"name":"contentPaddingTop","type":"number"},{"name":"contentPaddingRight","type":"number"},{"name":"contentPaddingBottom","type":"number"}]},{"name":"CreateCardView","description":"Create a new card view component dynamically. Use for width/height '-1' for wrap content or '-2' for fill parent.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"},{"name":"width","type":"number"},{"name":"height","type":"number"}]},{"name":"DeleteCardView","description":"Remove a card view component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"GetBackgroundColor","description":"Get the background color of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetCardViewById","description":"Returns the card view referenced by its id.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"component"},{"name":"GetCornerRadius","description":"Get the corner radius of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetElevation","description":"Get the elevation of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetHeight","description":"Get the height of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetWidth","description":"Get the width of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"SetBackgroundColor","description":"Set the background color of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"argb","type":"number"}]},{"name":"SetCornerRadius","description":"Set the corner radius of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"radius","type":"number"}]},{"name":"SetElevation","description":"Set the elevation of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"value","type":"number"}]},{"name":"SetHeight","description":"Set the height of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"height","type":"number"}]},{"name":"SetWidth","description":"Set the width of a card view component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]},{"name":"StrokeColor","description":"Set the stroke color to a card view component with the specific id.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"StrokeWidth","description":"Set the stroke width to a card view component with the specific id.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.KodularDynamicImage","name":"KodularDynamicImage","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"DYNAMIC","helpString":"A component to create dynamic image in Arrangments.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/image.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[{"name":"CreateImage","description":"Create a new image component dynamically. Use for width/height '-1' for wrap content or '-2' for fill parent.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"},{"name":"path","type":"text"},{"name":"width","type":"number"},{"name":"height","type":"number"}]},{"name":"DeleteImage","description":"Remove a image component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"GetHeight","description":"Get the Height of a image component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetImageById","description":"Returns the image referenced by its id.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"component"},{"name":"GetWidth","description":"Get the Width of a image component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"RotationAngle","description":"Specifies the angle of a image component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"rotationAngle","type":"number"}]},{"name":"ScalePictureToFit","description":"Specifies whether a image component with the given id should be resized to match the size of the ImageView.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"scale","type":"boolean"}]},{"name":"SetHeight","description":"Update the Height of a image component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"height","type":"number"}]},{"name":"SetWidth","description":"Update the Width of a image component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]},{"name":"UpdateImage","description":"Update a image component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"path","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.KodularDynamicSpace","name":"KodularDynamicSpace","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"DYNAMIC","helpString":"A component to create dynamic space in Arrangments.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/space.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[{"name":"CreateSpace","description":"Create a new space component dynamically. Use for width/height '-1' for wrap content or '-2' for fill parent.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"},{"name":"width","type":"number"},{"name":"height","type":"number"}]},{"name":"DeleteSpace","description":"Remove a space component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"GetHeight","description":"Get the Height of a space component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetSpaceById","description":"Returns the space referenced by its id.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"component"},{"name":"GetWidth","description":"Get the Width of a space component.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"SetHeight","description":"Update the Height of a space component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"height","type":"number"}]},{"name":"SetWidth","description":"Update the Width of a space component.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.KodularEncrypt","name":"KodularEncrypt","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component which performs several encrypt/decrypt functions","helpUrl":"https://docs.kodular.io/components/storage/cryptography/","showOnPalette":"true","nonVisible":"true","iconName":"images/encrypt.png","androidMinSdk":19,"properties":[{"name":"AES128Key","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"AES256Key","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BCryptSaltSize","editorType":"integer","defaultValue":"10","propertyType":"common","editorArgs":[]},{"name":"PBKDF2HashByteSize","editorType":"integer","defaultValue":"18","propertyType":"common","editorArgs":[]},{"name":"PBKDF2Iterations","editorType":"integer","defaultValue":"64000","propertyType":"common","editorArgs":[]},{"name":"PBKDF2SaltByteSize","editorType":"integer","defaultValue":"24","propertyType":"common","editorArgs":[]},{"name":"TripleDESKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AES128Key","description":"Set the AES-128 Key","type":"text","rw":"read-write","deprecated":"false"},{"name":"AES256Key","description":"Set the AES-256 Key","type":"text","rw":"read-write","deprecated":"false"},{"name":"BCryptSaltSize","description":"Set the BCrypt Salt Size","type":"number","rw":"read-write","deprecated":"false"},{"name":"PBKDF2HashByteSize","description":"Set the PBKDF2 Hash Byte Size","type":"number","rw":"read-write","deprecated":"false"},{"name":"PBKDF2Iterations","description":"Set the PBKDF2 number of Iterations","type":"number","rw":"read-write","deprecated":"false"},{"name":"PBKDF2SaltByteSize","description":"Set the PBKDF2 Salt Byte Size","type":"number","rw":"read-write","deprecated":"false"},{"name":"TripleDESKey","description":"Set the TripleDES Key","type":"text","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"AES128Decode","description":"Decodes the given hash using the given key through AES-128","deprecated":"false","params":[{"name":"aes128Hash","type":"text"}],"returnType":"text"},{"name":"AES128Encode","description":"Encodes the given string using the given key through AES-128","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"AES256Decode","description":"Decodes the given hash using the given key through AES-256","deprecated":"false","params":[{"name":"aes256Hash","type":"text"}],"returnType":"text"},{"name":"AES256Encode","description":"Encodes the given string using the given key through AES-256","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"BCryptCreateHash","description":"Generates a hash using BCrypt","deprecated":"false","params":[{"name":"inputText","type":"text"},{"name":"salt","type":"text"}],"returnType":"text"},{"name":"BCryptGenerateSalt","description":"Generates a salt usable for hasing with BCrypt","deprecated":"false","params":[],"returnType":"text"},{"name":"BCryptVerifyPassword","description":"Verifies if the input password is the same one as the correct hashed password using BCrypt algorithm","deprecated":"false","params":[{"name":"inputText","type":"text"},{"name":"correctHash","type":"text"}],"returnType":"boolean"},{"name":"Base64Decode","description":"Decodes the given hash using Base64","deprecated":"false","params":[{"name":"base64Hash","type":"text"}],"returnType":"text"},{"name":"Base64Encode","description":"Encodes the given string using Base64","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"Enigma","description":"Encrypts or decrypts the given string simulating an Enigma machine. Rotors can go from 1 to 8, but they cannot be repeated. Reflector can be B, C or 0 if none. Plugboard is a list with sub-list of two items containing a character each one, which replace the first character with the second one.","deprecated":"false","params":[{"name":"inputText","type":"text"},{"name":"rotor1","type":"number"},{"name":"rotor2","type":"number"},{"name":"rotor3","type":"number"},{"name":"reflector","type":"text"},{"name":"plugboard","type":"list"}],"returnType":"text"},{"name":"MD5CreateHash","description":"Generates a MD5 hash","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"PBKDF2CreateHash","description":"Generates a hash using PBKDF2","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"PBKDF2VerifyPassword","description":"Verifies if the input password is the same one as the correct hashed password using PBKDF2 algorithm","deprecated":"false","params":[{"name":"inputText","type":"text"},{"name":"correctHash","type":"text"}],"returnType":"boolean"},{"name":"SHA1","description":"Generates a hashed SHA-1 string","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"SHA224","description":"Generates a hashed SHA-224 string","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"SHA256","description":"Generates a hashed SHA-256 string","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"SHA384","description":"Generates a hashed SHA-384 string","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"SHA512","description":"Generates a hashed SHA-512 string","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"},{"name":"TripleDESDecode","description":"Decodes the given hash using the given key through TripleDES","deprecated":"false","params":[{"name":"tripleDESHash","type":"text"}],"returnType":"text"},{"name":"TripleDESEncode","description":"Encodes the given string using the given key through TripleDES","deprecated":"false","params":[{"name":"inputText","type":"text"}],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.KodularFacebookRewardedVideoAd","name":"KodularFacebookRewardedVideoAd","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/facebook-rewarded/","showOnPalette":"true","nonVisible":"true","iconName":"images/facebook.png","androidMinSdk":19,"properties":[{"name":"CommissionRewardedAdsNetwork","editorType":"commission_rewarded_ads_network","defaultValue":"unity","propertyType":"common","editorArgs":[]},{"name":"PlacementID","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CommissionRewardedAdsNetwork","description":"Sets the ad network used to take the commission.","type":"text","rw":"write-only","deprecated":"false"},{"name":"PlacementID","description":"","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when the user is about to return to the application after clicking on an ad.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdLoaded","description":"Called when an ad is received.","deprecated":"false","params":[]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"AdVideoCompleted","description":"Called when an video ad was completed.","deprecated":"false","params":[]},{"name":"AdVideoStarted","description":"Called when an video ad started to show content.","deprecated":"false","params":[]},{"name":"Error","description":"Called when an ad request failed. message will display the reason for why the ad failed.","deprecated":"false","params":[{"name":"error","type":"text"}]}],"methods":[{"name":"LoadAd","description":"Loads a new ad.","deprecated":"false","params":[]},{"name":"ShowAd","description":"Shows an ad to the user.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularFirebaseAuthentication","name":"KodularFirebaseAuthentication","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Firebase Authentication","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/firebaseDB.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"CurrentUserFailed","description":"Triggers when the current Firebase User failed to load","deprecated":"false","params":[]},{"name":"CurrentUserSuccess","description":"Triggers when the current Firebase User was successfull loaded","deprecated":"false","params":[{"name":"userID","type":"text"},{"name":"name","type":"text"},{"name":"email","type":"text"},{"name":"phoneNumber","type":"text"},{"name":"profilePicture","type":"text"}]},{"name":"GotIdToken","description":"Triggers when the 'Get Id Token' got a result. If there was a error it returns a empty text.","deprecated":"false","params":[{"name":"idToken","type":"text"}]},{"name":"LoginFailed","description":"Triggers when the Firebase Login failed","deprecated":"false","params":[{"name":"provider","type":"text"}]},{"name":"LoginSuccess","description":"Triggers when the Firebase Login was successfull","deprecated":"false","params":[{"name":"provider","type":"text"},{"name":"userID","type":"text"},{"name":"name","type":"text"},{"name":"email","type":"text"},{"name":"phoneNumber","type":"text"},{"name":"profilePicture","type":"text"}]},{"name":"ResetPasswordEmailDone","description":"Triggers when the 'Send Reset Password Email' got a result. Returns true if the reset email was send.","deprecated":"false","params":[{"name":"success","type":"boolean"}]},{"name":"SignUpFailed","description":"Triggers when the Firebase Sign Up failed","deprecated":"false","params":[{"name":"provider","type":"text"},{"name":"message","type":"text"}]},{"name":"SignUpSuccess","description":"Triggers when the Firebase Sign Up failed","deprecated":"false","params":[{"name":"provider","type":"text"},{"name":"userID","type":"text"},{"name":"name","type":"text"},{"name":"email","type":"text"},{"name":"phoneNumber","type":"text"},{"name":"profilePicture","type":"text"}]},{"name":"UserUpdateFailed","description":"Triggers when updating of the user failed","deprecated":"false","params":[{"name":"type","type":"text"}]},{"name":"UserUpdateSuccess","description":"Triggers when updating of the user was successfull","deprecated":"false","params":[{"name":"type","type":"text"}]}],"methods":[{"name":"EmailPasswordLogin","description":"Try to let the user sign in with Email and Password","deprecated":"false","params":[{"name":"email","type":"text"},{"name":"password","type":"text"}]},{"name":"EmailPasswordSignUp","description":"Create a new user by Email and Password","deprecated":"false","params":[{"name":"email","type":"text"},{"name":"password","type":"text"}]},{"name":"GetCurrentUser","description":"Try to get the user that is signed in","deprecated":"false","params":[]},{"name":"GetIdToken","description":"Get the id token from the current user.","deprecated":"false","params":[]},{"name":"GoogleSignIn","description":"Try to let the user sign in with Google","deprecated":"false","params":[]},{"name":"IsSignedIn","description":"Check if the user is signed in","deprecated":"false","params":[],"returnType":"boolean"},{"name":"Logout","description":"Log the current user out","deprecated":"false","params":[]},{"name":"PhoneNumberSignIn","description":"Try to let the user sign in with a Phone Number","deprecated":"false","params":[{"name":"phoneNumber","type":"text"}]},{"name":"SendResetPasswordEmail","description":"Get the id token from the current user.","deprecated":"false","params":[{"name":"email","type":"text"}]},{"name":"UpdateEmail","description":"Try to update the email of the current user (The user must have been recently signed in)","deprecated":"false","params":[{"name":"email","type":"text"}]},{"name":"UpdatePhoneNumber","description":"Try to update the phone number of the current user (The user must have been recently signed in)","deprecated":"false","params":[{"name":"phoneNumber","type":"text"}]},{"name":"UpdateProfile","description":"Try to update the profile of the current user (The user must have been recently signed in)","deprecated":"false","params":[{"name":"name","type":"text"},{"name":"profilePicture","type":"text"}]},{"name":"VerifyEmail","description":"Verify the Email","deprecated":"false","params":[]},{"name":"VerifyPhoneCode","description":"Verify the SMS code","deprecated":"false","params":[{"name":"code","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.KodularFirebaseRemoteConfig","name":"KodularFirebaseRemoteConfig","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Firebase Remote Config","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/firebaseDB.png","androidMinSdk":19,"properties":[{"name":"CacheExpiration","editorType":"non_negative_integer","defaultValue":"43200","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CacheExpiration","description":"Time howlong the data keeps on the device in ms","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"FetchFailed","description":"Triggers when the fetch failed","deprecated":"false","params":[]},{"name":"FetchSuccess","description":"Triggers when the fetch was successfull","deprecated":"false","params":[]}],"methods":[{"name":"Fetch","description":"Fetches parameter values for your app","deprecated":"false","params":[]},{"name":"GetBoolean","description":"Gets a boolean value corresponding to the specified key","deprecated":"false","params":[{"name":"key","type":"text"}],"returnType":"boolean"},{"name":"GetNumber","description":"Gets a number value corresponding to the specified key","deprecated":"false","params":[{"name":"key","type":"text"}],"returnType":"number"},{"name":"GetText","description":"Gets a text value corresponding to the specified key","deprecated":"false","params":[{"name":"key","type":"text"}],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.KodularGooglePlayGames","name":"KodularGooglePlayGames","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Google Play Games component to connect to the Google Play Games services","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/gameClient.png","androidMinSdk":19,"properties":[{"name":"GooglePlayGamesAppId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"GooglePlayGamesAppId","description":"","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"GotPlayer","description":"Got player info","deprecated":"false","params":[{"name":"name","type":"text"},{"name":"id","type":"text"},{"name":"level","type":"number"},{"name":"xp","type":"number"}]},{"name":"SignedIn","description":"User signed in.","deprecated":"false","params":[{"name":"success","type":"boolean"}]},{"name":"SignedOut","description":"User signed out.","deprecated":"false","params":[]}],"methods":[{"name":"GetPlayer","description":"Get the current player","deprecated":"false","params":[]},{"name":"IncrementAchievement","description":"Increment an achievement.","deprecated":"false","params":[{"name":"achievementId","type":"text"},{"name":"by","type":"number"}]},{"name":"IsSignedIn","description":"Is user signed in?","deprecated":"false","params":[],"returnType":"boolean"},{"name":"ShowAchievements","description":"Shows Achievement.","deprecated":"false","params":[]},{"name":"ShowLeaderboard","description":"Shows Leaderboard.","deprecated":"false","params":[{"name":"leaderboardId","type":"text"}]},{"name":"SignIn","description":"Sign in the user. useLastAccount, true: use the last signed in account if possible, false: open a screen to choose for an account","deprecated":"false","params":[{"name":"useLastAccount","type":"boolean"}]},{"name":"SignOut","description":"Sign out the user.","deprecated":"false","params":[]},{"name":"SubmitScore","description":"Submits user score to leaderboard.","deprecated":"false","params":[{"name":"leaderboardId","type":"text"},{"name":"score","type":"number"}]},{"name":"UnlockAchievement","description":"Unlock an achievement.","deprecated":"false","params":[{"name":"achievementId","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.KodularImageUtilities","name":"KodularImageUtilities","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"write in ode","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/imageUtilities.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[{"name":"LoadImageAsync","description":"Load a new image from the given path to any component. You can load also images from the internet. Supported components: Image, Buttons, Layouts, Canvas.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"path","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.KodularInAppUpdate","name":"KodularInAppUpdate","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EXPERIMENTAL","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/in-app-update/","showOnPalette":"true","nonVisible":"true","iconName":"images/inappUpdate.png","androidMinSdk":21,"properties":[],"blockProperties":[{"name":"IsUpdateAvailable","description":"Returns true if a update is available for your app.","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"Initialized","description":"Use this event to check if updates from Google Play Store are available for your app.","deprecated":"false","params":[]},{"name":"UpdateCanceled","description":"Event will be invoked when the update was canceled.","deprecated":"false","params":[]},{"name":"UpdateDownloaded","description":"Event will be invoked when the update is downloaded.","deprecated":"false","params":[]},{"name":"UpdateDownloading","description":"Event will be invoked when the update is still in downloading progress.","deprecated":"false","params":[]},{"name":"UpdateFailed","description":"Event will be invoked when there was a update fail.","deprecated":"false","params":[]},{"name":"UpdateInstalled","description":"Event will be invoked when the update is installed.","deprecated":"false","params":[]},{"name":"UpdateInstalling","description":"Event will be invoked when the update is still in installing progress.","deprecated":"false","params":[]}],"methods":[{"name":"InstallFlexibleUpdateNow","description":"Use this block to install a flexible update after it was downloaded.","deprecated":"false","params":[]},{"name":"StartFlexibleUpdate","description":"Start the process for flexible in-app updates. The update will be done in the background. Your users can still use your app in this time. After the update download is done you must restart your app.","deprecated":"false","params":[]},{"name":"StartImmediateUpdate","description":"Start the process for immediate in-app updates. In this time your app user can NOT use your app. After the update download is done your app will be restarted automatically.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularJSON","name":"KodularJSON","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"This is a non-visible component to edit or get data from JSON","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/json.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"ErrorOccurred","description":"Triggers when there is a JSON error.","deprecated":"false","params":[{"name":"functionName","type":"text"},{"name":"errorMessage","type":"text"}]}],"methods":[{"name":"AddBooleanToJSONArray","description":"Add True or False to a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"trueOrFalse","type":"boolean"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddBooleanToJSONObject","description":"Add True or False to a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"trueOrFalse","type":"boolean"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddJSONArrayToJSONArray","description":"Add a JSON Array to a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"newJsonArray","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddJSONObjectToJSONArray","description":"Add a JSON Object to a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"jsonObject","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddJSONObjectToJSONObject","description":"Add a JSON Object to a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"newJsonObject","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddNumberToJSONArray","description":"Add a Number to a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"number","type":"number"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddNumberToJSONObject","description":"Add a Number to a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"number","type":"number"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddTextToJSONArray","description":"Add Text to a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"text","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"AddTextToJSONObject","description":"Add Text to a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"text","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"GetBooleanFromJSONAray","description":"Get a True or False from a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"index","type":"number"},{"name":"defaultVaue","type":"boolean"}],"returnType":"boolean"},{"name":"GetBooleanFromJSONObject","description":"Get a true or false value from a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"boolean"}],"returnType":"boolean"},{"name":"GetJSONArrayFromJSONObject","description":"Get a JSON Array from a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"GetJSONObjectFromJSONAray","description":"Get a JSON Object from a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"index","type":"number"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"GetJSONObjectFromJSONObject","description":"Get a JSON Object from a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"GetLengthOfJSONArray","description":"Get the length of a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"defaultVaue","type":"number"}],"returnType":"number"},{"name":"GetNumberFromJSONAray","description":"Get a Number from a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"index","type":"number"},{"name":"defaultVaue","type":"number"}],"returnType":"number"},{"name":"GetNumberFromJSONObject","description":"Get a number from a JSON Object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"number"}],"returnType":"number"},{"name":"GetTextFromJSONAray","description":"Get Text from a JSON Array.","deprecated":"false","params":[{"name":"jsonArray","type":"text"},{"name":"index","type":"number"},{"name":"defaultVaue","type":"text"}],"returnType":"text"},{"name":"GetTextFromJSONObject","description":"Get text from a JSON object.","deprecated":"false","params":[{"name":"jsonObject","type":"text"},{"name":"name","type":"text"},{"name":"defaultVaue","type":"text"}],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.KodularKeyguardManager","name":"KodularKeyguardManager","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for KodularKeyguardManager","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/keyguardManager.png","androidMinSdk":19,"properties":[{"name":"Description","editorType":"string","defaultValue":"Confirm your screen lock.","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"string","defaultValue":"Unlock","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Description","description":"Returns the keyguard manager description text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Title","description":"Returns the keyguard manager title text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"isDeviceLocked","description":"Returns whether the device is currently locked and requires a PIN, pattern or password to unlock. Works only for devices with Android 5.1+","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"isDeviceSecure","description":"Returns whether the device is secured with a PIN, pattern or password. Works only for devices with Android 6+","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"isKeyguardLocked","description":"Return whether the keyguard is currently locked.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"isKeyguardSecure","description":"Return whether the keyguard is secured by a PIN, pattern or password or a SIM card is currently locked.","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"OnAuthenticationRequest","description":"Event to detect a authentication request was called.","deprecated":"false","params":[{"name":"isAuthenticated","type":"boolean"}]},{"name":"OnDissmissKeyguardRequest","description":"Event to detect a dissmiss request keyguard was called.","deprecated":"false","params":[{"name":"succeeded","type":"boolean"},{"name":"cancelled","type":"boolean"}]}],"methods":[{"name":"RequestDismissKeyguard","description":"If the device is currently locked, requests the Keyguard to be dismissed. Works only for devices with Android 8+","deprecated":"false","params":[]},{"name":"ShowAuthenticationScreen","description":"Create the Confirm Credentials screen. You can customize the title and description. Or we will provide a generic one for you if you leave it empty. Works only for devices with Android 5+","deprecated":"false","params":[]},{"name":"ShowWhenLocked","description":"Specifies whether an Activity should be shown on top of the lock screen whenever the lockscreen is up and the activity is resumed. Normally an activity will be transitioned to the stopped state if it is started while the lockscreen is up, but with this flag set the activity will remain in the resumed state visible on-top of the lock screen.","deprecated":"false","params":[{"name":"enabled","type":"boolean"}]}]},{"type":"com.google.appinventor.components.runtime.KodularLottie","name":"KodularLottie","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ANIMATION","helpString":"A new component ","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/makeroidLottie.png","androidMinSdk":19,"properties":[{"name":"AnimationSpeed","editorType":"float","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"LoopAnimation","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Source","editorType":"asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AnimationSpeed","description":"Set the speed of the animation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"LoopAnimation","description":"Set to true if you want to loop the animation.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Source","description":"Set the file or url of the file you want to load.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AnimationEnd","description":"Triggers when the animation ends.","deprecated":"false","params":[]},{"name":"AnimationRepeat","description":"Triggers when the animation repeated.","deprecated":"false","params":[]},{"name":"AnimationStart","description":"Triggers when the animation starts.","deprecated":"false","params":[]},{"name":"Click","description":"Triggers when the components was clicked.","deprecated":"false","params":[]},{"name":"LongClick","description":"Triggers when the components was long clicked.","deprecated":"false","params":[]}],"methods":[{"name":"EndFrame","description":"Set the frame where you want the animation to end.","deprecated":"false","params":[{"name":"frame","type":"number"}]},{"name":"GetCurrentFrame","description":"Get the frame where the animation is now.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetFrameCount","description":"Get the count of frames in the animation.","deprecated":"false","params":[],"returnType":"number"},{"name":"IsAnimating","description":"Check if the Lottie component is animating.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"PauseAnimation","description":"Pause the animation on the Lottie component.","deprecated":"false","params":[]},{"name":"ResumeAnimation","description":"Resume the animation on the Lottie component.","deprecated":"false","params":[]},{"name":"SetCurrentFrame","description":"Set the frame where you want the animation to be now.","deprecated":"false","params":[{"name":"frame","type":"number"}]},{"name":"StartAnimation","description":"Start the animation on the Lottie component.","deprecated":"false","params":[]},{"name":"StartFrame","description":"Set the frame where you want the animation to start.","deprecated":"false","params":[{"name":"frame","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.KodularResourceUtilities","name":"KodularResourceUtilities","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for KodularResourceUtilities","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/resourceUtilities.png","androidMinSdk":19,"properties":[{"name":"ResourceFileFromAsset","editorType":"asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ResourceFileFromPath","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ResourceFileFromAsset","description":"Set the file which is used as resource file. The file must be stored in the assets folder.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ResourceFileFromPath","description":"Set the file which is used as resource file. The file path must be valid to any file you want to use. The path can be too a link to a url.","type":"text","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"GetStringContentByName","description":"This block is deprecated and will be removed soon. Use instead 'Get String From Asset' or 'Get String From Path'.","deprecated":"true","params":[{"name":"resourceName","type":"text"},{"name":"ifResourceNotFoundUse","type":"text"}],"returnType":"text"},{"name":"GetStringFromAsset","description":"Get the text from a asset resource file. Make sure you uploaded a file at 'Resource File From Asset' property.","deprecated":"false","params":[{"name":"resourceName","type":"text"},{"name":"ifResourceNotFoundUse","type":"text"}],"returnType":"text"},{"name":"GetStringFromPath","description":"Get the text from a path resource file. Make sure you added a file path at 'Resource File From Path' property. The path can be too a link to a url.","deprecated":"false","params":[{"name":"resourceName","type":"text"},{"name":"ifResourceNotFoundUse","type":"text"}],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.KodularStartAppBanner","name":"KodularStartAppBanner","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"Component for displaying banner ads from StartApp","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/kodularStartAppBanner.png","androidMinSdk":19,"properties":[{"name":"AppId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AppId","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AdClicked","description":"Indicates that the user has clicked on the banner ad.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"OnFailedToReceiveAd","description":"Called when an ad request failed to load.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]},{"name":"OnReceiveAd","description":"Called when an ad request succeeds.","deprecated":"false","params":[]}],"methods":[{"name":"LoadAd","description":"Load a new StartApp Banner ad.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularStartAppInterstitial","name":"KodularStartAppInterstitial","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"The component for showing Interstial Ads from StartApp","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/startAppInterstitial.png","androidMinSdk":19,"properties":[{"name":"AppId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AppId","description":"","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdClicked","description":"Indicates that the user has clicked on the interstial ad","deprecated":"false","params":[]},{"name":"AdDisplayed","description":"Indicates that an Ad is shown to the user.","deprecated":"false","params":[]},{"name":"AdFailedToLoad","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"AdFailedToShow","description":"Called when an an attempt was made to display the ad, but the ad was not ready to display.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]},{"name":"AdHidden","description":"Indicates that an Ad which was shown to the user is now hidden.","deprecated":"false","params":[]},{"name":"OnFailedToReceiveAd","description":"Called when an ad request failed to load.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]},{"name":"OnReceiveAd","description":"Called when an ad request failed to load. The message will display the error code and error message.","deprecated":"false","params":[]}],"methods":[{"name":"LoadAd","description":"Load a new StartApp Interstitial ad.","deprecated":"false","params":[]},{"name":"ShowInterstitialAd","description":"It will show the Interstitial Ad","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.KodularStateProgressBar","name":"KodularStateProgressBar","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"in ode","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/stateProgressBar.png","androidMinSdk":19,"properties":[{"name":"AnimationDuration","editorType":"integer","defaultValue":"250","propertyType":"common","editorArgs":[]},{"name":"AnimationToCurrentState","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"CurrentStateDescriptionColor","editorType":"color","defaultValue":"&HFF4CAF50","propertyType":"common","editorArgs":[]},{"name":"CurrentStateNumber","editorType":"state_number","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"DescriptionLinesSpacing","editorType":"non_negative_float","defaultValue":"5.0","propertyType":"common","editorArgs":[]},{"name":"DescriptionTopSpaceIncrementer","editorType":"non_negative_float","defaultValue":"10.0","propertyType":"common","editorArgs":[]},{"name":"ElementsFromString","editorType":"textArea","defaultValue":"Item 1, Item 2, Item 3, Item 4, Item 5","propertyType":"common","editorArgs":[]},{"name":"ForegroundColor","editorType":"color","defaultValue":"&HFF4CAF50","propertyType":"common","editorArgs":[]},{"name":"JustifyMultilineDescription","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"MaxDescriptionLine","editorType":"integer","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"MaxStateNumber","editorType":"state_number","defaultValue":"5","propertyType":"common","editorArgs":[]},{"name":"StateDescriptionColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"StateDescriptionSize","editorType":"non_negative_float","defaultValue":"18.0","propertyType":"common","editorArgs":[]},{"name":"StateDescriptionTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"StateDescriptionTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"StateLineThickness","editorType":"non_negative_float","defaultValue":"10.0","propertyType":"common","editorArgs":[]},{"name":"StateNumberBackgroundColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"StateNumberForegroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"StateNumberIsDescending","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"StateNumberTextSize","editorType":"non_negative_float","defaultValue":"20.0","propertyType":"common","editorArgs":[]},{"name":"StateNumberTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"StateNumberTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"StateProgressBarHeight","editorType":"non_negative_float","defaultValue":"40.0","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AllStatesCompleted","description":"If set to true all states are completed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"AnimationDuration","description":"Set the animation duration in milliseconds. Example: use 1000 for 1 second.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AnimationToCurrentState","description":"If set to true the states will use a animation when they changed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"Change the background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CurrentStateDescriptionColor","description":"Change the current state description color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"CurrentStateNumber","description":"Set the current state number.","type":"number","rw":"read-write","deprecated":"false"},{"name":"DescriptionLinesSpacing","description":"Set the description lines spacing.","type":"number","rw":"read-write","deprecated":"false"},{"name":"DescriptionTopSpaceIncrementer","description":"Set the description top space incrementer.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ElementsFromString","description":"The State Progress Bar elements specified as a string with the items separated by commas such as: Item 1, Item 2, Item 3, Item 4, Item 5. Each word before the comma will be an element in the list. You can add maximum 5 items.","type":"text","rw":"write-only","deprecated":"false"},{"name":"ForegroundColor","description":"Change the foreground color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"JustifyMultilineDescription","description":"If set to true justify multiline description is enabled.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MaxDescriptionLine","description":"Set the maximum description line.","type":"number","rw":"read-write","deprecated":"false"},{"name":"MaxStateNumber","description":"Set the maximum state number.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"StateDescriptionColor","description":"Change the state description color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StateDescriptionSize","description":"Set the state description size.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StateDescriptionTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"StateDescriptionTypefaceImport","description":"Set a custom font for state description typeface.","type":"text","rw":"write-only","deprecated":"false"},{"name":"StateLineThickness","description":"Set the state line thickness.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StateNumberBackgroundColor","description":"Change the state number background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StateNumberForegroundColor","description":"Change the state number foreground color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StateNumberIsDescending","description":"If set to true the state number is in descending order.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"StateNumberTextSize","description":"Set the state number text size.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StateNumberTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"StateNumberTypefaceImport","description":"Set a custom font for state number typeface.","type":"text","rw":"write-only","deprecated":"false"},{"name":"StateProgressBarHeight","description":"Set the state progress bar height.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"ErrorOccurred","description":"Event invoked when a error occurred.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]},{"name":"StateItemClick","description":"Event invoked when a state item was clicked.","deprecated":"false","params":[{"name":"stateNumber","type":"number"},{"name":"isCurrentState","type":"boolean"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.KodularUnityAds","name":"KodularUnityAds","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/unity-ads_ads/","showOnPalette":"true","nonVisible":"true","iconName":"images/unityads.png","androidMinSdk":19,"properties":[{"name":"GameID","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TestMode","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"GameID","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"TestMode","description":"If you want to test the component then that this property to true. Then you will receive test ads.","type":"boolean","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when an ad was closed.","deprecated":"false","params":[{"name":"wasSkipped","type":"boolean"},{"name":"wasCompleted","type":"boolean"}]},{"name":"AdOpened","description":"Called when an ad was opened.","deprecated":"false","params":[]},{"name":"AdStarted","description":"Called when an ad was started.","deprecated":"false","params":[]},{"name":"Error","description":"Called when an ad request failed. The message will display the reason for why the ad failed.","deprecated":"false","params":[{"name":"error","type":"text"}]}],"methods":[{"name":"IsReady","description":"Returns true if the ad is finished loading and can now be shown.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"ShowAd","description":"Shows an ad to the user.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Label","name":"Label","external":"false","version":"8","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"A Label displays a piece of text, which is specified through the Text property. Other properties, all of which can be set in the Designer or Blocks Editor, control the appearance and placement of the text.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00FFFFFF","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"HasMargins","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Marquee","editorType":"boolean","defaultValue":"false","propertyType":"advanced","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontSize","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this label will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"HasMargins","description":"Reports whether or not the label appears with margins. All four margins (left, right, top, bottom) are the same. This property has no effect in the designer, where labels are always shown with margins.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Marquee","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the label is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Text","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"Event to detect that a user has done a simple \"Click\".","deprecated":"false","params":[]},{"name":"LongClick","description":"Event to detect that a user has done a simple \"Long Click\".","deprecated":"false","params":[]}],"methods":[{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.LeadBolt","name":"LeadBolt","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"LeadBolt is a non-visible component allowing you to show Network and Rewarded ads.","helpUrl":"https://docs.kodular.io/components/monetization/leadbolt/","showOnPalette":"true","nonVisible":"true","iconName":"images/leadbolt.png","androidMinSdk":19,"properties":[{"name":"APIKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"CommissionInterstitialAdsNetwork","editorType":"commission_interstitial_ads_network","defaultValue":"unity","propertyType":"common","editorArgs":[]},{"name":"CommissionRewardedAdsNetwork","editorType":"commission_rewarded_ads_network","defaultValue":"unity","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"APIKey","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"CommissionInterstitialAdsNetwork","description":"Sets the ad network used to take the commission.","type":"text","rw":"write-only","deprecated":"false"},{"name":"CommissionRewardedAdsNetwork","description":"Sets the ad network used to take the commission.","type":"text","rw":"write-only","deprecated":"false"}],"events":[{"name":"LBCached","description":"Event triggered when ads are loaded","deprecated":"false","params":[{"name":"location","type":"text"}]},{"name":"LBClicked","description":"Event triggered when ads are clicked","deprecated":"false","params":[{"name":"location","type":"text"}]},{"name":"LBClosed","description":"Event triggered when ads are closed","deprecated":"false","params":[{"name":"location","type":"text"},{"name":"reward","type":"boolean"}]},{"name":"LBFailed","description":"Event triggered when ads are failed to load","deprecated":"false","params":[{"name":"location","type":"text"},{"name":"error","type":"text"},{"name":"isCache","type":"boolean"}]},{"name":"LBLoaded","description":"Event triggered when ads are shown","deprecated":"false","params":[{"name":"location","type":"text"}]}],"methods":[{"name":"IsNetworkAdReady","description":"Use this block after loading an ad to check whether it's ready to show.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"IsRewardedAdReady","description":"Use this block after loading an ad to check whether it's ready to show.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"LoadNetworkAd","description":"Use this block to load a Network ad.","deprecated":"false","params":[]},{"name":"LoadRewardedAd","description":"Use this block to load a Rewarded Video ad.","deprecated":"false","params":[]},{"name":"ShowNetworkAd","description":"Use this block after LoadNetworkAd to show the loaded ad.","deprecated":"false","params":[]},{"name":"ShowRewardedAd","description":"Use this block after LoadRewardedAd to show the loaded ad.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.LightSensor","name":"LightSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"Light Sensor to get the Illuminance from the Phone Sensor","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/lightSensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"Whether Sensor is Available","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"Whether Sensor should be Enabled","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Illuminance","description":"Returns the illuminance in lux. To return values the sensor must be enabled","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"LightChanged","description":"Event that fires when the illuminance is changed","deprecated":"false","params":[{"name":"illuminance","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.LineString","name":"LineString","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"LineString","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Description","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Draggable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"EnableInfobox","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"PointsFromString","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"text","defaultValue":"3","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Description","description":"The description displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Draggable","description":"The Draggable property is used to set whether or not the user can drag the Marker by long-pressing and then dragging the marker to a new location.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableInfobox","description":"Enable or disable the infobox window display when the user taps the feature.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Points","description":"A list of latitude and longitude pairs that represent the line segments of the polyline.","type":"list","rw":"read-write","deprecated":"false"},{"name":"PointsFromString","description":"","type":"text","rw":"write-only","deprecated":"false"},{"name":"StrokeColor","description":"The paint color used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeWidth","description":"The width of the stroke used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Title","description":"The title displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Type","description":"The type of the map feature.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"The user clicked on the feature.","deprecated":"false","params":[]},{"name":"Drag","description":"The user dragged the map feature.","deprecated":"false","params":[]},{"name":"LongClick","description":"The user long-pressed on the feature. This event will only trigger if Draggable is false.","deprecated":"false","params":[]},{"name":"StartDrag","description":"The user started a drag operation.","deprecated":"false","params":[]},{"name":"StopDrag","description":"The user stopped a drag operation.","deprecated":"false","params":[]}],"methods":[{"name":"DistanceToFeature","description":"Compute the distance, in meters, between two map features.","deprecated":"false","params":[{"name":"mapFeature","type":"component"},{"name":"centroids","type":"boolean"}],"returnType":"number"},{"name":"DistanceToPoint","description":"Compute the distance, in meters, between a map feature and a latitude, longitude point.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"},{"name":"centroid","type":"boolean"}],"returnType":"number"},{"name":"HideInfobox","description":"Hide the infobox if it is shown. If the infobox is not visible this function has no effect.","deprecated":"false","params":[]},{"name":"ShowInfobox","description":"Show the infobox for the feature. This will show the infobox even if","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.ListPicker","name":"ListPicker","external":"false","version":"16","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"

A button that, when clicked on, displays a list of texts for the user to choose among. The texts can be specified through the Designer or Blocks Editor by setting the ElementsFromString property to their string-separated concatenation (for example, choice 1, choice 2, choice 3) or by setting the Elements property to a List in the Blocks editor.

Setting property ShowFilterBar to true, will make the list searchable. Other properties affect the appearance of the button (TextAlignment, BackgroundColor, etc.) and whether it can be clicked on (Enabled).

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"ElementsFromString","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ItemBackgroundColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"ItemTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Selection","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"ShowFilterBar","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"StatusBarColor","editorType":"color","defaultValue":"&HFF2196F2","propertyType":"advanced","editorArgs":[]},{"name":"StatusBarVisible","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TitleBarColor","editorType":"color","defaultValue":"&HFF03A9F3","propertyType":"advanced","editorArgs":[]},{"name":"TitleVisible","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Elements","description":"","type":"list","rw":"read-write","deprecated":"false"},{"name":"ElementsFromString","description":"","type":"text","rw":"write-only","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ItemBackgroundColor","description":"The background color of the ListPicker items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ItemTextColor","description":"The text color of the ListPicker items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Selection","description":"The selected item. When directly changed by the programmer, the SelectionIndex property is also changed to the first item in the ListPicker with the given value. If the value does not appear, SelectionIndex will be set to 0.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SelectionIndex","description":"The index of the currently selected item, starting at 1. If no item is selected, the value will be 0. If an attempt is made to set this to a number less than 1 or greater than the number of items in the ListPicker, SelectionIndex will be set to 0, and Selection will be set to the empty text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowFilterBar","description":"Returns current state of ShowFilterBar indicating if Search Filter Bar will be displayed on ListPicker or not","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"StatusBarColor","description":"The StatusBarColor of the ListPicker.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StatusBarVisible","description":"Whether to show status bar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Title","description":"Optional title displayed at the top of the list of choices.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TitleBarColor","description":"The TitleBarColor of the ListPicker.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TitleVisible","description":"Whether to show title bar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Event to be raised after the picker activity returns its\n result and the properties have been filled in.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"BeforePicking","description":"Event to raise when the button of the component is clicked or the list is shown\n using the Open block. This event occurs before the list of items is displayed, and\n can be used to prepare the list before it is shown.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"Open","description":"Opens the picker, as though the user clicked on it.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.ListView","name":"ListView","external":"false","version":"12","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LISTVIEWS","helpString":"

This is a visible component that displays a list of text elements.
The list can be set using the ElementsFromString property or using the Elements block in the blocks editor.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/listView.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF607D8B","propertyType":"common","editorArgs":[]},{"name":"DividerColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"advanced","editorArgs":[]},{"name":"DividerHeight","editorType":"integer","defaultValue":"2","propertyType":"advanced","editorArgs":[]},{"name":"ElementsFromString","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"FilterBarHint","editorType":"string","defaultValue":"Search list...","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"ItemHeight","editorType":"integer","defaultValue":"10","propertyType":"common","editorArgs":[]},{"name":"LongClickEnabled","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"ScrollbarFading","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ScrollingSpeed","editorType":"non_negative_float","defaultValue":"1.0","propertyType":"common","editorArgs":[]},{"name":"SearchHintColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"SearchTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"SearchTextSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"Selection","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"SelectionColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"common","editorArgs":[]},{"name":"ShowFilterBar","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ShowScrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ShowSelectionColor","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"TextSize","editorType":"non_negative_float","defaultValue":"22","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"The color of the listview background.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"DividerColor","description":"Set the divider color","type":"number","rw":"read-write","deprecated":"false"},{"name":"DividerHeight","description":"Set the divider height.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Elements","description":"List of text elements to show in the ListView.","type":"list","rw":"read-write","deprecated":"false"},{"name":"ElementsFromString","description":"The ListView elements specified as a string with the items separated by commas such as: Cheese,Fruit,Bacon,Radish. Each word before the comma will be an element in the list.","type":"text","rw":"write-only","deprecated":"false"},{"name":"FilterBarHint","description":"The hint that will be displayed in the filter bar.","type":"text","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"Returns true if html is enabled.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"Determines the height of the list on the view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ItemHeight","description":"Set the listview item height. If you write 10, that means the item height will be 10 percent of the device screen height.","type":"number","rw":"read-write","deprecated":"false"},{"name":"LongClickEnabled","description":"If true long click on items are enabled, else long click is disabled.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ScrollToPosition","description":"Smoothly scroll to the specified position. The listview will scroll such that the indicated position is displayed.","type":"number","rw":"write-only","deprecated":"false"},{"name":"ScrollbarFading","description":"Return the state of ScrollbarFading. If ScrollbarFading is enabled returns true.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ScrollingSpeed","description":"The amount of friction applied to flings.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SearchHintColor","description":"The color of the search hint text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SearchTextColor","description":"The color of the search text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SearchTextSize","description":"The text size of the search text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Selection","description":"Set the selection to the ListView.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SelectionColor","description":"The color of the item when it is selected.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SelectionIndex","description":"The index of the currently selected item, starting at 1. If no item is selected, the value will be 0. If an attempt is made to set this to a number less than 1 or greater than the number of items in the ListView, SelectionIndex will be set to 0, and Selection will be set to the empty text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ShowFilterBar","description":"Sets visibility of ShowFilterBar. True will show the bar, False will hide it.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowScrollbar","description":"Return the state of ShowScrollbar. If ShowScrollbar is enabled returns true.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowSelectionColor","description":"Sets visibility of ShowSelectionColor. True will show the selection color on a selected item, False will hide it.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"TextAlignment","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"The text color of the listview items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextSize","description":"The text size of the listview items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"Determines the width of the list on the view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Simple event to be raised after the an element has been chosen in the list. The selected element is available in the Selection property.","deprecated":"false","params":[]},{"name":"LongClick","description":"Simple event to be raised after the an element has been chosen in the list via long click. The selected element is available in the Selection property.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.LocationSensor","name":"LocationSensor","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"Non-visible component providing location information, including longitude, latitude, altitude (if supported by the device), speed (if supported by the device), and address. This can also perform \"geocoding\", converting a given address (not necessarily the current one) to a latitude (with the LatitudeFromAddress method) and a longitude (with the LongitudeFromAddress method).

\n

In order to function, the component must have its Enabled property set to True, and the device must have location sensing enabled through wireless networks or GPS satellites (if outdoors).

\nLocation information might not be immediately available when an app starts. You'll have to wait a short time for a location provider to be found and used, or wait for the OnLocationChanged event","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/locationSensor.png","androidMinSdk":19,"properties":[{"name":"DistanceInterval","editorType":"sensor_dist_interval","defaultValue":"5","propertyType":"common","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"TimeInterval","editorType":"sensor_time_interval","defaultValue":"60000","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Accuracy","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Altitude","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"AvailableProviders","description":"","type":"list","rw":"read-only","deprecated":"false"},{"name":"CurrentAddress","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"DistanceInterval","description":"Determines the minimum distance interval, in meters, that the sensor will try to use for sending out location updates. For example, if this is set to 5, then the sensor will fire a LocationChanged event only after 5 meters have been traversed. However, the sensor does not guarantee that an update will be received at exactly the distance interval. It may take more than 5 meters to fire an event, for instance.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"HasAccuracy","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"HasAltitude","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"HasLongitudeLatitude","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Latitude","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Longitude","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"ProviderLocked","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ProviderName","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"TimeInterval","description":"Determines the minimum time interval, in milliseconds, that the sensor will try to use for sending out location updates. However, location updates will only be received when the location of the phone actually changes, and use of the specified time interval is not guaranteed. For example, if 1000 is used as the time interval, location updates will never be fired sooner than 1000ms, but they may be fired anytime after.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"LocationChanged","description":"Indicates that a new location has been detected.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"},{"name":"altitude","type":"number"},{"name":"speed","type":"number"}]},{"name":"StatusChanged","description":"Indicates that the status of the location provider service has changed, such as when a\n provider is lost or a new provider starts being used.","deprecated":"false","params":[{"name":"provider","type":"text"},{"name":"status","type":"text"}]}],"methods":[{"name":"LatitudeFromAddress","description":"Derives latitude of given address","deprecated":"false","params":[{"name":"locationName","type":"text"}],"returnType":"number"},{"name":"LongitudeFromAddress","description":"Derives longitude of given address","deprecated":"false","params":[{"name":"locationName","type":"text"}],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.MagneticFieldSensor","name":"MagneticFieldSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that measures the ambient geomagnetic field for all three physical axes (x, y, z) in Tesla https://en.wikipedia.org/wiki/Tesla_(unit).

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/magneticSensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AbsoluteStrength","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Available","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MaximumRange","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Xstrength","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Ystrength","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Zstrength","description":"","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"MagneticChanged","description":"Indicates that the magnetic sensor data has changed.","deprecated":"false","params":[{"name":"xStrength","type":"number"},{"name":"yStrength","type":"number"},{"name":"zStrength","type":"number"},{"name":"absoluteStrength","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.MakeroidAirtable","name":"MakeroidAirtable","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"AirTable Component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/airtable.png","androidMinSdk":19,"properties":[{"name":"ApiKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BaseId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TableName","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ViewName","editorType":"string","defaultValue":"Grid view","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApiKey","description":"Your apiKey","type":"text","rw":"read-write","deprecated":"false"},{"name":"BaseId","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"TableName","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"ViewName","description":"","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"CellChanged","description":"Triggered when changing cell data. ResponseCode is a number","deprecated":"false","params":[{"name":"responseCode","type":"number"}]},{"name":"DeletedRowByNumber","description":"Triggered when destroying a row. ResponseCode is a number","deprecated":"false","params":[{"name":"responseCode","type":"number"}]},{"name":"GotAllRows","description":"Triggered when getting all rows. ResponseCode is a number, ResponseContent is a string","deprecated":"false","params":[{"name":"responseCode","type":"number"},{"name":"responseContent","type":"text"},{"name":"totalRows","type":"number"}]},{"name":"GotCell","description":"Triggered when receiving cell data. ResponseCode is a number, the other ones are strings","deprecated":"false","params":[{"name":"responseCode","type":"number"},{"name":"value","type":"text"},{"name":"rowId","type":"text"},{"name":"createdTime","type":"text"}]},{"name":"GotColumn","description":"Triggered when receiving column data. ResponseCode is a number, the other ones are lists","deprecated":"false","params":[{"name":"responseCode","type":"number"},{"name":"values","type":"list"},{"name":"rowIds","type":"list"},{"name":"createdTimes","type":"list"}]},{"name":"GotRow","description":"Triggered when receiving row data. ResponseCode is a number, Values is a list","deprecated":"false","params":[{"name":"responseCode","type":"number"},{"name":"values","type":"list"}]},{"name":"RowCreated","description":"Triggered when creating a row. ResponseCode is a number","deprecated":"false","params":[{"name":"responseCode","type":"number"}]},{"name":"RowUpdated","description":"Triggered when updating a row. ResponseCode is a number","deprecated":"false","params":[{"name":"responseCode","type":"number"}]}],"methods":[{"name":"CreateRow","description":"Creates a new row","deprecated":"false","params":[{"name":"columnNames","type":"list"},{"name":"values","type":"list"}]},{"name":"DeleteRowNum","description":"Deletes the given row","deprecated":"false","params":[{"name":"rowNumber","type":"number"}]},{"name":"GetAllRows","description":"Gets all rows","deprecated":"false","params":[]},{"name":"GetCell","description":"Gets cell data","deprecated":"false","params":[{"name":"rowNumber","type":"number"},{"name":"columnName","type":"text"}]},{"name":"GetColumn","description":"Gets column data","deprecated":"false","params":[{"name":"columnName","type":"text"},{"name":"maxRecord","type":"number"}]},{"name":"GetRow","description":"Gets row data","deprecated":"false","params":[{"name":"rowNumber","type":"number"}]},{"name":"SetCell","description":"Changes the value of a cell","deprecated":"false","params":[{"name":"rowNumber","type":"number"},{"name":"columnName","type":"text"},{"name":"value","type":"text"}]},{"name":"UpdateRowByNum","description":"Updates the given row data","deprecated":"false","params":[{"name":"rowNumber","type":"number"},{"name":"columnNames","type":"list"},{"name":"values","type":"list"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidAnimationUtilities","name":"MakeroidAnimationUtilities","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for MakeroidAnimationUtilities","helpUrl":"https://docs.kodular.io/components/drawing-and-animation/animation-util/","showOnPalette":"true","nonVisible":"true","iconName":"images/animationUtil.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"Error","description":"This event is triggered when there was a error catched. Possible values for the error code and method: 1 'GetLeftPosition', 2 'GetTopPosition', 3 'GetRightPosition', 4 'GetBottomPosition', 5 'GetXPosition', 6 'GetYPosition', 7 'Rotation', 8 'BounceHorizontal', 9 'BounceVertical', 10 'OvershootHorizontal', 11 'OvershootVertical', 12 'Zoom'. The error message will return you the error reason.","deprecated":"false","params":[{"name":"errorCode","type":"number"},{"name":"errorMessage","type":"text"},{"name":"method","type":"text"}]}],"methods":[{"name":"BounceHorizontal","description":"Start a horizontal bounce animation. The duration is set in millisecond. Use as example for 1 second '1000'.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"startPosition","type":"number"},{"name":"endPosition","type":"number"},{"name":"duration","type":"number"}]},{"name":"BounceVertical","description":"Start a vertical bounce animation. The duration is set in millisecond. Use as example for 1 second '1000'.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"startPosition","type":"number"},{"name":"endPosition","type":"number"},{"name":"duration","type":"number"}]},{"name":"GetBottomPosition","description":"Returns the bottom position of a component. It will return '-9999' if there was a error.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"number"},{"name":"GetLeftPosition","description":"Returns the left position of a component. It will return '-9999' if there was a error.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"number"},{"name":"GetRightPosition","description":"Returns the right position of a component. It will return '-9999' if there was a error.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"number"},{"name":"GetTopPosition","description":"Returns the top position of a component. It will return '-9999' if there was a error.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"number"},{"name":"GetXPosition","description":"Returns the x position of a component. It will return '-9999' if there was a error.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"number"},{"name":"GetYPosition","description":"Returns the y position of a component. It will return '-9999' if there was a error.","deprecated":"false","params":[{"name":"component","type":"component"}],"returnType":"number"},{"name":"OvershootHorizontal","description":"Start a horizontal overshoot animation. If 'tension' is set to 0 you will not see a overshoot animation. Then you will see just a simple deceleration animation. The duration is set in millisecond. Use as example for 1 second '1000'.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"startPosition","type":"number"},{"name":"endPosition","type":"number"},{"name":"duration","type":"number"},{"name":"tension","type":"number"}]},{"name":"OvershootVertical","description":"Start a vertical overshoot animation. If 'tension' is set to 0 you will not see a overshoot animation. Then you will see just a simple deceleration animation. The duration is set in millisecond. Use as example for 1 second '1000'.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"startPosition","type":"number"},{"name":"endPosition","type":"number"},{"name":"duration","type":"number"},{"name":"tension","type":"number"}]},{"name":"Rotation","description":"Start a rotation on any component. Use as example in 'rotation Start Degrees' 0, in 'rotation End Degrees' 360 and in 'duration' 300 (millisecond) to run a clockwise, 360 degress animation. You can also use negative numbers for the degress.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"rotationStartDegrees","type":"number"},{"name":"rotationEndDegrees","type":"number"},{"name":"duration","type":"number"}]},{"name":"Zoom","description":"Start a zoom animation. 'tension' is set to 0 you will not see a overshoot animation. Then you will see just a simple deceleration animation. The duration is set in millisecond. Use as example for 1 second '1000'.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"startScale","type":"number"},{"name":"endScale","type":"number"},{"name":"duration","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidArduino","name":"MakeroidArduino","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"Arduino USB Serial Component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/arduino.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"AfterReadArduino","description":"Triggered after Read function","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"data","type":"text"}]}],"methods":[{"name":"BaudRate","description":"Default baud rate is 9600 bps","deprecated":"false","params":[{"name":"baudRate","type":"number"}]},{"name":"CloseArduino","description":"Closes Arduino Connection","deprecated":"false","params":[],"returnType":"boolean"},{"name":"InitializeArduino","description":"Initializes Arduino Connection","deprecated":"false","params":[]},{"name":"IsOpenedArduino","description":"Returns true when the Arduino connection is open","deprecated":"false","params":[],"returnType":"boolean"},{"name":"OpenArduino","description":"Opens Arduino Connection","deprecated":"false","params":[],"returnType":"boolean"},{"name":"ReadArduino","description":"Read from Serial","deprecated":"false","params":[]},{"name":"WriteArduino","description":"Write Data to Serial","deprecated":"false","params":[{"name":"writeDataArduino","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidBottomSheet","name":"MakeroidBottomSheet","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"VIEWS","helpString":"Component for MakeroidBottomSheet","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/bottomsheet.png","androidMinSdk":19,"properties":[{"name":"DimBackground","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ShowStatusBar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"DimBackground","description":"If set to true the user will see a dark background effect. Else the background have then no dark background effect.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowStatusBar","description":"The status bar is the topmost bar on the screen. This property reports whether the status bar is visible.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Closed","description":"Event to detect that the dialog was closed.","deprecated":"false","params":[]},{"name":"Opened","description":"Event to detect that the dialog was opened.","deprecated":"false","params":[]}],"methods":[{"name":"HideDialog","description":"Hide the bottom sheet dialog.","deprecated":"false","params":[]},{"name":"RegisterComponentAsDialog","description":"Register any component as example a 'button', that will be later your bottom sheet dialog.","deprecated":"false","params":[{"name":"component","type":"component"}]},{"name":"RegisterLayoutAsDialog","description":"Register any layout as example a 'horizontal arrangement', that will be later your bottom sheet dialog.","deprecated":"false","params":[{"name":"layout","type":"component"}]},{"name":"ShowDialog","description":"Show the bottom sheet dialog.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidCardView","name":"MakeroidCardView","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"write in ode","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingBottom","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingLeft","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingRight","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"ContentPaddingTop","editorType":"non_negative_integer","defaultValue":"8","propertyType":"common","editorArgs":[]},{"name":"CornerRadius","editorType":"non_negative_float","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"Elevation","editorType":"non_negative_float","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"FullClickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"non_negative_float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"BackgroundColor","description":"Specifies the card view background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ContentPaddingBottom","description":"Sets the bottom padding between the card view edges and the children of CardView.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ContentPaddingLeft","description":"Sets the left padding between the card view edges and the children of card view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ContentPaddingRight","description":"Sets the right padding between the card view edges and the children of card view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ContentPaddingTop","description":"Sets the top padding between the card view edges and the children of card view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"CornerRadius","description":"The corner radius from the card view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Elevation","description":"The card view elevation value.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FullClickable","description":"If set to true, the card will consume all click events. This means if you have added as example buttons into the card, then will the card consume the touch event on the button. And this means that the button would not be clickable, but only the entire card.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"StrokeColor","description":"The stroke color for the card view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeWidth","description":"The stroke width for the card view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the touch color also known as ripple color to the card view component.","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"Event to detect that a user has done a simple \"Click\".","deprecated":"false","params":[]},{"name":"TouchDown","description":"Event to detect that a user has done a simple touch down on the card.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Event to detect that a user has done a simple touch up on the card.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.MakeroidChromeCustomTabs","name":"MakeroidChromeCustomTabs","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EXPERIMENTAL","helpString":"Chrome Custom Tabs component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/chrome.png","androidMinSdk":19,"properties":[{"name":"DefaultShareMenuItem","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"InstantAppsEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ShowTitle","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ToolbarColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"Url","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"UrlBarHidingOnScroll","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"DefaultShareMenuItem","description":"Whether or not to add the default share menu item into the menu.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"InstantAppsEnabled","description":"Whether or not to enable instant apps.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowTitle","description":"Whether or not to show the title.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ToolbarColor","description":"Specifies the color of the toolbar.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Url","description":"The URL to load in the custom tab. The URL must start with 'http://' or 'https://'","type":"text","rw":"read-write","deprecated":"false"},{"name":"UrlBarHidingOnScroll","description":"Whether or not to hide the url bar on scrolling.","type":"boolean","rw":"invisible","deprecated":"false"}],"events":[],"methods":[{"name":"AddMenuItemOpenApp","description":"Use this block to add a menu item with the given title to open any app you want with the package name. The package name can be as example 'com.instagram.android' to open Instagram on the menu item click. If the app is not installed the menu item will not be added.","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"packageName","type":"text"}]},{"name":"AddMenuItemOpenPage","description":"Use this block to add a menu item with the given title and page link. The page can be as example 'https://www.instagram.com/kodular/'. If the user have Instagram installed,the page will then be opened in the official Instagram app. Else in the default browser.","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"page","type":"text"}]},{"name":"OpenCustomTab","description":"Use this block to open the custom tab.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidCircularProgress","name":"MakeroidCircularProgress","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Component for MakeroidCircularProgress","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Color","editorType":"color","defaultValue":"&HFF2196F2","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Color","description":"Change the indeterminate color of the circular progress bar.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[],"methods":[]},{"type":"com.google.appinventor.components.runtime.MakeroidCloudinary","name":"MakeroidCloudinary","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"Non-visible component that allows you to upload media to Cloudinary.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/cloudinary.png","androidMinSdk":19,"properties":[{"name":"APIKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"APISecret","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"CloudName","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"APIKey","description":"Your Cloudinary API key.","type":"text","rw":"read-write","deprecated":"false"},{"name":"APISecret","description":"Your Cloudinary API secret.","type":"text","rw":"read-write","deprecated":"false"},{"name":"CloudName","description":"Your Cloudinary cloud name.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"MediaUploaded","description":"Event raised after the Upload Media block has been used","deprecated":"false","params":[{"name":"responseContent","type":"text"},{"name":"url","type":"text"}]}],"methods":[{"name":"UploadMedia","description":"Uploads the specified media file to your Cloudinary media library.","deprecated":"false","params":[{"name":"path","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidDebuggableComponent","name":"MakeroidDebuggableComponent","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"This component makes the app debuggable","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/debug.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[]},{"type":"com.google.appinventor.components.runtime.MakeroidDynamicButton","name":"MakeroidDynamicButton","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"DYNAMIC","helpString":"A component to create dynamic buttons in Arrangments","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/button.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"ButtonClick","description":"Trigger when a Dynamic Button is clicked.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"ButtonLongClick","description":"Trigger when a Dynamic Button is long clicked.","deprecated":"false","params":[{"name":"id","type":"number"}]}],"methods":[{"name":"CreateButton","description":"Create a Dynamic Button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"}]},{"name":"DeleteButton","description":"This block is DEPRECATED! Please use instead the 'Delete Button' block without arrangement parameter.","deprecated":"true","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"}]},{"name":"DeleteButtonNew","description":"Delete a Dynamic Button.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"GetButtonById","description":"Returns the button referenced by its id.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"component"},{"name":"GetEnabled","description":"Get the Enabled status of a button.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"boolean"},{"name":"GetFontSize","description":"Get the Font Size of a button.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetHeight","description":"Get the Height of a button.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetText","description":"Get the Text of a button.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"text"},{"name":"GetWidth","description":"Get the Width of a button.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"SetBackgroundColor","description":"Update the Background Color of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"SetEnabled","description":"Update the Enabled status of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"enabled","type":"boolean"}]},{"name":"SetFont","description":"Update the Font of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"bold","type":"boolean"},{"name":"italic","type":"boolean"}]},{"name":"SetFontSize","description":"Update the Font Size of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"size","type":"number"}]},{"name":"SetHeight","description":"Update the Height of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"height","type":"number"}]},{"name":"SetText","description":"Update the Text of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"}]},{"name":"SetTextColor","description":"Update the Text Color of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"SetWidth","description":"Update the Width of a button.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidDynamicLabel","name":"MakeroidDynamicLabel","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"DYNAMIC","helpString":"A component to create dynamic labels in Arrangments","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/label.png","androidMinSdk":19,"properties":[],"blockProperties":[{"name":"AlignmentCenter","description":"Center alignment (1)","type":"number","rw":"read-only","deprecated":"false"},{"name":"AlignmentLeft","description":"Left alignment (0)","type":"number","rw":"read-only","deprecated":"false"},{"name":"AlignmentRight","description":"Right alignment (2)","type":"number","rw":"read-only","deprecated":"false"}],"events":[],"methods":[{"name":"CreateLabel","description":"Create a Dynamic Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"}]},{"name":"DeleteLabel","description":"Remove a label component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"GetFontSize","description":"Get the Font Size of a Label","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetHeight","description":"Get the Height of a Label","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetLabelById","description":"Returns the label referenced by its id.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"component"},{"name":"GetText","description":"Get the Text of a Label","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"text"},{"name":"GetWidth","description":"Get the Width of a Label","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"SetAlignment","description":"Update the Text Alignment of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"alignment","type":"number"}]},{"name":"SetBackgroundColor","description":"Update the Background Color of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"SetFont","description":"Update the Font of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"bold","type":"boolean"},{"name":"italic","type":"boolean"}]},{"name":"SetFontSize","description":"Update the Font Size of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"size","type":"number"}]},{"name":"SetHeight","description":"Update the Height of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"height","type":"number"}]},{"name":"SetText","description":"Update the Text of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"},{"name":"html","type":"boolean"}]},{"name":"SetTextColor","description":"Update the Text Color of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"SetWidth","description":"Update the Width of a Label","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidDynamicTextBox","name":"MakeroidDynamicTextBox","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"DYNAMIC","helpString":"A component to create dynamic textboxes in Arrangments","helpUrl":"https://docs.kodular.io/components/dynamic/dynamic-textbox/","showOnPalette":"true","nonVisible":"true","iconName":"images/textbox.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"OnTextChanged","description":"Trigger when the text of a Dynamic TextBox changes","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"}]}],"methods":[{"name":"CreateTextBox","description":"Create a Dynamic TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"arrangement","type":"component"}]},{"name":"DeleteTextBox","description":"Remove a textbox component with the given id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"GetButtonById","description":"Returns the button referenced by its id.","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"component"},{"name":"GetEnabled","description":"Get the Enabled status of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"boolean"},{"name":"GetFontSize","description":"Get the Font Size of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetHeight","description":"Get the Height of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"GetText","description":"Get the Text of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"text"},{"name":"GetWidth","description":"Get the Width of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"number"},{"name":"SetAlignment","description":"Update the Text Alignment of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"alignment","type":"number"}]},{"name":"SetBackgroundColor","description":"Update the Background Color of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"SetEnabled","description":"Update the Enabled status of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"enabled","type":"boolean"}]},{"name":"SetFont","description":"Update the Font of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"bold","type":"boolean"},{"name":"italic","type":"boolean"}]},{"name":"SetFontSize","description":"Update the Font Size of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"size","type":"number"}]},{"name":"SetHeight","description":"Update the Height of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"height","type":"number"}]},{"name":"SetText","description":"Update the Text of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"text","type":"text"}]},{"name":"SetTextColor","description":"Update the Text Color of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"color","type":"number"}]},{"name":"SetWidth","description":"Update the Width of a TextBox","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"width","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidExoPlayer","name":"MakeroidExoPlayer","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Component for MakeroidExoPlayer","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/exoplayer.png","androidMinSdk":19,"properties":[{"name":"Loop","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Source","editorType":"asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Volume","editorType":"non_negative_float","defaultValue":"50","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CurrentPosition","description":"Returns the current position of the source file that is playing in milliseconds.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Duration","description":"Returns the duration of the source file.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Loop","description":"If true, the player will loop when it plays.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Source","description":"Set the path to the audio source. Can be a asset file, from external card, or from a online stream.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Volume","description":"Sets the volume to a number between 0 and 100","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"Completed","description":"This event is invoked if the player state is completed.","deprecated":"false","params":[]},{"name":"GotMetaData","description":"This event returns meta data from the audio stream. Works for files but not for streams as example radio streams.","deprecated":"false","params":[{"name":"artist","type":"text"},{"name":"title","type":"text"},{"name":"album","type":"text"},{"name":"albumArtist","type":"text"},{"name":"track","type":"text"}]},{"name":"OnPlayerError","description":"This event returns the error reason for any problems.","deprecated":"false","params":[{"name":"errorMessage","type":"text"}]},{"name":"OtherPlayerStarted","description":"This event is signaled when another player has started (and the current player is playing or paused, but not stopped).","deprecated":"false","params":[]},{"name":"OtherPlayerStopped","description":"This event is signaled when another player has stopped (and the current player is playing or paused, but not stopped).","deprecated":"false","params":[]},{"name":"StatusChanged","description":"This event returns true or false for the respective simpleExoPlayer statuses.","deprecated":"false","params":[{"name":"isPlaying","type":"boolean"},{"name":"isPause","type":"boolean"},{"name":"isStopped","type":"boolean"},{"name":"isLoading","type":"boolean"}]}],"methods":[{"name":"Pause","description":"Pause the player.","deprecated":"false","params":[]},{"name":"Resume","description":"Resume the player.","deprecated":"false","params":[]},{"name":"SeekTo","description":"Set a position where the source file should start playing in milliseconds.","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"Start","description":"Start the player.","deprecated":"false","params":[]},{"name":"Stop","description":"Stop the player.","deprecated":"false","params":[]},{"name":"isLoading","description":"Returns true if the player is current loading.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isPause","description":"Returns true if the player is current in pause mode.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isPlaying","description":"Returns true if the player is current playing.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isStopped","description":"Returns true if the player is current stopped.","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.MakeroidFBBannerAd","name":"MakeroidFBBannerAd","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/facebook-banner/","showOnPalette":"true","nonVisible":"false","iconName":"images/facebook.png","androidMinSdk":19,"properties":[{"name":"PlacementID","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"PlacementID","description":"Set Placement ID","type":"text","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AdClicked","description":"Event triggered when ads are clicked","deprecated":"false","params":[]},{"name":"AdClosed","description":"Event triggered when ads are closed","deprecated":"false","params":[]},{"name":"AdLoaded","description":"Event triggered when ads are loaded","deprecated":"false","params":[]},{"name":"Error","description":"Event triggered when ads failed to load","deprecated":"false","params":[{"name":"error","type":"text"}]}],"methods":[{"name":"LoadAd","description":"Load Ad","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidFBInterstitialAd","name":"MakeroidFBInterstitialAd","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"ADVERTISING","helpString":"...in ode messages file","helpUrl":"https://docs.kodular.io/components/monetization/facebook-interstitial/","showOnPalette":"true","nonVisible":"true","iconName":"images/facebook.png","androidMinSdk":19,"properties":[{"name":"CommissionInterstitialAdsNetwork","editorType":"commission_interstitial_ads_network","defaultValue":"unity","propertyType":"common","editorArgs":[]},{"name":"PlacementID","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CommissionInterstitialAdsNetwork","description":"Sets the ad network used to take the commission.","type":"text","rw":"write-only","deprecated":"false"},{"name":"PlacementID","description":"","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"AdClosed","description":"Called when the user is about to return to the application after clicking on an ad","deprecated":"false","params":[]},{"name":"AdLoaded","description":"Called when an ad is received","deprecated":"false","params":[]},{"name":"Error","description":"Called when an ad request failed. message will display the reason for why the ad failed","deprecated":"false","params":[{"name":"error","type":"text"}]}],"methods":[{"name":"LoadAd","description":"Loads a new ad.","deprecated":"false","params":[]},{"name":"ShowAd","description":"Shows an ad to the user.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidFab","name":"MakeroidFab","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"write in ode","helpUrl":"https://docs.kodular.io/components/user-interface/floating-action-button/","showOnPalette":"true","nonVisible":"true","iconName":"images/fab.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF2196F2","propertyType":"common","editorArgs":[]},{"name":"CallFabClickOnTextMessageClick","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"CallFabLongClickOnTextMessageLongClick","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Elevation","editorType":"non_negative_float","defaultValue":"10","propertyType":"common","editorArgs":[]},{"name":"HideTextMessageOnTextClick","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"HideTextMessageOnTextLongClick","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Icon","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"IconColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"IconName","editorType":"string","defaultValue":"add","propertyType":"common","editorArgs":[]},{"name":"MarginBottom","editorType":"non_negative_integer","defaultValue":"16","propertyType":"common","editorArgs":[]},{"name":"MarginRight","editorType":"non_negative_integer","defaultValue":"16","propertyType":"common","editorArgs":[]},{"name":"RippleColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"advanced","editorArgs":[]},{"name":"RotationDuration","editorType":"integer","defaultValue":"300","propertyType":"advanced","editorArgs":[]},{"name":"RotationEndDegrees","editorType":"float","defaultValue":"360","propertyType":"advanced","editorArgs":[]},{"name":"RotationOnClick","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"RotationStartDegrees","editorType":"float","defaultValue":"0","propertyType":"advanced","editorArgs":[]},{"name":"ShowTextMessageOnLeftSide","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Size","editorType":"size","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextMessageBackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"advanced","editorArgs":[]},{"name":"TextMessageCornerRadius","editorType":"non_negative_float","defaultValue":"8","propertyType":"advanced","editorArgs":[]},{"name":"TextMessageText","editorType":"string","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"TextMessageTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the fab's background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"CallFabClickOnTextMessageClick","description":"If true the FAB click listener will be invoked on a text message click.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"CallFabLongClickOnTextMessageLongClick","description":"If true the FAB long click listener will be invoked on a text message long click.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Elevation","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HideTextMessageOnTextClick","description":"Hide the text message when clicking on the message","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"HideTextMessageOnTextLongClick","description":"Hide the text message after a long click on the text message.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Icon","description":"The path for the used image in FAB.","type":"text","rw":"read-write","deprecated":"false"},{"name":"IconColor","description":"The color for the material icon.","type":"number","rw":"read-write","deprecated":"false"},{"name":"IconName","description":"Use a material icon for the fab without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","type":"text","rw":"read-write","deprecated":"false"},{"name":"MarginBottom","description":"Returns the fab's bottom margin.","type":"number","rw":"read-write","deprecated":"false"},{"name":"MarginRight","description":"Returns right margin","type":"number","rw":"read-write","deprecated":"false"},{"name":"RippleColor","description":"Returns the fab's ripple color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"RotationDuration","description":"Returns the fab's rotation duration in milliseconds.","type":"number","rw":"read-write","deprecated":"false"},{"name":"RotationEndDegrees","description":"Returns the fab's rotation end degrees.","type":"number","rw":"read-write","deprecated":"false"},{"name":"RotationOnClick","description":"Returns true if the fab will rotate on click.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"RotationStartDegrees","description":"Returns the fab's rotation start degrees.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ShowTextMessageOnLeftSide","description":"Set the text message to the left side of the floating button. If false the text will be on the right side.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Size","description":"Sets the size of the button. Use '1' for normal, '2' for mini or '3' for auto size based on the screen size.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextMessageBackgroundColor","description":"Set the text message background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextMessageCornerRadius","description":"Set the text message corner radius.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextMessageText","description":"Set the text message.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextMessageTextColor","description":"Set the text message color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Returns true if the fab button is visible.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"Event to detect that the fab button was clicked.","deprecated":"false","params":[]},{"name":"LongClick","description":"Event to detect that the fab button was long clicked.","deprecated":"false","params":[]}],"methods":[{"name":"Hide","description":"Hides the fab button.","deprecated":"false","params":[]},{"name":"HideTextMessage","description":"Hides text message.","deprecated":"false","params":[]},{"name":"Show","description":"Shows the fab button.","deprecated":"false","params":[]},{"name":"ShowTextMessage","description":"Show a new text message near to the fab with the given properties. You can do the changes with the properties in the advanded category.","deprecated":"false","params":[]},{"name":"StartRotationAnimation","description":"Starts a rotation animation. You can use the 'Rotation Duration','Rotation Start Degrees' and 'Rotation End Degrees' to define the animation. This block will work too if the 'Rotation On Click' property is disabled.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidFtp","name":"MakeroidFtp","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"write in ode","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/ftp.png","androidMinSdk":19,"properties":[{"name":"FtpServer","editorType":"string","defaultValue":"ftp.example.org","propertyType":"common","editorArgs":[]},{"name":"Password","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Port","editorType":"integer","defaultValue":"21","propertyType":"common","editorArgs":[]},{"name":"Username","editorType":"string","defaultValue":"Your Username","propertyType":"common","editorArgs":[]},{"name":"WorkingDirectory","editorType":"string","defaultValue":"/","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"FtpServer","description":"Set the ftp server url.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Password","description":"Set the password to login into the ftp server.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Port","description":"Set the ftp port number.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Username","description":"Set the username to login into the ftp server.","type":"text","rw":"read-write","deprecated":"false"},{"name":"WorkingDirectory","description":"Set the ftp working dir.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"ConnectError","description":"This event returns the reason if a try to connect was not successful.","deprecated":"false","params":[{"name":"error","type":"text"}]},{"name":"ConnectionStatus","description":"This event returns the status of the connection. If it is connect it will return true, else false.","deprecated":"false","params":[{"name":"isConnected","type":"boolean"}]},{"name":"DisconnectError","description":"This event returns the reason if a try to disconnect was not successful.","deprecated":"false","params":[{"name":"error","type":"text"}]},{"name":"DownloadDone","description":"This event is invoked when the download is finished.","deprecated":"false","params":[]},{"name":"DownloadError","description":"This event returns the reason if a download was not successful.","deprecated":"false","params":[{"name":"error","type":"text"}]},{"name":"UploadDone","description":"This event is invoked when the upload is finished.","deprecated":"false","params":[]},{"name":"UploadError","description":"This event returns the reason if a upload was not successful.","deprecated":"false","params":[{"name":"error","type":"text"}]}],"methods":[{"name":"Connect","description":"Start the connection to the ftp server.","deprecated":"false","params":[]},{"name":"Disconnect","description":"Disconnect the current connection.","deprecated":"false","params":[]},{"name":"DownloadFile","description":"Start downloading a file.","deprecated":"false","params":[{"name":"remoteFilepath","type":"text"},{"name":"destination","type":"text"}]},{"name":"GetListOfFiles","description":"Get a list of files in a directory. Returns a empty list if a error occurs.","deprecated":"false","params":[{"name":"dir","type":"text"}],"returnType":"list"},{"name":"UploadFile","description":"Start uploading a file.","deprecated":"false","params":[{"name":"filePath","type":"text"},{"name":"newName","type":"text"}]},{"name":"deleteDir","description":"Delete a directory on the ftp server.","deprecated":"false","params":[{"name":"dir","type":"text"}]},{"name":"makeDir","description":"Make/create a directory on the ftp server.","deprecated":"false","params":[{"name":"dir","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidInstantAccess","name":"MakeroidInstantAccess","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"Component for MakeroidInstantAccess","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/instantAccess.png","androidMinSdk":19,"properties":[{"name":"ClientID","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ClientSecret","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ClientID","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"ClientSecret","description":"","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"OnRequestSent","description":"A event to detect that the login request was sent.","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"data","type":"text"},{"name":"message","type":"text"}]},{"name":"OnStatusReceived","description":"A event to detect that the status was received.","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"data","type":"text"},{"name":"message","type":"text"}]}],"methods":[{"name":"CheckStatus","description":"Check the current status with a given username.","deprecated":"false","params":[{"name":"user","type":"text"}]},{"name":"ClientID","description":"Returns the client id.","deprecated":"false","params":[],"returnType":"text"},{"name":"ClientSecret","description":"Returns the client secret.","deprecated":"false","params":[],"returnType":"text"},{"name":"Request","description":"Start a request to user with the instant access login service.","deprecated":"false","params":[{"name":"user","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidLinearProgressbar","name":"MakeroidLinearProgressbar","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Component for MakeroidLinearProgressbar","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Indeterminate","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"IndeterminateColor","editorType":"color","defaultValue":"&HFF2196F2","propertyType":"common","editorArgs":[]},{"name":"Maximum","editorType":"integer","defaultValue":"100","propertyType":"common","editorArgs":[]},{"name":"Minimum","editorType":"integer","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ProgressColor","editorType":"color","defaultValue":"&HFF2196F2","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Indeterminate","description":"Change the indeterminate mode for this progress bar. In indeterminate mode, the progress is ignored and the progress bar shows an infinite animation instead.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"IndeterminateColor","description":"Change the indeterminate color of the progress bar.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Maximum","description":"Set the upper range of the progress bar max.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Minimum","description":"Set the lower range of the progress bar to min. This function works only for devices with API >= 26","type":"number","rw":"read-write","deprecated":"false"},{"name":"Progress","description":"Sets the current progress to the specified value. Does not do anything if the progress bar is in indeterminate mode.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ProgressColor","description":"Change the progress color of the progress bar.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"ProgressChanged","description":"Event that indicates that the progress of the progress bar has been changed. Returns the current progress value. If \"Indeterminate\" is set to true, then it returns \"0\".","deprecated":"false","params":[{"name":"progress","type":"number"}]}],"methods":[{"name":"IncrementProgressBy","description":"Increase the progress bar's progress by the specified amount.","deprecated":"false","params":[{"name":"value","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidListViewImageText","name":"MakeroidListViewImageText","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LISTVIEWS","helpString":"This is a visible component that displays a list of a image and two labels","helpUrl":"https://docs.kodular.io/components/user-interface/list-view-image-and-text/","showOnPalette":"true","nonVisible":"false","iconName":"images/listView.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00FFFFFF","propertyType":"common","editorArgs":[]},{"name":"DividerColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"ImageSide","editorType":"left_right","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"ItemSize","editorType":"list_item_size","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"SubtitleBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SubtitleColor","editorType":"color","defaultValue":"&HFF757575","propertyType":"common","editorArgs":[]},{"name":"SubtitleFontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"SubtitleFontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"SubtitleHTML","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"SubtitleItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"TitleBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"TitleColor","editorType":"color","defaultValue":"&HFF212121","propertyType":"common","editorArgs":[]},{"name":"TitleFontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TitleFontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"TitleHTML","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"TitleItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Set the background color of the listview","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"DividerColor","description":"Set the divider color of the listview","type":"number","rw":"read-write","deprecated":"false"},{"name":"Height","description":"Determines the height of the list on the view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ImageSide","description":"Set the side of the image.\nSet it to 1 for Left side and 2 for Right side","type":"number","rw":"read-write","deprecated":"false"},{"name":"ItemSize","description":"Set ListItem Size.\nSet it to 1 for Normal size, 2 for Small size and 3 for Big size.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SubtitleBold","description":"Whether the subtitle should be in bold text","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SubtitleColor","description":"Changed the color of the subtitle text","type":"number","rw":"read-write","deprecated":"false"},{"name":"SubtitleFontTypeface","description":"Change the Typeface of the Subtitle","type":"number","rw":"invisible","deprecated":"false"},{"name":"SubtitleFontTypefaceImport","description":"Set a custom title font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"SubtitleHTML","description":"If true, then the subtitle will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SubtitleItalic","description":"Whether the subtitle should be in italic text","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TitleBold","description":"Whether the title should be in bold text","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TitleColor","description":"Changed the color of the title text","type":"number","rw":"read-write","deprecated":"false"},{"name":"TitleFontTypeface","description":"Change the Typeface of the Title","type":"number","rw":"invisible","deprecated":"false"},{"name":"TitleFontTypefaceImport","description":"Set a custom title font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"TitleHTML","description":"If true, then the title will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TitleItalic","description":"Whether the title should be in italic text","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"Determines the width of the list on the view.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"Triggers when the user clicks on a item in the list","deprecated":"false","params":[{"name":"position","type":"number"},{"name":"title","type":"text"},{"name":"subtitle","type":"text"},{"name":"image","type":"text"}]},{"name":"LongClick","description":"Triggers when the user long clicks on a item in the list","deprecated":"false","params":[{"name":"position","type":"number"},{"name":"title","type":"text"},{"name":"subtitle","type":"text"},{"name":"image","type":"text"}]}],"methods":[{"name":"AddItem","description":"Add a item to the list","deprecated":"false","params":[{"name":"image","type":"text"},{"name":"title","type":"text"},{"name":"subtitle","type":"text"}]},{"name":"AddItemFromList","description":"Add a item to the list","deprecated":"false","params":[{"name":"list","type":"list"}]},{"name":"ClearList","description":"Remove all the items from the list","deprecated":"false","params":[]},{"name":"RemoveItem","description":"Remove a item from the list","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"UpdateItem","description":"Update a item of the list","deprecated":"false","params":[{"name":"position","type":"number"},{"name":"image","type":"text"},{"name":"title","type":"text"},{"name":"subtitle","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidNotification","name":"MakeroidNotification","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EXPERIMENTAL","helpString":"A component to send a notification to the users device","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/notification.png","androidMinSdk":19,"properties":[{"name":"Priority","editorType":"notification_priority","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Visiblity","editorType":"notification_visibility","defaultValue":"1","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Priority","description":"Set the priority level. 1 = \"Default\", 2 = \"high\", 3 = \"low\", 4 = \"max\", 5 = \"min\"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visiblity","description":"Set the visibility property. 1 = \"public\", 2 = \"private\", 3 = \"secret\".","type":"number","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"AreNotificationsEnabled","description":"Check wether the app can send Notifications","deprecated":"false","params":[],"returnType":"boolean"},{"name":"BigPictureNotification","description":"Send a normal notification","deprecated":"false","params":[{"name":"notificationID","type":"number"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"bigPicture","type":"text"},{"name":"startValue","type":"text"},{"name":"removeOnClick","type":"boolean"}]},{"name":"CancelAll","description":"Cancel all Notifications","deprecated":"false","params":[]},{"name":"CancelNotification","description":"Cancel a Notification with an id","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"NormalNotification","description":"Send a normal notification","deprecated":"false","params":[{"name":"notificationID","type":"number"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"startValue","type":"text"},{"name":"removeOnClick","type":"boolean"}]},{"name":"SimpleNotification","description":"Send a simple notification","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"message","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidShell","name":"MakeroidShell","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Checks Root status and executes Shell command","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/shell.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"GotOutput","description":"Read output after executing shell command","deprecated":"false","params":[{"name":"out","type":"text"}]}],"methods":[{"name":"CheckForSuperUserAPK","description":"Returns TRUE if one of 6 known root packages or varients is installed. The name of the package is not returned, so the user does not know which package name to change. Developed by Cian.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"Execute","description":"Executes shell commands. To get output, use \"GotOutput\" event block.","deprecated":"false","params":[{"name":"in","type":"text"}]},{"name":"IsRooted","description":"Returns true if Phone is Rooted","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isSystemUser","description":"This returns TRUE if the system user is running the application, and could be a sign of a rooted device. Developed by Cian.","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.MakeroidShortcutBadge","name":"MakeroidShortcutBadge","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"EXPERIMENTAL","helpString":"Shortcut Badge component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/notification.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[{"name":"ApplyCount","description":"Use this block to apply a notification badge count.","deprecated":"false","params":[{"name":"count","type":"number"}]},{"name":"Count","description":"Use this block to return the notification count.","deprecated":"false","params":[],"returnType":"number"},{"name":"RemoveCount","description":"Use this block to remove the notification badge count.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidSideMenuLayout","name":"MakeroidSideMenuLayout","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NAVIGATION","helpString":"Display a real Navigation Menu in the Side Menu","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/makeroidSideMenuLayout.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"CircleHeaderPicture","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"DisabledColor","editorType":"color","defaultValue":"&HFF9E9E9E","propertyType":"common","editorArgs":[]},{"name":"EnabledColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"HeaderBackgroundImage","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HeaderPicture","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HeaderSubtitle","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HeaderTitle","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"SelectedColor","editorType":"color","defaultValue":"&HFFE81E63","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Set the background color of the Sidemenu Layout","type":"number","rw":"read-write","deprecated":"false"},{"name":"CircleHeaderPicture","description":"Sets (or not) the header picture to use a circle shape","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"DisabledColor","description":"Sets the color of the disabled elements of the SideMenu","type":"number","rw":"read-write","deprecated":"false"},{"name":"EnabledColor","description":"Sets the color of the enabled elements of the SideMenu","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeaderBackgroundImage","description":"Sets the Header Background Picture","type":"text","rw":"read-write","deprecated":"false"},{"name":"HeaderPicture","description":"Sets the Header Picture of the Side Menu","type":"text","rw":"read-write","deprecated":"false"},{"name":"HeaderSubtitle","description":"Sets the Header Subtitle","type":"text","rw":"read-write","deprecated":"false"},{"name":"HeaderTitle","description":"Sets the Header Title","type":"text","rw":"read-write","deprecated":"false"},{"name":"SelectedColor","description":"Sets the color of the selected element of the SideMenu","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"OnMenuItemClick","description":"Triggers when the user clicks on an item of the Navigation Menu","deprecated":"false","params":[{"name":"title","type":"text"}]}],"methods":[{"name":"AddItem","description":"Add an item to the Navigation Menu","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"image","type":"text"},{"name":"enabled","type":"boolean"},{"name":"checked","type":"boolean"},{"name":"group","type":"number"}]},{"name":"RemoveItem","description":"Remove an item from the Navigation Menu","deprecated":"false","params":[{"name":"title","type":"text"}]},{"name":"UpdateItem","description":"Update an item of the Navigation Menu","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"newTitle","type":"text"},{"name":"image","type":"text"},{"name":"enabled","type":"boolean"},{"name":"checked","type":"boolean"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidSnackbar","name":"MakeroidSnackbar","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Snackbar","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/snackbar.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"ButtonTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Duration","editorType":"snackbar_duration","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Specifies the snackbar's background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ButtonTextColor","description":"Specifies the text color for action button.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Duration","description":"specifies the length of time that the Snackbar is shown - either \"short\" or \"long\".","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"User clicked on the action button.","deprecated":"false","params":[]},{"name":"OnDismissed","description":"Event to detect the snackbar was dissmissed. Possiple results can be: \"UNDEFINED\", \"ACTION\", \"CONSECUTIVE\", \"MANUAL\", \"SWIPE\" or \"TIMEOUT\". You can find more information at: https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback.html","deprecated":"false","params":[{"name":"event","type":"text"}]},{"name":"OnShown","description":"Event to detect the snackbar is shown.","deprecated":"false","params":[]}],"methods":[{"name":"Dismiss","description":"Dismiss the snackbar.","deprecated":"false","params":[]},{"name":"IsShown","description":"Returns true whether this snackbar is currently being shown.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"Show","description":"Show Snackbar (message supports HTML formatting)","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShowWithButton","description":"Show Snackbar with action button (message supports HTML formatting)","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"buttonText","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidSpotlight","name":"MakeroidSpotlight","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Spotlight component","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/spotlight.png","androidMinSdk":19,"properties":[{"name":"CirclePadding","editorType":"integer","defaultValue":"20","propertyType":"common","editorArgs":[]},{"name":"Component","editorType":"component","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"DismissOnBackPress","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"DismissOnTouch","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"EnableDismissAfterShown","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"EnableRevealAnimation","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FadeinTextDuration","editorType":"integer","defaultValue":"400","propertyType":"common","editorArgs":[]},{"name":"FontHeadingTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontHeadingTypefaceImport","editorType":"asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"FontSubheadingTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontSubheadingTypefaceImport","editorType":"asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HeadingText","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HeadingTextColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"HeadingTextSize","editorType":"integer","defaultValue":"32","propertyType":"common","editorArgs":[]},{"name":"IntroAnimationDuration","editorType":"integer","defaultValue":"400","propertyType":"common","editorArgs":[]},{"name":"LineAndArcColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"LineAnimationDuration","editorType":"integer","defaultValue":"400","propertyType":"common","editorArgs":[]},{"name":"MaskColor","editorType":"color","defaultValue":"&Hbe000000","propertyType":"common","editorArgs":[]},{"name":"ShowTargetArc","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"SubheadingText","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"SubheadingTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"SubheadingTextSize","editorType":"integer","defaultValue":"16","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CirclePadding","description":"The padding for the circle spotlight. Default is '20'.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Component","description":"The component to show in the spotlight.","type":"component","rw":"read-write","deprecated":"false"},{"name":"DismissOnBackPress","description":"Dismiss the spotlight on back pressed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"DismissOnTouch","description":"Dismiss the spotlight on touch","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableDismissAfterShown","description":"Dismiss spotlight on touch after spotlight is completely visible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableRevealAnimation","description":"Enable reveal animation (Only for Lollipop and above).","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FadeinTextDuration","description":"Fade in animation duration for spotlight text (Heading and Sub-heading).","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontHeadingTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontHeadingTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"FontSubheadingTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontSubheadingTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HeadingText","description":"The Spotlight heading text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"HeadingTextColor","description":"The Spotlight heading text color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeadingTextSize","description":"The Spotlight heading size.","type":"number","rw":"read-write","deprecated":"false"},{"name":"IntroAnimationDuration","description":"Intro animation duration (For Reveal and Fadein).","type":"number","rw":"read-write","deprecated":"false"},{"name":"LineAndArcColor","description":"The Spotlight line and arc color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"LineAnimationDuration","description":"Line animation duration","type":"number","rw":"read-write","deprecated":"false"},{"name":"MaskColor","description":"The Spotlight mask color","type":"number","rw":"read-write","deprecated":"false"},{"name":"ShowTargetArc","description":"If set to true you will see a half round circle below the spotlight circle.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SubheadingText","description":"The Spotlight subheading text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SubheadingTextColor","description":"The Spotlight subheading text color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SubheadingTextSize","description":"The Spotlight subheading text size.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"Clicked","description":"Event triggered when the spotlight is clicked.","deprecated":"false","params":[]}],"methods":[{"name":"ShowSpotlight","description":"Use this block to show the spotlight.","deprecated":"false","params":[]},{"name":"ShowSpotlightOnFAB","description":"Use this block to show the spotlight on a floating action button.","deprecated":"false","params":[{"name":"floatingActionButton","type":"component"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidSwipeRefreshLayout","name":"MakeroidSwipeRefreshLayout","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"Component for MakeroidSwipeRefreshLayout","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"LargeSize","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"NestedScrolling","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ProgressBackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"A number that encodes how the contents of the arrangement are aligned vertically. The choices are: 1 = aligned at the top, 2 = vertically centered, 3 = aligned at the bottom. Alignment has no effect if the arrangement's height is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"The background color of the swipe refresh layout.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set to true the swpipe refresh layout is enabled.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"IsRefreshing","description":"Returns true if is actively showing refresh progress.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"LargeSize","description":"If enabled is set to true the pull size will be large, else the size is default.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"NestedScrolling","description":"Enable or disable nested scrolling for this view.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ProgressAnimationColors","description":"Set the colors used in the progress animation. Use a 'make a list' block. The first color on the list is than the first spinner color.","type":"list","rw":"read-write","deprecated":"false"},{"name":"ProgressBackgroundColor","description":"Change the pull to refresh background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Refreshing","description":"Notify the widget that refresh state has changed. Do not call this when refresh is triggered by a swipe gesture.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"OnRefresh","description":"Event to detect when a refresh is triggered via the swipe gesture.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.MakeroidTabLayout","name":"MakeroidTabLayout","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NAVIGATION","helpString":"Component for MakeroidTabLayout","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/tabLayout.png","androidMinSdk":19,"properties":[{"name":"TabsActiveTextColor","editorType":"color","defaultValue":"&HFFFF4081","propertyType":"common","editorArgs":[]},{"name":"TabsBackgroundColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"TabsIndicatorColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TabsMode","editorType":"tabs_mode","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TabsTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"GetCurrentTab","description":"Get the current selected tab.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SelectTab","description":"Select a tab which is then the active tab.","type":"number","rw":"write-only","deprecated":"false"},{"name":"TabsActiveTextColor","description":"Specifies the tab's text color for active tab's.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsBackgroundColor","description":"Specifies the tab's background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsIndicatorColor","description":"Specifies the tab's indicator color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsMode","description":"Choose the mode used for the tab's. If no mode is specified, 'Scrollable' is taken as 'Default'. Use '0' for scrollable and '1' for fixed.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsTextColor","description":"Specifies the tab's text color for not selected tab's.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"TabItemSelected","description":"The event returns the name or the position of the selected tab.","deprecated":"false","params":[{"name":"tab","type":"text"},{"name":"position","type":"number"}]}],"methods":[{"name":"AddNewTab","description":"Add a new tab to the tab layout. If you don't want a icon then let it empty.","deprecated":"false","params":[{"name":"name","type":"text"},{"name":"icon","type":"text"}]},{"name":"AddNewTabAt","description":"Add a new tab to the tab layout at the given position. If you don't want a icon then let it empty.","deprecated":"false","params":[{"name":"name","type":"text"},{"name":"icon","type":"text"},{"name":"position","type":"number"}]},{"name":"CountTabs","description":"Returns the number of current added tab's.","deprecated":"false","params":[],"returnType":"number"},{"name":"RemoveAllTabs","description":"Remove all tab's from tab layout.","deprecated":"false","params":[]},{"name":"RemoveTabAt","description":"Removes a before added tab. If you want to delete the first tab then use as position '1'.","deprecated":"false","params":[{"name":"position","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidViewFlipper","name":"MakeroidViewFlipper","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"VIEWS","helpString":"Component for MakeroidViewFlipper","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/viewFlipper.png","androidMinSdk":19,"properties":[{"name":"AddImagesFromString","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"FlipInterval","editorType":"non_negative_integer","defaultValue":"1000","propertyType":"common","editorArgs":[]},{"name":"Swipeable","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AddImagesFromString","description":"Use this function if you try to create a image view flipper. Use images separated by commas such as: Image1.png,Image2.png,Image3.png.","type":"text","rw":"write-only","deprecated":"false"},{"name":"BackgroundColor","description":"Specifies the view flippers background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FlipInterval","description":"How long to wait before flipping to the next view in milliseconds.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Swipeable","description":"If set to true you can swipe with your fingers through views.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[],"methods":[{"name":"AddComponentToView","description":"Add a component to the view flipper. The first added component will be the first visible component on the screen.","deprecated":"false","params":[{"name":"component","type":"component"}]},{"name":"AddImagesToView","description":"Use this function if you try to create a image view flipper. Please use a 'make a list' block.","deprecated":"false","params":[{"name":"images","type":"list"}]},{"name":"ShowNext","description":"Show the next view.","deprecated":"false","params":[]},{"name":"ShowPrevious","description":"Show the previous view.","deprecated":"false","params":[]},{"name":"StartFlipping","description":"Start a timer to cycle through child views.","deprecated":"false","params":[]},{"name":"StopFlipping","description":"No more flips.","deprecated":"false","params":[]},{"name":"isFlipping","description":"Returns true if the child views are flipping.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidViewPager","name":"MakeroidViewPager","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NAVIGATION","helpString":"Component for MakeroidViewPager","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/viewPager.png","androidMinSdk":19,"properties":[{"name":"ShowTabs","editorType":"boolean","defaultValue":"True","propertyType":"experimental","editorArgs":[]},{"name":"TabsActiveTextColor","editorType":"color","defaultValue":"&HFFFF4081","propertyType":"common","editorArgs":[]},{"name":"TabsBackgroundColor","editorType":"color","defaultValue":"&HFF3F51B5","propertyType":"common","editorArgs":[]},{"name":"TabsIndicatorColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TabsMode","editorType":"tabs_mode","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TabsTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"GetCurrentPage","description":"Get the current selected visible page.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SelectPage","description":"Select a page which is then the active page.","type":"number","rw":"write-only","deprecated":"false"},{"name":"ShowTabs","description":"If set to true, you will see tabs above the view pager.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TabsActiveTextColor","description":"Specifies the tab's text color for active tab's.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsBackgroundColor","description":"Specifies the tab's background color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsIndicatorColor","description":"Specifies the tab's indicator color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsMode","description":"Choose the mode used for the tab's. If no mode is specified, 'Scrollable' is taken as 'Default'. Use '0' for scrollable and '1' for fixed.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TabsTextColor","description":"Specifies the tab's text color for not selected tab's.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"PageSelected","description":"Event to detect that a page was selected.","deprecated":"false","params":[{"name":"position","type":"number"}]}],"methods":[{"name":"AddComponentToView","description":"Add a component to the view pager. The first added component will be the first visible component on the screen.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"tabName","type":"text"}]},{"name":"RemoveAllTabs","description":"Remove all tab's from view pager.","deprecated":"false","params":[]},{"name":"RemoveViewAt","description":"Removes a before added view from the view pager. If you want to delete the first page then use as position '1'.","deprecated":"false","params":[{"name":"position","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.MakeroidWhiteMobi","name":"MakeroidWhiteMobi","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"WhiteMobi component","helpUrl":"https://docs.kodular.io/components/monetization/whitemobi/","showOnPalette":"true","nonVisible":"true","iconName":"images/whitemobi.png","androidMinSdk":19,"properties":[{"name":"ApplicationKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApplicationKey","description":"Return the application key.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"OfferCompleted","description":"Event triggered when an offer has been completed","deprecated":"false","params":[{"name":"amount","type":"number"}]}],"methods":[{"name":"ShowOfferWall","description":"Show WhiteMobi offerwall","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.MakeroidYoutubePlayer","name":"MakeroidYoutubePlayer","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"GOOGLE","helpString":"Component for MakeroidYoutubePlayer","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/youtubePlayer.png","androidMinSdk":17,"properties":[{"name":"EnableLiveVideoUI","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"StartSecond","editorType":"non_negative_float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Volume","editorType":"integer","defaultValue":"50","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"EnableLiveVideoUI","description":"If you want to play live videos you must setup the UI accordingly, by calling this method. If enabled, the user can not select a second on the video progress bar.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"GetCurrentSecond","description":"Returns the current second.","type":"number","rw":"read-only","deprecated":"false"},{"name":"GetVideoDuration","description":"Returns the video duration in seconds.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"IsFullscreen","description":"Returns true if the player is in fullscreen mode.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"StartSecond","description":"The time from which the video should start playing.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TestVideoId","description":"Use this block to test the youtube player. Powered by Kodular.io","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Volume","description":"Set the volume to a number between 0 and 100.Use only integer numbers.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Error","description":"Use this event to detect that there was any error with the player. Return values: 'UNKNOWN', 'INVALID_PARAMETER_IN_REQUEST', 'HTML_5_PLAYER', 'VIDEO_NOT_FOUND', 'VIDEO_NOT_PLAYABLE_IN_EMBEDDED_PLAYER', 'INVALID_VOLUME' or 'INVALID_SEEK_TO'.","deprecated":"false","params":[{"name":"error","type":"text"}]},{"name":"Fullscreen","description":"Event to get notified when the player enters or exits fullscreen. The variable 'fullscreen' returns true or false.","deprecated":"false","params":[{"name":"fullscreen","type":"boolean"}]},{"name":"Initialized","description":"Use this event to start the playing of a normal or instant youtube video.","deprecated":"false","params":[]},{"name":"PlaybackQualityChanged","description":"Use this event to detect that the playback quality was changed. Return values: 'UNKNOWN', 'SMALL', 'MEDIUM', 'LARGE', 'HD720', 'HD1080', 'HIGH_RES' or 'DEFAULT'.","deprecated":"false","params":[{"name":"quality","type":"text"}]},{"name":"PlaybackRateChanged","description":"Use this event to detect that the playback rate was changed. Return values: 'UNKNOWN', 'RATE_0_25', 'RATE_0_5', 'RATE_1', 'RATE_1_5' or 'RATE_2'.","deprecated":"false","params":[{"name":"rate","type":"text"}]},{"name":"StateChanged","description":"Use this event to detect that the state changes. Return values: 'UNKNOWN', 'UNSTARTED', 'ENDED', 'PLAYING', 'PAUSED', 'BUFFERING' or 'VIDEO_CUED'.","deprecated":"false","params":[{"name":"state","type":"text"}]}],"methods":[{"name":"EnterFullscreen","description":"Enter the video in fullscreen mode.","deprecated":"false","params":[]},{"name":"ExitFullscreen","description":"Exit the video from fullscreen mode.","deprecated":"false","params":[]},{"name":"GetThumbnailFromVideoId","description":"This block will return the thumbnail image path from a video id. Use only as example '_bZj-LOXdH8' from a youtube video.","deprecated":"false","params":[{"name":"videoId","type":"text"}],"returnType":"text"},{"name":"InstantLoad","description":"Use this block together with the 'Youtube Player' Initialized event. Loads and automatically plays the specified youtube video. Use only as example '_bZj-LOXdH8' from a youtube video.","deprecated":"false","params":[{"name":"videoId","type":"text"}]},{"name":"Load","description":"Loads the specified video's thumbnail and prepares the player to play the video. Does not automatically play the video. Use only as example '_bZj-LOXdH8' from a youtube video.","deprecated":"false","params":[{"name":"videoId","type":"text"}]},{"name":"Pause","description":"Pause the youtube video.","deprecated":"false","params":[]},{"name":"Play","description":"Plays the youtube video.","deprecated":"false","params":[]},{"name":"SeekTo","description":"Set a position where the youtube video should start playing in seconds.","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"ToggleFullscreen","description":"Toggle the state of the video player.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Map","name":"Map","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"

A two-dimensional container that renders map tiles in the background and allows for multiple Marker elements to identify points on the map. Map tiles are supplied by OpenStreetMap contributors and the United States Geological Survey.

The Map component provides three utilities for manipulating its boundaries within App Inventor. First, a locking mechanism is provided to allow the map to be moved relative to other components on the Screen. Second, when unlocked, the user can pan the Map to any location. At this new location, the "Set Initial Boundary" button can be pressed to save the current Map coordinates to its properties. Lastly, if the Map is moved to a different location, for example to add Markers off-screen, then the "Reset Map to Initial Bounds" button can be used to re-center the Map at the starting location.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"CenterFromString","editorType":"geographic_point","defaultValue":"42.359144, -71.093612","propertyType":"common","editorArgs":[]},{"name":"EnablePan","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"EnableRotation","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"EnableZoom","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"LocationSensor","editorType":"component:com.google.appinventor.components.runtime.LocationSensor","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"MapType","editorType":"map_type","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Rotation","editorType":"float","defaultValue":"0.0","propertyType":"common","editorArgs":[]},{"name":"ScaleUnits","editorType":"map_unit_system","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"ShowCompass","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ShowScale","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ShowUser","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ShowZoom","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ZoomLevel","editorType":"map_zoom","defaultValue":"13","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BoundingBox","description":"Bounding box for the map stored as [[North, West], [South, East]].","type":"list","rw":"read-write","deprecated":"false"},{"name":"CenterFromString","description":"

Set the initial center coordinate of the map. The value is specified as a comma-separated pair of decimal latitude and longitude coordinates, for example, 42.359144, -71.093612.

In blocks code, it is recommended for performance reasons to use SetCenter with numerical latitude and longitude rather than convert to the string representation for use with this property.

","type":"text","rw":"write-only","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"EnablePan","description":"Enable two-finger panning of the Map","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableRotation","description":"If set to true, the user can use multitouch gestures to rotate the map around its current center.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableZoom","description":"If this property is set to true, multitouch zoom gestures are allowed on the map. Otherwise, the map zoom cannot be changed by the user except via the zoom control buttons.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Features","description":"The list of features placed on this map. This list also includes any features created by calls to FeatureFromDescription","type":"list","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Latitude","description":"The latitude of the center of the map.","type":"number","rw":"read-only","deprecated":"false"},{"name":"LocationSensor","description":"Uses the provided LocationSensor for user location data rather than the built-in location provider.","type":"component","rw":"write-only","deprecated":"false"},{"name":"Longitude","description":"The longitude of the center of the map.","type":"number","rw":"read-only","deprecated":"false"},{"name":"MapType","description":"The type of tile layer to use as the base of the map. Valid values are: 1 (Roads), 2 (Aerial), 3 (Terrain)","type":"number","rw":"read-write","deprecated":"false"},{"name":"Rotation","description":"Sets or gets the rotation of the map in decimal degrees if any","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ScaleUnits","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"ShowCompass","description":"Show a compass icon rotated based on user orientation.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowScale","description":"Shows a scale reference on the map.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowUser","description":"Show the user's location on the map.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowZoom","description":"Show zoom buttons on the map.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UserLatitude","description":"Returns the user's latitude if ShowUser is enabled.","type":"number","rw":"read-only","deprecated":"false"},{"name":"UserLongitude","description":"Returns the user's longitude if ShowUser is enabled.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ZoomLevel","description":"The zoom level of the map. Valid values of ZoomLevel are dependent on the tile provider and the latitude and longitude of the map. For example, zoom levels are more constrained over oceans than dense city centers to conserve space for storing tiles, so valid values may be 1-7 over ocean and 1-18 over cities. Tile providers may send warning or error tiles if the zoom level is too great for the server to support.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"BoundsChange","description":"User has changed the map bounds by panning or zooming the map.","deprecated":"false","params":[]},{"name":"DoubleTapAtPoint","description":"The user double-tapped at a point on the map. This event will be followed by a ZoomChanged event if zooming gestures are enabled and the map is not at the highest possible zoom level.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"FeatureClick","description":"The user clicked on a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureDrag","description":"The user dragged a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureLongClick","description":"The user long-pressed on a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureStartDrag","description":"The user started dragging a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"FeatureStopDrag","description":"The user stopped dragging a map feature.","deprecated":"false","params":[{"name":"feature","type":"component"}]},{"name":"GotFeatures","description":"A GeoJSON document was successfully read from url. The features specified in the document are provided as a list in features.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"features","type":"list"}]},{"name":"InvalidPoint","description":"An invalid coordinate was supplied during a maps operation. The message parameter will have more details about the issue.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"LoadError","description":"An error was encountered while processing a GeoJSON document at the given url. The responseCode parameter will contain an HTTP status code and the errorMessage parameter will contain a detailed error message.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"responseCode","type":"number"},{"name":"errorMessage","type":"text"}]},{"name":"LongPressAtPoint","description":"The user long-pressed at a point on the map.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"Ready","description":"Map has been initialized and is ready for user interaction.","deprecated":"false","params":[]},{"name":"TapAtPoint","description":"The user tapped at a point on the map.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"ZoomChange","description":"User has changed the zoom level of the map.","deprecated":"false","params":[]}],"methods":[{"name":"CreateMarker","description":"Create a new marker with default properties at the specified latitude and longitude.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}],"returnType":"component"},{"name":"FeatureFromDescription","description":"Convert a feature description into an App Inventor map feature. Currently the only\n supported conversion is from a GeoJSON point to Marker component. If the feature has\n properties, they will be mapped into App Inventor properties using the following mapping:\n\n description becomes Description;\n draggable becomes Draggable;\n infobox becomes EnableInfobox;\n fill becomes FillColor;\n image becomes ImageAsset;\n stroke becomes StrokeColor;\n stroke-width becomes StrokeWidth;\n title becomes Title;\n visible becomes Visible","deprecated":"false","params":[{"name":"description","type":"list"}],"returnType":"any"},{"name":"LoadFromURL","description":"

Load a feature collection in GeoJSON format from the given url. On success, the event GotFeatures will be raised with the given url and a list of the features parsed from the GeoJSON as a list of (key, value) pairs. On failure, the LoadError event will be raised with any applicable HTTP response code and error message.

","deprecated":"false","params":[{"name":"url","type":"text"}]},{"name":"PanTo","description":"Pan the map center to the given latitude and longitude and adjust the zoom level to the specified zoom.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"},{"name":"zoom","type":"number"}]},{"name":"Save","description":"Save the contents of the Map to the specified path.","deprecated":"false","params":[{"name":"path","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.Marker","name":"Marker","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"

An icon positioned at a point to indicate information on a map. Markers can be used to provide an info window, custom fill and stroke colors, and custom images to convey information to the user.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"AnchorHorizontal","editorType":"horizontal_alignment","defaultValue":"3","propertyType":"common","editorArgs":[]},{"name":"AnchorVertical","editorType":"vertical_alignment","defaultValue":"3","propertyType":"common","editorArgs":[]},{"name":"Description","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Draggable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"EnableInfobox","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FillColor","editorType":"color","defaultValue":"&HFFF34336","propertyType":"common","editorArgs":[]},{"name":"ImageAsset","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Latitude","editorType":"latitude","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Longitude","editorType":"longitude","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"integer","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AnchorHorizontal","description":"The horizontal alignment property controls where the Marker's anchor is located relative to its width.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AnchorVertical","description":"The vertical alignment property controls where the Marker's anchor is located relative to its height.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Description","description":"The description displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Draggable","description":"The Draggable property is used to set whether or not the user can drag the Marker by long-pressing and then dragging the marker to a new location.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableInfobox","description":"Enable or disable the infobox window display when the user taps the feature.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FillColor","description":"The paint color used to fill in the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ImageAsset","description":"The ImageAsset property is used to provide an alternative image for the Marker.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Latitude","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Longitude","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"ShowShadow","description":"Gets whether or not the shadow of the Marker is shown.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"StrokeColor","description":"The paint color used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeWidth","description":"The width of the stroke used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Title","description":"The title displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Type","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Click","description":"The user clicked on the feature.","deprecated":"false","params":[]},{"name":"Drag","description":"The user dragged the map feature.","deprecated":"false","params":[]},{"name":"LongClick","description":"The user long-pressed on the feature. This event will only trigger if Draggable is false.","deprecated":"false","params":[]},{"name":"StartDrag","description":"The user started a drag operation.","deprecated":"false","params":[]},{"name":"StopDrag","description":"The user stopped a drag operation.","deprecated":"false","params":[]}],"methods":[{"name":"BearingToFeature","description":"Returns the bearing from the Marker to the given map feature, in degrees from due north. If the centroids parameter is true, the bearing will be to the center of the map feature. Otherwise, the bearing will be computed to the point in the feature nearest the Marker.","deprecated":"false","params":[{"name":"mapFeature","type":"component"},{"name":"centroids","type":"boolean"}],"returnType":"number"},{"name":"BearingToPoint","description":"Returns the bearing from the Marker to the given latitude and longitude, in degrees from due north.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}],"returnType":"number"},{"name":"DistanceToFeature","description":"Compute the distance, in meters, between two map features.","deprecated":"false","params":[{"name":"mapFeature","type":"component"},{"name":"centroids","type":"boolean"}],"returnType":"number"},{"name":"DistanceToPoint","description":"Compute the distance, in meters, between a map feature and a latitude, longitude point.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}],"returnType":"number"},{"name":"HideInfobox","description":"Hide the infobox if it is shown. If the infobox is not visible this function has no effect.","deprecated":"false","params":[]},{"name":"SetLocation","description":"Set the location of the marker.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"ShowInfobox","description":"Show the infobox for the feature. This will show the infobox even if","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Metadata","name":"Metadata","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Metadata Component to Read the Meta Data of a File","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/metadata.png","androidMinSdk":19,"properties":[{"name":"File","editorType":"asset","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"File","description":"The name of the file.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"NoMetadata","description":"Triggers when there is no metadata found in the file.","deprecated":"false","params":[{"name":"type","type":"text"}]}],"methods":[{"name":"Album","description":"Get the Album from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Artist","description":"Get the Artist from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Author","description":"Get the Author from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Bitrate","description":"Get the Bitrate from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Composer","description":"Get the Composer from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"CustomItem","description":"Get a custom metadata item from the file\nyou can find a list of ids on https://developer.android.com/reference/android/media/MediaMetadataRetriever.html","deprecated":"false","params":[{"name":"id","type":"number"}],"returnType":"text"},{"name":"Date","description":"Get the Date from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"DiscNumber","description":"Get the Disc Number from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Duration","description":"Get the Duration from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"EmbeddedPicture","description":"This method finds the optional graphic or album/cover art associated associated with the data source. If there are more than one pictures, (any) one of them is returned.","deprecated":"false","params":[],"returnType":"text"},{"name":"Genre","description":"Get the Genre from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"HasAudio","description":"Get the Has Audio from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"HasVideo","description":"Get the Has Video from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Location","description":"Get the Location from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Mimetype","description":"Get the Mimetype from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Title","description":"Get the Title from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"TrackNumber","description":"Get the Track Number from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"VideoHeight","description":"Get the Video Height from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"VideoRotation","description":"Get the Video Rotation from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"VideoWidth","description":"Get the Video Width from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Writer","description":"Get the Writer from the file.","deprecated":"false","params":[],"returnType":"text"},{"name":"Year","description":"Get the Year from the file.","deprecated":"false","params":[],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.NearField","name":"NearField","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component to provide NFC capabilities. For now this component supports the reading and writing of text tags only (if supported by the device)

In order to read and write text tags, the component must have its ReadMode property set to True or False respectively.

Note: This component will only work on Screen1 of any App Inventor app.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/nearfield.png","androidMinSdk":19,"properties":[{"name":"ReadMode","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"LastMessage","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"ReadMode","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"TextToWrite","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"WriteType","description":"","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"TagRead","description":"Indicates that a new tag has been detected.\n Currently this is only a plain text tag, as specified in the\n manifest. See Compiler.java.","deprecated":"false","params":[{"name":"tagID","type":"text"},{"name":"message","type":"text"}]},{"name":"TagWritten","description":"Event to detect when a tag was written.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.Network","name":"Network","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"Provides basic information about the network connectivity of the device","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/network.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[{"name":"OnConnect","description":"Called when the device connects to a network.","deprecated":"false","params":[]},{"name":"OnDisconnect","description":"Called when the device disconnects from a network.","deprecated":"false","params":[]}],"methods":[{"name":"IsConnected","description":"Returns \"True\" if the device is connected to a network, \"False\" otherwise.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"Type","description":"Returns the type of network the device is connected to. e.g. \"wifi\" or \"mobile\".","deprecated":"false","params":[],"returnType":"text"}]},{"type":"com.google.appinventor.components.runtime.NotificationComponent","name":"NotificationComponent","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"A component to send a notification to the users device","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/notification.png","androidMinSdk":19,"properties":[{"name":"Priority","editorType":"notification_priority","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Visiblity","editorType":"notification_visibility","defaultValue":"1","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Priority","description":"Set the priority level. 1 = \"Default\", 2 = \"high\", 3 = \"low\", 4 = \"max\", 5 = \"min\"","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visiblity","description":"Set the visibility property. 1 = \"public\", 2 = \"private\", 3 = \"secret\".","type":"number","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"AreNotificationsEnabled","description":"Check wether the app can send Notifications","deprecated":"false","params":[],"returnType":"boolean"},{"name":"CancelAll","description":"Cancel all Notifications","deprecated":"false","params":[]},{"name":"CancelNotification","description":"Cancel a Notification with an id","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"NotificationBuilderAndroidCar","description":"Set the accent color for Android Car devices","deprecated":"false","params":[{"name":"accentColor","type":"number"}]},{"name":"NotificationBuilderAndroidWear","description":"Set the background image for Android Wear devices","deprecated":"false","params":[{"name":"backgroundImage","type":"text"}]},{"name":"NotificationBuilderAutoCancel","description":"Set whether the notifcation should me removed after the user clicks on it.","deprecated":"false","params":[{"name":"autoCancel","type":"boolean"}]},{"name":"NotificationBuilderBigPicture","description":"Set the big picture for the notification","deprecated":"false","params":[{"name":"bigPicture","type":"text"}]},{"name":"NotificationBuilderID","description":"Set the notification id.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"NotificationBuilderPriority","description":"Set the notification builder priority. 1 = \"Default\", 2 = \"high\", 3 = \"low\", 4 = \"max\", 5 = \"min\"","deprecated":"false","params":[{"name":"priority","type":"number"}]},{"name":"NotificationBuilderSend","description":"Send the notification that you build","deprecated":"false","params":[]},{"name":"NotificationBuilderStart","description":"Start building a new notification","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"message","type":"text"}]},{"name":"NotificationBuilderStartValue","description":"Set the start value of the notification.","deprecated":"false","params":[{"name":"startValue","type":"text"}]},{"name":"NotificationBuilderVisibility","description":"Set the notification builder visibility. 1 = \"public\", 2 = \"private\", 3 = \"secret\".","deprecated":"false","params":[{"name":"visiblity","type":"number"}]},{"name":"SendAdvancedNotification","description":"Send a advanced notification (Android Wear Support)","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"startValue","type":"text"},{"name":"timeOn","type":"number"},{"name":"timeOff","type":"number"}]},{"name":"SendNotification","description":"Send a notification","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"message","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.Notifier","name":"Notifier","external":"false","version":"10","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"The Notifier component displays alert dialogs, messages, and temporary alerts, and creates Android log entries through the following methods: ","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/notifier.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"DimAmount","editorType":"non_negative_float","defaultValue":"0.5","propertyType":"advanced","editorArgs":[]},{"name":"LightTheme","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"NotifierLength","editorType":"toast_length","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TextFontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextFontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"TitleColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TitleFontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TitleFontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"UseBackgroundColor","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Specifies the background color for alerts (not dialogs).","type":"number","rw":"read-write","deprecated":"false"},{"name":"DimAmount","description":"Set the amount of dim behind the dialog window. Use '0.0' for no dim and '1.0' for full dim.","type":"number","rw":"read-write","deprecated":"false"},{"name":"LightTheme","description":"Gets the current theme","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"NotifierLength","description":"specifies the length of time that the alert is shown -- either \"short\" or \"long\".","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Specifies the text color for alerts or for dialogs message.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextFontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextFontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"TitleColor","description":"Specifies the title text color for dialogs.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TitleFontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TitleFontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"UseBackgroundColor","description":"If enabled the dialog will use the color from the \"Background Color\"-option. Else it will use the theme (light or dark).","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterChoosing","description":"Event to detect that a user have done his selection.","deprecated":"false","params":[{"name":"choice","type":"text"}]},{"name":"AfterMessageDialog","description":"Event to detect that a user clicked on a button from the \"Show Custom Message Dialog\". Use the \"title\" response to know which dialog the user has clicked.","deprecated":"false","params":[{"name":"title","type":"text"}]},{"name":"AfterTextInput","description":"Event to detect that a user have done his text input in the \"Show Text Dialog\".","deprecated":"false","params":[{"name":"response","type":"text"}]},{"name":"CheckboxSelection","description":"Invoked after user has finished selecting items from the Checkbox picker. Returns a list of indices of the selected items in the order of selection. Returns a list having -1 if cancel was pressed.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"selection","type":"list"}]},{"name":"CustomDialogSelection","description":"Event to detect that the user has pressed a button from the custom dialog. It returns then the text of the button that was pressed.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"GotCustomChooseDialog","description":"Event to detect that a user have done his selection in the CustomChooseDialog.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"choice","type":"text"}]},{"name":"GotTextInputFromDialog","description":"Event to detect that a user have done his text input in the \"Show Text Input Dialog\".","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"response","type":"text"}]},{"name":"ImageDialogClosed","description":"Event to detect that the user has watched the image dialog.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"LightboxClosed","description":"Event to detect that a user have closed the Lightbox.","deprecated":"false","params":[{"name":"id","type":"number"}]},{"name":"LinearProgressDismissed","description":"Event to detect that the linear progress dialog was dismissed.","deprecated":"false","params":[]},{"name":"ListPickerSelection","description":"Event to get the picked list selection from the List Picker.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"item","type":"text"}]},{"name":"NumberPickerSelection","description":"Event to detect that the user has selected a number from the number picker dialog.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"selection","type":"number"}]},{"name":"RadioSelection","description":"Event invoked when user has selected an option from the radio button picker. Outputs the index of the selected item. Returns -1 if cancel was pressed.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"listIndex","type":"number"}]},{"name":"WordPickerSelection","description":"Event to detect that the user has selected a word from the word picker dialog.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"selection","type":"text"}]}],"methods":[{"name":"CreateCustomDialog","description":"Show whatever you want in a dialog. You can use as example arrangements, or images or whatever you want. Your choosen layout will be then removed from the screen and only visible in custom dialog. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color. Please make sure the layout you want to use is visible.","deprecated":"false","params":[{"name":"component","type":"component"},{"name":"title","type":"text"},{"name":"buttonText","type":"text"},{"name":"cancelButtonText","type":"text"},{"name":"cancelable","type":"boolean"}]},{"name":"CustomChooseDialog","description":"Shows a dialog box with two buttons, from which the user can choose. If cancelable is true there will be an additional CANCEL button. Pressing a button will raise the GotCustomChooseDialog event. The \"choice\" parameter to GotCustomChooseDialog will be the text on the button that was pressed, or \"Cancel\" if the CANCEL button was pressed. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color. Use the 'Show Custom Dialog' block to the show the created custom dialog. The added component must be visible on screen. After you used this block here it will be removed automatic from screen and will be only visible again after you have shown the custom dialog.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"button1Text","type":"text"},{"name":"button2Text","type":"text"},{"name":"cancelButtonText","type":"text"},{"name":"icon","type":"text"},{"name":"cancelable","type":"boolean"},{"name":"fullscreen","type":"boolean"}]},{"name":"CustomMessageDialog","description":"Show a Message Dialog. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"buttonText","type":"text"},{"name":"icon","type":"text"},{"name":"fullscreen","type":"boolean"}]},{"name":"DismissCustomDialog","description":"Use this block to dismiss the created custom dialog.the custom dialog.","deprecated":"false","params":[]},{"name":"DismissLinearProgress","description":"Dismiss a previously displayed LinearProgress box","deprecated":"false","params":[]},{"name":"DismissProgressDialog","description":"Dismiss a previously displayed ProgressDialog box","deprecated":"false","params":[]},{"name":"DismissSpinningProgress","description":"Dismiss a previously displayed SpinningProgress box","deprecated":"false","params":[]},{"name":"LogError","description":"Writes an error message to the Android system log. See the Google Android documentation for how to access the log.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"LogInfo","description":"Writes an information message to the Android log.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"LogWarning","description":"Writes a warning message to the Android log. See the Google Android documentation for how to access the log.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShowAlert","description":"Show a alert \"toast\" message.","deprecated":"false","params":[{"name":"notice","type":"text"}]},{"name":"ShowCheckboxListDialog","description":"Shows a picker dialog with a list of options of whichmore than one can be chosen. Invokes the 'AfterMultiSelection' event. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"options","type":"list"},{"name":"buttonText","type":"text"},{"name":"cancelButtonText","type":"text"},{"name":"cancelable","type":"boolean"},{"name":"icon","type":"text"},{"name":"fullscreen","type":"boolean"}]},{"name":"ShowChooseDialog","description":"Shows a dialog box with two buttons, from which the user can choose. If cancelable is true there will be an additional CANCEL button. Pressing a button will raise the AfterChoosing event. The \"choice\" parameter to AfterChoosing will be the text on the button that was pressed, or \"Cancel\" if the CANCEL button was pressed.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"button1Text","type":"text"},{"name":"button2Text","type":"text"},{"name":"cancelable","type":"boolean"}]},{"name":"ShowCustomDialog","description":"Show the custom dialog. Dont forget that you have first to create the custom dialog.","deprecated":"false","params":[]},{"name":"ShowImageDialog","description":"Show a image dialog. Animation types like \"*.gif\" are not supported. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"image","type":"text"},{"name":"buttonText","type":"text"}]},{"name":"ShowLightbox","description":"Displays a lightbox. You can use images like \"*.png\" or \"*,gif\" from assets folder or from a web url.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"image","type":"text"}]},{"name":"ShowLinearProgress","description":"Shows a progress dialog with a horizontal progress bar. Can be dismissed by user if 'cancelable' is set to true. If indeterminate is true, maxValue and the 'UpdateProgres' method will have no effect. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"cancelable","type":"boolean"},{"name":"indeterminate","type":"boolean"},{"name":"maxValue","type":"number"},{"name":"icon","type":"text"}]},{"name":"ShowListPicker","description":"Shows a list picker dialog. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"itemsList","type":"list"},{"name":"icon","type":"text"},{"name":"fullscreen","type":"boolean"}]},{"name":"ShowMessageDialog","description":"Show a Message Dialog.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"buttonText","type":"text"}]},{"name":"ShowNumberPicker","description":"Shows a number picker dialog that enables the user to select a number from a predefined range. You can use the \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"buttonText","type":"text"},{"name":"cancelButtonText","type":"text"},{"name":"minValue","type":"number"},{"name":"maxValue","type":"number"},{"name":"startValue","type":"number"}]},{"name":"ShowPasswordDialog","description":"Shows a dialog box where the user can enter password (input is masked), after which the AfterTextInput event will be raised. If cancelable is true there will be an additional CANCEL button. Entering password will raise the AfterTextInput event. The \"response\" parameter to AfterTextInput will be the entered password, or \"Cancel\" if CANCEL button was pressed.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"cancelable","type":"boolean"}]},{"name":"ShowProgressDialog","description":"Shows a dialog box with an optional title and message (use empty strings if they are not wanted). This dialog box contains a spinning artifact to indicate that the program is working. It cannot be canceled by the user but must be dismissed by the App Inventor Program by using the DismissProgressDialog block.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"}]},{"name":"ShowRadioListDialog","description":"Shows a radio list dialog with a list of options of which only one can be chosen. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"options","type":"list"},{"name":"chooseButtonText","type":"text"},{"name":"cancelable","type":"boolean"},{"name":"cancelButtonText","type":"text"},{"name":"selection","type":"number"},{"name":"icon","type":"text"},{"name":"fullscreen","type":"boolean"}]},{"name":"ShowSpinningProgress","description":"Shows a spinning progress dialog which can be dismissed by the user if 'cancelable' is set to true. You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"cancelable","type":"boolean"},{"name":"icon","type":"text"}]},{"name":"ShowTextDialog","description":"Shows a dialog box where the user can enter text, after which the AfterTextInput event will be raised. If cancelable is true there will be an additional CANCEL button. Entering text will raise the AfterTextInput event. The \"response\" parameter to AfterTextInput will be the text that was entered, or \"Cancel\" if the CANCEL button was pressed.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"title","type":"text"},{"name":"cancelable","type":"boolean"}]},{"name":"ShowTextInputDialog","description":"Show a text input dialog. Possiple input types are: \"1= Normal text\", \"2= Password text\", \"3= Person name\", \"4= Email adress\", \"5= Decimal number\", \"6= Normal number\", \"7= Password number\" or \"8= datetime\". You can use the \"Light Theme\" property to have a light or dark background. Or you enable \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"defaultText","type":"text"},{"name":"icon","type":"text"},{"name":"hint","type":"text"},{"name":"fullscreen","type":"boolean"},{"name":"cancelable","type":"boolean"},{"name":"inputType","type":"number"},{"name":"buttonText","type":"text"},{"name":"cancelButtonText","type":"text"},{"name":"textColor","type":"number"},{"name":"hintColor","type":"number"}]},{"name":"ShowWordPicker","description":"Shows a word picker dialog that enables the user to select a number from a predefined word. You can use the \"Use Background Color\" property to use the background color property as background dialog color.","deprecated":"false","params":[{"name":"id","type":"number"},{"name":"title","type":"text"},{"name":"buttonText","type":"text"},{"name":"cancelButtonText","type":"text"},{"name":"itemsList","type":"list"}]},{"name":"UpdateProgress","description":"Change the current value of the linear progress dialog. Has no effect if \"indeterminate\" is set to true.","deprecated":"false","params":[{"name":"value","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.NxtColorSensor","name":"NxtColorSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a high-level interface to a color sensor on a LEGO MINDSTORMS NXT robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"AboveRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BelowRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BottomOfRange","editorType":"non_negative_integer","defaultValue":"256","propertyType":"common","editorArgs":[]},{"name":"ColorChangedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"DetectColor","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"GenerateColor","editorType":"lego_nxt_generated_color","defaultValue":"&H00FFFFFF","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_nxt_sensor_port","defaultValue":"3","propertyType":"common","editorArgs":[]},{"name":"TopOfRange","editorType":"non_negative_integer","defaultValue":"767","propertyType":"common","editorArgs":[]},{"name":"WithinRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboveRangeEventEnabled","description":"Whether the AboveRange event should fire when the DetectColor property is set to False and the light level goes above the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BelowRangeEventEnabled","description":"Whether the BelowRange event should fire when the DetectColor property is set to False and the light level goes below the BottomOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"},{"name":"BottomOfRange","description":"The bottom of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ColorChangedEventEnabled","description":"Whether the ColorChanged event should fire when the DetectColor property is set to True and the detected color changes.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"DetectColor","description":"Whether the sensor should detect color or light. True indicates that the sensor should detect color; False indicates that the sensor should detect light. If the DetectColor property is set to True, the BelowRange, WithinRange, and AboveRange events will not occur and the sensor will not generate color. If the DetectColor property is set to False, the ColorChanged event will not occur.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"GenerateColor","description":"The color that should generated by the sensor. Only None, Red, Green, or Blue are valid values. The sensor will not generate color when the DetectColor property is set to True.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"TopOfRange","description":"The top of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WithinRangeEventEnabled","description":"Whether the WithinRange event should fire when the DetectColor property is set to False and the light level goes between the BottomOfRange and the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AboveRange","description":"Light level has gone above the range. The AboveRange event will not occur if the DetectColor property is set to True or if the AboveRangeEventEnabled property is set to False.","deprecated":"false","params":[]},{"name":"BelowRange","description":"Light level has gone below the range. The BelowRange event will not occur if the DetectColor property is set to True or if the BelowRangeEventEnabled property is set to False.","deprecated":"false","params":[]},{"name":"ColorChanged","description":"Detected color has changed. The ColorChanged event will not occur if the DetectColor property is set to False or if the ColorChangedEventEnabled property is set to False.","deprecated":"false","params":[{"name":"color","type":"number"}]},{"name":"WithinRange","description":"Light level has gone within the range. The WithinRange event will not occur if the DetectColor property is set to True or if the WithinRangeEventEnabled property is set to False.","deprecated":"false","params":[]}],"methods":[{"name":"GetColor","description":"Returns the current detected color, or the color None if the color can not be read or if the DetectColor property is set to False.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetLightLevel","description":"Returns the current light level as a value between 0 and 1023, or -1 if the light level can not be read or if the DetectColor property is set to True.","deprecated":"false","params":[],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.NxtDirectCommands","name":"NxtDirectCommands","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a low-level interface to a LEGO MINDSTORMS NXT robot, with functions to send NXT Direct Commands.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"}],"events":[],"methods":[{"name":"DeleteFile","description":"Delete a file on the robot.","deprecated":"false","params":[{"name":"fileName","type":"text"}]},{"name":"DownloadFile","description":"Download a file to the robot.","deprecated":"false","params":[{"name":"source","type":"text"},{"name":"destination","type":"text"}]},{"name":"GetBatteryLevel","description":"Get the battery level for the robot. Returns the voltage in millivolts.","deprecated":"false","params":[],"returnType":"number"},{"name":"GetBrickName","description":"Get the brick name of the robot.","deprecated":"false","params":[],"returnType":"text"},{"name":"GetCurrentProgramName","description":"Get the name of currently running program on the robot.","deprecated":"false","params":[],"returnType":"text"},{"name":"GetFirmwareVersion","description":"Get the firmware and protocol version numbers for the robot as a list where the first element is the firmware version number and the second element is the protocol version number.","deprecated":"false","params":[],"returnType":"list"},{"name":"GetInputValues","description":"Reads the values of an input sensor on the robot. Assumes sensor type has been configured via SetInputMode.","deprecated":"false","params":[{"name":"sensorPortLetter","type":"text"}],"returnType":"list"},{"name":"GetOutputState","description":"Reads the output state of a motor on the robot.","deprecated":"false","params":[{"name":"motorPortLetter","type":"text"}],"returnType":"list"},{"name":"KeepAlive","description":"Keep Alive. Returns the current sleep time limit in milliseconds.","deprecated":"false","params":[],"returnType":"number"},{"name":"ListFiles","description":"Returns a list containing the names of matching files found on the robot.","deprecated":"false","params":[{"name":"wildcard","type":"text"}],"returnType":"list"},{"name":"LsGetStatus","description":"Returns the count of available bytes to read.","deprecated":"false","params":[{"name":"sensorPortLetter","type":"text"}],"returnType":"number"},{"name":"LsRead","description":"Reads unsigned low speed data from an input sensor on the robot. Assumes sensor type has been configured via SetInputMode.","deprecated":"false","params":[{"name":"sensorPortLetter","type":"text"}],"returnType":"list"},{"name":"LsWrite","description":"Writes low speed data to an input sensor on the robot. Assumes sensor type has been configured via SetInputMode.","deprecated":"false","params":[{"name":"sensorPortLetter","type":"text"},{"name":"list","type":"list"},{"name":"rxDataLength","type":"number"}]},{"name":"MessageRead","description":"Read a message from a mailbox (1-10) on the robot.","deprecated":"false","params":[{"name":"mailbox","type":"number"}],"returnType":"text"},{"name":"MessageWrite","description":"Write a message to a mailbox (1-10) on the robot.","deprecated":"false","params":[{"name":"mailbox","type":"number"},{"name":"message","type":"text"}]},{"name":"PlaySoundFile","description":"Play a sound file on the robot.","deprecated":"false","params":[{"name":"fileName","type":"text"}]},{"name":"PlayTone","description":"Make the robot play a tone.","deprecated":"false","params":[{"name":"frequencyHz","type":"number"},{"name":"durationMs","type":"number"}]},{"name":"ResetInputScaledValue","description":"Reset the scaled value of an input sensor on the robot.","deprecated":"false","params":[{"name":"sensorPortLetter","type":"text"}]},{"name":"ResetMotorPosition","description":"Reset motor position.","deprecated":"false","params":[{"name":"motorPortLetter","type":"text"},{"name":"relative","type":"boolean"}]},{"name":"SetBrickName","description":"Set the brick name of the robot.","deprecated":"false","params":[{"name":"name","type":"text"}]},{"name":"SetInputMode","description":"Configure an input sensor on the robot.","deprecated":"false","params":[{"name":"sensorPortLetter","type":"text"},{"name":"sensorType","type":"number"},{"name":"sensorMode","type":"number"}]},{"name":"SetOutputState","description":"Sets the output state of a motor on the robot.","deprecated":"false","params":[{"name":"motorPortLetter","type":"text"},{"name":"power","type":"number"},{"name":"mode","type":"number"},{"name":"regulationMode","type":"number"},{"name":"turnRatio","type":"number"},{"name":"runState","type":"number"},{"name":"tachoLimit","type":"number"}]},{"name":"StartProgram","description":"Start execution of a previously downloaded program on the robot.","deprecated":"false","params":[{"name":"programName","type":"text"}]},{"name":"StopProgram","description":"Stop execution of the currently running program on the robot.","deprecated":"false","params":[]},{"name":"StopSoundPlayback","description":"Stop sound playback.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.NxtDrive","name":"NxtDrive","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a high-level interface to a LEGO MINDSTORMS NXT robot, with functions that can move and turn the robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"DriveMotors","editorType":"string","defaultValue":"CB","propertyType":"common","editorArgs":[]},{"name":"StopBeforeDisconnect","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"WheelDiameter","editorType":"float","defaultValue":"4.32","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"},{"name":"DriveMotors","description":"The motor ports that are used for driving: the left wheel's motor port followed by the right wheel's motor port.","type":"text","rw":"invisible","deprecated":"false"},{"name":"StopBeforeDisconnect","description":"Whether to stop the drive motors before disconnecting.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"WheelDiameter","description":"The diameter of the wheels used for driving.","type":"number","rw":"invisible","deprecated":"false"}],"events":[],"methods":[{"name":"MoveBackward","description":"Move the robot backward the given distance, with the specified percentage of maximum power, by powering both drive motors backward.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"distance","type":"number"}]},{"name":"MoveBackwardIndefinitely","description":"Move the robot backward indefinitely, with the specified percentage of maximum power, by powering both drive motors backward.","deprecated":"false","params":[{"name":"power","type":"number"}]},{"name":"MoveForward","description":"Move the robot forward the given distance, with the specified percentage of maximum power, by powering both drive motors forward.","deprecated":"false","params":[{"name":"power","type":"number"},{"name":"distance","type":"number"}]},{"name":"MoveForwardIndefinitely","description":"Move the robot forward indefinitely, with the specified percentage of maximum power, by powering both drive motors forward.","deprecated":"false","params":[{"name":"power","type":"number"}]},{"name":"Stop","description":"Stop the drive motors of the robot.","deprecated":"false","params":[]},{"name":"TurnClockwiseIndefinitely","description":"Turn the robot clockwise indefinitely, with the specified percentage of maximum power, by powering the left drive motor forward and the right drive motor backward.","deprecated":"false","params":[{"name":"power","type":"number"}]},{"name":"TurnCounterClockwiseIndefinitely","description":"Turn the robot counterclockwise indefinitely, with the specified percentage of maximum power, by powering the right drive motor forward and the left drive motor backward.","deprecated":"false","params":[{"name":"power","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.NxtLightSensor","name":"NxtLightSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a high-level interface to a light sensor on a LEGO MINDSTORMS NXT robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"AboveRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BelowRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BottomOfRange","editorType":"non_negative_integer","defaultValue":"256","propertyType":"common","editorArgs":[]},{"name":"GenerateLight","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_nxt_sensor_port","defaultValue":"3","propertyType":"common","editorArgs":[]},{"name":"TopOfRange","editorType":"non_negative_integer","defaultValue":"767","propertyType":"common","editorArgs":[]},{"name":"WithinRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboveRangeEventEnabled","description":"Whether the AboveRange event should fire when the light level goes above the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BelowRangeEventEnabled","description":"Whether the BelowRange event should fire when the light level goes below the BottomOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"},{"name":"BottomOfRange","description":"The bottom of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"GenerateLight","description":"Whether the light sensor should generate light.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"TopOfRange","description":"The top of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WithinRangeEventEnabled","description":"Whether the WithinRange event should fire when the light level goes between the BottomOfRange and the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AboveRange","description":"Light level has gone above the range.","deprecated":"false","params":[]},{"name":"BelowRange","description":"Light level has gone below the range.","deprecated":"false","params":[]},{"name":"WithinRange","description":"Light level has gone within the range.","deprecated":"false","params":[]}],"methods":[{"name":"GetLightLevel","description":"Returns the current light level as a value between 0 and 1023, or -1 if the light level can not be read.","deprecated":"false","params":[],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.NxtSoundSensor","name":"NxtSoundSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a high-level interface to a sound sensor on a LEGO MINDSTORMS NXT robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"AboveRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BelowRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BottomOfRange","editorType":"non_negative_integer","defaultValue":"256","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_nxt_sensor_port","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"TopOfRange","editorType":"non_negative_integer","defaultValue":"767","propertyType":"common","editorArgs":[]},{"name":"WithinRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboveRangeEventEnabled","description":"Whether the AboveRange event should fire when the sound level goes above the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BelowRangeEventEnabled","description":"Whether the BelowRange event should fire when the sound level goes below the BottomOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"},{"name":"BottomOfRange","description":"The bottom of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"TopOfRange","description":"The top of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WithinRangeEventEnabled","description":"Whether the WithinRange event should fire when the sound level goes between the BottomOfRange and the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AboveRange","description":"Sound level has gone above the range.","deprecated":"false","params":[]},{"name":"BelowRange","description":"Sound level has gone below the range.","deprecated":"false","params":[]},{"name":"WithinRange","description":"Sound level has gone within the range.","deprecated":"false","params":[]}],"methods":[{"name":"GetSoundLevel","description":"Returns the current sound level as a value between 0 and 1023, or -1 if the sound level can not be read.","deprecated":"false","params":[],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.NxtTouchSensor","name":"NxtTouchSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a high-level interface to a touch sensor on a LEGO MINDSTORMS NXT robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"PressedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ReleasedEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_nxt_sensor_port","defaultValue":"1","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"},{"name":"PressedEventEnabled","description":"Whether the Pressed event should fire when the touch sensor is pressed.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ReleasedEventEnabled","description":"Whether the Released event should fire when the touch sensor is released.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"}],"events":[{"name":"Pressed","description":"Touch sensor has been pressed.","deprecated":"false","params":[]},{"name":"Released","description":"Touch sensor has been released.","deprecated":"false","params":[]}],"methods":[{"name":"IsPressed","description":"Returns true if the touch sensor is pressed.","deprecated":"false","params":[],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.NxtUltrasonicSensor","name":"NxtUltrasonicSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"NXT","helpString":"A component that provides a high-level interface to an ultrasonic sensor on a LEGO MINDSTORMS NXT robot.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/legoMindstormsNxt.png","androidMinSdk":19,"properties":[{"name":"AboveRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BelowRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"BluetoothClient","editorType":"BluetoothClient","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"BottomOfRange","editorType":"non_negative_integer","defaultValue":"30","propertyType":"common","editorArgs":[]},{"name":"SensorPort","editorType":"lego_nxt_sensor_port","defaultValue":"4","propertyType":"common","editorArgs":[]},{"name":"TopOfRange","editorType":"non_negative_integer","defaultValue":"90","propertyType":"common","editorArgs":[]},{"name":"WithinRangeEventEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AboveRangeEventEnabled","description":"Whether the AboveRange event should fire when the distance goes above the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BelowRangeEventEnabled","description":"Whether the BelowRange event should fire when the distance goes below the BottomOfRange.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"BluetoothClient","description":"The BluetoothClient component that should be used for communication.","type":"component","rw":"invisible","deprecated":"false"},{"name":"BottomOfRange","description":"The bottom of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SensorPort","description":"The sensor port that the sensor is connected to.","type":"text","rw":"invisible","deprecated":"false"},{"name":"TopOfRange","description":"The top of the range used for the BelowRange, WithinRange, and AboveRange events.","type":"number","rw":"read-write","deprecated":"false"},{"name":"WithinRangeEventEnabled","description":"Whether the WithinRange event should fire when the distance goes between the BottomOfRange and the TopOfRange.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AboveRange","description":"Distance has gone above the range.","deprecated":"false","params":[]},{"name":"BelowRange","description":"Distance has gone below the range.","deprecated":"false","params":[]},{"name":"WithinRange","description":"Distance has gone within the range.","deprecated":"false","params":[]}],"methods":[{"name":"GetDistance","description":"Returns the current distance in centimeters as a value between 0 and 254, or -1 if the distance can not be read.","deprecated":"false","params":[],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.Ocr","name":"Ocr","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Component for Ocr","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/ocr.png","androidMinSdk":19,"properties":[{"name":"ApiKey","editorType":"string","defaultValue":"helloworld","propertyType":"common","editorArgs":[]},{"name":"CreateSearchablePdf","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Language","editorType":"ocr_language","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Overlayed","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApiKey","description":"You can use the default api key: helloworld, or you can create your own api key at: https://ocr.space/ocrapi","type":"text","rw":"read-write","deprecated":"false"},{"name":"CreateSearchablePdf","description":"A searchable PDF file is a PDF file that includes text that can be searched upon using the standard Adobe Reader “search” functionality. In addition, the text can be selected and copied from the PDF. In this case the JSON response of the API contains a download link for the the searchable PDF. This download link is valid for one hour, than all data is removed from the OCR servers.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Language","description":"Choose the language used for OCR. If no language is specified, English is taken as 'Default'.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Overlayed","description":"Allows you to specify if the image/pdf text overlay is required. Overlay could be used to show the text over the image.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ReturnOnlyMessage","description":"Set this block before you upload a image and before you try to get the response from a image url. If this property is set to true, the response content returns only the message. That means the response content will be only the scanned text in words.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"ReturnOnlyPdfLink","description":"Set this block before you upload a image and before you try to get the response from a image url. If this property is set to true, the response content returns only the created pdf download link.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"TestImageUrl","description":"You can use the test image url if you have not any picture online on a server or else.","type":"text","rw":"read-only","deprecated":"false"}],"events":[{"name":"GotResponse","description":"You will find here the success state and the response content.","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"responseContent","type":"text"}]},{"name":"GotServerStatus","description":"You will find here the server status from the ocr provider. Possible results are 'UP' or 'DOWN'. 'pro Usa1' = Usa, East Coast. 'pro Usa2' = Usa, West Coast.","deprecated":"false","params":[{"name":"free","type":"text"},{"name":"proUsa1","type":"text"},{"name":"proUsa2","type":"text"},{"name":"proEurope","type":"text"},{"name":"proAsia","type":"text"}]}],"methods":[{"name":"GetOcrServerStatus","description":"Get the server status from the free ocr.space server. This is helpful if you want to know if the server is online or offline. Returns true when online, else false when offline.","deprecated":"false","params":[]},{"name":"GetTextFromImageUrl","description":"Get the text from a picture via the image url. Example: http://name/yourimage.jpg. Service powered by ocr.space.","deprecated":"false","params":[{"name":"imageUrl","type":"text"}]},{"name":"UploadImage","description":"Upload your image to the server from ocr.space and then you get back the text from the picture.","deprecated":"false","params":[{"name":"path","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.OrientationSensor","name":"OrientationSensor","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component providing information about the device's physical orientation in three dimensions:

These measurements assume that the device itself is not moving.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/orientationsensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Angle","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Available","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Azimuth","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Magnitude","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Pitch","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Roll","description":"","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"OrientationChanged","description":"Default OrientationChanged event handler.\n\n

This event is signalled when the device's orientation has changed. It\n reports the new values of azimuth, pich, and roll, and it also sets the Azimuth, Pitch,\n and roll properties.

\n

Azimuth is the compass heading in degrees, pitch indicates how the device\n is tilted from top to bottom, and roll indicates how much the device is tilted from\n side to side.

","deprecated":"false","params":[{"name":"azimuth","type":"number"},{"name":"pitch","type":"number"},{"name":"roll","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.Package","name":"Package","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for Package","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/package.png","androidMinSdk":19,"properties":[],"blockProperties":[{"name":"AppName","description":"Returns the name from the current running app.","type":"text","rw":"read-only","deprecated":"false"},{"name":"PackageName","description":"Returns the package name from the current running app.","type":"text","rw":"read-only","deprecated":"false"},{"name":"VersionCode","description":"This block will returns the version code of the current running app.","type":"number","rw":"read-only","deprecated":"false"},{"name":"VersionName","description":"This block will returns the version name of the current running app.","type":"text","rw":"read-only","deprecated":"false"}],"events":[],"methods":[{"name":"AppNameFrom","description":"Returns the name from the given package name.","deprecated":"false","params":[{"name":"packageName","type":"text"}],"returnType":"text"},{"name":"GetPackageIcon","description":"Try to show the application icon of the given package name. If the application cannot be found, \"Package not found\" is the output.","deprecated":"false","params":[{"name":"packageName","type":"text"}],"returnType":"text"},{"name":"IsPackageInstalled","description":"Returns true if a package (app) is installed.","deprecated":"false","params":[{"name":"packageName","type":"text"}],"returnType":"boolean"},{"name":"VersionCodeFrom","description":"This block will returns the version code of the package name. Returns '-1' if the package is not installed.","deprecated":"false","params":[{"name":"packageName","type":"text"}],"returnType":"number"},{"name":"VersionNameFrom","description":"This block will returns the version name of the package name. Returns 'Package not found' if the package is not installed.","deprecated":"false","params":[{"name":"packageName","type":"text"}],"returnType":"text"},{"name":"isPermissionGranted","description":"Check whether a particular package has been granted a particular permission.","deprecated":"false","params":[{"name":"permissionName","type":"text"},{"name":"packageName","type":"text"}],"returnType":"boolean"}]},{"type":"com.google.appinventor.components.runtime.PasswordTextBox","name":"PasswordTextBox","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"

A box for entering passwords. This is the same as the ordinary TextBox component except this does not display the characters typed by the user.

The value of the text in the box can be found or set through the Text property. If blank, the Hint property, which appears as faint text in the box, can provide the user with guidance as to what to type.

Text boxes are usually used with the Button component, with the user clicking on the button when text entry is complete.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"CursorColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"advanced","editorArgs":[]},{"name":"CursorVisible","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"Hint","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HintColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"The background color of the input box. You can choose a color by name in the Designer or in the Blocks Editor. The default background color is 'default' (shaded 3-D look).","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CurrentPosition","description":"Get the current cursor position.","type":"number","rw":"read-only","deprecated":"false"},{"name":"CursorColor","description":"The color of the cursor.","type":"number","rw":"read-write","deprecated":"false"},{"name":"CursorVisible","description":"Makes the cursor visible (the default) or invisible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableCopyPaste","description":"DEPRECATED since this feature is not working. Use 'Enabled' instead.","type":"boolean","rw":"read-write","deprecated":"true"},{"name":"Enabled","description":"Whether the user can enter text into this input box. By default, this is true.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"Whether the font for the text should be bold. By default, it is not.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"Whether the text should appear in italics. By default, it does not.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontSize","description":"The font size for the text. By default, it is 14.0 points.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"The font for the text. The value can be changed in the Designer.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Hint","description":"Text that should appear faintly in the input box to provide a hint as to what the user should enter. This can only be seen if the Text property is empty.","type":"text","rw":"read-write","deprecated":"false"},{"name":"HintColor","description":"Set a custom hint text color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"LineColor","description":"Please delete this block from your project.This block is deprecated and not longer supported.","type":"number","rw":"read-write","deprecated":"true"},{"name":"RotationAngle","description":"Sets the degrees that the textbox is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Text","description":"The text in the input box, which can be set by the programmer in the Designer or Blocks Editor, or it can be entered by the user (unless the Enabled property is false).","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Whether the text should be left justified, centered, or right justified. By default, text is left justified.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"The color for the text. You can choose a color by name in the Designer or in the Blocks Editor. The default text color is black.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextLength","description":"Returns the current text length as number.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"GotFocus","description":"Event raised when this component is selected for input, such as by\n the user touching it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Event raised when this component is no longer selected for input, such\n as if the user touches a different text box.","deprecated":"false","params":[]},{"name":"OnTextChanged","description":"Event to detect text changes.","deprecated":"false","params":[]}],"methods":[{"name":"RequestFocus","description":"Sets the textbox active.","deprecated":"false","params":[]},{"name":"SetCursorAt","description":"Set the cursor to the given position.","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"SetCursorAtEnd","description":"Set the cursor to the end of the text.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Pedometer","name":"Pedometer","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"A Component that acts like a Pedometer. It senses motion via the Accerleromter and attempts to determine if a step has been taken. Using a configurable stride length, it can estimate the distance traveled as well. ","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/pedometer.png","androidMinSdk":19,"properties":[{"name":"StopDetectionTimeout","editorType":"non_negative_integer","defaultValue":"2000","propertyType":"common","editorArgs":[]},{"name":"StrideLength","editorType":"non_negative_float","defaultValue":"0.73","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CalibrateStrideLength","description":"deprecated","type":"boolean","rw":"read-write","deprecated":"true"},{"name":"Distance","description":"The approximate distance traveled in meters.","type":"number","rw":"read-only","deprecated":"false"},{"name":"ElapsedTime","description":"Time elapsed in milliseconds since the pedometer was started.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Moving","description":"deprecated","type":"boolean","rw":"read-only","deprecated":"true"},{"name":"SimpleSteps","description":"The number of simple steps taken since the pedometer has started.","type":"number","rw":"read-only","deprecated":"false"},{"name":"StopDetectionTimeout","description":"The duration in milliseconds of idleness (no steps detected) after which to go into a \"stopped\" state","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrideLength","description":"Set the average stride length in meters.","type":"number","rw":"read-write","deprecated":"false"},{"name":"UseGPS","description":"","type":"boolean","rw":"write-only","deprecated":"true"},{"name":"WalkSteps","description":"the number of walk steps taken since the pedometer has started.","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"CalibrationFailed","description":"deprecated","deprecated":"true","params":[]},{"name":"GPSAvailable","description":"deprecated","deprecated":"true","params":[]},{"name":"GPSLost","description":"deprecated","deprecated":"true","params":[]},{"name":"SimpleStep","description":"This event is run when a raw step is detected","deprecated":"false","params":[{"name":"simpleSteps","type":"number"},{"name":"distance","type":"number"}]},{"name":"StartedMoving","description":"deprecated","deprecated":"true","params":[]},{"name":"StoppedMoving","description":"deprecated","deprecated":"true","params":[]},{"name":"WalkStep","description":"This event is run when a walking step is detected. A walking step is a step that appears to be involved in forward motion.","deprecated":"false","params":[{"name":"walkSteps","type":"number"},{"name":"distance","type":"number"}]}],"methods":[{"name":"Pause","description":"Pause counting of steps and distance.","deprecated":"false","params":[]},{"name":"Reset","description":"Resets the step counter, distance measure and time running.","deprecated":"false","params":[]},{"name":"Resume","description":"Resumes counting, synonym of Start.","deprecated":"false","params":[]},{"name":"Save","description":"Saves the pedometer state to the phone. Permits permits accumulation of steps and distance between invocations of an App that uses the pedometer. Different Apps will have their own saved state.","deprecated":"false","params":[]},{"name":"Start","description":"Start counting steps","deprecated":"false","params":[]},{"name":"Stop","description":"Stop counting steps","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.PhoneCall","name":"PhoneCall","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"

A non-visible component that makes a phone call to the number specified in the PhoneNumber property, which can be set either in the Designer or Blocks Editor. The component has a MakePhoneCall method, enabling the program to launch a phone call.

Often, this component is used with the ContactPicker component, which lets the user select a contact from the ones stored on the phone and sets the PhoneNumber property to the contact's phone number.

To directly specify the phone number (e.g., 650-555-1212), set the PhoneNumber property to a Text with the specified digits (e.g., \"6505551212\"). Dashes, dots, and parentheses may be included (e.g., \"(650)-555-1212\") but will be ignored; spaces may not be included.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/phoneCall.png","androidMinSdk":19,"properties":[{"name":"PhoneNumber","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"PhoneNumber","description":"","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"IncomingCallAnswered","description":"Event indicating that an incoming phone call is answered. phoneNumber is the incoming call phone number.","deprecated":"false","params":[{"name":"phoneNumber","type":"text"}]},{"name":"PhoneCallEnded","description":"Event indicating that a phone call has ended. If status is 1, incoming call is missed or rejected; if status is 2, incoming call is answered before hanging up; if status is 3, outgoing call is hung up. phoneNumber is the ended call phone number.","deprecated":"false","params":[{"name":"status","type":"number"},{"name":"phoneNumber","type":"text"}]},{"name":"PhoneCallStarted","description":"Event indicating that a phonecall has started. If status is 1, incoming call is ringing; if status is 2, outgoing call is dialled. phoneNumber is the incoming/outgoing phone number.","deprecated":"false","params":[{"name":"status","type":"number"},{"name":"phoneNumber","type":"text"}]}],"methods":[{"name":"MakePhoneCall","description":"Makes a phone call using the number in the PhoneNumber property.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.PhoneNumberPicker","name":"PhoneNumberPicker","external":"false","version":"9","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"A button that, when clicked on, displays a list of the contacts' phone numbers to choose among. After the user has made a selection, the following properties will be set to information about the chosen contact: \n

Other properties affect the appearance of the button (TextAlignment, BackgroundColor, etc.) and whether it can be clicked on (Enabled).

\n

The PhoneNumberPicker component may not work on all Android devices. For example, on Android systems before system 3.0, the returned lists of phone numbers and email addresses will be empty.\n","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ContactName","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"ContactUri","description":"URI that specifies the location of the contact on the device.","type":"text","rw":"read-only","deprecated":"false"},{"name":"EmailAddress","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"EmailAddressList","description":"","type":"list","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"PhoneNumber","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"PhoneNumberList","description":"","type":"list","rw":"read-only","deprecated":"false"},{"name":"Picture","description":"","type":"text","rw":"read-only","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Event to be raised after the picker activity returns its\n result and the properties have been filled in.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"BeforePicking","description":"Event to raise when the button of the component is clicked or the list is shown\n using the Open block. This event occurs before the list of items is displayed, and\n can be used to prepare the list before it is shown.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"Open","description":"Opens the picker, as though the user clicked on it.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"ViewContact","description":"view a contact via its URI","deprecated":"false","params":[{"name":"uri","type":"text"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.PhoneStatus","name":"PhoneStatus","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"INTERNAL","helpString":"Component that returns information about the phone.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/phoneip.png","androidMinSdk":19,"properties":[{"name":"WebRTC","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"WebRTC","description":"If True we are using WebRTC to talk to the server.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"OnSettings","description":"This event is fired when the \"settings\" menu item is selected (only available in the\n Companion App, defined in ReplForm.java).","deprecated":"false","params":[]}],"methods":[{"name":"GetInstaller","description":"Return the app that installed us","deprecated":"false","params":[],"returnType":"text"},{"name":"GetVersionName","description":"Return the our VersionName property","deprecated":"false","params":[],"returnType":"text"},{"name":"GetWifiIpAddress","description":"Returns the IP address of the phone in the form of a String","deprecated":"false","params":[],"returnType":"text"},{"name":"SdkLevel","description":"Get the current Android SDK Level","deprecated":"false","params":[],"returnType":"number"},{"name":"doFault","description":"Causes an Exception, used to debug exception processing.","deprecated":"false","params":[]},{"name":"installURL","description":"Downloads the URL and installs it as an Android Package","deprecated":"false","params":[{"name":"url","type":"text"}]},{"name":"isConnected","description":"Returns TRUE if the phone is on Wifi, FALSE otherwise","deprecated":"false","params":[],"returnType":"boolean"},{"name":"isDirect","description":"Returns true if we are running in the emulator or USB Connection","deprecated":"false","params":[],"returnType":"boolean"},{"name":"setAssetsLoaded","description":"Declare that we have loaded our initial assets and other assets should come from the sdcard","deprecated":"false","params":[]},{"name":"setHmacSeedReturnCode","description":"Establish the secret seed for HOTP generation. Return the SHA1 of the provided seed, this will be used to contact the rendezvous server. Note: This code also starts the connection negotiation process if we are using WebRTC. This is a bit of a kludge...","deprecated":"false","params":[{"name":"seed","type":"text"},{"name":"rendezvousServer","type":"text"}],"returnType":"text"},{"name":"shutdown","description":"Really Exit the Application","deprecated":"false","params":[]},{"name":"startHTTPD","description":"Start the internal AppInvHTTPD to listen for incoming forms. FOR REPL USE ONLY!","deprecated":"false","params":[{"name":"secure","type":"boolean"}]}]},{"type":"com.google.appinventor.components.runtime.Player","name":"Player","external":"false","version":"8","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Multimedia component that plays audio and controls phone vibration. The name of a multimedia field is specified in the Source property, which can be set in the Designer or in the Blocks Editor. The length of time for a vibration is specified in the Blocks Editor in milliseconds (thousandths of a second).\n

For supported audio formats, see Android Supported Media Formats.

\n

This component is best for long sound files, such as songs, while the Sound component is more efficient for short files, such as sound effects.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/player.png","androidMinSdk":19,"properties":[{"name":"Loop","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"PlayOnlyInForeground","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Source","editorType":"audio_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Volume","editorType":"non_negative_float","defaultValue":"50","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"CurrentPosition","description":"Returns the current position of the source file that is playing.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Duration","description":"Returns the duration of the source file.","type":"number","rw":"read-only","deprecated":"false"},{"name":"GetTrackInfo","description":"Returns a array of track informations.","type":"text","rw":"read-only","deprecated":"false"},{"name":"IsPlaying","description":"Reports whether the media is playing","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"LeftVolume","description":"Returns the current left volume.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Loop","description":"If true, the player will loop when it plays. Setting Loop while the player is playing will affect the current playing.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"PlayOnlyInForeground","description":"If true, the player will pause playing when leaving the current screen; if false (default option), the player continues playing whenever the current screen is displaying or not.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"RightVolume","description":"Returns the current right volume.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Source","description":"","type":"text","rw":"read-write","deprecated":"false"},{"name":"Volume","description":"Sets the volume to a number between 0 and 100.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"Completed","description":"Indicates that the media has reached the end","deprecated":"false","params":[]},{"name":"OtherPlayerStarted","description":"This event is signaled when another player has started (and the current player is playing or paused, but not stopped).","deprecated":"false","params":[]},{"name":"PlayerError","description":"The PlayerError event is no longer used. Please use the Screen.ErrorOccurred event instead.","deprecated":"false","params":[{"name":"message","type":"text"}]}],"methods":[{"name":"Pause","description":"Suspends playing the media if it is playing.","deprecated":"false","params":[]},{"name":"SeekTo","description":"Set a position where the source file should start playing.","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"SetLeftRightVolume","description":"Control the left and right volume of the player. Set the volume to a number between 0 and 100.","deprecated":"false","params":[{"name":"leftVolume","type":"number"},{"name":"rightVolume","type":"number"}]},{"name":"Start","description":"Plays the media. If it was previously paused, the playing is resumed.\n If it was previously stopped, it starts from the beginning.","deprecated":"false","params":[]},{"name":"Stop","description":"Stops playing the media and seeks to the beginning of the song.","deprecated":"false","params":[]},{"name":"Vibrate","description":"Vibrates for specified number of milliseconds.","deprecated":"false","params":[{"name":"milliseconds","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.Polygon","name":"Polygon","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"Polygon","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Description","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Draggable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"EnableInfobox","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FillColor","editorType":"color","defaultValue":"&HFFF34336","propertyType":"common","editorArgs":[]},{"name":"HolePointsFromString","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"PointsFromString","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"integer","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Description","description":"The description displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Draggable","description":"The Draggable property is used to set whether or not the user can drag the Marker by long-pressing and then dragging the marker to a new location.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableInfobox","description":"Enable or disable the infobox window display when the user taps the feature.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FillColor","description":"The paint color used to fill in the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"HolePoints","description":"","type":"list","rw":"read-write","deprecated":"false"},{"name":"HolePointsFromString","description":"Constructs holes in a polygon from a given list of coordinates per hole.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Points","description":"Gets or sets the sequence of points used to draw the polygon.","type":"list","rw":"read-write","deprecated":"false"},{"name":"PointsFromString","description":"Constructs a polygon from the given list of coordinates.","type":"text","rw":"write-only","deprecated":"false"},{"name":"StrokeColor","description":"The paint color used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeWidth","description":"The width of the stroke used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Title","description":"The title displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Type","description":"The type of the feature. For polygons, this returns the text \"Polygon\".","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"The user clicked on the feature.","deprecated":"false","params":[]},{"name":"Drag","description":"The user dragged the map feature.","deprecated":"false","params":[]},{"name":"LongClick","description":"The user long-pressed on the feature. This event will only trigger if Draggable is false.","deprecated":"false","params":[]},{"name":"StartDrag","description":"The user started a drag operation.","deprecated":"false","params":[]},{"name":"StopDrag","description":"The user stopped a drag operation.","deprecated":"false","params":[]}],"methods":[{"name":"Centroid","description":"Returns the centroid of the Polygon as a (latitude, longitude) pair.","deprecated":"false","params":[],"returnType":"list"},{"name":"DistanceToFeature","description":"Compute the distance, in meters, between two map features.","deprecated":"false","params":[{"name":"mapFeature","type":"component"},{"name":"centroids","type":"boolean"}],"returnType":"number"},{"name":"DistanceToPoint","description":"Compute the distance, in meters, between a map feature and a latitude, longitude point.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"},{"name":"centroid","type":"boolean"}],"returnType":"number"},{"name":"HideInfobox","description":"Hide the infobox if it is shown. If the infobox is not visible this function has no effect.","deprecated":"false","params":[]},{"name":"ShowInfobox","description":"Show the infobox for the feature. This will show the infobox even if","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.PressureSensor","name":"PressureSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that measures the ambient air pressure in hPa or mbar.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/pressureSensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"KeepRunningWhenOnPause","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Altitude","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Available","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"KeepRunningWhenOnPause","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MaximumRange","description":"","type":"number","rw":"read-only","deprecated":"false"},{"name":"Pressure","description":"","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"PressureChanged","description":"Event is invoked when pressure is changed.","deprecated":"false","params":[{"name":"pressure","type":"number"},{"name":"altitude","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.ProximitySensor","name":"ProximitySensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that can measures the proximity of an object in cm relative to the view screen of a device. This sensor is typically used to determine whether a handset is being held up to a persons ear; i.e. lets you determine how far away an object is from a device. Many devices return the absolute distance, in cm, but some return only near and far values. In this case, the sensor usually reports its maximum range value in the far state and a lesser value in the near state.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/proximitysensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"KeepRunningWhenOnPause","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"Reports whether or not the device has a proximity sensor","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Distance","description":"Returns the distance from the object to the device","type":"number","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"If enabled, then device will listen for changes in proximity","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"KeepRunningWhenOnPause","description":"If set to true, it will keep sensing for proximity changes even when the app is not visible","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MaximumRange","description":"Reports the Maximum Range of the device's ProximitySensor","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"ProximityChanged","description":"Triggered when distance (in cm) of the object to the device changes.","deprecated":"false","params":[{"name":"distance","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.PushNotifications","name":"PushNotifications","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"Push Notifications component powered by OneSignal","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/pushNotifications.png","androidMinSdk":19,"properties":[{"name":"OneSignalAppId","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"EnableLog","description":"If you want to enable the log then set it to true.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"EnableSound","description":"Enable Sound.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"EnableVibration","description":"Enable Vibration.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"GetEmailSubscriptionEmailAddress","description":"Get the email subscription email address.","type":"text","rw":"read-only","deprecated":"false"},{"name":"GetEmailSubscriptionUserId","description":"Get the email subscription user id.","type":"text","rw":"read-only","deprecated":"false"},{"name":"GetPermissionStatus","description":"Get Permission Status","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"GetSubscriptionStatus","description":"Get the subscription Status","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"GetUserId","description":"Get the User ID. If there is no user id it will return '-1'.","type":"text","rw":"read-only","deprecated":"false"},{"name":"OneSignalAppId","description":"Set here your One Signal App ID","type":"text","rw":"invisible","deprecated":"false"},{"name":"SetSubscription","description":"If you want to subscripe then set it to true.","type":"boolean","rw":"write-only","deprecated":"false"}],"events":[{"name":"GotAvailableTags","description":"Event to detect available one signal tags.","deprecated":"false","params":[{"name":"tagsAsString","type":"text"},{"name":"tagsAsList","type":"list"}]},{"name":"NotificationOpened","description":"User opened a notification.","deprecated":"false","params":[{"name":"id","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"}]},{"name":"NotificationReceived","description":"User received a notification.","deprecated":"false","params":[{"name":"id","type":"text"},{"name":"title","type":"text"},{"name":"message","type":"text"}]},{"name":"SendMessageDone","description":"Returns true if your message was send with success out of your app to all users.","deprecated":"false","params":[{"name":"success","type":"boolean"}]}],"methods":[{"name":"ClearAllNotifications","description":"Clear All Notifications.","deprecated":"false","params":[]},{"name":"DeleteTag","description":"Deletes a single tag that was previously set on a user.","deprecated":"false","params":[{"name":"key","type":"text"}]},{"name":"GetAvailableTags","description":"Get a list of available tags.","deprecated":"false","params":[]},{"name":"SendMessage","description":"Send a message to all users. The message and your REST Api Key can not be empty! You will find your REST Api Key in your OneSignal account settings.","deprecated":"false","params":[{"name":"title","type":"text"},{"name":"message","type":"text"},{"name":"restApiKey","type":"text"}]},{"name":"SendTag","description":"Tag a user based on an app event of your choosing so later you can create segments in to target these users.","deprecated":"false","params":[{"name":"key","type":"text"},{"name":"value","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.QrCode","name":"QrCode","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Component for QrCode","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/qrCode.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Charset","editorType":"string","defaultValue":"UTF-8","propertyType":"advanced","editorArgs":[]},{"name":"Format","editorType":"string","defaultValue":"png","propertyType":"common","editorArgs":[]},{"name":"FrontColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Margin","editorType":"integer","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"Size","editorType":"integer","defaultValue":"200","propertyType":"common","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"Default","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Set the background color of the qr code result.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Charset","description":"Set the charset of the input text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Format","description":"It's possible to create the QR code picture using different file formats, available are PNG, GIF, JPEG and the vector graphic formats SVG and EPS.","type":"text","rw":"read-write","deprecated":"false"},{"name":"FrontColor","description":"Set the color of the qr code result.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Margin","description":"Thickness of a margin in pixels. The margin will always have the same color as the background.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Size","description":"Set the size/resolution of the qr code.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Text","description":"This is the text that is converted as qr code.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"GotResponse","description":"You will find here the success state and image url.","deprecated":"false","params":[{"name":"success","type":"boolean"},{"name":"url","type":"text"}]}],"methods":[{"name":"GenerateQrCode","description":"Create a QR Code and the result is a link to it. Example: Set the resolution(in pixel) to 200(height and width has the same value) and text to: Hello world!. Result: QR code resolution is 200x200, text = Hello world! Your text input is encoded in the link automatically.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Radiobutton","name":"Radiobutton","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Component for Radiobutton","helpUrl":"https://docs.kodular.io/components/user-interface/radio-button/","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Checked","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"RadioButtonColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"Radio Button Text","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"TextSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Checked","description":"Set the radio button to checked or unchecked","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set, user can touch the radio button.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"RadioButtonColor","description":"Change the radio button component color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Text","description":"Set here the radio button text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextColor","description":"Set the text color for the radio button.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextSize","description":"The text size of the radio button.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"isChecked","description":"Returns true if the radio button is checked, else false.","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"Changed","description":"Event invoked when the radio button state has been changed.","deprecated":"false","params":[{"name":"checked","type":"boolean"}]}],"methods":[{"name":"Toggle","description":"Change the checked state of the view to the inverse of its current state","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Ratingbar","name":"Ratingbar","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"Component for Ratingbar","helpUrl":"https://docs.kodular.io/components/user-interface/rating-bar/","showOnPalette":"true","nonVisible":"false","iconName":"images/ratingbar.png","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF9E9E9E","propertyType":"common","editorArgs":[]},{"name":"IsIndicator","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SetNumberOfStars","editorType":"string","defaultValue":"5","propertyType":"common","editorArgs":[]},{"name":"SetStepSize","editorType":"float","defaultValue":".5","propertyType":"common","editorArgs":[]},{"name":"StarColor","editorType":"color","defaultValue":"&HFFF34336","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Change the background color of the star.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"GetNumberOfStars","description":"Returns the number of stars shown.","type":"number","rw":"read-only","deprecated":"false"},{"name":"GetRating","description":"Gets the current rating (number of stars filled).","type":"number","rw":"read-only","deprecated":"false"},{"name":"GetStepSize","description":"Gets the step size (granularity) of this rating bar.","type":"number","rw":"read-only","deprecated":"false"},{"name":"IsIndicator","description":"Whether this rating bar should only be an indicator (thus non-changeable by the user).","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SetNumberOfStars","description":"Sets the number of stars to show.","type":"number","rw":"write-only","deprecated":"false"},{"name":"SetRating","description":"Sets the rating (the number of stars filled).","type":"number","rw":"write-only","deprecated":"false"},{"name":"SetStepSize","description":"Sets the step size (granularity) of this rating bar.","type":"number","rw":"write-only","deprecated":"false"},{"name":"StarColor","description":"Change the color of the star.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Changed","description":"Event invoked when the rating has been changed.","deprecated":"false","params":[{"name":"rating","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.Rectangle","name":"Rectangle","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MAPS","helpString":"Rectangle","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Description","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Draggable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"EastLongitude","editorType":"float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"EnableInfobox","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FillColor","editorType":"color","defaultValue":"&HFFF34336","propertyType":"common","editorArgs":[]},{"name":"NorthLatitude","editorType":"float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"SouthLatitude","editorType":"float","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"StrokeColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"StrokeWidth","editorType":"integer","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Title","editorType":"text","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"WestLongitude","editorType":"float","defaultValue":"0","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Description","description":"The description displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Draggable","description":"The Draggable property is used to set whether or not the user can drag the Marker by long-pressing and then dragging the marker to a new location.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EastLongitude","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"EnableInfobox","description":"Enable or disable the infobox window display when the user taps the feature.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FillColor","description":"The paint color used to fill in the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"NorthLatitude","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"SouthLatitude","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeColor","description":"The paint color used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"StrokeWidth","description":"The width of the stroke used to outline the map feature.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Title","description":"The title displayed in the info window that appears when the user clicks on the map feature.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Type","description":"The type of the feature. For rectangles, this returns the text \"Rectangle\".","type":"text","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"WestLongitude","description":"","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"The user clicked on the feature.","deprecated":"false","params":[]},{"name":"Drag","description":"The user dragged the map feature.","deprecated":"false","params":[]},{"name":"LongClick","description":"The user long-pressed on the feature. This event will only trigger if Draggable is false.","deprecated":"false","params":[]},{"name":"StartDrag","description":"The user started a drag operation.","deprecated":"false","params":[]},{"name":"StopDrag","description":"The user stopped a drag operation.","deprecated":"false","params":[]}],"methods":[{"name":"Bounds","description":"Returns the bounding box of the Rectangle in the format ((North West) (South East)).","deprecated":"false","params":[],"returnType":"list"},{"name":"Center","description":"Returns the center of the Rectangle as a list of the form (Latitude Longitude).","deprecated":"false","params":[],"returnType":"list"},{"name":"DistanceToFeature","description":"Compute the distance, in meters, between two map features.","deprecated":"false","params":[{"name":"mapFeature","type":"component"},{"name":"centroids","type":"boolean"}],"returnType":"number"},{"name":"DistanceToPoint","description":"Compute the distance, in meters, between a map feature and a latitude, longitude point.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"},{"name":"centroid","type":"boolean"}],"returnType":"number"},{"name":"HideInfobox","description":"Hide the infobox if it is shown. If the infobox is not visible this function has no effect.","deprecated":"false","params":[]},{"name":"SetCenter","description":"Moves the Rectangle so that it is centered on the given latitude and longitude while attempting to maintain the width and height of the Rectangle as measured from the center to the edges.","deprecated":"false","params":[{"name":"latitude","type":"number"},{"name":"longitude","type":"number"}]},{"name":"ShowInfobox","description":"Show the infobox for the feature. This will show the infobox even if","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.SQLite","name":"SQLite","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"Tool developed by Carlos Pedroza to access the application's SQlite database.","helpUrl":"https://docs.kodular.io/components/storage/sqlite/","showOnPalette":"true","nonVisible":"true","iconName":"images/SQLite.png","androidMinSdk":19,"properties":[{"name":"ReturnHeader","editorType":"boolean","defaultValue":"false","propertyType":"common","editorArgs":[]},{"name":"SuppressToast","editorType":"boolean","defaultValue":"false","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ReturnHeader","description":"Returns whether the header row should be returned in the result of a Select statement.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"SuppressToast","description":"Returns whether Success Toast should be suppressed.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterExecution","description":"Event handler after the SQL statement is executed, returns whether the execution was succesful.","deprecated":"false","params":[{"name":"wasExecuted","type":"boolean"}]},{"name":"AfterQuery","description":"Event handler after the RawQuery or Query is executed and returns a list with the selected data and number of records.","deprecated":"false","params":[{"name":"result","type":"list"},{"name":"numberOfRecords","type":"number"}]},{"name":"ErrorOccurred","description":"Event handler when an error ocurred, returns a string with a message from the error.","deprecated":"false","params":[{"name":"message","type":"text"}]}],"methods":[{"name":"ClearDatabase","description":"Clears the database to version 1. Use only while developing, this shouldn't be use on production.","deprecated":"false","params":[]},{"name":"Delete","description":"Executes pre-compiled DELETE statement with specified parameters. Parameters: 1) String table - Name of the table. 2) String whereClause - Optional WHERE clause to apply when deleting (Example: 'ID = ?'), pasing an empty a string will delete all rows. 3) List whereArgs - List with arguments for the WHERE clause. These arguments will be replaced by '?' in the whereClause. Returns the number of rows affected if a whereClause is passed in, 0 otherwise.","deprecated":"false","params":[{"name":"table","type":"text"},{"name":"whereClause","type":"text"},{"name":"whereArgs","type":"list"}],"returnType":"number"},{"name":"GetPath","description":"Returns the path to the database","deprecated":"false","params":[],"returnType":"text"},{"name":"Insert","description":"Executes pre-compiled INSERT statement with specified parameters. Parameters: 1) String table - Name of the table. 2) YailList columns - List with the columns that will contain the data to be inserted in the database. 3) YailList values - List with the data to be inserted in the database. Returns the row ID of the newly inserted row, or -1 if an error occurred.","deprecated":"false","params":[{"name":"table","type":"text"},{"name":"columns","type":"list"},{"name":"values","type":"list"}],"returnType":"number"},{"name":"MultipleSQL","description":"Execute Multiple SQL Statement asynchronously and returns whether the transaction was succesful in the AfterExecution Event Handler. Use it when returned data isn't needed. Parameter: 1 ) List of SQL.","deprecated":"false","params":[{"name":"list","type":"list"}]},{"name":"Query","description":"Executes pre-compiled QUERY statement with specified parameters. Parameters: 1) String table: Name of the table. 2) YailList columns: List of which columns to return, passing an empty list will return all columns. 3) String selection: Filter declaring which rows to return, formatted as an SQL WHERE clause, passing an empty string will return all rows. 4) YailList selectionArgs: List with the arguments that will replace onto '?' in the selection filter. 5) String groupBy: A filter declaring how to group rows, formatted as an SQL GROUP BY clause (excluding the GROUP BY itself), passing an empty string will cause the row to not be grouped. 6) String having: A filter declare which row groups to include if row grouping is being used, passing an empty string will cause all row groups to be included. 7) String orderBy: How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself), passing an empty string will use the default sort order (unordered). 8) String limit: Limits the number of rows returned by the query, formatted as LIMIT clause, passing an empty string denotes no LIMIT clause. The result query is available in the AfterQuery event handler","deprecated":"false","params":[{"name":"table","type":"text"},{"name":"columns","type":"list"},{"name":"selection","type":"text"},{"name":"selectionArgs","type":"list"},{"name":"groupBy","type":"text"},{"name":"having","type":"text"},{"name":"orderBy","type":"text"},{"name":"limit","type":"text"}]},{"name":"RawQuery","description":"Executes the provided rawQuery Statement asynchronously. Returns a YailList with the selected data and number of records in the AfterQuery Event. Parameter: 1) String sql. 2) YailList selectionArgs: List with the arguments that will replace '?' in where clause in the query, to prevent SQL injections","deprecated":"false","params":[{"name":"sql","type":"text"},{"name":"selectionArgs","type":"list"}]},{"name":"Replace","description":"Executes pre-compiled REPLACE OR INSERT INTO statement with specified parameters. Parameters: 1) String table - Name of the table. 2) YailList columns - List with the columns that will contain the data to be replaced in the database. 3) YailList values - List with the data to be replaced in the database. Returns the row ID of the newly replaced row, or -1 if an error occurred.","deprecated":"false","params":[{"name":"table","type":"text"},{"name":"columns","type":"list"},{"name":"values","type":"list"}],"returnType":"number"},{"name":"SingleSQL","description":"Execute a Single SQL Statement asynchronously and returns whether the transaction was succesful in the AfterExecution Event Handler. Use it when returned data isn't needed. Parameter: 1) String sql.","deprecated":"false","params":[{"name":"sql","type":"text"}]},{"name":"Update","description":"Executes pre-compiled UPDATE statement with specified parameters. Parameters: 1) String table - Name of the table. 2) YailList columns - List with the columns that will contain the data to be inserted in the database. 3) YailList values - List with the data to be inserted in the database. 4) String whereClause - optional WHERE clause to apply when updating, leave an empty string to update all rows. Include ?s, which will be updated by the values from whereArgs. 5) YailList whereArgs - List with the columns that will contain the data to be updated in the database. Returns the row ID of the newly inserted row, or -1 if an error occurred.","deprecated":"false","params":[{"name":"table","type":"text"},{"name":"columns","type":"list"},{"name":"values","type":"list"},{"name":"whereClause","type":"text"},{"name":"whereArgs","type":"list"}],"returnType":"number"}]},{"type":"com.google.appinventor.components.runtime.Screenshot","name":"Screenshot","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for Screenshot","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/screenshot.png","androidMinSdk":19,"properties":[{"name":"AllowScreenshots","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"DimAmount","editorType":"non_negative_float","defaultValue":"0.5","propertyType":"common","editorArgs":[]},{"name":"FileName","editorType":"string","defaultValue":"Screenshot.png","propertyType":"common","editorArgs":[]},{"name":"NotificationBigStyle","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"NotificationShareButton","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"NotificationShareTitle","editorType":"string","defaultValue":"Share","propertyType":"common","editorArgs":[]},{"name":"NotificationTitle","editorType":"string","defaultValue":"Screenshot..","propertyType":"common","editorArgs":[]},{"name":"ShowNotification","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"ShowPreview","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AllowScreenshots","description":"This feature allows users of your app to make or ban screenshots of their app. If disabled and a person tries to make a screenshot, they will receive then a default system message that this is not possible.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"DimAmount","description":"Set the amount of dim behind the preview window if ShowPreview(...) is enabled. Use '0.0' for no dim and '1.0' for full dim.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FileName","description":"This will be the name for the taken screenshot image file.","type":"text","rw":"read-write","deprecated":"false"},{"name":"NotificationBigStyle","description":"This will display the notification in a big style.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"NotificationShareButton","description":"If enabled you will see a notification with a share button after the screenshot is taken.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"NotificationShareTitle","description":"This will set the notification share button text if the option \"Show Notification\" is enabled.","type":"text","rw":"read-write","deprecated":"false"},{"name":"NotificationTitle","description":"This will set the notification title if the option \"Show Notification\" is enabled. ","type":"text","rw":"read-write","deprecated":"false"},{"name":"ShowNotification","description":"If enabled you will see a notification in the statusbar after the screenshot is taken.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ShowPreview","description":"If enabled you will see a short preview animation after the screenshot is taken.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"arePermissionsGranted","description":"Returns true if the write and read permission is granted, else false.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"isReadPermissionGranted","description":"Returns true if the read permission is granted, else false.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"isWritePermissionGranted","description":"Returns true if the write permission is granted, else false.","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"GotScreenshot","description":"Event to detect that a screenshot was made by the user. Returns the image path to the taken screenshot.","deprecated":"false","params":[{"name":"image","type":"text"}]}],"methods":[{"name":"TakeScreenshot","description":"Take a screenshot of the current visible screen.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Sharing","name":"Sharing","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"Sharing is a non-visible component that enables sharing files and/or messages between your app and other apps installed on a device. The component will display a list of the installed apps that can handle the information provided, and will allow the user to choose one to share the content with, for instance a mail app, a social network app, a texting app, and so on.
The file path can be taken directly from other components such as the Camera or the ImagePicker, but can also be specified directly to read from storage. Be aware that different devices treat storage differently, so a few things to try if, for instance, you have a file called arrow.gif in the folder Appinventor/assets, would be: ","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/sharing.png","androidMinSdk":19,"properties":[{"name":"ShareDialogMessage","editorType":"string","defaultValue":"Send using...","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ShareDialogMessage","description":"Set here the text for the sharing dialog. The default text is 'Send using...'.","type":"text","rw":"write-only","deprecated":"false"}],"events":[{"name":"AppNotFound","description":"This event return the social media name if a app was not installed. Possible names are 'Facebook Messanger', 'Facebook', 'Twitter', 'Telegram', 'Twitter', 'Snapchat', 'Google Plus' or the given custom package name.","deprecated":"false","params":[{"name":"name","type":"text"}]}],"methods":[{"name":"ShareFile","description":"Shares a file through any capable application installed on the phone by displaying a list of the available apps and allowing the user to choose one from the list. The selected app will open with the file inserted on it.","deprecated":"false","params":[{"name":"file","type":"text"}]},{"name":"ShareFileWithMessage","description":"Shares both a file and a message through any capable application installed on the phone by displaying a list of available apps and allowing the user to choose one from the list. The selected app will open with the file and message inserted on it.","deprecated":"false","params":[{"name":"file","type":"text"},{"name":"message","type":"text"}]},{"name":"ShareMessage","description":"Shares a message through any capable application installed on the phone by displaying a list of the available apps and allowing the user to choose one from the list. The selected app will open with the message inserted on it.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageTo","description":"Shares a message through the given app. If the given app is not installed, then the -AppNotFound Event- will be invoked and returns the given -name-.","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"name","type":"text"},{"name":"packageName","type":"text"}]},{"name":"ShareMessageToFacebook","description":"Shares a message through facebook. If facebook is not installed, then the -AppNotFound Event- will be invoked and returns as name -Facebook-.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageToFacebookMessenger","description":"Shares a message through the facebook messenger. If the messenger is not installed, then the -AppNotFound Event- will be invoked and returns as name -Facebook Messanger-.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageToGooglePlus","description":"Shares a message through Google Plus. If google+ is not installed, then the -AppNotFound Event- will be invoked and returns as name -Google Plus-.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageToSnapchat","description":"Shares a message through Snapchat. If snapchat is not installed, then the -AppNotFound Event- will be invoked and returns as name -Snapchat-.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageToTelegram","description":"Shares a message through Telegram. If telegram is not installed, then the -AppNotFound Event- will be invoked and returns as name -Telegram-.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageToTwitter","description":"Shares a message through twitter. If twitter is not installed, then the -AppNotFound Event- will be invoked and returns as name -Twitter-.","deprecated":"false","params":[{"name":"message","type":"text"}]},{"name":"ShareMessageToWhatsApp","description":"Shares a message through WhatsApp. If whatsapp is not installed, then the -AppNotFound Event- will be invoked and returns as name -WhatsApp-.","deprecated":"false","params":[{"name":"message","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.Slider","name":"Slider","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"A Slider is a progress bar that adds a draggable thumb. You can touch the thumb and drag left or right to set the slider thumb position. As the Slider thumb is dragged, it will trigger the PositionChanged event, reporting the position of the Slider thumb. The reported position of the Slider thumb can be used to dynamically update another component attribute, such as the font size of a TextBox or the radius of a Ball.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"ColorLeft","editorType":"color","defaultValue":"&HFF00BCD3","propertyType":"common","editorArgs":[]},{"name":"ColorRight","editorType":"color","defaultValue":"&HFF9E9E9E","propertyType":"common","editorArgs":[]},{"name":"MaxValue","editorType":"float","defaultValue":"50.0","propertyType":"common","editorArgs":[]},{"name":"MinValue","editorType":"float","defaultValue":"10.0","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"ThumbColor","editorType":"color","defaultValue":"&HFF00BCD3","propertyType":"common","editorArgs":[]},{"name":"ThumbEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ThumbImage","editorType":"image_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"ThumbPosition","editorType":"float","defaultValue":"30.0","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ColorLeft","description":"The color of slider to the left of the thumb.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ColorRight","description":"The color of slider to the left of the thumb.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"MaxValue","description":"Sets the maximum value of slider. Changing the maximum value also resets Thumbposition to be halfway between the minimum and the (new) maximum. If the new maximum is less than the current minimum, then minimum and maximum will both be set to this value. Setting MaxValue resets the thumb position to halfway between MinValue and MaxValue and signals the PositionChanged event.","type":"number","rw":"read-write","deprecated":"false"},{"name":"MinValue","description":"Sets the minimum value of slider. Changing the minimum value also resets Thumbposition to be halfway between the (new) minimum and the maximum. If the new minimum is greater than the current maximum, then minimum and maximum will both be set to this value. Setting MinValue resets the thumb position to halfway between MinValue and MaxValue and signals the PositionChanged event.","type":"number","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the slider is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ThumbColor","description":"The color of slider thumb. This block works only on devices with api >= 16.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ThumbEnabled","description":"Sets whether or not to display the slider thumb.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ThumbImage","description":"","type":"text","rw":"invisible","deprecated":"false"},{"name":"ThumbPosition","description":"Sets the position of the slider thumb. If this value is greater than MaxValue, then it will be set to same value as MaxValue. If this value is less than MinValue, then it will be set to same value as MinValue.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"PositionChanged","description":"Indicates that position of the slider thumb has changed.","deprecated":"false","params":[{"name":"thumbPosition","type":"number"}]},{"name":"TouchDown","description":"Event will be invoked on a touch down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Event will be invoked on a touch up.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.Sound","name":"Sound","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"

A multimedia component that plays sound files and optionally vibrates for the number of milliseconds (thousandths of a second) specified in the Blocks Editor. The name of the sound file to play can be specified either in the Designer or in the Blocks Editor.

For supported sound file formats, see Android Supported Media Formats.

This Sound component is best for short sound files, such as sound effects, while the Player component is more efficient for longer sounds, such as songs.

You might get an error if you attempt to play a sound immeditely after setting the source.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/soundEffect.png","androidMinSdk":19,"properties":[{"name":"MinimumInterval","editorType":"non_negative_integer","defaultValue":"500","propertyType":"common","editorArgs":[]},{"name":"Source","editorType":"audio_asset","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"MinimumInterval","description":"The minimum interval, in milliseconds, between sounds. If you play a sound, all further Play() calls will be ignored until the interval has elapsed.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Source","description":"The name of the sound file. Only certain formats are supported. See http://developer.android.com/guide/appendix/media-formats.html.","type":"text","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"Pause","description":"Pauses playing the sound if it is being played.","deprecated":"false","params":[]},{"name":"Play","description":"Plays the sound specified by the Source property.","deprecated":"false","params":[]},{"name":"Resume","description":"Resumes playing the sound after a pause.","deprecated":"false","params":[]},{"name":"SoundNormal","description":"Ringer mode that may be audible and may vibrate.","deprecated":"false","params":[]},{"name":"SoundSilent","description":"Ringer mode that will be silent and will not vibrate.","deprecated":"false","params":[]},{"name":"SoundVibrate","description":"Ringer mode that will be silent and will vibrate.","deprecated":"false","params":[]},{"name":"Stop","description":"Stops playing the sound if it is being played.","deprecated":"false","params":[]},{"name":"Vibrate","description":"Vibrates for the specified number of milliseconds.","deprecated":"false","params":[{"name":"millisecs","type":"number"}]},{"name":"VibratePattern","description":"Vibrate with a given pattern","deprecated":"false","params":[{"name":"vibrate","type":"number"},{"name":"delay","type":"number"},{"name":"repeat","type":"boolean"}]}]},{"type":"com.google.appinventor.components.runtime.SoundRecorder","name":"SoundRecorder","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"

Multimedia component that records audio.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/soundRecorder.png","androidMinSdk":19,"properties":[{"name":"SavedRecording","editorType":"string","defaultValue":"/mnt/sdcard/Makeroid/mySound.3gp","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"SavedRecording","description":"Specifies the path to the file where the recording should be stored. If this proprety is the empty string, then starting a recording will create a file in an appropriate location. If the property is not the empty string, it should specify a complete path to a file in an existing directory, including a file name with the extension .3gp.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterSoundRecorded","description":"Provides the location of the newly created sound.","deprecated":"false","params":[{"name":"sound","type":"text"}]},{"name":"StartedRecording","description":"Indicates that the recorder has started, and can be stopped.","deprecated":"false","params":[]},{"name":"StoppedRecording","description":"Indicates that the recorder has stopped, and can be started again.","deprecated":"false","params":[]}],"methods":[{"name":"Pause","description":"Pause recording.","deprecated":"false","params":[]},{"name":"Start","description":"Starts recording.","deprecated":"false","params":[]},{"name":"Stop","description":"Stops recording.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.SoundSensor","name":"SoundSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"Physical world component that can detect such data as: sound amplitude (measurement of the degree of change [positive or negative] ).","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/soundSensor.png","androidMinSdk":19,"properties":[{"name":"Listen","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"MaxSoundlevel","editorType":"integer","defaultValue":"100","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Amplitude","description":"Returns the real sound amplitude which can be between 0 to 32768.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Listen","description":"Starts or Stops listening to sound changes","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"MaxSoundlevel","description":"Returns the max sound level.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SoundLevel","description":"Returns the sound level.","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"SoundChanged","description":"Triggered when the sound level has changed","deprecated":"false","params":[{"name":"value","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.SpaceView","name":"SpaceView","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"Component for SpaceView","helpUrl":"https://docs.kodular.io/components/layout/space/","showOnPalette":"true","nonVisible":"false","iconName":"images/space.png","androidMinSdk":19,"properties":[{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[],"methods":[]},{"type":"com.google.appinventor.components.runtime.SpeechRecognizer","name":"SpeechRecognizer","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Component for using Voice Recognition to convert from speech to text","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/speechRecognizer.png","androidMinSdk":19,"properties":[],"blockProperties":[{"name":"Result","description":"","type":"text","rw":"read-only","deprecated":"false"}],"events":[{"name":"AfterGettingText","description":"Simple event to raise after the VoiceReco activity has returned","deprecated":"false","params":[{"name":"result","type":"text"}]},{"name":"BeforeGettingText","description":"Simple event to raise when VoiceReco is invoked but before the VoiceReco\n activity is started.","deprecated":"false","params":[]}],"methods":[{"name":"GetText","description":"Solicits speech input from the user. After the speech is converted to\n text, the AfterGettingText event will be raised.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Spinner","name":"Spinner","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"

A spinner component that displays a pop-up with a list of elements. These elements can be set in the Designer or Blocks Editor by setting theElementsFromString property to a string-separated concatenation (for example, choice 1, choice 2, choice 3) or by setting the Elements property to a List in the Blocks editor. Spinners are created with the first item already selected. So selecting it does not generate an After Picking event. Consequently it's useful to make the first Spinner item be a non-choice like \"Select from below...\".

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/spinner.png","androidMinSdk":19,"properties":[{"name":"ElementsFromString","editorType":"string","defaultValue":"Item1, Item2, Item3","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"ItemBackgroundColor","editorType":"color","defaultValue":"&HFF03A9F3","propertyType":"common","editorArgs":[]},{"name":"ItemTextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"Prompt","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"PromptItemColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"common","editorArgs":[]},{"name":"Selection","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"SpinnerColor","editorType":"color","defaultValue":"&HFF2196F2","propertyType":"common","editorArgs":[]},{"name":"SpinnerTextSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextSize","editorType":"non_negative_float","defaultValue":"18","propertyType":"common","editorArgs":[]},{"name":"UsePrompt","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Elements","description":"returns a list of text elements to be picked from.","type":"list","rw":"read-write","deprecated":"false"},{"name":"ElementsFromString","description":"Sets the Spinner list to the elements passed in the comma-separated string.","type":"text","rw":"write-only","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ItemBackgroundColor","description":"Set the background color for the spinner items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ItemTextColor","description":"Set the text color for the spinner items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Prompt","description":"Text with the current title for the Spinner window.","type":"text","rw":"invisible","deprecated":"true"},{"name":"PromptItemColor","description":"Set the text color for the spinner items prompt/hint.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Selection","description":"Returns the current selected item in the spinner.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SelectionIndex","description":"The index of the currently selected item, starting at 1. If no item is selected, the value will be 0.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SpinnerColor","description":"Set the text color for the spinner.","type":"number","rw":"read-write","deprecated":"false"},{"name":"SpinnerTextSize","description":"The size of the spinner selected text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextSize","description":"The text size of the spinner items.","type":"number","rw":"read-write","deprecated":"false"},{"name":"UsePrompt","description":"If true the first spinner item will be the prompt text.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterSelecting","description":"Event called after the user selects an item from the dropdown list.","deprecated":"false","params":[{"name":"selection","type":"text"}]}],"methods":[{"name":"DisplayDropdown","description":"displays the dropdown list for selection, same action as when the user clicks on the spinner.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Surface","name":"Surface","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"VIEWS","helpString":"Component for Surface","helpUrl":"https://docs.kodular.io/components/layout/surface-view/","showOnPalette":"true","nonVisible":"false","iconName":"images/surface.png","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FaceDetection","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"SavePreviewAsFile","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"UseBackCamera","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Clickable","description":"Set the surface view component clickable or not clickable.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FaceDetection","description":"If enabled you can detect how many faces are in the front of the camera.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Flashlight","description":"Turn on or off the device flashlight. The function knows automatic if there is a flash/ torch available.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"SavePreviewAsFile","description":"Enable this block to enable the \"Got Preview\" event to get a image file from the camera preview.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"UseBackCamera","description":"If enabled you will open the back camera for the camera preview, else you open the front camera. The block detect automatic if there is a device camera available or not.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Clicked","description":"Event to detect clicks on the camera preview.","deprecated":"false","params":[]},{"name":"FaceDetected","description":"Event to detect that there are faces in the front of the camera.","deprecated":"false","params":[{"name":"numbers","type":"text"}]},{"name":"GotPreview","description":"Event to get the response from the camera preview as image file. The picture is by default in landscape mode. This event will only work if the option \"Save Preview As File\" is enabled/ true.","deprecated":"false","params":[{"name":"image","type":"text"}]},{"name":"LongClicked","description":"Event to detect long clicks on the camera preview.","deprecated":"false","params":[]},{"name":"PictureCreated","description":"Event to detect that the user has taken a picture from the preview.","deprecated":"false","params":[{"name":"image","type":"text"}]},{"name":"PreviewPaused","description":"Event to detect that the user paused the camera preview.","deprecated":"false","params":[]},{"name":"PreviewStoped","description":"Event to detect that the user stopped the camera preview.","deprecated":"false","params":[]}],"methods":[{"name":"PausePreview","description":"Pause the camera preview.","deprecated":"false","params":[]},{"name":"StartPreview","description":"Start the camera preview.","deprecated":"false","params":[]},{"name":"StopPreview","description":"Stop the camera preview.","deprecated":"false","params":[]},{"name":"TakePicture","description":"Take a picture from the camera preview.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.SwitchToggle","name":"SwitchToggle","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"write in ode","helpUrl":"https://docs.kodular.io/components/user-interface/switch/","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Checked","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF4CAF50","propertyType":"common","editorArgs":[]},{"name":"TextOff","editorType":"textArea","defaultValue":"Switch Off","propertyType":"common","editorArgs":[]},{"name":"TextOn","editorType":"textArea","defaultValue":"Switch On","propertyType":"common","editorArgs":[]},{"name":"TextSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"ThumbColor","editorType":"color","defaultValue":"&HFF4CAF50","propertyType":"common","editorArgs":[]},{"name":"TrackColor","editorType":"color","defaultValue":"&HFF009688","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Checked","description":"Set the toggle to checked or unchecked","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set to true, user can touch the switch.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontTypeface","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Set the text color for the switch.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextOff","description":"Set here the switch off text. HTML tags are too possiple: , ,
,
, , ,
, , , , , , , . Example: Test.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextOn","description":"Set here the switch on text. HTML tags are too possiple: , ,
,
, , ,
, , , , , , , . Example: Test.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextSize","description":"The text size of the switch.","type":"number","rw":"read-write","deprecated":"false"},{"name":"ThumbColor","description":"Change the disabled color of the switch.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TrackColor","description":"Change the enabled color of the switch.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"isChecked","description":"Return true if the switch is checked else false.","type":"boolean","rw":"read-only","deprecated":"false"}],"events":[{"name":"Clicked","description":"Event invoked when a switch has been clicked. Returns true or false if the switch is checked or not.","deprecated":"false","params":[{"name":"isChecked","type":"boolean"}]}],"methods":[{"name":"ThumbImage","description":"Set the drawable used for the switch 'thumb' - the piece that the user can physically touch and drag along the track. If 'color Filter Enabled' is set to true, the image will get a light tint filter with the same color that you used as thumb color.","deprecated":"false","params":[{"name":"image","type":"text"}]},{"name":"ThumbImageFromMaterialFont","description":"Set the drawable used for the switch 'thumb' - the piece that the user can physically touch and drag along the track. You can find the icon name (or code) here at https://material.io/icons . Use as size as example '300'.","deprecated":"false","params":[{"name":"iconName","type":"text"},{"name":"size","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.TableArrangement","name":"TableArrangement","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"

A formatting element in which to place components that should be displayed in tabular form.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"Columns","editorType":"non_negative_integer","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"Rows","editorType":"non_negative_integer","defaultValue":"2","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Columns","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Rows","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[],"methods":[]},{"type":"com.google.appinventor.components.runtime.TemperatureSensor","name":"TemperatureSensor","external":"false","version":"1","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SENSORS","helpString":"

Non-visible component that measures the temperature of the air in the room in degrees Celsius. This sensor implementation varies across devices.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/temperatureSensor.png","androidMinSdk":19,"properties":[{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Available","description":"Whether Sensor is Available","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Enabled","description":"Whether Sensor should be Enabled","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Temperature","description":"Returns the temperature in degrees celsius. To return values the sensor must be enabled","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"TemperatureChanged","description":"Event that fires when the temperature is changed","deprecated":"false","params":[{"name":"temperature","type":"number"}]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.TextBox","name":"TextBox","external":"false","version":"12","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"

A box for the user to enter text. The initial or user-entered text value is in the Text property. If blank, the Hint property, which appears as faint text in the box, can provide the user with guidance as to what to type.

The MultiLine property determines if the text can havemore than one line. For a single line text box, the keyboard will closeautomatically when the user presses the Done key. To close the keyboard for multiline text boxes, the app should use the HideKeyboard method or rely on the user to press the Back key.

The NumbersOnly property restricts the keyboard to acceptnumeric input only.

Other properties affect the appearance of the text box (TextAlignment, BackgroundColor, etc.) and whether it can be used (Enabled).

Text boxes are usually used with the Button component, with the user clicking on the button when text entry is complete.

If the text entered by the user should not be displayed, use PasswordTextBox instead.

","helpUrl":"https://docs.kodular.io/components/user-interface/textbox/","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"CursorColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"advanced","editorArgs":[]},{"name":"CursorVisible","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ErrorText","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HighlightColor","editorType":"color","defaultValue":"&H00000000","propertyType":"advanced","editorArgs":[]},{"name":"Hint","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"HintColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"InputType","editorType":"input_type","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"MultiLine","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"NumbersOnly","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"textArea","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFF000000","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"The background color of the input box. You can choose a color by name in the Designer or in the Blocks Editor. The default background color is 'default' (shaded 3-D look).","type":"number","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CurrentPosition","description":"Get the current cursor position.","type":"number","rw":"read-only","deprecated":"false"},{"name":"CursorColor","description":"The color of the cursor.","type":"number","rw":"read-write","deprecated":"false"},{"name":"CursorVisible","description":"Makes the cursor visible (the default) or invisible.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableCopyPaste","description":"DEPRECATED since this feature is not working. Use 'Enabled' instead.","type":"boolean","rw":"read-write","deprecated":"true"},{"name":"Enabled","description":"Whether the user can enter text into this input box. By default, this is true.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"ErrorText","description":"Returns the error text.","type":"text","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"Whether the font for the text should be bold. By default, it is not.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontItalic","description":"Whether the text should appear in italics. By default, it does not.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"FontSize","description":"The font size for the text. By default, it is 14.0 points.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"The font for the text. The value can be changed in the Designer.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"HighlightColor","description":"Returns the color of the highlighted text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Hint","description":"Text that should appear faintly in the input box to provide a hint as to what the user should enter. This can only be seen if the Text property is empty.","type":"text","rw":"read-write","deprecated":"false"},{"name":"HintColor","description":"Set a custom hint text color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"InputType","description":"The input type you want for this TextBox.","type":"number","rw":"read-write","deprecated":"false"},{"name":"LineColor","description":"Please delete this block from your project.This block is deprecated and not longer supported.","type":"number","rw":"read-write","deprecated":"true"},{"name":"MultiLine","description":"If true, then this text box accepts multiple lines of input, which are entered using the return key. For single line text boxes there is a Done key instead of a return key, and pressing Done hides the keyboard. The app should call the HideKeyboard method to hide the keyboard for a mutiline text box.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"NumbersOnly","description":"If true, then this text box accepts only numbers as keyboard input. Numbers can include a decimal point and an optional leading minus sign. This applies to keyboard input only. Even if NumbersOnly is true, you can use [set Text to] to enter any text at all.","type":"boolean","rw":"read-write","deprecated":"true"},{"name":"RotationAngle","description":"Sets the degrees that the textbox is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Text","description":"The text in the input box, which can be set by the programmer in the Designer or Blocks Editor, or it can be entered by the user (unless the Enabled property is false).","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Whether the text should be left justified, centered, or right justified. By default, text is left justified.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"The color for the text. You can choose a color by name in the Designer or in the Blocks Editor. The default text color is black.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TextLength","description":"Returns the current text length as number.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"GotFocus","description":"Event raised when this component is selected for input, such as by\n the user touching it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Event raised when this component is no longer selected for input, such\n as if the user touches a different text box.","deprecated":"false","params":[]},{"name":"OnTextChanged","description":"Event to detect text changes.","deprecated":"false","params":[]}],"methods":[{"name":"HideKeyboard","description":"Hide the keyboard. Only multiline text boxes need this. Single line text boxes close the keyboard when the users presses the Done key.","deprecated":"false","params":[]},{"name":"RequestFocus","description":"Sets the textbox active.","deprecated":"false","params":[]},{"name":"SetCursorAt","description":"Set the cursor to the given position.","deprecated":"false","params":[{"name":"position","type":"number"}]},{"name":"SetCursorAtEnd","description":"Set the cursor to the end of the text.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"ShowError","description":"Shows an error message next to the textbox.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.TextToSpeech","name":"TextToSpeech","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"The TestToSpeech component speaks a given text aloud. You can set the pitch and the rate of speech.

You can also set a language by supplying a language code. This changes the pronounciation of words, not the actual language spoken. For example, setting the language to French and speaking English text will sound like someone speaking English (en) with a French accent.

You can also specify a country by supplying a country code. This can affect the pronounciation. For example, British English (GBR) will sound different from US English (USA). Not every country code will affect every language.

The languages and countries available depend on the particular device, and can be listed with the AvailableLanguages and AvailableCountries properties.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/textToSpeech.png","androidMinSdk":19,"properties":[{"name":"Country","editorType":"countries","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Language","editorType":"languages","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Pitch","editorType":"float","defaultValue":"1.0","propertyType":"common","editorArgs":[]},{"name":"SpeechRate","editorType":"float","defaultValue":"1.0","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AvailableCountries","description":"List of the country codes available on this device for use with TextToSpeech. Check the Android developer documentation under supported languages to find the meanings of these abbreviations.","type":"list","rw":"read-only","deprecated":"false"},{"name":"AvailableLanguages","description":"List of the languages available on this device for use with TextToSpeech. Check the Android developer documentation under supported languages to find the meanings of these abbreviations.","type":"list","rw":"read-only","deprecated":"false"},{"name":"Country","description":"Country code to use for speech generation. This can affect the pronounciation. For example, British English (GBR) will sound different from US English (USA). Not every country code will affect every language.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Language","description":"Sets the language for TextToSpeech. This changes the way that words are pronounced, not the actual language that is spoken. For example setting the language to and speaking English text with sound like someone speaking English with a Frernch accent.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Pitch","description":"Sets the Pitch for TextToSpeech The values should be between 0 and 2 where lower values lower the tone of synthesized voice and greater values raise it.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Result","description":"","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"SpeechRate","description":"Sets the SpeechRate for TextToSpeech. The values should be between 0 and 2 where lower values slow down the pitch and greater values accelerate it.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"AfterSpeaking","description":"Event to raise after the message is spoken.","deprecated":"false","params":[{"name":"result","type":"boolean"}]},{"name":"BeforeSpeaking","description":"Event to raise when Speak is invoked, before the message is spoken.","deprecated":"false","params":[]}],"methods":[{"name":"Speak","description":"Speaks the given message.","deprecated":"false","params":[{"name":"message","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.Texting","name":"Texting","external":"false","version":"3","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"

A component that will, when the SendMessage method is called, send the text message specified in the Message property to the phone number specified in the PhoneNumber property.

If the ReceivingEnabled property is set to 1 messages will not be received. If ReceivingEnabled is set to 2 messages will be received only when the application is running. Finally if ReceivingEnabled is set to 3, messages will be received when the application is running and when the application is not running they will be queued and a notification displayed to the user.

When a message arrives, the MessageReceived event is raised and provides the sending number and message.

An app that includes this component will receive messages even when it is in the background (i.e. when it's not visible on the screen) and, moreso, even if the app is not running, so long as it's installed on the phone. If the phone receives a text message when the app is not in the foreground, the phone will show a notification in the notification bar. Selecting the notification will bring up the app. As an app developer, you'll probably want to give your users the ability to control ReceivingEnabled so that they can make the phone ignore text messages.

If the GoogleVoiceEnabled property is true, messages can be sent over Wifi using Google Voice. This option requires that the user have a Google Voice account and that the mobile Voice app is installed on the phone. The Google Voice option works only on phones that support Android 2.0 (Eclair) or higher.

To specify the phone number (e.g., 650-555-1212), set the PhoneNumber property to a Text string with the specified digits (e.g., 6505551212). Dashes, dots, and parentheses may be included (e.g., (650)-555-1212) but will be ignored; spaces may not be included.

Another way for an app to specify a phone number would be to include a PhoneNumberPicker component, which lets the users select a phone numbers from the ones stored in the the phone's contacts.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/texting.png","androidMinSdk":19,"properties":[{"name":"GoogleVoiceEnabled","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Message","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"PhoneNumber","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ReceivingEnabled","editorType":"text_receiving","defaultValue":"2","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"GoogleVoiceEnabled","description":"If true, then SendMessage will attempt to send messages over Wifi using Google Voice. This requires that the Google Voice app must be installed and set up on the phone or tablet, with a Google Voice account. If GoogleVoiceEnabled is false, the device must have phone and texting service in order to send or receive messages with this component.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Message","description":"The message that will be sent when the SendMessage method is called.","type":"text","rw":"read-write","deprecated":"false"},{"name":"PhoneNumber","description":"The number that the message will be sent to when the SendMessage method is called. The number is a text string with the specified digits (e.g., 6505551212). Dashes, dots, and parentheses may be included (e.g., (650)-555-1212) but will be ignored; spaces should not be included.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ReceivingEnabled","description":"If set to 1 (OFF) no messages will be received. If set to 2 (FOREGROUND) or3 (ALWAYS) the component will respond to messages if it is running. If the app is not running then the message will be discarded if set to 2 (FOREGROUND). If set to 3 (ALWAYS) and the app is not running the phone will show a notification. Selecting the notification will bring up the app and signal the MessageReceived event. Messages received when the app is dormant will be queued, and so several MessageReceived events might appear when the app awakens. As an app developer, it would be a good idea to give your users control over this property, so they can make their phones ignore text messages when your app is installed.","type":"number","rw":"read-write","deprecated":"false"}],"events":[{"name":"MessageReceived","description":"Event that's raised when a text message is received by the phone.","deprecated":"false","params":[{"name":"number","type":"text"},{"name":"messageText","type":"text"}]}],"methods":[{"name":"SendMessage","description":"Send a text message","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.TimePicker","name":"TimePicker","external":"false","version":"7","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"USERINTERFACE","helpString":"

A button that, when clicked on, launches a popup dialog to allow the user to select a time.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Hour","description":"The hour of the last time set using the time picker. The hour is in a 24 hour format. If the last time set was 11:53 pm, this property will return 23.","type":"number","rw":"read-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Instant","description":"The instant of the last time set using the time picker","type":"InstantInTime","rw":"read-only","deprecated":"false"},{"name":"Minute","description":"The minute of the last time set using the time picker","type":"number","rw":"read-only","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterTimeSet","description":"This event is run when a user has set the time in the popup dialog.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"LaunchPicker","description":"Launches the TimePicker popup.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"SetTimeToDisplay","description":"Set the time to be shown in the Time Picker popup. Current time is shown by default.","deprecated":"false","params":[{"name":"hour","type":"number"},{"name":"minute","type":"number"}]},{"name":"SetTimeToDisplayFromInstant","description":"Set the time from the instant to be shown in the Time Picker popup. Current time is shown by default.","deprecated":"false","params":[{"name":"instant","type":"InstantInTime"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.TinyDB","name":"TinyDB","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"TinyDB is a non-visible component that stores data for an app.

Apps created with App Inventor are initialized each time they run: If an app sets the value of a variable and the user then quits the app, the value of that variable will not be remembered the next time the app is run. In contrast, TinyDB is a persistent data store for the app, that is, the data stored there will be available each time the app is run. An example might be a game that saves the high score and retrieves it each time the game is played.

Data items are strings stored under tags . To store a data item, you specify the tag it should be stored under. Subsequently, you can retrieve the data that was stored under a given tag.

There is only one data store per app. Even if you have multiple TinyDB components, they will use the same data store. To get the effect of separate stores, use different keys. Also each app has its own data store. You cannot use TinyDB to pass data between two different apps on the phone, although you can use TinyDb to shares data between the different screens of a multi-screen app.

When you are developing apps using the AI Companion, all the apps using that companion will share the same TinyDb. That sharing will disappear once the apps are packaged. But, during development, you should be careful to clear the TinyDb each time you start working on a new app.

","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/tinyDB.png","androidMinSdk":19,"properties":[{"name":"Namespace","editorType":"string","defaultValue":"TinyDB1","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Namespace","description":"Namespace for storing data.","type":"text","rw":"read-write","deprecated":"false"}],"events":[],"methods":[{"name":"ClearAll","description":"Clear the entire data store","deprecated":"false","params":[]},{"name":"ClearTag","description":"Clear the entry with the given tag","deprecated":"false","params":[{"name":"tag","type":"text"}]},{"name":"GetTags","description":"Return a list of all the tags in the data store","deprecated":"false","params":[],"returnType":"any"},{"name":"GetValue","description":"Retrieve the value stored under the given tag. If there's no such tag, then return valueIfTagNotThere.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueIfTagNotThere","type":"any"}],"returnType":"any"},{"name":"StoreValue","description":"Store the given value under the given tag. The storage persists on the\n phone when the app is restarted.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueToStore","type":"any"}]}]},{"type":"com.google.appinventor.components.runtime.TinyWebDB","name":"TinyWebDB","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"STORAGE","helpString":"Non-visible component that communicates with a Web service to store and retrieve information.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/tinyWebDB.png","androidMinSdk":19,"properties":[{"name":"ServiceURL","editorType":"string","defaultValue":"http://tinywebdb.builder.makeroid.io","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ServiceURL","description":"Specifies the URL of the Web service.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"GotValue","description":"Indicates that a GetValue server request has succeeded.","deprecated":"false","params":[{"name":"tagFromWebDB","type":"text"},{"name":"valueFromWebDB","type":"any"}]},{"name":"ValueStored","description":"Event indicating that a StoreValue server request has succeeded.","deprecated":"false","params":[]},{"name":"WebServiceError","description":"Indicates that the communication with the Web service signaled an error.","deprecated":"false","params":[{"name":"message","type":"text"}]}],"methods":[{"name":"GetValue","description":"GetValue asks the Web service to get the value stored under the given tag.","deprecated":"false","params":[{"name":"tag","type":"text"}]},{"name":"StoreValue","description":"Asks the Web service to store the given value under the given tag.","deprecated":"false","params":[{"name":"tag","type":"text"},{"name":"valueToStore","type":"any"}]}]},{"type":"com.google.appinventor.components.runtime.Twitter","name":"Twitter","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"SOCIAL","helpString":"A non-visible component that enables communication with Twitter. Once a user has logged into their Twitter account (and the authorization has been confirmed successful by the IsAuthorized event), many more operations are available:
  • Searching Twitter for tweets or labels (SearchTwitter)
  • \n
  • Sending a Tweet (Tweet)
  • \n
  • Sending a Tweet with an Image (TweetWithImage)
  • \n
  • Directing a message to a specific user (DirectMessage)
  • \n
  • Receiving the most recent messages directed to the logged-in user (RequestDirectMessages)
  • \n
  • Following a specific user (Follow)
  • \n
  • Ceasing to follow a specific user (StopFollowing)
  • \n
  • Getting a list of users following the logged-in user (RequestFollowers)
  • \n
  • Getting the most recent messages of users followed by the logged-in user (RequestFriendTimeline)
  • \n
  • Getting the most recent mentions of the logged-in user (RequestMentions)

\n

You must obtain a Consumer Key and Consumer Secret for Twitter authorization specific to your app from http://twitter.com/oauth_clients/new","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/twitter.png","androidMinSdk":19,"properties":[{"name":"ConsumerKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"ConsumerSecret","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ConsumerKey","description":"The the consumer key to be used when authorizing with Twitter via OAuth.","type":"text","rw":"read-write","deprecated":"false"},{"name":"ConsumerSecret","description":"The consumer secret to be used when authorizing with Twitter via OAuth","type":"text","rw":"read-write","deprecated":"false"},{"name":"DirectMessages","description":"This property contains a list of the most recent messages mentioning the logged-in user. Initially, the list is empty. To set it, the program must:

  1. Call the Authorize method.
  2. Wait for the Authorized event.
  3. Call the RequestDirectMessages method.
  4. Wait for the DirectMessagesReceived event.
\nThe value of this property will then be set to the list of direct messages retrieved (and maintain that value until any subsequent call to RequestDirectMessages).","type":"list","rw":"read-only","deprecated":"false"},{"name":"Followers","description":"This property contains a list of the followers of the logged-in user. Initially, the list is empty. To set it, the program must:
  1. Call the Authorize method.
  2. Wait for the IsAuthorized event.
  3. Call the RequestFollowers method.
  4. Wait for the FollowersReceived event.
\nThe value of this property will then be set to the list of followers (and maintain its value until any subsequent call to RequestFollowers).","type":"list","rw":"read-only","deprecated":"false"},{"name":"FriendTimeline","description":"This property contains the 20 most recent messages of users being followed. Initially, the list is empty. To set it, the program must:
  1. Call the Authorize method.
  2. Wait for the IsAuthorized event.
  3. Specify users to follow with one or more calls to the Follow method.
  4. Call the RequestFriendTimeline method.
  5. Wait for the FriendTimelineReceived event.
\nThe value of this property will then be set to the list of messages (and maintain its value until any subsequent call to RequestFriendTimeline.","type":"list","rw":"read-only","deprecated":"false"},{"name":"Mentions","description":"This property contains a list of mentions of the logged-in user. Initially, the list is empty. To set it, the program must:
  1. Call the Authorize method.
  2. Wait for the IsAuthorized event.
  3. Call the RequestMentions method.
  4. Wait for the MentionsReceived event.
\nThe value of this property will then be set to the list of mentions (and will maintain its value until any subsequent calls to RequestMentions).","type":"list","rw":"read-only","deprecated":"false"},{"name":"SearchResults","description":"This property, which is initially empty, is set to a list of search results after the program:
  1. Calls the SearchTwitter method.
  2. Waits for the SearchSuccessful event.
\nThe value of the property will then be the same as the parameter to SearchSuccessful. Note that it is not necessary to call the Authorize method before calling SearchTwitter.","type":"list","rw":"read-only","deprecated":"false"},{"name":"TwitPic_API_Key","description":"The API Key for image uploading, provided by TwitPic.","type":"text","rw":"read-write","deprecated":"true"},{"name":"Username","description":"The user name of the authorized user. Empty if there is no authorized user.","type":"text","rw":"read-only","deprecated":"false"}],"events":[{"name":"DirectMessagesReceived","description":"This event is raised when the recent messages requested through RequestDirectMessages have been retrieved. A list of the messages can then be found in the messages parameter or the Messages property.","deprecated":"false","params":[{"name":"messages","type":"list"}]},{"name":"FollowersReceived","description":"This event is raised when all of the followers of the logged-in user requested through RequestFollowers have been retrieved. A list of the followers can then be found in the followers parameter or the Followers property.","deprecated":"false","params":[{"name":"followers2","type":"list"}]},{"name":"FriendTimelineReceived","description":"This event is raised when the messages requested through RequestFriendTimeline have been retrieved. The timeline parameter and the Timeline property will contain a list of lists, where each sub-list contains a status update of the form (username message)","deprecated":"false","params":[{"name":"timeline","type":"list"}]},{"name":"IsAuthorized","description":"This event is raised after the program calls Authorize if the authorization was successful. It is also called after a call to CheckAuthorized if we already have a valid access token. After this event has been raised, any other method for this component can be called.","deprecated":"false","params":[]},{"name":"MentionsReceived","description":"This event is raised when the mentions of the logged-in user requested through RequestMentions have been retrieved. A list of the mentions can then be found in the mentions parameter or the Mentions property.","deprecated":"false","params":[{"name":"mentions","type":"list"}]},{"name":"SearchSuccessful","description":"This event is raised when the results of the search requested through SearchSuccessful have been retrieved. A list of the results can then be found in the results parameter or the Results property.","deprecated":"false","params":[{"name":"searchResults","type":"list"}]}],"methods":[{"name":"Authorize","description":"Redirects user to login to Twitter via the Web browser using the OAuth protocol if we don't already have authorization.","deprecated":"false","params":[]},{"name":"CheckAuthorized","description":"Checks whether we already have access, and if so, causes IsAuthorized event handler to be called.","deprecated":"false","params":[]},{"name":"DeAuthorize","description":"Removes Twitter authorization from this running app instance","deprecated":"false","params":[]},{"name":"DirectMessage","description":"This sends a direct (private) message to the specified user. The message will be trimmed if it exceeds 160characters.

Requirements: This should only be called after the IsAuthorized event has been raised, indicating that the user has successfully logged in to Twitter.

","deprecated":"false","params":[{"name":"user","type":"text"},{"name":"message","type":"text"}]},{"name":"Follow","description":"Starts following a user.","deprecated":"false","params":[{"name":"user","type":"text"}]},{"name":"Login","description":"Twitter's API no longer supports login via username and password. Use the Authorize call instead.","deprecated":"false","params":[{"name":"username","type":"text"},{"name":"password","type":"text"}]},{"name":"RequestDirectMessages","description":"Requests the 20 most recent direct messages sent to the logged-in user. When the messages have been retrieved, the system will raise the DirectMessagesReceived event and set the DirectMessages property to the list of messages.

Requirements: This should only be called after the IsAuthorized event has been raised, indicating that the user has successfully logged in to Twitter.

","deprecated":"false","params":[]},{"name":"RequestFollowers","description":"Gets who is following you.","deprecated":"false","params":[]},{"name":"RequestFriendTimeline","description":"Gets the most recent 20 messages in the user's timeline.","deprecated":"false","params":[]},{"name":"RequestMentions","description":"Requests the 20 most recent mentions of the logged-in user. When the mentions have been retrieved, the system will raise the MentionsReceived event and set the Mentions property to the list of mentions.

Requirements: This should only be called after the IsAuthorized event has been raised, indicating that the user has successfully logged in to Twitter.

","deprecated":"false","params":[]},{"name":"SearchTwitter","description":"This searches Twitter for the given String query.

Requirements: This should only be called after the IsAuthorized event has been raised, indicating that the user has successfully logged in to Twitter.

","deprecated":"false","params":[{"name":"query","type":"text"}]},{"name":"StopFollowing","description":"Stops following a user.","deprecated":"false","params":[{"name":"user","type":"text"}]},{"name":"Tweet","description":"This sends a tweet as the logged-in user with the specified Text, which will be trimmed if it exceeds 160 characters.

Requirements: This should only be called after the IsAuthorized event has been raised, indicating that the user has successfully logged in to Twitter.

","deprecated":"false","params":[{"name":"status","type":"text"}]},{"name":"TweetWithImage","description":"This sends a tweet as the logged-in user with the specified Text and a path to the image to be uploaded, which will be trimmed if it exceeds 160 characters. If an image is not found or invalid, only the text will be tweeted.

Requirements: This should only be called after the IsAuthorized event has been raised, indicating that the user has successfully logged in to Twitter.

","deprecated":"false","params":[{"name":"status","type":"text"},{"name":"imagePath","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.VerticalArrangement","name":"VerticalArrangement","external":"false","version":"9","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"

A formatting element in which to place components that should be displayed one below another. (The first child component is stored on top, the second beneath it, etc.) If you wish to have components displayed next to one another, use HorizontalArrangement instead.

","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Scrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"UseRoundCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"isCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"A number that encodes how the contents of the arrangement are aligned vertically. The choices are: 1 = aligned at the top, 2 = vertically centered, 3 = aligned at the bottom. Alignment has no effect if the arrangement's height is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"Returns the component's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FullClickable","description":"","type":"boolean","rw":"invisible","deprecated":"true"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Specifies the path of the component's image. If there is both an Image and a BackgroundColor, only the Image will be visible.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Scrollbar","description":"Whether to display a scrollbar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseRoundCard","description":"If enabled the card layout will have then round corners.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"isCard","description":"If enabled the arrangement will be convert to a card view. You can detect clicks on it with the \"Click\" event.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"Click listener event.","deprecated":"false","params":[]},{"name":"LongClick","description":"Long click listener event.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.VerticalScrollArrangement","name":"VerticalScrollArrangement","external":"false","version":"7","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"LAYOUT_GENERAL","helpString":"

A formatting element in which to place components that should be displayed one below another. (The first child component is stored on top, the second beneath it, etc.) If you wish to have components displayed next to one another, use HorizontalArrangement instead.

This version is scrollable","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"images/verticalScroll.png","androidMinSdk":19,"properties":[{"name":"AlignHorizontal","editorType":"horizontal_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"AlignVertical","editorType":"vertical_alignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"BackgroundColor","editorType":"color","defaultValue":"&H00000000","propertyType":"common","editorArgs":[]},{"name":"Clickable","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Scrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"UseRoundCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"isCard","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AlignHorizontal","description":"A number that encodes how contents of the arrangement are aligned horizontally. The choices are: 1 = left aligned, 2 = right aligned, 3 = horizontally centered. Alignment has no effect if the arrangement's width is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"AlignVertical","description":"A number that encodes how the contents of the arrangement are aligned vertically. The choices are: 1 = aligned at the top, 2 = vertically centered, 3 = aligned at the bottom. Alignment has no effect if the arrangement's height is automatic.","type":"number","rw":"read-write","deprecated":"false"},{"name":"BackgroundColor","description":"Returns the component's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"Clickable","description":"Set the component clickable or not clickable.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"FullClickable","description":"","type":"boolean","rw":"invisible","deprecated":"true"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Specifies the path of the component's image. If there is both an Image and a BackgroundColor, only the Image will be visible.","type":"text","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Scrollbar","description":"Whether to display a scrollbar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseRoundCard","description":"If enabled the card layout will have then round corners.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"isCard","description":"If enabled the arrangement will be convert to a card view. You can detect clicks on it with the \"Click\" event.","type":"boolean","rw":"read-write","deprecated":"false"}],"events":[{"name":"Click","description":"Click listener event.","deprecated":"false","params":[]},{"name":"LongClick","description":"Long click listener event.","deprecated":"false","params":[]}],"methods":[]},{"type":"com.google.appinventor.components.runtime.VideoPicker","name":"VideoPicker","external":"false","version":"4","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"A special-purpose button. When the user taps an video picker, the device's video gallery appears, and the user can choose an video.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"BackgroundColor","editorType":"color","defaultValue":"&HFF444444","propertyType":"common","editorArgs":[]},{"name":"BorderShadow","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Enabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FontBold","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontItalic","editorType":"boolean","defaultValue":"False","propertyType":"common","editorArgs":[]},{"name":"FontSize","editorType":"non_negative_float","defaultValue":"14.0","propertyType":"common","editorArgs":[]},{"name":"FontTypeface","editorType":"typeface","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"FontTypefaceImport","editorType":"font_asset","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"HTMLFormat","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Image","editorType":"image_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"RotationAngle","editorType":"float","defaultValue":"0.0","propertyType":"advanced","editorArgs":[]},{"name":"Shape","editorType":"button_shape","defaultValue":"0","propertyType":"common","editorArgs":[]},{"name":"ShowFeedback","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Text","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"TextAlignment","editorType":"textalignment","defaultValue":"1","propertyType":"common","editorArgs":[]},{"name":"TextColor","editorType":"color","defaultValue":"&HFFFFFFFF","propertyType":"common","editorArgs":[]},{"name":"TouchColor","editorType":"color","defaultValue":"&HFFCCCCCC","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"BackgroundColor","description":"Returns the button's background color","type":"number","rw":"read-write","deprecated":"false"},{"name":"BorderShadow","description":"Returns true if the button have a outside border shadow on click.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Enabled","description":"If set, user can tap check box to cause action.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontBold","description":"If set, button text is displayed in bold.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontItalic","description":"If set, button text is displayed in italics.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FontSize","description":"Point size for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"FontTypeface","description":"Font family for button text.","type":"number","rw":"invisible","deprecated":"false"},{"name":"FontTypefaceImport","description":"Set a custom font.","type":"text","rw":"write-only","deprecated":"false"},{"name":"HTMLFormat","description":"If true, then this button will show html text else it will show plain text. Note: Not all HTML is supported.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"Image","description":"Image to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"RotationAngle","description":"Sets the degrees that the button is rotated around the pivot point. Increasing values result in clockwise rotation.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Selection","description":"Path to the file containing the video that was selected.","type":"text","rw":"read-only","deprecated":"false"},{"name":"Shape","description":"Specifies the button's shape (default, rounded, rectangular, oval). The shape will not be visible if an Image is being displayed.","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowFeedback","description":"Specifies if a visual feedback should be shown for a button that as an image as background.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Text","description":"Text to display on button.","type":"text","rw":"read-write","deprecated":"false"},{"name":"TextAlignment","description":"Left, center, or right.","type":"number","rw":"invisible","deprecated":"false"},{"name":"TextColor","description":"Color for button text.","type":"number","rw":"read-write","deprecated":"false"},{"name":"TouchColor","description":"Set the buttons touch color.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"AfterPicking","description":"Event to be raised after the picker activity returns its\n result and the properties have been filled in.","deprecated":"false","params":[{"name":"selection","type":"text"}]},{"name":"BeforePicking","description":"Event to raise when the button of the component is clicked or the list is shown\n using the Open block. This event occurs before the list of items is displayed, and\n can be used to prepare the list before it is shown.","deprecated":"false","params":[]},{"name":"GotFocus","description":"Indicates the cursor moved over the button so it is now possible to click it.","deprecated":"false","params":[]},{"name":"LostFocus","description":"Indicates the cursor moved away from the button so it is now no longer possible to click it.","deprecated":"false","params":[]},{"name":"TouchDown","description":"Indicates that the button was pressed down.","deprecated":"false","params":[]},{"name":"TouchUp","description":"Indicates that a button has been released.","deprecated":"false","params":[]}],"methods":[{"name":"ButtonClick","description":"Perform a button click as function.","deprecated":"false","params":[]},{"name":"Open","description":"Opens the picker, as though the user clicked on it.","deprecated":"false","params":[]},{"name":"SetShadow","description":"Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black.","deprecated":"false","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"radius","type":"number"},{"name":"color","type":"number"}]},{"name":"WithIconFromFontAwesome","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://fontawesome.com/cheatsheet Use as example for a heart icon just 'f004'.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromMaterialFont","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text. Use a material icon as the button icon without uploading a image resource into your project. You can find the icon name (or code) here at https://material.io/icons","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"iconName","type":"text"},{"name":"iconColor","type":"number"},{"name":"padding","type":"number"},{"name":"size","type":"number"}]},{"name":"WithIconFromPicture","description":"Show a image on the given postion near to the button. You can use following words for the position: 'Left', 'Right', 'Top' or 'Bottom'. Use the padding to add space between the icon and text.","deprecated":"false","params":[{"name":"position","type":"text"},{"name":"picture","type":"text"},{"name":"padding","type":"number"},{"name":"width","type":"number"},{"name":"height","type":"number"}]}]},{"type":"com.google.appinventor.components.runtime.VideoPlayer","name":"VideoPlayer","external":"false","version":"8","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"A multimedia component capable of playing videos. When the application is run, the VideoPlayer will be displayed as a rectangle on-screen. If the user touches the rectangle, controls will appear to play/pause, skip ahead, and skip backward within the video. The application can also control behavior by calling the Start, Pause, and SeekTo methods.

Video files should be in 3GPP (.3gp) or MPEG-4 (.mp4) formats. For more details about legal formats, see Android Supported Media Formats.

App Inventor for Android only permits video files under 1 MB and limits the total size of an application to 5 MB, not all of which is available for media (video, audio, and sound) files. If your media files are too large, you may get errors when packaging or installing your application, in which case you should reduce the number of media files or their sizes. Most video editing software, such as Windows Movie Maker and Apple iMovie, can help you decrease the size of videos by shortening them or re-encoding the video into a more compact format.

You can also set the media source to a URL that points to a streaming video, but the URL must point to the video file itself, not to a program that plays the video.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"ShowControls","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Source","editorType":"video_asset","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"Volume","editorType":"non_negative_float","defaultValue":"50","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CurrentPosition","description":"Returns the current position of the source file that is playing.","type":"number","rw":"read-only","deprecated":"false"},{"name":"FullScreen","description":"","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"IsPlaying","description":"Reports whether the media is playing.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"ShowControls","description":"If enabled the user will see the control buttons.","type":"boolean","rw":"write-only","deprecated":"false"},{"name":"Source","description":"The \"path\" to the video. Usually, this will be the name of the video file, which should be added in the Designer.","type":"text","rw":"write-only","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Volume","description":"Sets the volume to a number between 0 and 100. Values less than 0 will be treated as 0, and values greater than 100 will be treated as 100.","type":"number","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"}],"events":[{"name":"Completed","description":"Indicates that the video has reached the end","deprecated":"false","params":[]},{"name":"VideoPlayerError","description":"The VideoPlayerError event is no longer used. Please use the Screen.ErrorOccurred event instead.","deprecated":"false","params":[{"name":"message","type":"text"}]}],"methods":[{"name":"GetDuration","description":"Returns duration of the video in milliseconds.","deprecated":"false","params":[],"returnType":"number"},{"name":"Pause","description":"Pauses playback of the video. Playback can be resumed at the same location by calling the Start method.","deprecated":"false","params":[]},{"name":"SeekTo","description":"Seeks to the requested time (specified in milliseconds) in the video. If the video is paused, the frame shown will not be updated by the seek. The player can jump only to key frames in the video, so seeking to times that differ by short intervals may not actually move to different frames.","deprecated":"false","params":[{"name":"ms","type":"number"}]},{"name":"Start","description":"Starts playback of the video.","deprecated":"false","params":[]},{"name":"Stop","description":"Resets to start of video and pauses it if video was playing.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.Wallpaper","name":"Wallpaper","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"UTILITIES","helpString":"Component for Wallpaper","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/wallpaper.png","androidMinSdk":19,"properties":[{"name":"SaveWallpaperAs","editorType":"string","defaultValue":"wallpaperPicture.png","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"DesiredMinimumHeight","description":"Returns the desired minimum height for the wallpaper.","type":"number","rw":"read-only","deprecated":"false"},{"name":"DesiredMinimumWidth","description":"Returns the desired minimum width for the wallpaper.","type":"number","rw":"read-only","deprecated":"false"},{"name":"IsSetWallpaperAllowed","description":"Returns whether the calling package is allowed to set the wallpaper for the calling user. This block works only on devices with Android 7+.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"IsWallpaperSupported","description":"Returns whether wallpapers are supported for the calling user. This block works only on devices with Android 6+.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"SaveWallpaperAs","description":"After the user clicked on \"Get Wallpaper\" this will be the name for the wallpaper picture.","type":"text","rw":"write-only","deprecated":"false"}],"events":[{"name":"GotWallpaper","description":"Event to detect that the component got the current system wallpaper.","deprecated":"false","params":[{"name":"picture","type":"text"}]},{"name":"WallpaperChanged","description":"Event to detect that the user has changed the wallpaper. This event will be invoked by the \"Set Wallpaper\" function.","deprecated":"false","params":[{"name":"success","type":"boolean"}]},{"name":"WallpaperCleared","description":"Event to detect that the user has cleared/deleted the wallpaper.","deprecated":"false","params":[]}],"methods":[{"name":"Clear","description":"Remove any currently set system wallpaper, reverting to the system's built-in wallpaper.","deprecated":"false","params":[]},{"name":"ClearWallpaper","description":"Reset all wallpaper to the factory default. This block works only on devices with Android 9+.","deprecated":"false","params":[]},{"name":"GetWallpaper","description":"Retrieve the current system wallpaper; if no wallpaper is set, the system built-in static wallpaper is returned.","deprecated":"false","params":[]},{"name":"SetLockScreenWallpaper","description":"Change the current lock screen wallpaper. This block works only on devices with Android 7+.","deprecated":"false","params":[{"name":"image","type":"text"}]},{"name":"SetWallpaper","description":"Change the current system wallpaper.","deprecated":"false","params":[{"name":"image","type":"text"}]}]},{"type":"com.google.appinventor.components.runtime.Web","name":"Web","external":"false","version":"5","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"Non-visible component that provides functions for HTTP GET, POST, PUT, and DELETE requests.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/web.png","androidMinSdk":19,"properties":[{"name":"AllowCookies","editorType":"boolean","defaultValue":"false","propertyType":"common","editorArgs":[]},{"name":"ResponseFileName","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"SaveResponse","editorType":"boolean","defaultValue":"false","propertyType":"common","editorArgs":[]},{"name":"Url","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"AllowCookies","description":"Whether the cookies from a response should be saved and used in subsequent requests. Cookies are only supported on Android version 2.3 or greater.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"RequestHeaders","description":"The request headers, as a list of two-element sublists. The first element of each sublist represents the request header field name. The second element of each sublist represents the request header field values, either a single value or a list containing multiple values.","type":"list","rw":"read-write","deprecated":"false"},{"name":"ResponseFileName","description":"The name of the file where the response should be saved. If SaveResponse is true and ResponseFileName is empty, then a new file name will be generated.","type":"text","rw":"read-write","deprecated":"false"},{"name":"SaveResponse","description":"Whether the response should be saved in a file.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Url","description":"The URL for the web request.","type":"text","rw":"read-write","deprecated":"false"}],"events":[{"name":"GotFile","description":"Event indicating that a request has finished.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"responseCode","type":"number"},{"name":"responseType","type":"text"},{"name":"fileName","type":"text"}]},{"name":"GotText","description":"Event indicating that a request has finished.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"responseCode","type":"number"},{"name":"responseType","type":"text"},{"name":"responseContent","type":"text"}]}],"methods":[{"name":"BuildRequestData","description":"Converts a list of two-element sublists, representing name and value pairs, to a\n string formatted as application/x-www-form-urlencoded media type, suitable to pass to\n PostText.","deprecated":"false","params":[{"name":"list","type":"list"}],"returnType":"text"},{"name":"ClearCookies","description":"Clears all cookies for this Web component.","deprecated":"false","params":[]},{"name":"Delete","description":"Performs an HTTP DELETE request using the Url property and retrieves the\n response.
\n If the SaveResponse property is true, the response will be saved in a file\n and the GotFile event will be triggered. The ResponseFileName property\n can be used to specify the name of the file.
\n If the SaveResponse property is false, the GotText event will be\n triggered.","deprecated":"false","params":[]},{"name":"Get","description":"Performs an HTTP GET request using the Url property and retrieves the\n response.
\n If the SaveResponse property is true, the response will be saved in a file\n and the GotFile event will be triggered. The ResponseFileName property\n can be used to specify the name of the file.
\n If the SaveResponse property is false, the GotText event will be\n triggered.","deprecated":"false","params":[]},{"name":"HtmlTextDecode","description":"Decodes the given HTML text value. HTML character entities such as &amp;, &lt;, &gt;, &apos;, and &quot; are changed to &, <, >, ', and ". Entities such as &#xhhhh, and &#nnnn are changed to the appropriate characters.","deprecated":"false","params":[{"name":"htmlText","type":"text"}],"returnType":"text"},{"name":"JsonTextDecode","description":"Decodes the given JSON encoded value to produce a corresponding AppInventor value.\n A JSON list [x, y, z] decodes to a list (x y z), A JSON object with name A and value B,\n (denoted as A:B enclosed in curly braces) decodes to a list\n ((A B)), that is, a list containing the two-element list (A B).","deprecated":"false","params":[{"name":"jsonText","type":"text"}],"returnType":"any"},{"name":"PostFile","description":"Performs an HTTP POST request using the Url property and data from the specified file.
If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.
If the SaveResponse property is false, the GotText event will be triggered.","deprecated":"false","params":[{"name":"path","type":"text"}]},{"name":"PostText","description":"Performs an HTTP POST request using the Url property and the specified text.
The characters of the text are encoded using UTF-8 encoding.
If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The responseFileName property can be used to specify the name of the file.
If the SaveResponse property is false, the GotText event will be triggered.","deprecated":"false","params":[{"name":"text","type":"text"}]},{"name":"PostTextWithEncoding","description":"Performs an HTTP POST request using the Url property and the specified text.
The characters of the text are encoded using the given encoding.
If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.
If the SaveResponse property is false, the GotText event will be triggered.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"encoding","type":"text"}]},{"name":"PutFile","description":"Performs an HTTP PUT request using the Url property and data from the specified file.
If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.
If the SaveResponse property is false, the GotText event will be triggered.","deprecated":"false","params":[{"name":"path","type":"text"}]},{"name":"PutText","description":"Performs an HTTP PUT request using the Url property and the specified text.
The characters of the text are encoded using UTF-8 encoding.
If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The responseFileName property can be used to specify the name of the file.
If the SaveResponse property is false, the GotText event will be triggered.","deprecated":"false","params":[{"name":"text","type":"text"}]},{"name":"PutTextWithEncoding","description":"Performs an HTTP PUT request using the Url property and the specified text.
The characters of the text are encoded using the given encoding.
If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.
If the SaveResponse property is false, the GotText event will be triggered.","deprecated":"false","params":[{"name":"text","type":"text"},{"name":"encoding","type":"text"}]},{"name":"UriDecode","description":"Decodes the encoded text value.","deprecated":"false","params":[{"name":"text","type":"text"}],"returnType":"text"},{"name":"UriEncode","description":"Encodes the given text value so that it can be used in a URL.","deprecated":"false","params":[{"name":"text","type":"text"}],"returnType":"text"},{"name":"XMLTextDecode","description":"Decodes the given XML string to produce a list structure. See the App Inventor documentation on \"Other topics, notes, and details\" for information.","deprecated":"false","params":[{"name":"XmlText","type":"text"}],"returnType":"any"}]},{"type":"com.google.appinventor.components.runtime.WebViewer","name":"WebViewer","external":"false","version":"13","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"VIEWS","helpString":"Component for viewing Web pages. The Home URL can be specified in the Designer or in the Blocks Editor. The view can be set to follow links when they are tapped, and users can fill in Web forms. Warning: This is not a full browser. For example, pressing the phone's hardware Back key will exit the app, rather than move back in the browser history.

You can use the WebViewer.WebViewString property to communicate between your app and Javascript code running in the Webviewer page. In the app, you get and set WebViewString. In the WebViewer, you include Javascript that references the window.Makeroid object, using the methoods getWebViewString() and setWebViewString(text).

For example, if the WebViewer opens to a page that contains the Javascript command
document.write(\"The answer is\" + window.Makeroid.getWebViewString());
and if you set WebView.WebVewString to \"hello\", then the web page will show
The answer is hello.
And if the Web page contains Javascript that executes the command
window.Makeroid.setWebViewString(\"hello from Javascript\"),
then the value of the WebViewString property will be
hello from Javascript.","helpUrl":"","showOnPalette":"true","nonVisible":"false","iconName":"","androidMinSdk":19,"properties":[{"name":"DesktopMode","editorType":"boolean","defaultValue":"false","propertyType":"advanced","editorArgs":[]},{"name":"EnableJavaScript","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"FollowLinks","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"HomeUrl","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]},{"name":"IgnoreSslErrors","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"LoadImages","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"PromptforPermission","editorType":"boolean","defaultValue":"True","propertyType":"advanced","editorArgs":[]},{"name":"Scrollbar","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"UseExternalBrowser","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"UserAgent","editorType":"string","defaultValue":"","propertyType":"advanced","editorArgs":[]},{"name":"UsesLocation","editorType":"boolean","defaultValue":"False","propertyType":"advanced","editorArgs":[]},{"name":"Visible","editorType":"visibility","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ZoomDisplay","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ZoomEnabled","editorType":"boolean","defaultValue":"True","propertyType":"common","editorArgs":[]},{"name":"ZoomPercent","editorType":"integer","defaultValue":"100","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"Column","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"CurrentPageTitle","description":"Title of the page currently viewed","type":"text","rw":"read-only","deprecated":"false"},{"name":"CurrentUrl","description":"URL of the page currently viewed. This could be different from the Home URL if new pages were visited by following links.","type":"text","rw":"read-only","deprecated":"false"},{"name":"DesktopMode","description":"Get/Set Desktop mode by altering the user agent string.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"EnableJavaScript","description":"Enable/Disable JavaScript. Enabled by default","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"FollowLinks","description":"Determines whether to follow links when they are tapped in the WebViewer. If you follow links, you can use GoBack and GoForward to navigate the browser history. ","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Height","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"HeightPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"HomeUrl","description":"URL of the page the WebViewer should initially open to. Setting this will load the page.","type":"text","rw":"read-write","deprecated":"false"},{"name":"IgnoreSslErrors","description":"Determine whether or not to ignore SSL errors. Set to true to ignore errors. Use this to accept self signed certificates from websites.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"LoadImages","description":"Whether or not to automatically load images","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"PromptforPermission","description":"If True, then prompt the user of the WebView to give permission to access the geolocation API. If False, then assume permission is granted.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"Row","description":"","type":"number","rw":"invisible","deprecated":"false"},{"name":"Scrollbar","description":"Whether to display a scrollbar","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UseExternalBrowser","description":"Open a link in the webviewer page using the external browser. If true the page will be loaded in the external browser and not in the webviewer itself.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"UserAgent","description":"Get User Agent","type":"text","rw":"read-write","deprecated":"false"},{"name":"UsesLocation","description":"Whether or not to give the application permission to use the Javascript geolocation API. This property is available only in the designer.","type":"boolean","rw":"invisible","deprecated":"false"},{"name":"Visible","description":"Specifies whether the component should be visible on the screen. Value is true if the component is showing and false if hidden.","type":"boolean","rw":"read-write","deprecated":"false"},{"name":"WebViewString","description":"Gets the WebView's String, which is viewable through Javascript in the WebView as the window.AppInventor object","type":"text","rw":"read-write","deprecated":"false"},{"name":"Width","description":"","type":"number","rw":"read-write","deprecated":"false"},{"name":"WidthPercent","description":"","type":"number","rw":"write-only","deprecated":"false"},{"name":"ZoomDisplay","description":"Show or Hide the zoom display.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"ZoomEnabled","description":"Enable or Disable pinch zooming. This effects both pinch zooming and the zoom controls.","type":"boolean","rw":"read-only","deprecated":"false"},{"name":"ZoomPercent","description":"The zoom of the page in percent %","type":"number","rw":"read-only","deprecated":"false"}],"events":[{"name":"AfterJSEvaluated","description":"Get the result of the evaluated JS","deprecated":"false","params":[{"name":"result","type":"text"}]},{"name":"CookiesRemoved","description":"This event return true when the cookies have been successfully removed. If the cookies was successfully cleared then the next run returns false as status, if in this time no new cookies was set.","deprecated":"false","params":[{"name":"success","type":"boolean"}]},{"name":"OnConsoleMessage","description":"Get webpage console output","deprecated":"false","params":[{"name":"message","type":"text"},{"name":"lineNumber","type":"number"},{"name":"sourceId","type":"text"}]},{"name":"OnDownloadStart","description":"Event for listening download links.","deprecated":"false","params":[{"name":"url","type":"text"},{"name":"contentDisposition","type":"text"},{"name":"mimetype","type":"text"},{"name":"contentLength","type":"number"}]},{"name":"PageLoaded","description":"Triggers when page finished loading","deprecated":"false","params":[]},{"name":"ProgressChanged","description":"Event to detect that the loading progress has changed.","deprecated":"false","params":[{"name":"progress","type":"number"}]},{"name":"WebViewStringChange","description":"When the JavaScript calls AppInventor.setWebViewString this event is run.","deprecated":"false","params":[]}],"methods":[{"name":"CanGoBack","description":"Returns true if the WebViewer can go back in the history list.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"CanGoBackOrForward","description":"Returns true if the WebViewer can go back or forward the number of steps in the history list.","deprecated":"false","params":[{"name":"steps","type":"number"}],"returnType":"boolean"},{"name":"CanGoForward","description":"Returns true if the WebViewer can go forward in the history list.","deprecated":"false","params":[],"returnType":"boolean"},{"name":"ClearCaches","description":"Clear WebView caches.","deprecated":"false","params":[]},{"name":"ClearCookies","description":"Start to clear the WebView cookies.","deprecated":"false","params":[]},{"name":"ClearLocations","description":"Clear stored location permissions.","deprecated":"false","params":[]},{"name":"EvaluateJS","description":"Evaluate JS in the context of the current page","deprecated":"false","params":[{"name":"script","type":"text"}]},{"name":"GoBack","description":"Go back to the previous page in the history list. Does nothing if there is no previous page.","deprecated":"false","params":[]},{"name":"GoBackOrForward","description":"Go forward or backward a number of steps away from the current page. Steps is negative if backward and positive if forward.","deprecated":"false","params":[{"name":"steps","type":"number"}]},{"name":"GoForward","description":"Go forward to the next page in the history list. Does nothing if there is no next page.","deprecated":"false","params":[]},{"name":"GoHome","description":"Loads the home URL page. This happens automatically when the home URL is changed.","deprecated":"false","params":[]},{"name":"GoToUrl","description":"Load the page at the given URL.","deprecated":"false","params":[{"name":"url","type":"text"}]},{"name":"LoadHtml","description":"Load HTML content using Base64-encoded data URI scheme","deprecated":"false","params":[{"name":"html","type":"text"}]},{"name":"Reload","description":"Reloads the current page","deprecated":"false","params":[]},{"name":"StopLoading","description":"Stops the current load.","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.WiFiAdmin","name":"WiFiAdmin","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"CONNECTIVITY","helpString":"Control the WiFi of the Device","helpUrl":"https://docs.kodular.io/components/connectivity/wifi/","showOnPalette":"true","nonVisible":"true","iconName":"images/wifi.png","androidMinSdk":19,"properties":[],"blockProperties":[],"events":[],"methods":[{"name":"BSSID","description":"Return the basic service set identifier (BSSID) of the current access point","deprecated":"false","params":[],"returnType":"text"},{"name":"Disable","description":"Disable the Wi-Fi","deprecated":"false","params":[]},{"name":"Enable","description":"Enable the Wi-Fi","deprecated":"false","params":[]},{"name":"Is5GHzSupported","description":"Return whether this adapter supports 5 GHz band","deprecated":"false","params":[],"returnType":"boolean"},{"name":"IsEnabled","description":"Return whether Wi-Fi is enabled or disabled","deprecated":"false","params":[],"returnType":"boolean"},{"name":"IsWiFiDirectSupported","description":"Return whether this adapter supports Wi-Fi Direct","deprecated":"false","params":[],"returnType":"boolean"},{"name":"LinkSpeed","description":"Returns the current link speed in Mbps","deprecated":"false","params":[],"returnType":"number"},{"name":"LocalIP","description":"Return the current Local IP","deprecated":"false","params":[],"returnType":"text"},{"name":"MacAddress","description":"Returns the wlan mac address.","deprecated":"false","params":[],"returnType":"text"},{"name":"SSID","description":"Returns the service set identifier (SSID) of the current 802.11 network","deprecated":"false","params":[],"returnType":"text"},{"name":"SignalStrength","description":"Returns the received signal strength indicator of the current 802.11 network, in dBm","deprecated":"false","params":[],"returnType":"number"},{"name":"Toggle","description":"Toggle the Wi-Fi","deprecated":"false","params":[]}]},{"type":"com.google.appinventor.components.runtime.YandexTranslate","name":"YandexTranslate","external":"false","version":"2","dateBuilt":"2019-09-21T21:15:23+0530","categoryString":"MEDIA","helpString":"Use this component to translate words and sentences between different languages. This component needs Internet access, as it will request translations to the Yandex.Translate service. Specify the source and target language in the form source-target using two letter language codes. So\"en-es\" will translate from English to Spanish while \"es-ru\" will translate from Spanish to Russian. If you leave out the source language, the service will attempt to detect the source language. So providing just \"es\" will attempt to detect the source language and translate it to Spanish.

This component is powered by the Yandex translation service. See http://api.yandex.com/translate/ for more information, including the list of available languages and the meanings of the language codes and status codes.

Note: Translation happens asynchronously in the background. When the translation is complete, the \"GotTranslation\" event is triggered.","helpUrl":"","showOnPalette":"true","nonVisible":"true","iconName":"images/yandex.png","androidMinSdk":19,"properties":[{"name":"ApiKey","editorType":"string","defaultValue":"","propertyType":"common","editorArgs":[]}],"blockProperties":[{"name":"ApiKey","description":"","type":"text","rw":"write-only","deprecated":"false"}],"events":[{"name":"GotTranslation","description":"Event triggered when the Yandex.Translate service returns the translated text. This event also provides a response code for error handling. If the responseCode is not 200, then something went wrong with the call, and the translation will not be available.","deprecated":"false","params":[{"name":"responseCode","type":"text"},{"name":"translation","type":"text"}]}],"methods":[{"name":"RequestTranslation","description":"By providing a target language to translate to (for instance, 'es' for Spanish, 'en' for English, or 'ru' for Russian), and a word or sentence to translate, this method will request a translation to the Yandex.Translate service.\nOnce the text is translated by the external service, the event GotTranslation will be executed.\nNote: Yandex.Translate will attempt to detect the source language. You can also specify prepending it to the language translation. I.e., es-ru will specify Spanish to Russian translation.","deprecated":"false","params":[{"name":"languageToTranslateTo","type":"text"},{"name":"textToTranslate","type":"text"}]}]}] diff --git a/build/unchive/summary_writer.js b/build/unchive/summary_writer.js deleted file mode 100644 index c78d1a9..0000000 --- a/build/unchive/summary_writer.js +++ /dev/null @@ -1 +0,0 @@ -import{SummaryNode,AssetNode,HeaderNode,ScreenNode,ChainedNode}from"../views/nodes/node.js";import{View}from"../views/view.js";import{Label,Dialog,AssetFormatter,Downloader}from"../views/widgets.js";export class SummaryWriter{static async generateSummmaryNodesForProject(e,t){this.header=new HeaderNode("Download summary","save_alt"),this.header.addStyleName("unchive-summary-node__header"),t.addNode(this.header),this.header.addClickListener(t=>{SummaryHTMLWriter.writeProjectSummary(e)}),t.addNodeAsync(SummaryNode.promiseNode("Stats",this.generateStats(e))),t.addNodeAsync(SummaryNode.promiseNode("Most used components",this.generateMostUsed(e))),t.addNodeAsync(SummaryNode.promiseNode("% of blocks by screen",this.generateCodeShare(e).getHTML())),t.addNodeAsync(SummaryNode.promiseNode("Assets by type",this.generateAssetTypeShare(e).getHTML())),t.addNodeAsync(SummaryNode.promiseNode("% of built-in components",this.generateNativeShare(e).getHTML())),t.addNodeAsync(SummaryNode.promiseNode("Block usage by type",this.getBlockTypeShare(e).getHTML()))}static generateStats(e){let t=new View("DIV");t.addView(new SummaryItem("Number of screens",e.screens.length)),t.addView(new SummaryItem("Number of extensions",e.extensions.length));let s=0;for(let t of e.screens)s+=Array.from((new DOMParser).parseFromString(t.blocks,"text/xml").getElementsByTagName("block")).length;t.addView(new SummaryItem("Total number of blocks",s));let r=0;for(var a of e.assets)r+=a.size;return t.addView(new SummaryItem("Number of assets",e.assets.length)),t.addView(new SummaryItem("Total size of assets",AssetFormatter.formatSize(r))),t.domElement.innerHTML}static generateMostUsed(e){let t=new View("DIV"),s=[];function r(e){var t=s.find(t=>t[0]==e.type);t?t[1]++:s.push([e.type,1]);for(let t of e.children)r(t)}for(let t of e.screens)r(t.form);s=s.sort((e,t)=>t[1]-e[1]);for(var a=0;a<8;a++)t.addView(new SummaryItem(Messages[s[a][0][0].toLowerCase()+s[a][0].slice(1)+"ComponentPallette"]||s[a][0],s[a][1]));return t.domElement.innerHTML}static generateCodeShare(e){let t=[["Screen","Percentage"]];for(let s of e.screens)t.push([s.name,Array.from((new DOMParser).parseFromString(s.blocks,"text/xml").getElementsByTagName("block")).length]);return new SummaryChart(t)}static generateAssetTypeShare(e){let t=[["Asset type","Percentage"]];for(let r of e.assets){var s=t.find(e=>e[0]==r.type.toLowerCase());s?s[1]++:t.push([r.type.toLowerCase(),1])}return new SummaryChart(t)}static generateNativeShare(e){let t=["Built-in",0],s=["Extensions",0];function r(e,t,s){for(var a of("EXTENSION"==e.origin?t[1]++:s[1]++,e.children))r(a,t,s)}for(let a of e.screens)r(a.form,s,t);return new SummaryChart([["Type","Percentage"],t,s])}static getBlockTypeShare(e){let t=0,s=0,r=0,a=0,o=0;for(let n of e.screens){var i=(new DOMParser).parseFromString(n.blocks,"text/xml");t+=Array.from(i.querySelectorAll('block[type="component_event"]')).length,s+=Array.from(i.querySelectorAll('block[type="component_method"]')).length,r+=Array.from(i.querySelectorAll('block[type="component_set_get"]')).length,a+=Array.from(i.querySelectorAll('block[type="procedures_defnoreturn"], block[type="procedures_defreturn"]')).length,o+=Array.from(i.querySelectorAll('block[type="global_declaration"]')).length}return new SummaryChart([["Type","Percentage"],["Events",t],["Methods",s],["Properties",r],["Variables",o],["Procedures",a]],[Blockly.COLOUR_EVENT,Blockly.COLOUR_METHOD,Blockly.COLOUR_SET,"rgb(244, 81, 30)","#AAA"])}}class SummaryItem extends Label{constructor(e,t){super(`${e} ${t}`,!0),this.addStyleName("summary-item")}}class SummaryChart extends View{constructor(e,t){super("DIV"),e=google.visualization.arrayToDataTable(e),this.options={legend:{position:"right",textStyle:{color:"black"}},pieSliceTextStyle:{color:"#000",background:"#FFF"},pieHole:.5,width:260,chartArea:{left:0,top:20,width:"100%",height:"100%"},enableInteractivity:!1},t&&(this.options.colors=t),this.chart=new google.visualization.PieChart(this.domElement),this.chart.draw(e,this.options)}getHTML(){return this.domElement.outerHTML}getChartHTML(){var e=this.domElement.getElementsByTagName("svg")[0];return e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.outerHTML}}class SummaryHTMLWriter{static writeProjectSummary(e){var t=new Dialog("Generating summary...","This may take a while");setTimeout(()=>{t.open()},1),setTimeout(()=>{var s=[],r=[];s.push(""),s.push(`Project Summary for ${e.name}`),s.push(""),s.push('

'),s.push(`

${e.name} - Project Summary

`),s.push('
'),s.push(`Summary generated on ${this.getDateTime()}`),s.push("
"),this.writeTOContents(s,e),this.writeStats(s,e),this.writeInsights(s,r,e),this.writeScreens(s,r,e).then(()=>{e.extensions.length&&this.writeExtensions(s,e),this.writeStyles(s,r),s.push(""),r.push([new Blob([s.join("")],{type:"image/svg+xml"}),`${e.name}.html`]),this.zipAllBlobs(r),t.close()})},20)}static getDateTime(){var e=new Date;return e.getDate()+"/"+(e.getMonth()+1)+"/"+e.getFullYear()+" @ "+e.getHours()+":"+e.getMinutes()}static writeTOContents(e,t){e.push("

Table of Contents

"),e.push("
    "),e.push('
  1. Project stats
  2. '),e.push('
  3. Insights
  4. '),e.push("
  5. Screens
    1. ");for(let s of t.screens)e.push(`
    2. ${s.name}
    3. `);e.push("
    "),t.extensions.length&&e.push('
  6. Extensions summary
  7. '),e.push("
")}static writeStats(e,t){e.push(''),e.push("

Project stats

"),e.push(SummaryWriter.generateStats(t).replace(/

/g,"/li>")),e.push("

Most used components

"),e.push(SummaryWriter.generateMostUsed(t).replace(/

/g,"/li>"))}static writeInsights(e,t,s){e.push(''),e.push("

Insights

"),t.push([new Blob([SummaryWriter.generateCodeShare(s).getChartHTML()],{type:"image/svg+xml"}),"code_share.svg"]),t.push([new Blob([SummaryWriter.generateAssetTypeShare(s).getChartHTML()],{type:"image/svg+xml"}),"asset_type_share.svg"]),t.push([new Blob([SummaryWriter.generateNativeShare(s).getChartHTML()],{type:"image/svg+xml"}),"native_share.svg"]),t.push([new Blob([SummaryWriter.getBlockTypeShare(s).getChartHTML()],{type:"image/svg+xml"}),"block_type_share.svg"]),e.push('
'),e.push('
'),e.push("

Percentage of blocks by screen

"),e.push('
'),e.push("

Types of assets by frequency

"),e.push("
"),e.push('
'),e.push('
'),e.push("

Percentage of built-in components vs extensions used

"),e.push('
'),e.push("

Percentage of blocks by type

"),e.push("
")}static async writeScreens(e,t,s){var r=0;for(let l of RootPanel.primaryNodeList.nodes)if(l instanceof ScreenNode){e.push(``),e.push(`

${l.caption}

`),e.push("

Components

"),e.push("
    "),this.writeComponent(e,s.screens.find(e=>e.name==l.caption).form),e.push("

"),e.push("

Blocks

"),l.open(),l.chainNodeList.nodes[1].open();var a=0;for(let s of l.chainNodeList.nodes[1].chainNodeList.nodes){s.initializeWorkspace(),e.push(``);var o=s.domElement.children[1].children[0].innerHTML.replace(/ /g," "),i=[];i.push(``),i.push(""),o=o.substring(0,o.indexOf(""))+i.join("")+"";var n=new Blob([o],{type:"image/svg+xml"});t.push([await this.svgToPngBlob(n),`block_${r}_${a}.png`]),e.push('

'),a++}r++}RootPanel.primaryNodeList.nodes.slice(-1)[0].open()}static svgToPngBlob(e){return new Promise((t,s)=>{var r=URL.createObjectURL(e);const a=document.createElement("img");a.style.position="absolute",a.style.top="-9999px",document.body.appendChild(a),a.onload=function(){const e=document.createElement("canvas");e.width=a.clientWidth,e.height=a.clientHeight,e.getContext("2d").drawImage(a,0,0),e.toBlob(function(e){t(e),document.body.removeChild(a)},"image/png")},a.src=r})}static writeComponent(e,t){e.push(`
  • ${t.name} (${t.type})
  • `);for(let s of t.children)e.push("
      "),this.writeComponent(e,s),e.push("
    ")}static writeExtensions(e,t){e.push(''),e.push("

    Extensions summary

    ");for(let s of t.extensions)e.push(`
  • ${s.name}
    • ${s.descriptorJSON.helpString}
  • `)}static writeStyles(e,t){e.push(''),e.push(' + + + - - diff --git a/lib/blockly/LICENSE b/lib/blockly/LICENSE deleted file mode 100644 index d645695..0000000 --- a/lib/blockly/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/lib/blockly/ai/field_param_dropdown.js b/lib/blockly/ai/field_param_dropdown.js deleted file mode 100644 index 676f52e..0000000 --- a/lib/blockly/ai/field_param_dropdown.js +++ /dev/null @@ -1,48 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Drop-down chooser of variables in the current lexical scope for App Inventor - * @author fturbak@wellesley.com (Lyn Turbak) - */ - -'use strict'; - -goog.provide('Blockly.FieldParameterDropdown') -goog.require('Blockly.FieldDropdown'); - -// Get all global names - -/** - * Class for a variable's dropdown field. - * @param {!string} varname The default name for the variable. If null, - * a unique variable name will be generated. - * @extends Blockly.FieldDropdown - * @constructor - */ -Blockly.FieldParameterDropdown = function(varname) { - // Call parent's constructor. - Blockly.FieldParameterDropdown.superClass_.constructor.call(this, [[varname, ""]]); -}; - -// FieldParameterDropdown is a subclass of FieldDropdown. -goog.inherits(Blockly.FieldParameterDropdown, Blockly.FieldDropdown); - -Blockly.FieldParameterDropdown.prototype.init = function(block) { - Blockly.FieldParameterDropdown.superClass_.init.call(this, block); - - Blockly.utils.removeClass(/** @type {!Element} */ (this.fieldGroup_), - 'blocklyEditableText'); - Blockly.utils.removeClass(/** @type {!Element} */ (this.fieldGroup_), - 'blocklyNoNEditableText'); - // ... and add new one, so that look and feel of flyout fields can be customized - Blockly.utils.addClass(/** @type {!Element} */ (this.fieldGroup_), - "blocklyFieldParameterDropdown"); -} - -Blockly.FieldParameterDropdown.prototype.doClassValidation_ = function(opt_newValue) { - this.menuGenerator_.push([opt_newValue, opt_newValue]); - Blockly.FieldParameterDropdown.superClass_.doClassValidation_.call(this, opt_newValue); -} diff --git a/lib/blockly/ai/field_param_name.js b/lib/blockly/ai/field_param_name.js deleted file mode 100644 index d0a319a..0000000 --- a/lib/blockly/ai/field_param_name.js +++ /dev/null @@ -1,42 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Drop-down chooser of variables in the current lexical scope for App Inventor - * @author vishwas@kodular.io (Vishwas Adiga) - */ - -'use strict'; - -goog.provide('Blockly.FieldParameterName') -goog.require('Blockly.FieldTextInput'); - -// Get all global names - -/** - * Class for a variable's name field. - * @param {!string} varname The default name for the variable. - * @extends Blockly.FieldTextInput - * @constructor - */ -Blockly.FieldParameterName = function(name) { - // Call parent's constructor. - Blockly.FieldParameterName.superClass_.constructor.call(this, name); -}; - -// FieldParameterName is a subclass of FieldTextInput. -goog.inherits(Blockly.FieldParameterName, Blockly.FieldTextInput); - -Blockly.FieldParameterName.prototype.init = function(block) { - Blockly.FieldParameterName.superClass_.init.call(this, block); - - Blockly.utils.removeClass(/** @type {!Element} */ (this.fieldGroup_), - 'blocklyEditableText'); - Blockly.utils.removeClass(/** @type {!Element} */ (this.fieldGroup_), - 'blocklyNoNEditableText'); - // ... and add new one, so that look and feel of flyout fields can be customized - Blockly.utils.addClass(/** @type {!Element} */ (this.fieldGroup_), - "blocklyFieldParameterName"); -} diff --git a/lib/blockly/ai/field_textblockinput.js b/lib/blockly/ai/field_textblockinput.js deleted file mode 100644 index d15f996..0000000 --- a/lib/blockly/ai/field_textblockinput.js +++ /dev/null @@ -1,43 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Visual blocks editor for App Inventor - * FieldTextBlockInput is a subclass of FieldTextInput - * - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - -'use strict'; - -goog.provide('Blockly.FieldTextBlockInput'); - -Blockly.FieldTextBlockInput = function(text, opt_changeHandler) { - // Call parent's constructor. - Blockly.FieldTextInput.call(this, text); - this.changeHandler_ = opt_changeHandler; -}; - -// FieldTextBlockInput is a subclass of FieldTextInput. -goog.inherits(Blockly.FieldTextBlockInput, Blockly.FieldTextInput); - -/** - * Set the text in this field. - * @param {string} text New text. - */ -Blockly.FieldTextBlockInput.prototype.setText = function(text) { - if (this.changeHandler_) { - var validated = this.changeHandler_(text); - // If the new text is invalid, validation returns null. - // In this case we still want to display the illegal result. - if (validated !== null && validated !== undefined) { - text = validated; - } - } - if(this.sourceBlock_ && this.sourceBlock_.outputConnection){ - this.sourceBlock_.outputConnection.setCheck(this.sourceBlock_.outputConnection.check_) - } - Blockly.Field.prototype.setText.call(this, text); -}; \ No newline at end of file diff --git a/lib/blockly/blockly_uncompressed.js b/lib/blockly/blockly_uncompressed.js deleted file mode 100644 index 2c2b260..0000000 --- a/lib/blockly/blockly_uncompressed.js +++ /dev/null @@ -1,193 +0,0 @@ -// Do not edit this file; automatically generated by build.py. -'use strict'; - -this.IS_NODE_JS = !!(typeof module !== 'undefined' && module.exports); - -this.BLOCKLY_DIR = (function(root) { - if (!root.IS_NODE_JS) { - // Find name of current directory. - var scripts = document.getElementsByTagName('script'); - var re = new RegExp('(.+)[\/]blockly_(.*)uncompressed\.js$'); - for (var i = 0, script; script = scripts[i]; i++) { - var match = re.exec(script.src); - if (match) { - return match[1]; - } - } - alert('Could not detect Blockly\'s directory name.'); - } - return ''; -})(this); - -this.BLOCKLY_BOOT = function(root) { - // Execute after Closure has loaded. -goog.addDependency("../../ai/field_param_dropdown.js", ['Blockly.FieldParameterDropdown'], ['Blockly.FieldDropdown']); -goog.addDependency("../../ai/field_param_name.js", ['Blockly.FieldParameterName'], ['Blockly.FieldTextInput']); -goog.addDependency("../../ai/field_textblockinput.js", ['Blockly.FieldTextBlockInput'], []); -goog.addDependency("../../core/block.js", ['Blockly.Block'], ['Blockly.Blocks', 'Blockly.Connection', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Events.BlockCreate', 'Blockly.Events.BlockDelete', 'Blockly.Events.BlockMove', 'Blockly.Extensions', 'Blockly.Input', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.colour', 'Blockly.utils.object', 'Blockly.fieldRegistry', 'Blockly.utils.string', 'Blockly.Workspace']); -goog.addDependency("../../core/block_animations.js", ['Blockly.blockAnimations'], ['Blockly.utils.dom']); -goog.addDependency("../../core/block_drag_surface.js", ['Blockly.BlockDragSurfaceSvg'], ['Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom']); -goog.addDependency("../../core/block_dragger.js", ['Blockly.BlockDragger'], ['Blockly.blockAnimations', 'Blockly.Events', 'Blockly.Events.BlockMove', 'Blockly.InsertionMarkerManager', 'Blockly.utils.Coordinate', 'Blockly.utils.dom']); -goog.addDependency("../../core/block_events.js", ['Blockly.Events.BlockBase', 'Blockly.Events.BlockChange', 'Blockly.Events.BlockCreate', 'Blockly.Events.BlockDelete', 'Blockly.Events.BlockMove', 'Blockly.Events.Change', 'Blockly.Events.Create', 'Blockly.Events.Delete', 'Blockly.Events.Move'], ['Blockly.Events', 'Blockly.Events.Abstract', 'Blockly.utils.Coordinate', 'Blockly.utils.object', 'Blockly.utils.xml']); -goog.addDependency("../../core/block_svg.js", ['Blockly.BlockSvg'], ['Blockly.Block', 'Blockly.blockAnimations', 'Blockly.blockRendering.IPathObject', 'Blockly.ContextMenu', 'Blockly.Events', 'Blockly.Events.Ui', 'Blockly.Events.BlockMove', 'Blockly.Msg', 'Blockly.RenderedConnection', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Rect', 'Blockly.Warning']); -goog.addDependency("../../core/blockly.js", ['Blockly'], ['Blockly.constants', 'Blockly.Events', 'Blockly.Events.Ui', 'Blockly.inject', 'Blockly.navigation', 'Blockly.Procedures', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.utils', 'Blockly.utils.colour', 'Blockly.Variables', 'Blockly.WidgetDiv', 'Blockly.WorkspaceSvg', 'Blockly.Xml']); -goog.addDependency("../../core/blocks.js", ['Blockly.Blocks'], []); -goog.addDependency("../../core/bubble.js", ['Blockly.Bubble'], ['Blockly.Scrollbar', 'Blockly.Touch', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.math', 'Blockly.utils.userAgent', 'Blockly.Workspace']); -goog.addDependency("../../core/bubble_dragger.js", ['Blockly.BubbleDragger'], ['Blockly.Bubble', 'Blockly.Events', 'Blockly.Events.CommentMove', 'Blockly.utils', 'Blockly.utils.Coordinate']); -goog.addDependency("../../core/comment.js", ['Blockly.Comment'], ['Blockly.Bubble', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Events.Ui', 'Blockly.Icon', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.userAgent', 'Blockly.Warning']); -goog.addDependency("../../core/components/component.js", ['Blockly.Component', 'Blockly.Component.Error'], ['Blockly.utils.dom', 'Blockly.utils.IdGenerator', 'Blockly.utils.style']); -goog.addDependency("../../core/components/menu/menu.js", ['Blockly.Menu'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.dom', 'Blockly.utils.object']); -goog.addDependency("../../core/components/menu/menuitem.js", ['Blockly.MenuItem'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.dom', 'Blockly.utils.object']); -goog.addDependency("../../core/components/tree/basenode.js", ['Blockly.tree.BaseNode'], ['Blockly.Component', 'Blockly.utils.aria', 'Blockly.utils.object', 'Blockly.utils.KeyCodes', 'Blockly.utils.style']); -goog.addDependency("../../core/components/tree/treecontrol.js", ['Blockly.tree.TreeControl'], ['Blockly.tree.TreeNode', 'Blockly.tree.BaseNode', 'Blockly.utils.aria', 'Blockly.utils.object', 'Blockly.utils.style']); -goog.addDependency("../../core/components/tree/treenode.js", ['Blockly.tree.TreeNode'], ['Blockly.tree.BaseNode', 'Blockly.utils.object', 'Blockly.utils.KeyCodes']); -goog.addDependency("../../core/connection.js", ['Blockly.Connection'], ['Blockly.Events', 'Blockly.Events.BlockMove', 'Blockly.Xml']); -goog.addDependency("../../core/connection_db.js", ['Blockly.ConnectionDB'], ['Blockly.Connection']); -goog.addDependency("../../core/constants.js", ['Blockly.constants'], []); -goog.addDependency("../../core/contextmenu.js", ['Blockly.ContextMenu'], ['Blockly.Events', 'Blockly.Events.BlockCreate', 'Blockly.Menu', 'Blockly.MenuItem', 'Blockly.Msg', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.uiMenu', 'Blockly.utils.userAgent', 'Blockly.Xml']); -goog.addDependency("../../core/css.js", ['Blockly.Css'], []); -goog.addDependency("../../core/dropdowndiv.js", ['Blockly.DropDownDiv'], ['Blockly.utils.dom', 'Blockly.utils.math', 'Blockly.utils.style']); -goog.addDependency("../../core/events.js", ['Blockly.Events'], ['Blockly.utils']); -goog.addDependency("../../core/events_abstract.js", ['Blockly.Events.Abstract'], ['Blockly.Events']); -goog.addDependency("../../core/extensions.js", ['Blockly.Extensions'], ['Blockly.utils']); -goog.addDependency("../../core/field.js", ['Blockly.Field'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Gesture', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.Size', 'Blockly.utils.userAgent', 'Blockly.utils.style']); -goog.addDependency("../../core/field_angle.js", ['Blockly.FieldAngle'], ['Blockly.Css', 'Blockly.DropDownDiv', 'Blockly.fieldRegistry', 'Blockly.FieldTextInput', 'Blockly.utils.dom', 'Blockly.utils.math', 'Blockly.utils.object', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/field_checkbox.js", ['Blockly.FieldCheckbox'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size']); -goog.addDependency("../../core/field_colour.js", ['Blockly.FieldColour'], ['Blockly.Css', 'Blockly.DropDownDiv', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.navigation', 'Blockly.utils.aria', 'Blockly.utils.colour', 'Blockly.utils.dom', 'Blockly.utils.IdGenerator', 'Blockly.utils.KeyCodes', 'Blockly.utils.object', 'Blockly.utils.Size']); -goog.addDependency("../../core/field_date.js", ['Blockly.FieldDate'], ['Blockly.Css', 'Blockly.Events', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.string', 'goog.date', 'goog.date.DateTime', 'goog.events', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_he', 'goog.ui.DatePicker']); -goog.addDependency("../../core/field_dropdown.js", ['Blockly.FieldDropdown'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.Menu', 'Blockly.MenuItem', 'Blockly.navigation', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size', 'Blockly.utils.string', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/field_image.js", ['Blockly.FieldImage'], ['Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size']); -goog.addDependency("../../core/field_label.js", ['Blockly.FieldLabel'], ['Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Size']); -goog.addDependency("../../core/field_label_serializable.js", ['Blockly.FieldLabelSerializable'], ['Blockly.FieldLabel', 'Blockly.fieldRegistry', 'Blockly.utils', 'Blockly.utils.object']); -goog.addDependency("../../core/field_multilineinput.js", ['Blockly.FieldMultilineInput'], ['Blockly.Css', 'Blockly.DropDownDiv', 'Blockly.FieldTextInput', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.KeyCodes', 'Blockly.utils.object', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/field_number.js", ['Blockly.FieldNumber'], ['Blockly.fieldRegistry', 'Blockly.FieldTextInput', 'Blockly.utils.object']); -goog.addDependency("../../core/field_registry.js", ['Blockly.fieldRegistry'], []); -goog.addDependency("../../core/field_textinput.js", ['Blockly.FieldTextInput'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.fieldRegistry', 'Blockly.Msg', 'Blockly.utils', 'Blockly.utils.aria', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.KeyCodes', 'Blockly.utils.object', 'Blockly.utils.Size', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/field_variable.js", ['Blockly.FieldVariable'], ['Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.FieldDropdown', 'Blockly.fieldRegistry', 'Blockly.Msg', 'Blockly.utils', 'Blockly.utils.object', 'Blockly.utils.Size', 'Blockly.VariableModel', 'Blockly.Variables', 'Blockly.Xml']); -goog.addDependency("../../core/flyout_base.js", ['Blockly.Flyout'], ['Blockly.Block', 'Blockly.blockRendering', 'Blockly.Events', 'Blockly.Events.BlockCreate', 'Blockly.Events.VarCreate', 'Blockly.FlyoutCursor', 'Blockly.Gesture', 'Blockly.MarkerCursor', 'Blockly.Scrollbar', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.WorkspaceSvg', 'Blockly.Xml']); -goog.addDependency("../../core/flyout_button.js", ['Blockly.FlyoutButton'], ['Blockly.Css', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom']); -goog.addDependency("../../core/flyout_dragger.js", ['Blockly.FlyoutDragger'], ['Blockly.utils.object', 'Blockly.WorkspaceDragger']); -goog.addDependency("../../core/flyout_horizontal.js", ['Blockly.HorizontalFlyout'], ['Blockly.Block', 'Blockly.Flyout', 'Blockly.Scrollbar', 'Blockly.utils', 'Blockly.utils.object', 'Blockly.utils.Rect', 'Blockly.WidgetDiv']); -goog.addDependency("../../core/flyout_vertical.js", ['Blockly.VerticalFlyout'], ['Blockly.Block', 'Blockly.Flyout', 'Blockly.Scrollbar', 'Blockly.utils', 'Blockly.utils.object', 'Blockly.utils.Rect', 'Blockly.utils.userAgent', 'Blockly.WidgetDiv']); -goog.addDependency("../../core/generator.js", ['Blockly.Generator'], ['Blockly.Block']); -goog.addDependency("../../core/gesture.js", ['Blockly.Gesture'], ['Blockly.blockAnimations', 'Blockly.BlockDragger', 'Blockly.BubbleDragger', 'Blockly.constants', 'Blockly.Events', 'Blockly.Events.Ui', 'Blockly.FlyoutDragger', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.WorkspaceDragger']); -goog.addDependency("../../core/grid.js", ['Blockly.Grid'], ['Blockly.utils.dom', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/icon.js", ['Blockly.Icon'], ['Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.Size']); -goog.addDependency("../../core/inject.js", ['Blockly.inject'], ['Blockly.BlockDragSurfaceSvg', 'Blockly.Component', 'Blockly.Css', 'Blockly.DropDownDiv', 'Blockly.Events', 'Blockly.Grid', 'Blockly.Options', 'Blockly.ScrollbarPair', 'Blockly.Tooltip', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.userAgent', 'Blockly.WorkspaceDragSurfaceSvg', 'Blockly.WorkspaceSvg']); -goog.addDependency("../../core/input.js", ['Blockly.Input'], ['Blockly.Connection', 'Blockly.FieldLabel']); -goog.addDependency("../../core/insertion_marker_manager.js", ['Blockly.InsertionMarkerManager'], ['Blockly.blockAnimations', 'Blockly.Events']); -goog.addDependency("../../core/keyboard_nav/action.js", ['Blockly.Action'], []); -goog.addDependency("../../core/keyboard_nav/ast_node.js", ['Blockly.ASTNode'], []); -goog.addDependency("../../core/keyboard_nav/cursor.js", ['Blockly.Cursor'], []); -goog.addDependency("../../core/keyboard_nav/cursor_svg.js", ['Blockly.CursorSvg'], ['Blockly.Cursor', 'Blockly.utils.object']); -goog.addDependency("../../core/keyboard_nav/flyout_cursor.js", ['Blockly.FlyoutCursor'], ['Blockly.Cursor', 'Blockly.utils.object']); -goog.addDependency("../../core/keyboard_nav/key_map.js", ['Blockly.user.keyMap'], ['Blockly.utils.KeyCodes', 'Blockly.utils.object']); -goog.addDependency("../../core/keyboard_nav/marker_cursor.js", ['Blockly.MarkerCursor'], ['Blockly.Cursor', 'Blockly.utils.object']); -goog.addDependency("../../core/keyboard_nav/navigation.js", ['Blockly.navigation'], ['Blockly.Action', 'Blockly.ASTNode', 'Blockly.utils.Coordinate', 'Blockly.user.keyMap']); -goog.addDependency("../../core/msg.js", ['Blockly.Msg'], ['Blockly.utils.global']); -goog.addDependency("../../core/mutator.js", ['Blockly.Mutator'], ['Blockly.Bubble', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Events.Ui', 'Blockly.Icon', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.global', 'Blockly.utils.object', 'Blockly.utils.xml', 'Blockly.WorkspaceSvg', 'Blockly.Xml']); -goog.addDependency("../../core/names.js", ['Blockly.Names'], ['Blockly.Msg']); -goog.addDependency("../../core/options.js", ['Blockly.Options'], ['Blockly.utils.userAgent', 'Blockly.Xml']); -goog.addDependency("../../core/procedures.js", ['Blockly.Procedures'], ['Blockly.Blocks', 'Blockly.constants', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Field', 'Blockly.Msg', 'Blockly.Names', 'Blockly.utils.xml', 'Blockly.Workspace', 'Blockly.Xml']); -goog.addDependency("../../core/rendered_connection.js", ['Blockly.RenderedConnection'], ['Blockly.Connection', 'Blockly.Events', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/common/block_rendering.js", ['Blockly.blockRendering'], ['Blockly.utils.object']); -goog.addDependency("../../core/renderers/common/constants.js", ['Blockly.blockRendering.ConstantProvider'], ['Blockly.utils.svgPaths']); -goog.addDependency("../../core/renderers/common/debugger.js", ['Blockly.blockRendering.Debug'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types']); -goog.addDependency("../../core/renderers/common/drawer.js", ['Blockly.blockRendering.Drawer'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types', 'Blockly.utils.svgPaths']); -goog.addDependency("../../core/renderers/common/info.js", ['Blockly.blockRendering.RenderInfo'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.ExternalValueInput', 'Blockly.blockRendering.Hat', 'Blockly.blockRendering.InlineInput', 'Blockly.blockRendering.InRowSpacer', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.RoundCorner', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.StatementInput', 'Blockly.blockRendering.SquareCorner', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types']); -goog.addDependency("../../core/renderers/common/path_object.js", ['Blockly.blockRendering.IPathObject', 'Blockly.blockRendering.PathObject'], ['Blockly.utils.dom']); -goog.addDependency("../../core/renderers/common/renderer.js", ['Blockly.blockRendering.Renderer'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.blockRendering.Drawer', 'Blockly.blockRendering.IPathObject', 'Blockly.blockRendering.PathObject', 'Blockly.blockRendering.RenderInfo', 'Blockly.CursorSvg']); -goog.addDependency("../../core/renderers/geras/constants.js", ['Blockly.geras.ConstantProvider'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/geras/drawer.js", ['Blockly.geras.Drawer'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.blockRendering.Drawer', 'Blockly.geras.Highlighter', 'Blockly.geras.PathObject', 'Blockly.geras.RenderInfo', 'Blockly.utils.object', 'Blockly.utils.svgPaths']); -goog.addDependency("../../core/renderers/geras/highlight_constants.js", ['Blockly.geras.HighlightConstantProvider'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.utils.svgPaths']); -goog.addDependency("../../core/renderers/geras/highlighter.js", ['Blockly.geras.Highlighter'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types', 'Blockly.utils.svgPaths']); -goog.addDependency("../../core/renderers/geras/info.js", ['Blockly.geras', 'Blockly.geras.RenderInfo'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.Types', 'Blockly.blockRendering.ExternalValueInput', 'Blockly.geras.InlineInput', 'Blockly.geras.StatementInput', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/geras/measurables/inputs.js", ['Blockly.geras.InlineInput', 'Blockly.geras.StatementInput'], ['Blockly.blockRendering.Connection', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/geras/path_object.js", ['Blockly.geras.PathObject'], ['Blockly.blockRendering.IPathObject', 'Blockly.utils.dom']); -goog.addDependency("../../core/renderers/geras/renderer.js", ['Blockly.geras.Renderer'], ['Blockly.blockRendering', 'Blockly.blockRendering.Renderer', 'Blockly.geras.ConstantProvider', 'Blockly.geras.Drawer', 'Blockly.geras.HighlightConstantProvider', 'Blockly.geras.PathObject', 'Blockly.geras.RenderInfo', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/measurables/base.js", ['Blockly.blockRendering.Measurable'], ['Blockly.blockRendering.Types']); -goog.addDependency("../../core/renderers/measurables/connections.js", ['Blockly.blockRendering.Connection', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PreviousConnection'], ['Blockly.blockRendering.Measurable', 'Blockly.blockRendering.Types', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/measurables/inputs.js", ['Blockly.blockRendering.ExternalValueInput', 'Blockly.blockRendering.InlineInput', 'Blockly.blockRendering.InputConnection', 'Blockly.blockRendering.StatementInput'], ['Blockly.blockRendering.Connection', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.Types', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/measurables/row_elements.js", ['Blockly.blockRendering.Field', 'Blockly.blockRendering.Hat', 'Blockly.blockRendering.Icon', 'Blockly.blockRendering.InRowSpacer', 'Blockly.blockRendering.JaggedEdge', 'Blockly.blockRendering.RoundCorner', 'Blockly.blockRendering.SquareCorner'], ['Blockly.blockRendering.Measurable', 'Blockly.blockRendering.Types', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/measurables/rows.js", ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.TopRow'], ['Blockly.blockRendering.InputConnection', 'Blockly.blockRendering.InRowSpacer', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.Types', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/measurables/types.js", ['Blockly.blockRendering.Types'], []); -goog.addDependency("../../core/renderers/minimalist/constants.js", ['Blockly.minimalist.ConstantProvider'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/minimalist/drawer.js", ['Blockly.minimalist.Drawer'], ['Blockly.blockRendering.Drawer', 'Blockly.utils.object', 'Blockly.minimalist.RenderInfo']); -goog.addDependency("../../core/renderers/minimalist/info.js", ['Blockly.minimalist', 'Blockly.minimalist.RenderInfo'], ['Blockly.utils.object']); -goog.addDependency("../../core/renderers/minimalist/renderer.js", ['Blockly.minimalist.Renderer'], ['Blockly.blockRendering', 'Blockly.blockRendering.Renderer', 'Blockly.utils.object', 'Blockly.minimalist.ConstantProvider', 'Blockly.minimalist.Drawer', 'Blockly.minimalist.RenderInfo']); -goog.addDependency("../../core/renderers/thrasos/info.js", ['Blockly.thrasos', 'Blockly.thrasos.RenderInfo'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.ExternalValueInput', 'Blockly.blockRendering.InlineInput', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.StatementInput', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/thrasos/renderer.js", ['Blockly.thrasos.Renderer'], ['Blockly.blockRendering', 'Blockly.blockRendering.Renderer', 'Blockly.thrasos.RenderInfo', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/zelos/constants.js", ['Blockly.zelos.ConstantProvider'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.utils.object', 'Blockly.utils.svgPaths']); -goog.addDependency("../../core/renderers/zelos/drawer.js", ['Blockly.zelos.Drawer'], ['Blockly.blockRendering.ConstantProvider', 'Blockly.blockRendering.Drawer', 'Blockly.blockRendering.Types', 'Blockly.utils.object', 'Blockly.zelos.RenderInfo']); -goog.addDependency("../../core/renderers/zelos/info.js", ['Blockly.zelos', 'Blockly.zelos.RenderInfo'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.ExternalValueInput', 'Blockly.blockRendering.InlineInput', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.RoundCorner', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SquareCorner', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.StatementInput', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types', 'Blockly.utils.object', 'Blockly.zelos.AfterStatementSpacerRow', 'Blockly.zelos.BeforeStatementSpacerRow', 'Blockly.zelos.BottomRow', 'Blockly.zelos.TopRow']); -goog.addDependency("../../core/renderers/zelos/measurables/rows.js", ['Blockly.zelos.BottomRow', 'Blockly.zelos.TopRow', 'Blockly.zelos.AfterStatementSpacerRow', 'Blockly.zelos.BeforeStatementSpacerRow'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.SpacerRow', 'Blockly.utils.object']); -goog.addDependency("../../core/renderers/zelos/renderer.js", ['Blockly.zelos.Renderer'], ['Blockly.blockRendering', 'Blockly.blockRendering.Renderer', 'Blockly.utils.object', 'Blockly.zelos.ConstantProvider', 'Blockly.zelos.Drawer', 'Blockly.zelos.RenderInfo']); -goog.addDependency("../../core/requires.js", ['Blockly.requires'], ['Blockly', 'Blockly.Comment', 'Blockly.Mutator', 'Blockly.FieldAngle', 'Blockly.FieldCheckbox', 'Blockly.FieldColour', 'Blockly.FieldDropdown', 'Blockly.FieldLabelSerializable', 'Blockly.FieldImage', 'Blockly.FieldTextInput', 'Blockly.FieldMultilineInput', 'Blockly.FieldNumber', 'Blockly.FieldVariable', 'Blockly.Options', 'Blockly.geras.Renderer', 'Blockly.Themes.Classic', 'Blockly.FieldParameterName', 'Blockly.FieldParameterDropdown', 'Blockly.FieldTextBlockInput']); -goog.addDependency("../../core/scrollbar.js", ['Blockly.Scrollbar', 'Blockly.ScrollbarPair'], ['Blockly.Touch', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom']); -goog.addDependency("../../core/theme.js", ['Blockly.Theme'], []); -goog.addDependency("../../core/theme/classic.js", ['Blockly.Themes.Classic'], ['Blockly.Theme']); -goog.addDependency("../../core/theme/dark.js", ['Blockly.Themes.Dark'], ['Blockly.Theme']); -goog.addDependency("../../core/theme/highcontrast.js", ['Blockly.Themes.HighContrast'], ['Blockly.Theme']); -goog.addDependency("../../core/theme/modern.js", ['Blockly.Themes.Modern'], ['Blockly.Theme']); -goog.addDependency("../../core/theme_manager.js", ['Blockly.ThemeManager'], ['Blockly.Theme']); -goog.addDependency("../../core/toolbox.js", ['Blockly.Toolbox'], ['Blockly.Css', 'Blockly.Events', 'Blockly.Events.Ui', 'Blockly.navigation', 'Blockly.Touch', 'Blockly.tree.TreeControl', 'Blockly.tree.TreeNode', 'Blockly.utils', 'Blockly.utils.aria', 'Blockly.utils.colour', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Rect']); -goog.addDependency("../../core/tooltip.js", ['Blockly.Tooltip'], ['Blockly.utils.string']); -goog.addDependency("../../core/touch.js", ['Blockly.Touch'], ['Blockly.utils', 'Blockly.utils.global', 'Blockly.utils.string']); -goog.addDependency("../../core/touch_gesture.js", ['Blockly.TouchGesture'], ['Blockly.Gesture', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.object']); -goog.addDependency("../../core/trashcan.js", ['Blockly.Trashcan'], ['Blockly.Scrollbar', 'Blockly.utils.dom', 'Blockly.utils.Rect', 'Blockly.Xml']); -goog.addDependency("../../core/ui_events.js", ['Blockly.Events.Ui'], ['Blockly.Events', 'Blockly.Events.Abstract', 'Blockly.utils.object']); -goog.addDependency("../../core/ui_menu_utils.js", ['Blockly.utils.uiMenu'], ['Blockly.utils.style']); -goog.addDependency("../../core/utils.js", ['Blockly.utils'], ['Blockly.Msg', 'Blockly.utils.Coordinate', 'Blockly.utils.global', 'Blockly.utils.string', 'Blockly.utils.style', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/utils/aria.js", ['Blockly.utils.aria'], []); -goog.addDependency("../../core/utils/colour.js", ['Blockly.utils.colour'], ['Blockly.utils']); -goog.addDependency("../../core/utils/coordinate.js", ['Blockly.utils.Coordinate'], []); -goog.addDependency("../../core/utils/dom.js", ['Blockly.utils.dom'], ['Blockly.utils.userAgent']); -goog.addDependency("../../core/utils/global.js", ['Blockly.utils.global'], []); -goog.addDependency("../../core/utils/idgenerator.js", ['Blockly.utils.IdGenerator'], []); -goog.addDependency("../../core/utils/keycodes.js", ['Blockly.utils.KeyCodes'], []); -goog.addDependency("../../core/utils/math.js", ['Blockly.utils.math'], []); -goog.addDependency("../../core/utils/object.js", ['Blockly.utils.object'], []); -goog.addDependency("../../core/utils/rect.js", ['Blockly.utils.Rect'], []); -goog.addDependency("../../core/utils/size.js", ['Blockly.utils.Size'], []); -goog.addDependency("../../core/utils/string.js", ['Blockly.utils.string'], []); -goog.addDependency("../../core/utils/style.js", ['Blockly.utils.style'], ['Blockly.utils.Coordinate', 'Blockly.utils.Size']); -goog.addDependency("../../core/utils/svg_paths.js", ['Blockly.utils.svgPaths'], []); -goog.addDependency("../../core/utils/useragent.js", ['Blockly.utils.userAgent'], ['Blockly.utils.global']); -goog.addDependency("../../core/utils/xml.js", ['Blockly.utils.xml'], []); -goog.addDependency("../../core/variable_events.js", ['Blockly.Events.VarBase', 'Blockly.Events.VarCreate', 'Blockly.Events.VarDelete', 'Blockly.Events.VarRename'], ['Blockly.Events', 'Blockly.Events.Abstract', 'Blockly.utils.object']); -goog.addDependency("../../core/variable_map.js", ['Blockly.VariableMap'], ['Blockly.Events', 'Blockly.Events.VarDelete', 'Blockly.Events.VarRename', 'Blockly.Msg', 'Blockly.utils']); -goog.addDependency("../../core/variable_model.js", ['Blockly.VariableModel'], ['Blockly.Events', 'Blockly.Events.VarCreate', 'Blockly.utils']); -goog.addDependency("../../core/variables.js", ['Blockly.Variables'], ['Blockly.Blocks', 'Blockly.Msg', 'Blockly.utils', 'Blockly.utils.xml', 'Blockly.VariableModel', 'Blockly.Xml']); -goog.addDependency("../../core/variables_dynamic.js", ['Blockly.VariablesDynamic'], ['Blockly.Variables', 'Blockly.Blocks', 'Blockly.Msg', 'Blockly.utils.xml', 'Blockly.VariableModel']); -goog.addDependency("../../core/warning.js", ['Blockly.Warning'], ['Blockly.Bubble', 'Blockly.Events', 'Blockly.Events.Ui', 'Blockly.Icon', 'Blockly.utils.dom', 'Blockly.utils.object']); -goog.addDependency("../../core/widgetdiv.js", ['Blockly.WidgetDiv'], ['Blockly.utils.style']); -goog.addDependency("../../core/workspace.js", ['Blockly.Workspace'], ['Blockly.Cursor', 'Blockly.MarkerCursor', 'Blockly.Events', 'Blockly.ThemeManager', 'Blockly.Themes.Classic', 'Blockly.utils', 'Blockly.utils.math', 'Blockly.VariableMap']); -goog.addDependency("../../core/workspace_audio.js", ['Blockly.WorkspaceAudio'], ['Blockly.utils', 'Blockly.utils.global', 'Blockly.utils.userAgent']); -goog.addDependency("../../core/workspace_comment.js", ['Blockly.WorkspaceComment'], ['Blockly.Events', 'Blockly.Events.CommentChange', 'Blockly.Events.CommentCreate', 'Blockly.Events.CommentDelete', 'Blockly.Events.CommentMove', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.xml']); -goog.addDependency("../../core/workspace_comment_render_svg.js", ['Blockly.WorkspaceCommentSvg.render'], ['Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom']); -goog.addDependency("../../core/workspace_comment_svg.js", ['Blockly.WorkspaceCommentSvg'], ['Blockly.Events', 'Blockly.Events.CommentCreate', 'Blockly.Events.CommentDelete', 'Blockly.Events.CommentMove', 'Blockly.Events.Ui', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Rect', 'Blockly.WorkspaceComment']); -goog.addDependency("../../core/workspace_drag_surface_svg.js", ['Blockly.WorkspaceDragSurfaceSvg'], ['Blockly.utils', 'Blockly.utils.dom']); -goog.addDependency("../../core/workspace_dragger.js", ['Blockly.WorkspaceDragger'], ['Blockly.utils.Coordinate']); -goog.addDependency("../../core/workspace_events.js", ['Blockly.Events.FinishedLoading'], ['Blockly.Events', 'Blockly.Events.Abstract', 'Blockly.utils.object']); -goog.addDependency("../../core/workspace_svg.js", ['Blockly.WorkspaceSvg'], ['Blockly.BlockSvg', 'Blockly.blockRendering', 'Blockly.ConnectionDB', 'Blockly.constants', 'Blockly.Events', 'Blockly.Events.BlockCreate', 'Blockly.Gesture', 'Blockly.Grid', 'Blockly.Msg', 'Blockly.Options', 'Blockly.TouchGesture', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.Rect', 'Blockly.Workspace', 'Blockly.WorkspaceAudio', 'Blockly.WorkspaceDragSurfaceSvg', 'Blockly.Xml']); -goog.addDependency("../../core/ws_comment_events.js", ['Blockly.Events.CommentBase', 'Blockly.Events.CommentChange', 'Blockly.Events.CommentCreate', 'Blockly.Events.CommentDelete', 'Blockly.Events.CommentMove'], ['Blockly.Events', 'Blockly.Events.Abstract', 'Blockly.utils.Coordinate', 'Blockly.utils.object', 'Blockly.utils.xml']); -goog.addDependency("../../core/xml.js", ['Blockly.Xml'], ['Blockly.Events', 'Blockly.Events.BlockCreate', 'Blockly.Events.FinishedLoading', 'Blockly.Events.VarCreate', 'Blockly.utils', 'Blockly.utils.dom', 'Blockly.utils.global', 'Blockly.utils.xml']); -goog.addDependency("../../core/zoom_controls.js", ['Blockly.ZoomControls'], ['Blockly.Css', 'Blockly.Scrollbar', 'Blockly.Touch', 'Blockly.utils.dom']); -goog.addDependency("base.js", [], []); - -// Load Blockly. -goog.require('Blockly.requires') - -delete root.BLOCKLY_DIR; -delete root.BLOCKLY_BOOT; -delete root.IS_NODE_JS; -}; - -if (this.IS_NODE_JS) { - this.BLOCKLY_BOOT(this); - module.exports = Blockly; -} else { - document.write(''); - document.write(''); -} diff --git a/lib/blockly/blocks/colors.js b/lib/blockly/blocks/colors.js deleted file mode 100644 index bc3a290..0000000 --- a/lib/blockly/blocks/colors.js +++ /dev/null @@ -1,217 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Color blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - -'use strict'; - -goog.provide('Blockly.Blocks.color'); - -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['color_white'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#ffffff'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_light_gray'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#cccccc'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_gray'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#9E9E9E'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_blue_gray'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#607D8B'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_dark_gray'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#444444'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_black'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#000000'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_red'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#F34336'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_pink'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#E81E63'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_purple'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#9C27B0'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_deep_purple'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#673AB7'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_indigo'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#3F51B5'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_blue'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#2196F2'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_light_blue'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#03A9F3'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_cyan'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#00BCD3'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_teal'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#009688'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_green'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#4CAF50'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_light_green'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#8BC24A'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_lime'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#CCDB39'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_yellow'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#FEEA3B'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_amber'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#FEC007'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_orange'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#FE9800'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_deep_orange'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#FE5722'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_brown'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendDummyInput().appendField(new Blockly.FieldColour('#795548'), 'COLOR'); - this.setOutput(true); - } -}; - -Blockly.Blocks['color_make_color'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendValueInput('COLORLIST') - .appendField(Messages.makeColor_) - this.setOutput(true); - } -}; - -Blockly.Blocks['color_split_color'] = { - init: function() { - this.setColour(Blockly.COLOR_CATEGORY_HUE); - this.appendValueInput('COLOR') - .appendField(Messages.splitColor_) - this.setOutput(true); - } -}; diff --git a/lib/blockly/blocks/components.js b/lib/blockly/blocks/components.js deleted file mode 100644 index f966e5d..0000000 --- a/lib/blockly/blocks/components.js +++ /dev/null @@ -1,542 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright © 2013-2018 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Component blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - * @author sharon@google.com (Sharon Perl) - * @author ewpatton@mit.edu (Evan W. Patton) - */ - -'use strict'; - -goog.provide('AI.Blockly.Blocks.components'); -goog.provide('AI.Blockly.ComponentBlock'); -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks.components = {}; -Blockly.ComponentBlock = {}; - -Blockly.ComponentBlock.COLOUR_EVENT = '#ffa726';; -Blockly.ComponentBlock.COLOUR_METHOD = '#5E35B1'; -Blockly.ComponentBlock.COLOUR_GET = '#8bc24a'; -Blockly.ComponentBlock.COLOUR_SET = '#388e3c'; -Blockly.ComponentBlock.COLOUR_COMPONENT = '#8bc24a'; - -Blockly.ComponentBlock.COMPONENT_SELECTOR = "COMPONENT_SELECTOR"; - -/** - * Create an event block of the given type for a component with the given - * instance name. eventType is one of the "events" objects in a typeJsonString - * passed to Blockly.Component.add. - * @lends {Blockly.BlockSvg} - * @lends {Blockly.Block} - */ -Blockly.Blocks.component_event = { - category : 'Component', - blockType : 'event', - - domToMutation : function(xmlElement) { - var oldRendered = this.rendered; - this.rendered = false; - var oldDo = null; - for (var i = 0, input; input = this.inputList[i]; i++) { - if (input.connection) { - if (input.name === 'DO') { - oldDo = input.connection.targetBlock(); - } - var block = input.connection.targetBlock(); - if (block) { - block.unplug(); - } - } - input.dispose(); - } - this.inputList.length = 0; - - this.typeName = xmlElement.getAttribute('component_type'); - this.eventName = xmlElement.getAttribute('event_name'); - this.isGeneric = xmlElement.getAttribute('is_generic') == 'true'; - if (!this.isGeneric) { - this.instanceName = xmlElement.getAttribute('instance_name');//instance name not needed - } else { - delete this.instanceName; - } - - // Orient parameters horizontally by default - var horizParams = xmlElement.getAttribute('vertical_parameters') !== "true"; - - this.setColour(Blockly.ComponentBlock.COLOUR_EVENT); - - if (!this.isGeneric) { - this.appendDummyInput('WHENTITLE').appendField(Messages.when_) - .appendField(new Blockly.FieldParameterDropdown(this.instanceName), Blockly.ComponentBlock.COMPONENT_SELECTOR) - .appendField('.' + (Messages[this.eventName + 'Events'] || this.eventName)); - this.componentDropDown = new Blockly.FieldParameterDropdown(this.instanceName); - } else { - this.appendDummyInput('WHENTITLE').appendField(Messages.whenAny_ - + this.typeName + '.' + (Messages[this.eventName + 'Events'] || this.eventName)); - } - this.setParameterOrientation(horizParams); - - this.setPreviousStatement(false, null); - this.setNextStatement(false, null); - - if (oldDo) { - this.getInput('DO').connection.connect(oldDo.previousConnection); - } - - for (var i = 0, input; input = this.inputList[i]; i++) { - input.init(); - } - - this.rendered = oldRendered; - }, - // [lyn, 10/24/13] Allow switching between horizontal and vertical display of arguments - // Also must create flydown params and DO input if they don't exist. - - // To-DO: consider using top.BlocklyPanel... instead of window.parent.BlocklyPanel - - setParameterOrientation: function(isHorizontal) { - var params = this.getParameters(); - if (!params) { - params = []; - } - var oldDoInput = this.getInput("DO"); - if (!oldDoInput || (isHorizontal !== this.horizontalParameters && params.length > 0)) { - this.horizontalParameters = isHorizontal; - - var bodyConnection = null, i, param, newDoInput; - if (oldDoInput) { - bodyConnection = oldDoInput.connection.targetConnection; // Remember any body connection - } - if (this.horizontalParameters) { // Replace vertical by horizontal parameters - - if (oldDoInput) { - // Remove inputs after title ... - for (i = 0; i < params.length; i++) { - this.removeInput('VAR' + i); // vertical parameters - } - this.removeInput('DO'); - } - - // .. and insert new ones: - if (params.length > 0) { - var paramInput = this.appendDummyInput('PARAMETERS') - .appendField(" ") - .setAlign(Blockly.ALIGN_LEFT); - for (i = 0; param = params[i]; i++) { - paramInput.appendField(new Blockly.FieldParameterName(Messages[param.name + 'Params']|| param.name), // false means not editable - 'VAR' + i) - .appendField(" "); - } - } - - newDoInput = this.appendStatementInput("DO") - .appendField(Messages.do_); // Hey, I like your new do! - if (bodyConnection) { - newDoInput.connection.connect(bodyConnection); - } - - } else { // Replace horizontal by vertical parameters - - if (oldDoInput) { - // Remove inputs after title ... - this.removeInput('PARAMETERS'); // horizontal parameters - this.removeInput('DO'); - } - - // .. and insert new ones: - - // Vertically aligned parameters - for (i = 0; param = params[i]; i++) { - this.appendDummyInput('VAR' + i) - .appendField(new Blockly.FieldParameterName(param.name), - 'VAR' + i) - .setAlign(Blockly.ALIGN_RIGHT); - } - newDoInput = this.appendStatementInput("DO") - .appendField(Messages.do_); - if (bodyConnection) { - newDoInput.connection.connect(bodyConnection); - } - } - if (Blockly.Events.isEnabled()) { - // Trigger a Blockly UI change event - Blockly.Events.fire(new Blockly.Events.Ui(this, 'parameter_orientation', - (!this.horizontalParameters).toString(), this.horizontalParameters.toString())) - } - } - }, - // Return a list of parameter names - getParameters: function () { - this.descriptor = this.getDescriptor(this.typeName); - var params = this.descriptor.events.find(function(x){return x.name == this.eventName}.bind(this)).params; - if (this.isGeneric) { - return [ - {name:'component', type:'component'}, - {name:'notAlreadyHandled', type: 'boolean'} - ].concat(params || []); - } - return params || []; - }, - - getDescriptor: function(componentType) { - return this.workspace.getDescriptor(componentType); - } -}; - -/** - * Create a method block of the given type for a component with the given instance name. methodType - * is one of the "methods" objects in a typeJsonString passed to Blockly.Component.add. - * @lends {Blockly.BlockSvg} - * @lends {Blockly.Block} - */ -Blockly.Blocks.component_method = { - category : 'Component', - - domToMutation : function(xmlElement) { - var oldRendered = this.rendered; - this.rendered = false; - var oldInputValues = []; - for (var i = 0, input; input = this.inputList[i]; i++) { - if (input.connection) { - var block = input.connection.targetBlock(); - if (block) { - block.unplug(); - } - oldInputValues.push(block); - } else { - oldInputValues.push(null); - } - input.dispose(); - } - this.inputList.length = 0; - - this.typeName = xmlElement.getAttribute('component_type'); - this.methodName = xmlElement.getAttribute('method_name'); - var isGenericString = xmlElement.getAttribute('is_generic'); - this.isGeneric = isGenericString == 'true'; - if(!this.isGeneric) { - this.instanceName = xmlElement.getAttribute('instance_name');//instance name not needed - } else { - delete this.instanceName; - } - - this.setColour(Blockly.ComponentBlock.COLOUR_METHOD); - - //for non-generic blocks, set the value of the component drop down - if(!this.isGeneric) { - this.componentDropDown = new Blockly.FieldParameterDropdown(this.instanceName); - } - - if(!this.isGeneric) { - if (this.typeName == "Clock" && Blockly.ComponentBlock.isClockMethodName(this.methodName)) { - var timeUnitDropDown = Blockly.ComponentBlock.createClockAddDropDown(); - this.appendDummyInput() - .appendField(Messages.call_) - .appendField(new Blockly.FieldParameterDropdown(this.instanceName), Blockly.ComponentBlock.COMPONENT_SELECTOR) - .appendField('.Add') - .appendField(timeUnitDropDown, "TIME_UNIT"); - switch (this.methodName){ - case "AddYears": - this.setFieldValue('Years', "TIME_UNIT"); - break; - case "AddMonths": - this.setFieldValue('Months', "TIME_UNIT"); - break; - case "AddWeeks": - this.setFieldValue('Weeks', "TIME_UNIT"); - break; - case "AddDays": - this.setFieldValue('Days', "TIME_UNIT"); - break; - case "AddHours": - this.setFieldValue('Hours', "TIME_UNIT"); - break; - case "AddMinutes": - this.setFieldValue('Minutes', "TIME_UNIT"); - break; - case "AddSeconds": - this.setFieldValue('Seconds', "TIME_UNIT"); - break; - case "AddDuration": - this.setFieldValue('Duration', "TIME_UNIT"); - break; - } - } else { - this.appendDummyInput() - .appendField(Messages.call_) - .appendField(new Blockly.FieldParameterDropdown(this.instanceName), Blockly.ComponentBlock.COMPONENT_SELECTOR) - .appendField('.' + (Messages[this.methodName + 'Methods'] || this.methodName)); - } - } else { - this.appendDummyInput() - .appendField(Messages.call_ + this.typeName + '.' + this.methodName); - this.appendValueInput("COMPONENT") - .appendField(Messages.forComponent_) - .setAlign(Blockly.ALIGN_RIGHT); - } - - var params = []; - var descriptor = this.getDescriptor(this.typeName); - if (descriptor) { - params = descriptor.params; - } - oldInputValues.splice(0, oldInputValues.length - params.length); - for (var i = 0, param; param = params[i]; i++) { - var newInput = this.appendValueInput("ARG" + i).appendField(Messages[param.name + 'Params'] || param.name); - newInput.setAlign(Blockly.ALIGN_RIGHT); - var blockyType = Blockly.Blocks.Utilities.YailTypeToBlocklyType(param.type,Blockly.Blocks.Utilities.INPUT); - if (oldInputValues[i]) { - Blockly.Mutator.reconnect(oldInputValues[i].outputConnection, this, 'ARG' + i); - } - } - - for (var i = 0, input; input = this.inputList[i]; i++) { - input.init(); - } - - if (!descriptor) { - this.setOutput(false); - this.setPreviousStatement(false); - this.setNextStatement(false); - } // methodType.returnType is a Yail type - else if (descriptor.returnType) { - this.setOutput(true, Blockly.Blocks.Utilities.YailTypeToBlocklyType(descriptor.returnType,Blockly.Blocks.Utilities.OUTPUT)); - } else { - this.setPreviousStatement(true); - this.setNextStatement(true); - } - - - this.rendered = oldRendered; - }, - - /** - * Get a mapping from input names to {@link Blockly.Input}s. - * @returns {Object.}} - */ - getArgInputs: function() { - var argList = {}; - for (var i = 0, input; input = this.getInput('ARG' + i); i++) { - if (input.fieldRow.length == 1) { // should only be 0 or 1 - argList[input.fieldRow[0].getValue()] = input; - } - } - return argList; - }, - - /** - * Get an array of argument names in the block. - * @returns {Array.} - */ - getArgs: function() { - var argList = []; - for (var i = 0, input; input = this.getInput('ARG' + i); i++) { - if (input.fieldRow.length == 1) { // should only be 0 or 1 - argList.push(input.fieldRow[0].getValue()); - } - } - return argList; - }, - - getDescriptor: function(componentType) { - var descriptor = this.workspace.getDescriptor(componentType); - if(descriptor == undefined) - throw ReferenceError('No descriptor found for ' + componentType); - var method = descriptor.methods.find(function(x) {return x.name == this.methodName}.bind(this)); - if(method == undefined) - throw ReferenceError('Attempt to get {}. No such method exists'.format(this.methodName)); - return method; - } - -}; - - -/** - * Create a property getter or setter block for a component with the given - * instance name. Blocks can also be generic or not, depending on the - * values of the attribute in the mutators. - * @lends {Blockly.BlockSvg} - * @lends {Blockly.Block} - */ -Blockly.Blocks.component_set_get = { - category : 'Component', - - init: function() { - ; - }, - - domToMutation : function(xmlElement) { - var oldRendered = this.rendered; - this.rendered = false; - var oldInput = this.setOrGet == "set" && this.getInputTargetBlock('VALUE'); - for (var i = 0, input; input = this.inputList[i]; i++) { - if (input.connection) { - var block = input.connection.targetBlock(); - if (block) { - if (block.isShadow()) { - block.dispose(); - } else { - block.unplug(); - } - } - } - input.dispose(); - } - this.inputList.length = 0; - this.typeName = xmlElement.getAttribute('component_type'); - this.setOrGet = xmlElement.getAttribute('set_or_get'); - this.propertyName = xmlElement.getAttribute('property_name'); - var isGenericString = xmlElement.getAttribute('is_generic'); - this.isGeneric = isGenericString == "true"; - if(!this.isGeneric) { - this.instanceName = xmlElement.getAttribute('instance_name');//instance name not needed - } else { - delete this.instanceName; - } - if(this.setOrGet == "set"){ - this.setColour(Blockly.ComponentBlock.COLOUR_SET); - } else { - this.setColour(Blockly.ComponentBlock.COLOUR_GET); - } - - var thisBlock = this; - var dropdown = new Blockly.FieldDropdown( - function() { - return [[Messages[this.propertyName + 'Properties'] || this.propertyName, this.propertyName]]; - }.bind(this), - // change the output type and tooltip to match the new selection - function(selection) { - ; - } - ); - - if(this.setOrGet == "get") { - //add output plug for get blocks - this.setOutput(true); - - if(!this.isGeneric) { - //non-generic get - this.appendDummyInput() - .appendField(new Blockly.FieldParameterDropdown(this.instanceName), Blockly.ComponentBlock.COMPONENT_SELECTOR) - .appendField('.') - .appendField(dropdown, "PROP"); - } else { - //generic get - this.appendDummyInput() - .appendField(Messages[this.typeName[0].toLowerCase() + this.typeName.slice(1) + 'ComponentPallette'] || this.typeName + '.') - .appendField(dropdown, "PROP"); - - this.appendValueInput("COMPONENT") - .appendField(Messages.ofComponent_) - .setAlign(Blockly.ALIGN_RIGHT); - } - } else { //this.setOrGet == "set" - //a notches for set block - this.setPreviousStatement(true); - this.setNextStatement(true); - if(!this.isGeneric) { - this.appendValueInput("VALUE") - .appendField(Messages.set_) - .appendField(new Blockly.FieldParameterDropdown(this.instanceName), Blockly.ComponentBlock.COMPONENT_SELECTOR) - .appendField('.') - .appendField(dropdown, "PROP") - .appendField(Messages.to_); - } else { - //generic set - this.appendDummyInput() - .appendField(Messages.set_ + ' ' + - (Messages[this.typeName[0].toLowerCase() + this.typeName.slice(1) + 'ComponentPallette'] || this.typeName) + '.') - .appendField(dropdown, "PROP"); - - this.appendValueInput("COMPONENT") - .appendField(Messages.ofComponent_) - .setAlign(Blockly.ALIGN_RIGHT); - - this.appendValueInput("VALUE") - .appendField(Messages.to_) - .setAlign(Blockly.ALIGN_RIGHT); - } - } - - if (oldInput) { - this.getInput('VALUE').init(); - Blockly.Mutator.reconnect(oldInput.outputConnection, this, 'VALUE'); - } - - //for non-generic blocks, set the value of the component drop down - if(!this.isGeneric) { - this.componentDropDown = new Blockly.FieldParameterDropdown(this.instanceName); - } - //set value of property drop down - this.setFieldValue(this.propertyName,"PROP"); - - for (var i = 0, input; input = this.inputList[i]; i++) { - input.init(); - } - - this.rendered = oldRendered; - }, - - getPropertyBlocklyType : function(propertyName,inputOrOutput) { - var yailType = "any"; // necessary for undefined propertyObject - if (this.getPropertyObject(propertyName)) { - yailType = this.getPropertyObject(propertyName).type; - } - return Blockly.Blocks.Utilities.YailTypeToBlocklyType(yailType,inputOrOutput); - }, - - getDescriptor: function(componentType) { - return this.workspace.getDescriptor(componentType).methods.find(function() {return x.name == this.propertyName}.bind(this)); - } - -}; - -/** - * Create a component (object) block for a component with the given - * instance name. - * @lends {Blockly.BlockSvg} - * @lends {Blockly.Block} - */ -Blockly.Blocks.component_component_block = { - category : 'Component', - domToMutation : function(xmlElement) { - - this.typeName = xmlElement.getAttribute('component_type'); - this.instanceName = xmlElement.getAttribute('instance_name'); - - this.setColour(Blockly.ComponentBlock.COLOUR_COMPONENT); - - this.appendDummyInput().appendField(new Blockly.FieldParameterDropdown(this.instanceName), Blockly.ComponentBlock.COMPONENT_SELECTOR); - this.setOutput(true, [this.typeName,"COMPONENT"]); - } - -}; - -Blockly.ComponentBlock.timeUnits = ["Years", "Months", "Weeks", "Days", "Hours", "Minutes", "Seconds", "Duration"]; -Blockly.ComponentBlock.timeUnitsMenu = - [[ Messages.years_, "Years"], - [ Messages.months_, "Months"], - [ Messages.weeks_, "Weeks"], - [ Messages.days_, "Days"], - [ Messages.hours_, "Hours"], - [ Messages.minutes_, "Minutes"], - [ Messages.seconds_, "Seconds"], - [ Messages.duration_, "Duration"] - ]; - -Blockly.ComponentBlock.clockMethodNames = ["AddYears", "AddMonths","AddWeeks", "AddDays", - "AddHours", "AddMinutes", "AddSeconds", "AddDuration"]; -Blockly.ComponentBlock.isClockMethodName = function (name) { - return Blockly.ComponentBlock.clockMethodNames.indexOf(name) != -1; -}; - -Blockly.ComponentBlock.createClockAddDropDown = function(/*block*/){ - var componentDropDown = new Blockly.FieldDropdown([["",""]]); - componentDropDown.menuGenerator_ = function(){ return Blockly.ComponentBlock.timeUnitsMenu; }; - return componentDropDown; -}; diff --git a/lib/blockly/blocks/control.js b/lib/blockly/blocks/control.js deleted file mode 100644 index 0b69a26..0000000 --- a/lib/blockly/blocks/control.js +++ /dev/null @@ -1,261 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @fileoverview Control blocks for Blockly, modified for App Inventor - * @author fraser@google.com (Neil Fraser) - * @author andrew.f.mckinney@gmail.com (Andrew F. McKinney) - * Due to the frequency of long strings, the 80-column wrap rule need not apply - * to language files. - */ - -'use strict'; - -goog.provide('Blockly.Blocks.control'); - -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['controls_if'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('IF0') - .appendField(Messages.if_); - this.appendStatementInput('DO0') - .appendField(Messages.then_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new Blockly.Mutator(['controls_if_elseif', - 'controls_if_else'])); - this.elseifCount_ = 0; - this.elseCount_ = 0; - }, - domToMutation: function (xmlElement) { - this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10) || 0 - this.elseCount_ = window.parseInt(xmlElement.getAttribute('else'), 10) || 0; - this.updateShape_(); - }, - updateShape_: function() { - // Delete everything. - if (this.getInput('ELSE')) { - this.removeInput('ELSE'); - } - var i = 1; - while (this.getInput('IF' + i)) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - i++; - } - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .appendField(Messages.elseIf_); - this.appendStatementInput('DO' + i) - .appendField(Messages.then_); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(Messages.else_); - } - } -}; - -Blockly.Blocks['controls_forRange'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('START') - .appendField(Messages.forEach_) - .appendField(new Blockly.FieldParameterName(''), 'VAR') - .appendField(Messages.from_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('END') - .appendField(Messages.to__) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('STEP') - .appendField(Messages.by_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendStatementInput('DO') - .appendField(Messages.do_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -Blockly.Blocks['controls_forEach'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('LIST') - .appendField(Messages.forEach_) - .appendField(new Blockly.FieldParameterName(''), 'VAR') - .appendField(Messages.inList_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendStatementInput('DO').appendField(Messages.do_); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -Blockly.Blocks['controls_for_each_dict'] = { - category: 'Control', - init: function() { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('DICT') - .appendField(Messages.forEach_) - .appendField(new Blockly.FieldParameterName(''), 'KEY') - .appendField(Messages.with_) - .appendField(new Blockly.FieldParameterName(''), 'VALUE') - .appendField(Messages.inDct_) - .setAlign(Blockly.ALIGN_LEFT); - this.appendStatementInput('DO') - .appendField(Messages.do_); - this.setInputsInline(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -Blockly.Blocks['controls_while'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('TEST') - .appendField(Messages.while_) - .appendField(Messages.test_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendStatementInput('DO') - .appendField(Messages.do_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setPreviousStatement(true); - this.setNextStatement(true); - }, -}; - -Blockly.Blocks['controls_choose'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.setOutput(true, null); - this.appendValueInput('TEST') - .appendField(Messages.if__) - .appendField('') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('THENRETURN') - .appendField(Messages.then_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('ELSERETURN') - .appendField(Messages.else_) - .setAlign(Blockly.ALIGN_RIGHT); - } -}; - -Blockly.Blocks['controls_do_then_return'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendStatementInput('STM') - .appendField(Messages.do_); - this.appendValueInput('VALUE') - .appendField(Messages.result_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setOutput(true); - } -}; - -Blockly.Blocks['controls_eval_but_ignore'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('VALUE') - .appendField(Messages.evaluateButIgnore_); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -Blockly.Blocks['controls_openAnotherScreen'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('SCREEN') - .appendField(Messages.openAnotherScreen_) - .appendField(Messages.screenName_) - .setAlign(Blockly.ALIGN_RIGHT) - this.setPreviousStatement(true); - } -}; - -Blockly.Blocks['controls_openAnotherScreenWithStartValue'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('SCREENNAME') - .appendField(Messages.oASWStartVal_) - .appendField(Messages.screenName_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('STARTVALUE') - .appendField(Messages.startValue_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setPreviousStatement(true); - } -}; - -Blockly.Blocks['controls_getStartValue'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.setOutput(true, null); - this.appendDummyInput() - .appendField(Messages.getSV_); - } -}; - -Blockly.Blocks['controls_closeScreen'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendDummyInput() - .appendField(Messages.closeScreen_); - this.setPreviousStatement(true); - } -}; - -Blockly.Blocks['controls_closeScreenWithValue'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('SCREEN') - .appendField(Messages.cSWValue_) - .appendField(Messages.result_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setPreviousStatement(true); - } -}; - -Blockly.Blocks['controls_closeApplication'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendDummyInput().appendField(Messages.closeApp_); - this.setPreviousStatement(true); - } -}; - -Blockly.Blocks['controls_getPlainStartText'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.setOutput(true); - this.appendDummyInput() - .appendField(Messages.getPlainST_); - } -}; - -Blockly.Blocks['controls_closeScreenWithPlainText'] = { - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendValueInput('TEXT') - .appendField(Messages.cSWPText_) - .appendField(Messages.text_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setPreviousStatement(true); - } -}; - -Blockly.Blocks['controls_break'] = { - category: 'Control', - init: function () { - this.setColour(Blockly.CONTROL_CATEGORY_HUE); - this.appendDummyInput() - .appendField(Messages.break_); - this.setPreviousStatement(true); - } -}; diff --git a/lib/blockly/blocks/dictionaries.js b/lib/blockly/blocks/dictionaries.js deleted file mode 100644 index 2de0a66..0000000 --- a/lib/blockly/blocks/dictionaries.js +++ /dev/null @@ -1,302 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Dictionaries blocks for Blockly, modified for MIT App Inventor. - * @author data1013@mit.edu (Danny Tang) - */ - -'use strict'; - -goog.provide('Blockly.Blocks.dictionaries'); - -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['dictionaries_create_with'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.setMutator(new Blockly.Mutator(['dictionaries_mutator_pair'])); - this.emptyInputName = 'EMPTY'; - this.repeatingInputName = 'ADD'; - }, - mutationToDom: Blockly.mutationToDom, - domToMutation: function(xmlElement) { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - var inputCount = xmlElement.getAttribute('items'); - if(inputCount == 0) { - this.addEmptyInput(); - } else { - for(var i = 0; i < inputCount; i++) { - this.addInput(i); - } - } - }, - - addEmptyInput: function(){ - this.appendDummyInput(this.emptyInputName) - .appendField(Messages.crEmptyDct_); - }, - addInput: function(inputNum){ - var input = this.appendValueInput(this.repeatingInputName + inputNum); - if(inputNum === 0){ - input.appendField(Messages.mkADct_); - } - return input; - } -}; - -Blockly.Blocks['pair'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('KEY') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.key_); - this.appendValueInput('VALUE') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.value_); - this.setInputsInline(true); - } -}; - -Blockly.Blocks['dictionaries_lookup'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('KEY') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.getVFor_) - .appendField(Messages.key_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.inDct_); - this.appendValueInput('NOTFOUND') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.orIfNFnd_); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_set_pair'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.appendValueInput('KEY') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.setVFor_) - .appendField(Messages.key_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.inDct_); - this.appendValueInput('VALUE') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.to__); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_delete_pair'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.appendValueInput('KEY') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.remEntFor_) - .appendField(Messages.key_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.frmDct_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_recursive_lookup'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('KEYS') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.getVlAtKPth_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.inDct_); - this.appendValueInput('NOTFOUND') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.orIfNFnd_); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_recursive_set'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendValueInput('KEYS') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.setVlFrKPth_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.inDct_); - this.appendValueInput('VALUE') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.to__); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_getters'] = { - category: 'Dictionaries', - init: function () { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('DICT') - .appendField(Messages.get_) - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks['dictionaries_getters'].OPERATORS = function () { - return [[Messages.keys_, 'KEYS'], - [Messages.values_, 'VALUES']]; -}; - -Blockly.Blocks['dictionaries_get_values'] = { - category: 'Dictionaries', - init: function () { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('DICT') - .appendField(Messages.get_) - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.dictionaries_getters.OPERATORS), 'OP'); - this.setFieldValue('VALUES', "OP"); - } -}; - -Blockly.Blocks['dictionaries_is_key_in'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.appendValueInput('KEY') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.isKInDct_) - .appendField(Messages.key_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.dict_); - this.setOutput(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_length'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('DICT') - .appendField(Messages.szOfDct_) - .appendField(Messages.dict_); - } -}; - -Blockly.Blocks['dictionaries_alist_to_dict'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('PAIRS') - .appendField(Messages.lstOPrsTDct_) - .appendField(Messages.pairs_); - } -}; - -Blockly.Blocks['dictionaries_dict_to_alist'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('DICT') - .appendField(Messages.dctTLstOPrs_) - .appendField(Messages.dict_); - } -}; - -Blockly.Blocks['dictionaries_copy'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('DICT') - .appendField(Messages.copyDct_) - .appendField(Messages.dict_); - } -}; - -Blockly.Blocks['dictionaries_combine_dicts'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.appendValueInput('DICT1') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.mergeInto_) - .appendField(Messages.dict_); - this.appendValueInput('DICT2') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.from_) - .appendField(Messages.dict_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_walk_tree'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.appendValueInput('PATH') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.lstByWkngKPth_); - this.appendValueInput('DICT') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.inDctOLst_); - this.setOutput(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_walk_all'] = { - category: 'Dictionaries', - init: function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.appendDummyInput('WALK') - .setAlign(Blockly.ALIGN_LEFT) - .appendField(Messages.wlkAtAllLvl_); - this.setOutput(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['dictionaries_is_dict'] = { - category : 'Dictionaries', - init : function() { - this.setColour(Blockly.DICTIONARY_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('THING') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.isADct_); - } -}; diff --git a/lib/blockly/blocks/lexical-variables.js b/lib/blockly/blocks/lexical-variables.js deleted file mode 100644 index a7580cf..0000000 --- a/lib/blockly/blocks/lexical-variables.js +++ /dev/null @@ -1,96 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Variables blocks for Blockly, modified for MIT App Inventor. - * @author fturbak@wellesley.edu (Lyn Turbak) - */ -'use strict'; - -goog.provide('Blockly.Blocks.lexicalvariables'); -goog.require('Blockly.Blocks.Utilities'); - -/** - * Prototype bindings for a global variable declaration block - */ -Blockly.Blocks['global_declaration'] = { - // Global var defn - category: 'Variables', - init: function() { - this.setColour(Blockly.VARIABLE_CATEGORY_HUE); - this.appendValueInput('VALUE') - .appendField(Messages.initGbl_) - .appendField(new Blockly.FieldParameterName(''), "NAME") - .appendField(Messages.to__); - } -}; - -Blockly.Blocks['lexical_variable_get'] = { - init: function() { - this.setColour(Blockly.VARIABLE_CATEGORY_HUE); - this.appendDummyInput() - .appendField(Messages.get_) - .appendField(new Blockly.FieldParameterDropdown(""), "VAR"); - this.setOutput(true); - }, - domToMutation: function(xmlElement) { - this.setFieldValue(Messages[xmlElement.getAttribute('name') + 'Params'] || xmlElement.getAttribute('name'), 'VAR') - } -}; - -Blockly.Blocks['lexical_variable_set'] = { - init: function() { - this.setColour(Blockly.VARIABLE_CATEGORY_HUE); - this.appendValueInput('VALUE') - .appendField(Messages.set_) - .appendField(new Blockly.FieldParameterDropdown(""), "VAR") - .appendField(Messages.to__); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -Blockly.Blocks['local_declaration_statement'] = { - init: function() { - this.setColour(Blockly.VARIABLE_CATEGORY_HUE); - this.setMutator(new Blockly.Mutator(['math_mutator_item'])); - this.appendEnd(); - - }, - domToMutation: function(xmlElement) { - var children = xmlElement.children; - this.horizontalParameters = xmlElement.getAttribute('inline') === "true"; - this.removeInput('STACK', true); - this.removeInput('RETURN', true); - for(var i = 0; i < children.length; i++) { - this.appendValueInput('DECL' + i) - .appendField(Messages.initLcl_) - .appendField(new Blockly.FieldParameterName(''), 'VAR' + i) - .appendField(Messages.to__) - .setAlign(Blockly.ALIGN_RIGHT); - } - if(this.horizontalParameters) { - this.appendDummyInput(''); - } - - this.appendEnd(); - }, - appendEnd: function() { - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendStatementInput('STACK') - .appendField(Messages.in_); - } -}; - -Blockly.Blocks['local_declaration_expression'] = { - init: Blockly.Blocks.local_declaration_statement.init, - domToMutation: Blockly.Blocks.local_declaration_statement.domToMutation, - appendEnd: function() { - this.appendValueInput('RETURN') - .appendField(Messages.in_); - this.setOutput(true); - } -}; diff --git a/lib/blockly/blocks/lists.js b/lib/blockly/blocks/lists.js deleted file mode 100644 index aae355d..0000000 --- a/lib/blockly/blocks/lists.js +++ /dev/null @@ -1,320 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Lists blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - -'use strict'; - -goog.provide('Blockly.Blocks.lists'); - -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['lists_create_with'] = { - init: function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.setMutator(new Blockly.Mutator(['lists_create_with_item'])); - this.emptyInputName = 'EMPTY'; - this.repeatingInputName = 'ADD'; - }, - domToMutation: function(xmlElement) { - this.setColour(Blockly.LIST_CATEGORY_HUE); - var inputCount = xmlElement.getAttribute('items'); - if(inputCount == 0) { - this.addEmptyInput(); - } else { - for(var i = 0; i < inputCount; i++) { - this.addInput(i); - } - } - }, - addEmptyInput: function() { - this.appendDummyInput(this.emptyInputName) - .appendField(Messages.crEmptyList_); - }, - addInput: function(inputNum) { - var input = this.appendValueInput(this.repeatingInputName + inputNum); - if(inputNum === 0){ - input.appendField(Messages.mkAList_); - } - return input; - } -}; - -Blockly.Blocks['lists_add_items'] = { - init: function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('LIST') - .appendField(Messages.adItsTList_) - .appendField(Messages.list_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new Blockly.Mutator(['lists_add_items_item'])); - this.emptyInputName = null; - this.repeatingInputName = 'ITEM'; - }, - domToMutation: function(xmlElement) { - for(var i = 0; i < xmlElement.getAttribute('items'); i++) { - this.addInput(i); - } - }, - addInput: function(inputNum){ - var input = this.appendValueInput(this.repeatingInputName + inputNum); - input.appendField(Messages.item_).setAlign(Blockly.ALIGN_RIGHT); - return input; - } -}; - -Blockly.Blocks['lists_is_in'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('ITEM') - .appendField(Messages.iInList_) - .appendField(Messages.thing_); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.list_); - this.setOutput(true); - this.setInputsInline(false); - } -}; - - -Blockly.Blocks['lists_length'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.lenOList_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_is_empty'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.isLEmpty_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_pick_random_item'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.pARanItem_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_position_in'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('ITEM') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.idxInList_) - .appendField(Messages.thing_); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.list_); - this.setInputsInline(false); - } -}; - - -Blockly.Blocks['lists_select_item'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.selLiItem_) - .appendField(Messages.list_); - this.appendValueInput('NUM') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.index_); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['lists_insert_item'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.insLiItem_) - .appendField(Messages.list_); - this.appendValueInput('INDEX') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.index_); - this.appendValueInput('ITEM') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.item_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['lists_replace_item'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.repLiItem_) - .appendField(Messages.list_); - this.appendValueInput('NUM') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.index_); - this.appendValueInput('ITEM') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.repl_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['lists_remove_item'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.remLiItem_) - .appendField(Messages._list_); - this.appendValueInput('INDEX') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.index_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['lists_append_list'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('LIST0') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.appToList_) - .appendField(Messages.l1_); - this.appendValueInput('LIST1') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.l2_); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(false); - } -}; - - -Blockly.Blocks['lists_copy'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.cpyList_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_is_list'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('ITEM') - .appendField(Messages.iAList_) - .appendField(Messages.thing_); - } -}; - -Blockly.Blocks['lists_reverse'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.revList_) - .appendField(Messages.list_); - } -} - -Blockly.Blocks['lists_to_csv_row'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.lTCRow_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_to_csv_table'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('LIST') - .appendField(Messages.lTCTab_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_from_csv_row'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT') - .appendField(Messages.lFCRow_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_from_csv_table'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT') - .appendField(Messages.lFCTab_) - .appendField(Messages.list_); - } -}; - -Blockly.Blocks['lists_lookup_in_pairs'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('KEY') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.lkIPrs_) - .appendField(Messages.key_); - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.pairs_); - this.appendValueInput('NOTFOUND') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.ntFnd_); - this.setInputsInline(false); - } -}; - - -Blockly.Blocks['lists_join_with_separator'] = { - init : function() { - this.setColour(Blockly.LIST_CATEGORY_HUE); - this.appendValueInput('SEPARATOR') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.joiIts_) - this.appendValueInput('LIST') - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Messages.list_); - this.setInputsInline(false); - } -}; diff --git a/lib/blockly/blocks/logic.js b/lib/blockly/blocks/logic.js deleted file mode 100644 index 5687131..0000000 --- a/lib/blockly/blocks/logic.js +++ /dev/null @@ -1,98 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Logic blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - -'use strict'; - -goog.provide('Blockly.Blocks.logic'); - -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['logic_boolean'] = { - init: function () { - this.setColour(Blockly.LOGIC_CATEGORY_HUE); - this.setOutput(true); - this.appendDummyInput() - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'BOOL'); - } -}; - -Blockly.Blocks.logic_boolean.OPERATORS = function () { - return [ - [Messages.true_, 'TRUE'], - [Messages.false_, 'FALSE'] - ]; -}; - -Blockly.Blocks['logic_false'] = { - init: function () { - this.setColour(Blockly.LOGIC_CATEGORY_HUE); - this.setOutput(true); - this.appendDummyInput() - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.logic_boolean.OPERATORS), 'BOOL'); - this.setFieldValue('FALSE', 'BOOL'); - } -}; - -Blockly.Blocks['logic_negate'] = { - init: function () { - this.setColour(Blockly.LOGIC_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('BOOL') - .appendField(Messages.not_); - } -}; - -Blockly.Blocks['logic_compare'] = { - init: function () { - this.setColour(Blockly.LOGIC_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.setInputsInline(true); - } -}; - -Blockly.Blocks.logic_compare.OPERATORS = function () { - return [ - [Messages.eq_, 'EQ'], - [Messages.neq_, 'NEQ'] - ]; -}; - -Blockly.Blocks['logic_operation'] = { - init: function () { - this.setColour(Blockly.LOGIC_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.setInputsInline(true); - } -}; - -Blockly.Blocks.logic_operation.OPERATORS = function () { - return [ - [Messages.and_, 'AND'], - [Messages.or_, 'OR'] - ] -}; - -Blockly.Blocks['logic_or'] = { - init: function () { - this.setColour(Blockly.LOGIC_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.logic_operation.OPERATORS), 'OP'); - this.setFieldValue('OR', 'OP'); - this.setInputsInline(true); - } -}; diff --git a/lib/blockly/blocks/math.js b/lib/blockly/blocks/math.js deleted file mode 100644 index b77294e..0000000 --- a/lib/blockly/blocks/math.js +++ /dev/null @@ -1,427 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Math blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - -'use strict'; - -goog.provide('Blockly.Blocks.math'); - -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['math_number'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.appendDummyInput().appendField( - new Blockly.FieldTextInput('0'), 'NUM'); - this.setOutput(true); - } -}; - -Blockly.Blocks['math_compare'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.setInputsInline(true); - } -}; - -Blockly.Blocks.math_compare.OPERATORS = function () { - return [[Messages.eq_, 'EQ'], - [Messages.neq_, 'NEQ'], - [Messages.lt_, 'LT'], - [Messages.lte_, 'LTE'], - [Messages.gt_, 'GT'], - [Messages.gte_, 'GTE']]; -}; - -Blockly.Blocks['math_add'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.setInputsInline(true); - - this.setMutator(new Blockly.Mutator(['math_mutator_item'])); - this.emptyInputName = 'EMPTY'; - this.repeatingInputName = 'NUM'; - }, - domToMutation: function(xmlElement) { - for(var i = 0; i < xmlElement.getAttribute('items'); i++) { - this.addInput(i); - } - }, - addInput: function (inputNum) { - var input = this.appendValueInput(this.repeatingInputName + inputNum); - if (inputNum !== 0) { - input.appendField(Messages.add_); - } - return input; - } -}; - -Blockly.Blocks['math_subtract'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(Messages.sub_); - this.setInputsInline(true); - } -}; - -Blockly.Blocks['math_multiply'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.setInputsInline(true); - - - this.setMutator(new Blockly.Mutator(['math_mutator_item'])); - this.emptyInputName = 'EMPTY'; - this.repeatingInputName = 'NUM'; - }, - domToMutation: function(xmlElement) { - for(var i = 0; i < xmlElement.getAttribute('items'); i++) { - this.addInput(i); - } - }, - addInput: function (inputNum) { - var input = this.appendValueInput(this.repeatingInputName + inputNum) - .setCheck(Blockly.Blocks.Utilities.YailTypeToBlocklyType("number", Blockly.Blocks.Utilities.INPUT)); - if (inputNum !== 0) { - input.appendField(Blockly.Blocks.Utilities.times_symbol); - } - return input; - } -}; - -Blockly.Blocks['math_division'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(Messages.div_); - this.setInputsInline(true); - } -}; - -Blockly.Blocks['math_power'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(Messages.pow_); - this.setInputsInline(true); - } -}; - - -Blockly.Blocks['math_bitwise'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.setInputsInline(false); - - this.setMutator(new Blockly.Mutator(['math_mutator_item'])); - this.repeatingInputName = 'NUM'; - }, - domToMutation: function(xmlElement) { - for(var i = 0; i < xmlElement.getAttribute('items'); i++) { - var input = this.addInput(i); - - } - }, - addInput: function (inputNum) { - var input = this.appendValueInput(this.repeatingInputName + inputNum) - .setCheck(Blockly.Blocks.Utilities.YailTypeToBlocklyType("number", Blockly.Blocks.Utilities.INPUT)); - if (inputNum == 0) { - input.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.setFieldValue(this.valuesToSave['OP'], 'OP'); - } - return input; - } -}; - -Blockly.Blocks.math_bitwise.OPERATORS = function () { - return [[Messages.bAnd_, 'BITAND'], - [Messages.bOr_, 'BITIOR'], - [Messages.bXor_, 'BITXOR']] -}; - -Blockly.Blocks['math_random_int'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('FROM') - .appendField(Messages.randomInt_) - .appendField(Messages.from_); - this.appendValueInput('TO') - .appendField(Messages.to__); - this.setInputsInline(true); - } -}; - -Blockly.Blocks['math_random_float'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendDummyInput() - .appendField(Messages.randomFrac_); - } -}; - -Blockly.Blocks['math_random_set_seed'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(false); - this.appendValueInput('NUM') - .appendField(Messages.randomSetSeed_) - .appendField(Messages.to__); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -Blockly.Blocks['math_on_list'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.setInputsInline(false); - this.setMutator(new Blockly.Mutator(['math_mutator_item'])); - this.repeatingInputName = 'NUM'; - }, - domToMutation: function(xmlElement) { - for(var i = 0; i < xmlElement.getAttribute('items'); i++) { - var input = this.addInput(i); - } - }, - addInput: function (inputNum) { - var input = this.appendValueInput(this.repeatingInputName + inputNum); - if (inputNum == 0) { - input.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.setFieldValue(this.valuesToSave['OP'], 'OP'); - } - return input; - } -}; - -Blockly.Blocks.math_on_list.OPERATORS = function () { - return [[Messages.min_, 'MIN'], - [Messages.max_, 'MAX']] -}; - -Blockly.Blocks['math_single'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks.math_single.OPERATORS = function () { - return [[Messages.sqRoot_, 'ROOT'], - [Messages.abs_, 'ABS'], - [Messages.neg_, 'NEG'], - [Messages.log_, 'LN'], - [Messages.exp_, 'EXP'], - [Messages.round_, 'ROUND'], - [Messages.ceil_, 'CEILING'], - [Messages.floor_, 'FLOOR']]; -}; - -Blockly.Blocks['math_abs'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_single.OPERATORS), 'OP'); - this.setFieldValue('ABS', "OP"); - } -}; - -Blockly.Blocks['math_neg'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_single.OPERATORS), 'OP'); - this.setFieldValue('NEG', "OP"); - } -}; - -Blockly.Blocks['math_round'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_single.OPERATORS), 'OP'); - this.setFieldValue('ROUND', "OP"); - } -}; - -Blockly.Blocks['math_ceiling'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_single.OPERATORS), 'OP'); - this.setFieldValue('CEILING', "OP"); - } -}; - -Blockly.Blocks['math_floor'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_single.OPERATORS), 'OP'); - this.setFieldValue('FLOOR', "OP"); - } -}; - -Blockly.Blocks['math_divide'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('DIVIDEND') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.appendValueInput('DIVISOR') - .appendField(Messages.div_); - this.setInputsInline(true); - } -}; - -Blockly.Blocks.math_divide.OPERATORS = function () { - return [[Messages.moduloOf_, 'MODULO'], - [Messages.remainderOf_, 'REMAINDER'], - [Messages.quotientOf_, 'QUOTIENT']]; -}; - -Blockly.Blocks['math_trig'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks.math_trig.OPERATORS = function () { - return [[Messages.sin_, 'SIN'], - [Messages.cos_, 'COS'], - [Messages.tan_, 'TAN'], - [Messages.asin_, 'ASIN'], - [Messages.acos_, 'ACOS'], - [Messages.atan_, 'ATAN']]; -} - -Blockly.Blocks['math_cos'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_trig.OPERATORS), 'OP'); - this.setFieldValue('COS', "OP"); - } -}; - -Blockly.Blocks['math_tan'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(Blockly.Blocks.math_trig.OPERATORS), 'OP'); - this.setFieldValue('TAN', "OP"); - } -}; - -Blockly.Blocks['math_atan2'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendDummyInput().appendField(Messages.atan2_); - this.appendValueInput('Y') - .appendField(Messages.y_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('X') - .appendField(Messages.x_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['math_convert_angles'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(Messages.convert_) - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks.math_convert_angles.OPERATORS = function () { - return [[Messages.radToDeg_, 'RADIANS_TO_DEGREES'], - [Messages.degToRad_, 'DEGREES_TO_RADIANS']] -}; - -Blockly.Blocks['math_format_as_decimal'] = { - init: function () { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - - this.appendDummyInput() - .appendField(Messages.formatAsDec_); - this.appendValueInput('NUM') - .appendField(Messages.number_) - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('PLACES') - .appendField(Messages.places_) - .setAlign(Blockly.ALIGN_RIGHT); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['math_is_a_number'] = { - init : function() { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks.math_is_a_number.OPERATORS = - [[ Messages.isNum_, 'NUMBER' ], - [ Messages.isBs10_, 'BASE10' ], - [ Messages.isHex_, 'HEXADECIMAL' ], - [ Messages.isBin_, 'BINARY' ]]; - - -Blockly.Blocks['math_convert_number'] = { - init : function() { - this.setColour(Blockly.MATH_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('NUM') - .appendField(Messages.convertNum_) - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks.math_convert_number.OPERATORS = - [[ Messages.b10THex_, 'DEC_TO_HEX' ], - [ Messages.hexTB10_, 'HEX_TO_DEC' ], - [ Messages.b10TBin_, 'DEC_TO_BIN' ], - [ Messages.binTB10_, 'BIN_TO_DEC' ]]; diff --git a/lib/blockly/blocks/procedures.js b/lib/blockly/blocks/procedures.js deleted file mode 100644 index c6679ac..0000000 --- a/lib/blockly/blocks/procedures.js +++ /dev/null @@ -1,104 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Procedure blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - - -'use strict'; - -goog.provide('Blockly.Blocks.procedures'); - -goog.require('Blockly.Blocks.Utilities'); -goog.require('Blockly.FieldTextInput'); - -Blockly.Blocks['procedures_defnoreturn'] = { - init: function() { - this.setColour(Blockly.PROCEDURE_CATEGORY_HUE); - this.headerInput = - this.appendDummyInput('HEADER') - .appendField(Messages.to__) - .appendField(new Blockly.FieldTextInput(''), 'NAME'); - this.appendEnd(); - this.setMutator(new Blockly.Mutator(['math_mutator_item'])); - }, - domToMutation: function(xmlElement) { - var params = []; - var children = xmlElement.children; - for (var x = 0, childNode; childNode = children[x]; x++) { - if (childNode.nodeName.toLowerCase() == 'arg') { - params.push(childNode.getAttribute('name')); - } - } - this.horizontalParameters = xmlElement.getAttribute('vertical_parameters') !== "true"; - - if (this.horizontalParameters) { // horizontal case - for (var i = 0; i < children.length; i++) { - this.headerInput.appendField(' ') - .appendField(new Blockly.FieldParameterName(''), - 'VAR' + i); - } - } else { // vertical case - for (var i = 0; i < children.length; i++) { - this.removeInput('STACK', true); - this.removeInput('RETURN', true); - - this.appendDummyInput('VAR' + i) - .appendField(new Blockly.FieldParameterName(''), 'VAR' + i) - .setAlign(Blockly.ALIGN_RIGHT); - - this.appendEnd(); - } - } - }, - appendEnd: function() { - this.appendStatementInput('STACK') - .appendField(Messages.do_); - } -}; - -Blockly.Blocks['procedures_defreturn'] = { - init: Blockly.Blocks.procedures_defnoreturn.init, - domToMutation: Blockly.Blocks.procedures_defnoreturn.domToMutation, - appendEnd: function() { - this.appendValueInput('RETURN') - .appendField(Messages.result_) - .setAlign(Blockly.ALIGN_RIGHT); - } -}; - -Blockly.Blocks['procedures_callnoreturn'] = { - init: function() { - this.setColour(Blockly.PROCEDURE_CATEGORY_HUE); - - this.setPreviousStatement(true); - this.setNextStatement(true); - }, - domToMutation: function(xmlElement) { - var name = xmlElement.getAttribute('name'); - this.appendDummyInput() - .appendField(Messages.call_) - .appendField(new Blockly.FieldParameterDropdown(name),"PROCNAME"); - var children = xmlElement.children; - for (var x = 0, childNode; childNode = children[x]; x++) { - if (childNode.nodeName.toLowerCase() == 'arg') { - this.appendValueInput('ARG' + x) - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(childNode.getAttribute('name')) - } - } - } -}; - - -Blockly.Blocks['procedures_callreturn'] = { - init: function() { - this.setColour(Blockly.PROCEDURE_CATEGORY_HUE); - this.setOutput(true, null); - }, - domToMutation: Blockly.Blocks.procedures_callnoreturn.domToMutation -}; diff --git a/lib/blockly/blocks/text.js b/lib/blockly/blocks/text.js deleted file mode 100644 index 86ba1e3..0000000 --- a/lib/blockly/blocks/text.js +++ /dev/null @@ -1,251 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2017 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @license - * @fileoverview Text blocks for Blockly, modified for MIT App Inventor. - * @author mckinney@mit.edu (Andrew F. McKinney) - */ - -'use strict'; - -goog.provide('Blockly.Blocks.text'); -goog.require('Blockly.Blocks.Utilities'); - -Blockly.Blocks['text'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.appendDummyInput().appendField(Messages.lQuote_) - .appendField(new Blockly.FieldTextBlockInput(''), 'TEXT') - .appendField(Messages.rQuote_); - this.setOutput(true); - } -}; - -Blockly.Blocks['text_join'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.setMutator(new Blockly.Mutator(['text_join_item'])); - this.repeatingInputName = 'ADD'; - }, - domToMutation: function(xmlElement) { - for(var i = 0; i < xmlElement.getAttribute('items'); i++) { - var input = this.addInput(i); - } - }, - addInput: function (inputNum) { - var input = this.appendValueInput(this.repeatingInputName + inputNum).setCheck(Blockly.Blocks.Utilities.YailTypeToBlocklyType("text", Blockly.Blocks.Utilities.INPUT)); - if (inputNum === 0) { - input.appendField(Messages.join_); - } - return input; - }, -}; - -Blockly.Blocks['text_length'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('VALUE') - .appendField(Messages.length_); - } -}; - -Blockly.Blocks['text_isEmpty'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('VALUE') - .appendField(Messages.isEmpty_); - } -}; - -Blockly.Blocks['text_is_string'] = { - init: function() { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.appendValueInput('ITEM') - .appendField(Messages.LANG_TEXT_TEXT_IS_STRING_TITLE); - this.setOutput(true); - } -}; - -Blockly.Blocks['text_compare'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT1') - .appendField(Messages.compareTxts_); - this.appendValueInput('TEXT2') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - this.setInputsInline(true); - } -}; - -Blockly.Blocks.text_compare.OPERATORS = function () { - return [ - [Messages.lt__, 'LT'], [Messages.eq__, 'EQUAL'], [Messages.neq_, 'NEQ'], [Messages.gt__, 'GT'] - ] -}; - -Blockly.Blocks['text_trim'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT') - .appendField(Messages.trim_); - } -}; - -Blockly.Blocks['text_changeCase'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT') - .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP'); - } -}; - -Blockly.Blocks.text_changeCase.OPERATORS = function () { - return [ - [Messages.upcase_, 'UPCASE'], [Messages.downcase_, 'DOWNCASE'] - ] -}; - -Blockly.Blocks['text_starts_at'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - - this.appendDummyInput() - .appendField('starts at'); - this.appendValueInput('TEXT') - .appendField('text') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('PIECE') - .appendField('piece') - .setAlign(Blockly.ALIGN_RIGHT); - - this.setInputsInline(false); - } -}; - -Blockly.Blocks['text_contains'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendDummyInput() - .appendField('contains'); - this.appendValueInput('TEXT') - .appendField('text') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('PIECE') - .appendField('piece') - .setAlign(Blockly.ALIGN_RIGHT); - this.setInputsInline(false); - } -}; - -Blockly.Blocks['text_split'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT') - .appendField(new Blockly.FieldDropdown(this.OPERATORS, Blockly.Blocks.text_split.dropdown_onchange), 'OP') - .appendField(Messages.text_); - this.appendValueInput('AT') - .appendField(Messages.at_, 'ARG2_NAME') - .setAlign(Blockly.ALIGN_RIGHT); - }, - domToMutation: function (xmlElement) { - var mode = xmlElement.getAttribute('mode'); - Blockly.Blocks.text_split.adjustToMode(mode, this); - } -}; - -Blockly.Blocks.text_split.adjustToMode = function (mode, block) { - if (mode == 'SPLITATFIRST' || mode == 'SPLIT') { - block.getInput("AT"); - block.setFieldValue(Messages.at_, 'ARG2_NAME'); - } else if (mode == 'SPLITATFIRSTOFANY' || mode == 'SPLITATANY') { - block.getInput("AT"); - block.setFieldValue(Messages.atList_, 'ARG2_NAME'); - } -}; - -Blockly.Blocks.text_split.OPERATORS = function () { - return [ - [Messages.sp_, 'SPLIT'], - [Messages.spAtFirst_, 'SPLITATFIRST'], - [Messages.spAtAny_, 'SPLITATANY'], - [Messages.spAtFoAny_, 'SPLITATFIRSTOFANY'] - ] -}; - -Blockly.Blocks['text_split_at_spaces'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - this.appendValueInput('TEXT') - .appendField(Messages.spAtSpc_); - } -}; - -Blockly.Blocks['text_segment'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - - this.appendDummyInput() - .appendField('segment'); - this.appendValueInput('TEXT') - .appendField('text') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('START') - .appendField('start') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('LENGTH') - .appendField('length') - .setAlign(Blockly.ALIGN_RIGHT); - - this.setInputsInline(false); - } -}; - -Blockly.Blocks['text_replace_all'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.setOutput(true); - - this.appendDummyInput() - .appendField('replace all'); - this.appendValueInput('TEXT') - .appendField('text') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('SEGMENT') - .appendField('segment') - .setAlign(Blockly.ALIGN_RIGHT); - this.appendValueInput('REPLACEMENT') - .appendField('replacement') - .setAlign(Blockly.ALIGN_RIGHT); - - this.setInputsInline(false); - } -}; - -Blockly.Blocks['obfuscated_text'] = { - init: function () { - this.setColour(Blockly.TEXT_CATEGORY_HUE); - this.appendDummyInput() - .appendField(Messages.obfsText_ + " " + Messages.lQuote_) - .appendField(new Blockly.FieldTextBlockInput(''), 'TEXT') - .appendField(Messages.rQuote_); - this.setOutput(true); - this.confounder = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 8); - }, - domToMutation: function(xmlElement) { - var confounder = xmlElement.getAttribute('confounder'); - this.confounder = confounder; - } -}; diff --git a/lib/blockly/blocks/utilities.js b/lib/blockly/blocks/utilities.js deleted file mode 100644 index 4d3f3e3..0000000 --- a/lib/blockly/blocks/utilities.js +++ /dev/null @@ -1,120 +0,0 @@ -// -*- mode: java; c-basic-offset: 2; -*- -// Copyright 2013-2014 MIT, All rights reserved -// Released under the Apache License, Version 2.0 -// http://www.apache.org/licenses/LICENSE-2.0 -/** - * @fileoverview Block utilities for Blockly, modified for App Inventor - * @author mckinney@mit.edu (Andrew F. McKinney) - * @author hal@mit.edu (Hal Abelson) - * @author fraser@google.com (Neil Fraser) - * Due to the frequency of long strings, the 80-column wrap rule need not apply - * to language files. - */ - -'use strict'; - -goog.provide('Blockly.Blocks.Utilities'); - -Blockly.HSV_SATURATION = 0.7; -Blockly.CONTROL_CATEGORY_HUE = "#FFAB00"; // [177, 143, 53] -Blockly.LOGIC_CATEGORY_HUE = "#43A047"; // [119, 171, 65] -Blockly.MATH_CATEGORY_HUE = "#3949AB"; // [63, 113, 181] -Blockly.TEXT_CATEGORY_HUE = "#D81B60"; // [179, 45, 94] -Blockly.LIST_CATEGORY_HUE = "#039BE5"; // [73, 166, 212] -Blockly.COLOR_CATEGORY_HUE = "#757575"; // [125, 125, 125] -Blockly.DICTIONARY_CATEGORY_HUE = "#2D1799"; // [45, 23, 153] -Blockly.VARIABLE_CATEGORY_HUE = "#F4511E"; // [208, 95, 45] -Blockly.PROCEDURE_CATEGORY_HUE = "#5E35B1"; // [124, 83, 133] -Blockly.COLOUR_EVENT = '#ffa726'; -Blockly.COLOUR_METHOD = Blockly.PROCEDURE_CATEGORY_HUE; -Blockly.COLOUR_GET = '#8bc24a'; -Blockly.COLOUR_SET = '#388e3c'; -Blockly.COLOUR_COMPONENT = '#8bc24a'; - -// Create a unique object to represent the type InstantInTime, -// used in the Clock component -Blockly.Blocks.Utilities.InstantInTime = function () { return 'InstantInTime'; }; - - -// Convert Yail types to Blockly types -// Yail types are represented by strings: number, text, list, any, ... -// Blockly types are represented by objects: Number, String, ... -// and by the string "COMPONENT" -// The Yail type 'any' is repsented by Javascript null, to match -// Blockly's convention -Blockly.Blocks.Utilities.YailTypeToBlocklyTypeMap = { - 'number':{input:"Number",output:["Number","String"]}, - 'text':{input:"String",output:["Number","String"]}, - 'boolean':{input:"Boolean",output:["Boolean","String"]}, - 'list':{input:"Array",output:["Array","String"]}, - 'component':{input:"COMPONENT",output:"COMPONENT"}, - 'InstantInTime':{input:Blockly.Blocks.Utilities.InstantInTime,output:Blockly.Blocks.Utilities.InstantInTime}, - 'any':{input:null,output:null} - //add more types here -}; - -Blockly.Blocks.Utilities.OUTPUT = 1; -Blockly.Blocks.Utilities.INPUT = 0; - -Blockly.Blocks.Utilities.YailTypeToBlocklyType = function(yail,inputOrOutput) { - - var inputOrOutputName = (inputOrOutput == Blockly.Blocks.Utilities.OUTPUT ? "output" : "input"); - var bType = Blockly.Blocks.Utilities.YailTypeToBlocklyTypeMap[yail][inputOrOutputName]; - - if (bType !== null || yail == 'any') { - return bType; - } else { - throw new Error("Unknown Yail type: " + yail + " -- YailTypeToBlocklyType"); - } -}; - - -// Blockly doesn't wrap tooltips, so these can get too wide. We'll create our own tooltip setter -// that wraps to length 60. - -Blockly.Blocks.Utilities.setTooltip = function(block, tooltip) { - block.setTooltip(Blockly.Blocks.Utilities.wrapSentence(tooltip, 60)); -}; - -// Wrap a string by splitting at spaces. Permit long chunks if there -// are no spaces. - -Blockly.Blocks.Utilities.wrapSentence = function(str, len) { - str = str.trim(); - if (str.length < len) return str; - var place = (str.lastIndexOf(" ", len)); - if (place == -1) { - return str.substring(0, len).trim() + Blockly.Blocks.Utilities.wrapSentence(str.substring(len), len); - } else { - return str.substring(0, place).trim() + "\n" + - Blockly.Blocks.Utilities.wrapSentence(str.substring(place), len); - } -}; - -// Change the text of collapsed blocks on rename -// Recurse to fix collapsed parents - -Blockly.Blocks.Utilities.MAX_COLLAPSE = 4; - -Blockly.Blocks.Utilities.renameCollapsed = function(block, n) { - if(n > Blockly.Blocks.Utilities.MAX_COLLAPSE) return; - if (block.isCollapsed()) { - var COLLAPSED_INPUT_NAME = '_TEMP_COLLAPSED_INPUT'; - block.removeInput(COLLAPSED_INPUT_NAME); - block.collapsed_ = false; - var text = block.toString(Blockly.COLLAPSE_CHARS); - block.collapsed_ = true; - block.appendDummyInput(COLLAPSED_INPUT_NAME).appendField(text); - - if(block.type.indexOf("procedures_call") != -1) { - block.moveInputBefore(COLLAPSED_INPUT_NAME, 'ARG0'); - } - } - - if(block.parentBlock_) { - Blockly.Blocks.Utilities.renameCollapsed(block.parentBlock_, n+1); - } -} - -// unicode multiplication symbol -Blockly.Blocks.Utilities.times_symbol = '\u00D7'; diff --git a/lib/blockly/build.py b/lib/blockly/build.py deleted file mode 100644 index dbcd137..0000000 --- a/lib/blockly/build.py +++ /dev/null @@ -1,505 +0,0 @@ -#!/usr/bin/python2.7 -# Compresses the core Blockly files into a single JavaScript file. -# -# Copyright 2012 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Usage: build.py <0 or more of core, generators, langfiles> -# build.py with no parameters builds all files. -# core builds blockly_compressed, blockly_uncompressed, and blocks_compressed. -# generators builds every _compressed.js. -# langfiles builds every msg/js/.js file. - -# This script generates two versions of Blockly's core files: -# blockly_compressed.js -# blockly_uncompressed.js -# The compressed file is a concatenation of all of Blockly's core files which -# have been run through Google's Closure Compiler. This is done using the -# online API (which takes a few seconds and requires an Internet connection). -# The uncompressed file is a script that loads in each of Blockly's core files -# one by one. This takes much longer for a browser to load, but is useful -# when debugging code since line numbers are meaningful and variables haven't -# been renamed. The uncompressed file also allows for a faster development -# cycle since there is no need to rebuild or recompile, just reload. -# -# This script also generates: -# blocks_compressed.js: The compressed Blockly language blocks. -# javascript_compressed.js: The compressed JavaScript generator. -# python_compressed.js: The compressed Python generator. -# php_compressed.js: The compressed PHP generator. -# lua_compressed.js: The compressed Lua generator. -# dart_compressed.js: The compressed Dart generator. -# msg/js/.js for every language defined in msg/js/.json. - -import argparse -import codecs -import glob -import json -import os -import re -import subprocess -import sys -import threading - -if sys.version_info[0] == 2: - import httplib - from urllib import urlencode -else: - import http.client as httplib - from urllib.parse import urlencode - from importlib import reload - -# Read package.json and extract the current Blockly version. -blocklyVersion = json.loads(open('package.json', 'r').read())['version'] - -def import_path(fullpath): - """Import a file with full path specification. - Allows one to import from any directory, something __import__ does not do. - - Args: - fullpath: Path and filename of import. - - Returns: - An imported module. - """ - path, filename = os.path.split(fullpath) - filename, ext = os.path.splitext(filename) - sys.path.append(path) - module = __import__(filename) - reload(module) # Might be out of date. - del sys.path[-1] - return module - - -HEADER = ("// Do not edit this file; automatically generated by build.py.\n" - "'use strict';\n") - - -class Gen_uncompressed(threading.Thread): - """Generate a JavaScript file that loads Blockly's raw files. - Runs in a separate thread. - """ - def __init__(self, search_paths, target_filename): - threading.Thread.__init__(self) - self.search_paths = search_paths - self.target_filename = target_filename - - def run(self): - f = open(self.target_filename, 'w') - f.write(HEADER) - f.write(""" -this.IS_NODE_JS = !!(typeof module !== 'undefined' && module.exports); - -this.BLOCKLY_DIR = (function(root) { - if (!root.IS_NODE_JS) { - // Find name of current directory. - var scripts = document.getElementsByTagName('script'); - var re = new RegExp('(.+)[\/]blockly_(.*)uncompressed\.js$'); - for (var i = 0, script; script = scripts[i]; i++) { - var match = re.exec(script.src); - if (match) { - return match[1]; - } - } - alert('Could not detect Blockly\\'s directory name.'); - } - return ''; -})(this); - -this.BLOCKLY_BOOT = function(root) { - // Execute after Closure has loaded. -""") - add_dependency = [] - base_path = calcdeps.FindClosureBasePath(self.search_paths) - for dep in calcdeps.BuildDependenciesFromFiles(self.search_paths): - add_dependency.append(calcdeps.GetDepsLine(dep, base_path)) - add_dependency.sort() # Deterministic build. - add_dependency = '\n'.join(add_dependency) - f.write(add_dependency + '\n') - - f.write('\n') - f.write('// Load Blockly.\n') - f.write('goog.require(\'Blockly.requires\')\n') - - f.write(""" -delete root.BLOCKLY_DIR; -delete root.BLOCKLY_BOOT; -delete root.IS_NODE_JS; -}; - -if (this.IS_NODE_JS) { - this.BLOCKLY_BOOT(this); - module.exports = Blockly; -} else { - document.write(''); - document.write(''); -} -""") - f.close() - print("SUCCESS: " + self.target_filename) - - -class Gen_compressed(threading.Thread): - """Generate a JavaScript file that contains all of Blockly's core and all - required parts of Closure, compiled together. - Uses the Closure Compiler's online API. - Runs in a separate thread. - """ - def __init__(self, search_paths, bundles): - threading.Thread.__init__(self) - self.search_paths = search_paths - self.bundles = bundles - - def run(self): - if (self.bundles.core): - self.gen_core() - self.gen_blocks() - - if (self.bundles.generators): - self.gen_generator("javascript") - self.gen_generator("python") - self.gen_generator("php") - self.gen_generator("lua") - self.gen_generator("dart") - - def gen_core(self): - target_filename = "blockly_compressed.js" - # Define the parameters for the POST request. - params = [ - ("compilation_level", "SIMPLE_OPTIMIZATIONS"), - ("use_closure_library", "true"), - ("output_format", "json"), - ("output_info", "compiled_code"), - ("output_info", "warnings"), - ("output_info", "errors"), - ("output_info", "statistics"), - ("warning_level", "DEFAULT"), - ] - - # Read in all the source files. - filenames = calcdeps.CalculateDependencies(self.search_paths, - [os.path.join("core", "requires.js")]) - filenames.sort() # Deterministic build. - for filename in filenames: - # Filter out the Closure files (the compiler will add them). - if filename.startswith("closure"): - continue - f = codecs.open(filename, encoding="utf-8") - code = "".join(f.readlines()) - # Inject the Blockly version. - if filename == "core/blockly.js": - code = code.replace("Blockly.VERSION = 'uncompiled';", - "Blockly.VERSION = '%s';" % blocklyVersion) - params.append(("js_code", code.encode("utf-8"))) - f.close() - - self.do_compile(params, target_filename, filenames, "") - - def gen_blocks(self): - target_filename = "blocks_compressed.js" - # Define the parameters for the POST request. - params = [ - ("compilation_level", "SIMPLE_OPTIMIZATIONS"), - ("output_format", "json"), - ("output_info", "compiled_code"), - ("output_info", "warnings"), - ("output_info", "errors"), - ("output_info", "statistics"), - ("warning_level", "DEFAULT"), - ] - - # Add Blockly, Blockly.Blocks, and all fields to be compatible with the compiler. - params.append(("js_code", """ -goog.provide('Blockly'); -goog.provide('Blockly.Blocks'); -goog.provide('Blockly.Comment'); -goog.provide('Blockly.FieldCheckbox'); -goog.provide('Blockly.FieldColour'); -goog.provide('Blockly.FieldDropdown'); -goog.provide('Blockly.FieldImage'); -goog.provide('Blockly.FieldLabel'); -goog.provide('Blockly.FieldMultilineInput'); -goog.provide('Blockly.FieldNumber'); -goog.provide('Blockly.FieldTextInput'); -goog.provide('Blockly.FieldVariable'); -goog.provide('Blockly.Mutator'); -""")) - # Read in all the source files. - filenames = glob.glob(os.path.join("blocks", "*.js")) - filenames.sort() # Deterministic build. - for filename in filenames: - f = codecs.open(filename, encoding="utf-8") - params.append(("js_code", "".join(f.readlines()).encode("utf-8"))) - f.close() - - # Remove Blockly, Blockly.Blocks and all fields to be compatible with Blockly. - remove = r"var Blockly=\{[^;]*\};\n?" - self.do_compile(params, target_filename, filenames, remove) - - def gen_generator(self, language): - target_filename = language + "_compressed.js" - # Define the parameters for the POST request. - params = [ - ("compilation_level", "SIMPLE_OPTIMIZATIONS"), - ("output_format", "json"), - ("output_info", "compiled_code"), - ("output_info", "warnings"), - ("output_info", "errors"), - ("output_info", "statistics"), - ("warning_level", "DEFAULT"), - ] - - # Read in all the source files. - # Add Blockly.Generator and Blockly.utils.string to be compatible - # with the compiler. - params.append(("js_code", """ -goog.provide('Blockly.Generator'); -goog.provide('Blockly.utils.string'); -""")) - filenames = glob.glob( - os.path.join("generators", language, "*.js")) - filenames.sort() # Deterministic build. - filenames.insert(0, os.path.join("generators", language + ".js")) - for filename in filenames: - f = codecs.open(filename, encoding="utf-8") - params.append(("js_code", "".join(f.readlines()).encode("utf-8"))) - f.close() - filenames.insert(0, "[goog.provide]") - - # Remove Blockly.Generator and Blockly.utils.string to be compatible - # with Blockly. - remove = r"var Blockly=\{[^;]*\};\s*Blockly.utils.string={};\n?" - self.do_compile(params, target_filename, filenames, remove) - - def do_compile(self, params, target_filename, filenames, remove): - # Send the request to Google. - headers = {"Content-type": "application/x-www-form-urlencoded"} - conn = httplib.HTTPSConnection("closure-compiler.appspot.com") - conn.request("POST", "/compile", urlencode(params), headers) - response = conn.getresponse() - - # Decode is necessary for Python 3.4 compatibility - json_str = response.read().decode("utf-8") - conn.close() - - # Parse the JSON response. - try: - json_data = json.loads(json_str) - except ValueError: - print("ERROR: Could not parse JSON for %s. Raw data:" % target_filename) - print(json_str) - return - - def file_lookup(name): - if not name.startswith("Input_"): - return "???" - n = int(name[6:]) - 1 - return filenames[n] - - if "serverErrors" in json_data: - errors = json_data["serverErrors"] - for error in errors: - print("SERVER ERROR: %s" % target_filename) - print(error["error"]) - elif "errors" in json_data: - errors = json_data["errors"] - for error in errors: - print("FATAL ERROR") - print(error["error"]) - if error["file"]: - print("%s at line %d:" % ( - file_lookup(error["file"]), error["lineno"])) - print(error["line"]) - print((" " * error["charno"]) + "^") - sys.exit(1) - else: - if "warnings" in json_data: - warnings = json_data["warnings"] - for warning in warnings: - print("WARNING") - print(warning["warning"]) - if warning["file"]: - print("%s at line %d:" % ( - file_lookup(warning["file"]), warning["lineno"])) - print(warning["line"]) - print((" " * warning["charno"]) + "^") - print() - - if not "compiledCode" in json_data: - print("FATAL ERROR: Compiler did not return compiledCode.") - sys.exit(1) - - code = HEADER + "\n" + json_data["compiledCode"] - # Remove Blockly definitions to be compatible with Blockly. - code = re.sub(remove, "", code) - code = self.trim_licence(code) - - stats = json_data["statistics"] - original_b = stats["originalSize"] - compressed_b = stats["compressedSize"] - if original_b > 0 and compressed_b > 0: - f = open(target_filename, "w") - f.write(code) - f.close() - - original_kb = int(original_b / 1024 + 0.5) - compressed_kb = int(compressed_b / 1024 + 0.5) - ratio = int(float(compressed_b) / float(original_b) * 100 + 0.5) - print("SUCCESS: " + target_filename) - print("Size changed from %d KB to %d KB (%d%%)." % ( - original_kb, compressed_kb, ratio)) - else: - print("UNKNOWN ERROR") - - def trim_licence(self, code): - """Strip out Google's and MIT's Apache licences. - - JS Compiler preserves dozens of Apache licences in the Blockly code. - Remove these if they belong to Google or MIT. - MIT's permission to do this is logged in Blockly issue 2412. - - Args: - code: Large blob of compiled source code. - - Returns: - Code with Google's and MIT's Apache licences trimmed. - """ - apache2 = re.compile("""/\\* - - (Copyright \\d+ (Google LLC|Massachusetts Institute of Technology)) -( All rights reserved. -)? - Licensed under the Apache License, Version 2.0 \\(the "License"\\); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -\\*/""") - return re.sub(apache2, "", code) - - -class Gen_langfiles(threading.Thread): - """Generate JavaScript file for each natural language supported. - - Runs in a separate thread. - """ - - def __init__(self): - threading.Thread.__init__(self) - - def run(self): - # The files msg/json/{en,qqq,synonyms}.json depend on msg/messages.js. - try: - subprocess.check_call([ - "python", - os.path.join("i18n", "js_to_json.py"), - "--input_file", "msg/messages.js", - "--output_dir", "msg/json/", - "--quiet"]) - except (subprocess.CalledProcessError, OSError) as e: - # Documentation for subprocess.check_call says that CalledProcessError - # will be raised on failure, but I found that OSError is also possible. - print("Error running i18n/js_to_json.py: ", e) - sys.exit(1) - - # Checking whether it is necessary to rebuild the js files would be a lot of - # work since we would have to compare each .json file with each - # .js file. Rebuilding is easy and cheap, so just go ahead and do it. - try: - # Use create_messages.py to create .js files from .json files. - cmd = [ - "python", - os.path.join("i18n", "create_messages.py"), - "--source_lang_file", os.path.join("msg", "json", "en.json"), - "--source_synonym_file", os.path.join("msg", "json", "synonyms.json"), - "--source_constants_file", os.path.join("msg", "json", "constants.json"), - "--key_file", os.path.join("msg", "json", "keys.json"), - "--output_dir", os.path.join("msg", "js"), - "--quiet"] - json_files = glob.glob(os.path.join("msg", "json", "*.json")) - json_files = [file for file in json_files if not - (file.endswith(("keys.json", "synonyms.json", "qqq.json", "constants.json")))] - cmd.extend(json_files) - subprocess.check_call(cmd) - except (subprocess.CalledProcessError, OSError) as e: - print("Error running i18n/create_messages.py: ", e) - sys.exit(1) - - # Output list of .js files created. - for f in json_files: - # This assumes the path to the current directory does not contain "json". - f = f.replace("json", "js") - if os.path.isfile(f): - print("SUCCESS: " + f) - else: - print("FAILED to create " + f) - -# Class to hold arguments if user passes in old argument style. -class Arguments: - def __init__(self): - self.core = False - self.generators = False - self.langfiles = False - -# Gets the command line arguments. -def get_args(): - parser = argparse.ArgumentParser(description="Decide which files to build.") - parser.add_argument('-core', action="store_true", default=False, help="Build core") - parser.add_argument('-generators', action="store_true", default=False, help="Build the generators") - parser.add_argument('-langfiles', action="store_true", default=False, help="Build all the language files") - - # New argument style: ./build.py -core - # Old argument style: ./build.py core - # Changed as of July 2019. - try: - args = parser.parse_args() - if (not args.core) and (not args.generators) and (not args.langfiles): - # No arguments, use these defaults: - args.core = True - args.generators = True - args.langfiles = True - except SystemExit: - # Fall back to old argument style. - args = Arguments() - args.core = 'core' in sys.argv - args.generators = 'generators' in sys.argv - args.langfiles = 'langfiles' in sys.argv - if 'accessible' in sys.argv: - print("The Blockly accessibility demo has moved to https://github.com/google/blockly-experimental") - return args - -if __name__ == "__main__": - args = get_args() - calcdeps = import_path(os.path.join("closure", "bin", "calcdeps.py")) - full_search_paths = calcdeps.ExpandDirectories(["core", "closure", "ai"]) - full_search_paths = sorted(full_search_paths) # Deterministic build. - - # Uncompressed and compressed are run in parallel threads. - # Uncompressed is limited by processor speed. - if (args.core): - Gen_uncompressed(full_search_paths, 'blockly_uncompressed.js').start() - - # Compressed is limited by network and server speed. - Gen_compressed(full_search_paths, args).start() - - # This is run locally in a separate thread - if (args.langfiles): - Gen_langfiles().start() diff --git a/lib/blockly/closure/bin/__pycache__/calcdeps.cpython-38.pyc b/lib/blockly/closure/bin/__pycache__/calcdeps.cpython-38.pyc deleted file mode 100644 index 0194aaa..0000000 Binary files a/lib/blockly/closure/bin/__pycache__/calcdeps.cpython-38.pyc and /dev/null differ diff --git a/lib/blockly/closure/bin/calcdeps.py b/lib/blockly/closure/bin/calcdeps.py deleted file mode 100644 index 67e5e8d..0000000 --- a/lib/blockly/closure/bin/calcdeps.py +++ /dev/null @@ -1,325 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2006 The Closure Library Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS-IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -"""Calculates JavaScript dependencies without requiring Google's build system. - -It iterates over a number of search paths and builds a dependency tree. With -the inputs provided, it walks the dependency tree and outputs all the files -required for compilation. -""" - - -import logging -import os -import re -import sys - - -_BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)' -req_regex = re.compile(_BASE_REGEX_STRING % 'require') -prov_regex = re.compile(_BASE_REGEX_STRING % 'provide') -ns_regex = re.compile('^ns:((\w+\.)*(\w+))$') - - -def IsValidFile(ref): - """Returns true if the provided reference is a file and exists.""" - return os.path.isfile(ref) - - -def IsJsFile(ref): - """Returns true if the provided reference is a JavaScript file.""" - return ref.endswith('.js') - - -def IsNamespace(ref): - """Returns true if the provided reference is a namespace.""" - return re.match(ns_regex, ref) is not None - - -def IsDirectory(ref): - """Returns true if the provided reference is a directory.""" - return os.path.isdir(ref) - - -def ExpandDirectories(refs): - """Expands any directory references into inputs. - - Description: - Looks for any directories in the provided references. Found directories - are recursively searched for .js files, which are then added to the result - list. - - Args: - refs: a list of references such as files, directories, and namespaces - - Returns: - A list of references with directories removed and replaced by any - .js files that are found in them. Also, the paths will be normalized. - """ - result = [] - for ref in refs: - if IsDirectory(ref): - # Disable 'Unused variable' for subdirs - # pylint: disable=unused-variable - for (directory, subdirs, filenames) in os.walk(ref): - for filename in filenames: - if IsJsFile(filename): - result.append(os.path.join(directory, filename)) - else: - result.append(ref) - return map(os.path.normpath, result) - - -class DependencyInfo(object): - """Represents a dependency that is used to build and walk a tree.""" - - def __init__(self, filename): - self.filename = filename - self.provides = [] - self.requires = [] - - def __str__(self): - return '%s Provides: %s Requires: %s' % (self.filename, - repr(self.provides), - repr(self.requires)) - - -def BuildDependenciesFromFiles(files): - """Build a list of dependencies from a list of files. - - Description: - Takes a list of files, extracts their provides and requires, and builds - out a list of dependency objects. - - Args: - files: a list of files to be parsed for goog.provides and goog.requires. - - Returns: - A list of dependency objects, one for each file in the files argument. - """ - result = [] - filenames = set() - for filename in files: - if filename in filenames: - continue - - # Python 3 requires the file encoding to be specified - if (sys.version_info[0] < 3): - file_handle = open(filename, 'r') - else: - file_handle = open(filename, 'r', encoding='utf8') - - try: - dep = CreateDependencyInfo(filename, file_handle) - result.append(dep) - finally: - file_handle.close() - - filenames.add(filename) - - return result - - -def CreateDependencyInfo(filename, source): - """Create dependency info. - - Args: - filename: Filename for source. - source: File-like object containing source. - - Returns: - A DependencyInfo object with provides and requires filled. - """ - dep = DependencyInfo(filename) - for line in source: - if re.match(req_regex, line): - dep.requires.append(re.search(req_regex, line).group(1)) - if re.match(prov_regex, line): - dep.provides.append(re.search(prov_regex, line).group(1)) - return dep - - -def BuildDependencyHashFromDependencies(deps): - """Builds a hash for searching dependencies by the namespaces they provide. - - Description: - Dependency objects can provide multiple namespaces. This method enumerates - the provides of each dependency and adds them to a hash that can be used - to easily resolve a given dependency by a namespace it provides. - - Args: - deps: a list of dependency objects used to build the hash. - - Raises: - Exception: If a multiple files try to provide the same namepace. - - Returns: - A hash table { namespace: dependency } that can be used to resolve a - dependency by a namespace it provides. - """ - dep_hash = {} - for dep in deps: - for provide in dep.provides: - if provide in dep_hash: - raise Exception('Duplicate provide (%s) in (%s, %s)' % ( - provide, - dep_hash[provide].filename, - dep.filename)) - dep_hash[provide] = dep - return dep_hash - - -def CalculateDependencies(paths, inputs): - """Calculates the dependencies for given inputs. - - Description: - This method takes a list of paths (files, directories) and builds a - searchable data structure based on the namespaces that each .js file - provides. It then parses through each input, resolving dependencies - against this data structure. The final output is a list of files, - including the inputs, that represent all of the code that is needed to - compile the given inputs. - - Args: - paths: the references (files, directories) that are used to build the - dependency hash. - inputs: the inputs (files, directories, namespaces) that have dependencies - that need to be calculated. - - Raises: - Exception: if a provided input is invalid. - - Returns: - A list of all files, including inputs, that are needed to compile the given - inputs. - """ - deps = BuildDependenciesFromFiles(paths + inputs) - search_hash = BuildDependencyHashFromDependencies(deps) - result_list = [] - seen_list = [] - for input_file in inputs: - if IsNamespace(input_file): - namespace = re.search(ns_regex, input_file).group(1) - if namespace not in search_hash: - raise Exception('Invalid namespace (%s)' % namespace) - input_file = search_hash[namespace].filename - if not IsValidFile(input_file) or not IsJsFile(input_file): - raise Exception('Invalid file (%s)' % input_file) - seen_list.append(input_file) - file_handle = open(input_file, 'r') - try: - for line in file_handle: - if re.match(req_regex, line): - require = re.search(req_regex, line).group(1) - ResolveDependencies(require, search_hash, result_list, seen_list) - finally: - file_handle.close() - result_list.append(input_file) - - return result_list - - -def FindClosureBasePath(paths): - """Given a list of file paths, return Closure base.js path, if any. - - Args: - paths: A list of paths. - - Returns: - The path to Closure's base.js file including filename, if found. - """ - - for path in paths: - pathname, filename = os.path.split(path) - - if filename == 'base.js': - f = open(path) - - is_base = False - - # Sanity check that this is the Closure base file. Check that this - # is where goog is defined. This is determined by the @provideGoog - # flag. - for line in f: - if '@provideGoog' in line: - is_base = True - break - - f.close() - - if is_base: - return path - -def ResolveDependencies(require, search_hash, result_list, seen_list): - """Takes a given requirement and resolves all of the dependencies for it. - - Description: - A given requirement may require other dependencies. This method - recursively resolves all dependencies for the given requirement. - - Raises: - Exception: when require does not exist in the search_hash. - - Args: - require: the namespace to resolve dependencies for. - search_hash: the data structure used for resolving dependencies. - result_list: a list of filenames that have been calculated as dependencies. - This variable is the output for this function. - seen_list: a list of filenames that have been 'seen'. This is required - for the dependency->dependent ordering. - """ - if require not in search_hash: - raise Exception('Missing provider for (%s)' % require) - - dep = search_hash[require] - if not dep.filename in seen_list: - seen_list.append(dep.filename) - for sub_require in dep.requires: - ResolveDependencies(sub_require, search_hash, result_list, seen_list) - result_list.append(dep.filename) - - -def GetDepsLine(dep, base_path): - """Returns a JS string for a dependency statement in the deps.js file. - - Args: - dep: The dependency that we're printing. - base_path: The path to Closure's base.js including filename. - """ - return 'goog.addDependency("%s", %s, %s);' % ( - GetRelpath(dep.filename, base_path), dep.provides, dep.requires) - - -def GetRelpath(path, start): - """Return a relative path to |path| from |start|.""" - # NOTE: Python 2.6 provides os.path.relpath, which has almost the same - # functionality as this function. Since we want to support 2.4, we have - # to implement it manually. :( - path_list = os.path.abspath(os.path.normpath(path)).split(os.sep) - start_list = os.path.abspath( - os.path.normpath(os.path.dirname(start))).split(os.sep) - - common_prefix_count = 0 - for i in range(0, min(len(path_list), len(start_list))): - if path_list[i] != start_list[i]: - break - common_prefix_count += 1 - - # Always use forward slashes, because this will get expanded to a url, - # not a file path. - return '/'.join(['..'] * (len(start_list) - common_prefix_count) + - path_list[common_prefix_count:]) diff --git a/lib/blockly/closure/bin/calcdeps.pyc b/lib/blockly/closure/bin/calcdeps.pyc deleted file mode 100644 index 14cfad6..0000000 Binary files a/lib/blockly/closure/bin/calcdeps.pyc and /dev/null differ diff --git a/lib/blockly/closure/goog/base.js b/lib/blockly/closure/goog/base.js deleted file mode 100644 index 73db187..0000000 --- a/lib/blockly/closure/goog/base.js +++ /dev/null @@ -1,509 +0,0 @@ -// Copyright 2006 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Bootstrap for the Google JS Library (Closure). - * - * In uncompiled mode base.js will attempt to load Closure's deps file, unless - * the global CLOSURE_NO_DEPS is set to true. This allows projects - * to include their own deps file(s) from different locations. - * - * Avoid including base.js more than once. This is strictly discouraged and not - * supported. goog.require(...) won't work properly in that case. - * - * @provideGoog - */ - - -/** - * Base namespace for the Closure library. Checks to see goog is already - * defined in the current scope before assigning to prevent clobbering if - * base.js is loaded more than once. - * - * @const - */ -var goog = goog || {}; - -/** - * Reference to the global object. - * https://www.ecma-international.org/ecma-262/9.0/index.html#sec-global-object - * - * More info on this implementation here: - * https://docs.google.com/document/d/1NAeW4Wk7I7FV0Y2tcUFvQdGMc89k2vdgSXInw8_nvCI/edit - * - * @const - * @suppress {undefinedVars} self won't be referenced unless `this` is falsy. - * @type {!Global} - */ -goog.global = - // Check `this` first for backwards compatibility. - // Valid unless running as an ES module or in a function wrapper called - // without setting `this` properly. - // Note that base.js can't usefully be imported as an ES module, but it may - // be compiled into bundles that are loadable as ES modules. - this || - // https://developer.mozilla.org/en-US/docs/Web/API/Window/self - // For in-page browser environments and workers. - self; - -/** - * Builds an object structure for the provided namespace path, ensuring that - * names that already exist are not overwritten. For example: - * "a.b.c" -> a = {};a.b={};a.b.c={}; - * Used by goog.provide and goog.exportSymbol. - * @param {string} name name of the object that this file defines. - * @private - */ -goog.exportPath_ = function(name) { - var parts = name.split('.'); - var cur = goog.global; - - // Internet Explorer exhibits strange behavior when throwing errors from - // methods externed in this manner. See the testExportSymbolExceptions in - // base_test.html for an example. - if (!(parts[0] in cur) && typeof cur.execScript != 'undefined') { - cur.execScript('var ' + parts[0]); - } - - for (var part; parts.length && (part = parts.shift());) { - if (cur[part] && cur[part] !== Object.prototype[part]) { - cur = cur[part]; - } else { - cur = cur[part] = {}; - } - } -}; - -/** - * Defines a namespace in Closure. - * - * A namespace may only be defined once in a codebase. It may be defined using - * goog.provide() or goog.module(). - * - * The presence of one or more goog.provide() calls in a file indicates - * that the file defines the given objects/namespaces. - * Provided symbols must not be null or undefined. - * - * In addition, goog.provide() creates the object stubs for a namespace - * (for example, goog.provide("goog.foo.bar") will create the object - * goog.foo.bar if it does not already exist). - * - * Build tools also scan for provide/require/module statements - * to discern dependencies, build dependency files (see deps.js), etc. - * - * @see goog.require - * @see goog.module - * @param {string} name Namespace provided by this file in the form - * "goog.package.part". - */ -goog.provide = function(name) { - // Ensure that the same namespace isn't provided twice. - // A goog.module/goog.provide maps a goog.require to a specific file - if (goog.isProvided_(name)) { - throw Error('Namespace "' + name + '" already declared.'); - } - - delete goog.implicitNamespaces_[name]; - - var namespace = name; - while ((namespace = namespace.substring(0, namespace.lastIndexOf('.')))) { - if (goog.getObjectByName(namespace)) { - break; - } - goog.implicitNamespaces_[namespace] = true; - } - - goog.exportPath_(name); -}; - -/** - * @private {?{ - * moduleName: (string|undefined), - * declareLegacyNamespace:boolean, - * type: ?goog.ModuleType - * }} - */ -goog.moduleLoaderState_ = null; - -/** - * Check if the given name has been goog.provided. This will return false for - * names that are available only as implicit namespaces. - * @param {string} name name of the object to look for. - * @return {boolean} Whether the name has been provided. - * @private - */ -goog.isProvided_ = function(name) { - return (!goog.implicitNamespaces_[name] && - goog.isDefAndNotNull(goog.getObjectByName(name))); -}; - -/** - * Namespaces implicitly defined by goog.provide. For example, - * goog.provide('goog.events.Event') implicitly declares that 'goog' and - * 'goog.events' must be namespaces. - * - * @type {!Object} - * @private - */ -goog.implicitNamespaces_ = {}; - -// NOTE: We add goog.module as an implicit namespace as goog.module is defined -// here and because the existing module package has not been moved yet out of -// the goog.module namespace. This satisfies both the debug loader and -// ahead-of-time dependency management. - - -/** - * Returns an object based on its fully qualified external name. The object - * is not found if null or undefined. If you are using a compilation pass that - * renames property names beware that using this function will not find renamed - * properties. - * - * @param {string} name The fully qualified name. - * @param {Object=} opt_obj The object within which to look; default is - * |goog.global|. - * @return {?} The value (object or primitive) or, if not found, null. - */ -goog.getObjectByName = function(name, opt_obj) { - var parts = name.split('.'); - var cur = opt_obj || goog.global; - for (var i = 0; i < parts.length; i++) { - cur = cur[parts[i]]; - if (!goog.isDefAndNotNull(cur)) { - return null; - } - } - return cur; -}; - - -/** - * Adds a dependency from a file to the files it requires. - * @param {string} relPath The path to the js file. - * @param {!Array} provides An array of strings with - * the names of the objects this file provides. - * @param {!Array} requires An array of strings with - * the names of the objects this file requires. - */ -goog.addDependency = function(relPath, provides, requires) { - goog.debugLoader_.addDependency(relPath, provides, requires); -}; - - - - -// NOTE(nnaze): The debug DOM loader was included in base.js as an original way -// to do "debug-mode" development. The dependency system can sometimes be -// confusing, as can the debug DOM loader's asynchronous nature. -// -// With the DOM loader, a call to goog.require() is not blocking -- the script -// will not load until some point after the current script. If a namespace is -// needed at runtime, it needs to be defined in a previous script, or loaded via -// require() with its registered dependencies. -// -// User-defined namespaces may need their own deps file. For a reference on -// creating a deps file, see: -// Externally: https://developers.google.com/closure/library/docs/depswriter -// -// Because of legacy clients, the DOM loader can't be easily removed from -// base.js. Work was done to make it disableable or replaceable for -// different environments (DOM-less JavaScript interpreters like Rhino or V8, -// for example). See bootstrap/ for more information. - - -/** - * Implements a system for the dynamic resolution of dependencies that works in - * parallel with the BUILD system. - * - * Note that all calls to goog.require will be stripped by the compiler. - * - * @see goog.provide - * @param {string} namespace Namespace (as was given in goog.provide, - * goog.module, or goog.declareModuleId) in the form - * "goog.package.part". - * @return {?} If called within a goog.module or ES6 module file, the associated - * namespace or module otherwise null. - */ -goog.require = function(namespace) { - // If the object already exists we do not need to do anything. - if (!goog.isProvided_(namespace)) { - var moduleLoaderState = goog.moduleLoaderState_; - goog.moduleLoaderState_ = null; - try { - goog.debugLoader_.load_(namespace); - } finally { - goog.moduleLoaderState_ = moduleLoaderState; - } - } - - return null; -}; - - -/** - * Path for included scripts. - * @type {string} - */ -goog.basePath = ''; - -/** - * Normalize a file path by removing redundant ".." and extraneous "." file - * path components. - * @param {string} path - * @return {string} - * @private - */ -goog.normalizePath_ = function(path) { - var components = path.split('/'); - var i = 0; - while (i < components.length) { - if (components[i] == '.') { - components.splice(i, 1); - } else if ( - i && components[i] == '..' && components[i - 1] && - components[i - 1] != '..') { - components.splice(--i, 2); - } else { - i++; - } - } - return components.join('/'); -}; - - -//============================================================================== -// Language Enhancements -//============================================================================== - - -/** - * Returns true if the specified value is defined and not null. - * @param {?} val Variable to test. - * @return {boolean} Whether variable is defined and not null. - */ -goog.isDefAndNotNull = function(val) { - // Note that undefined == null. - return val != null; -}; - -//============================================================================== -// goog.defineClass implementation -//============================================================================== - - -// There's a bug in the compiler where without collapse properties the -// Closure namespace defines do not guard code correctly. To help reduce code -// size also check for !COMPILED even though it redundant until this is fixed. - -/** - * Tries to detect the base path of base.js script that bootstraps Closure. - * @private - */ -goog.findBasePath_ = function() { - /** @type {!Document} */ - var doc = goog.global.document; - // If we have a currentScript available, use it exclusively. - var currentScript = doc.currentScript; - if (currentScript) { - var scripts = [currentScript]; - } else { - var scripts = doc.getElementsByTagName('SCRIPT'); - } - // Search backwards since the current script is in almost all cases the one - // that has base.js. - for (var i = scripts.length - 1; i >= 0; --i) { - var script = /** @type {!HTMLScriptElement} */ (scripts[i]); - var src = script.src; - var qmark = src.lastIndexOf('?'); - var l = qmark == -1 ? src.length : qmark; - if (src.substr(l - 7, 7) == 'base.js') { - goog.basePath = src.substr(0, l - 7); - return; - } - } -}; - -goog.findBasePath_(); - -/** - * A debug loader is responsible for downloading and executing javascript - * files in an unbundled, uncompiled environment. - * - * @struct @constructor @final @private - */ -goog.DebugLoader_ = function() { - /** @private @const {!Object} */ - this.dependencies_ = {}; - /** @private @const {!Object} */ - this.idToPath_ = {}; - /** @private @const {!Object} */ - this.written_ = {}; - /** @private {!Array} */ - this.depsToLoad_ = []; -}; - - -/** - * Travserses the dependency graph and queues the given dependency, and all of - * its transitive dependencies, for loading and then starts loading if not - * paused. - * - * @param {string} namespace - * @private - */ -goog.DebugLoader_.prototype.load_ = function(namespace) { - if (!this.getPathFromDeps_(namespace)) { - throw Error('goog.require could not find: ' + namespace); - } else { - var loader = this; - - var deps = []; - - /** @param {string} namespace */ - var visit = function(namespace) { - var path = loader.getPathFromDeps_(namespace); - - if (!path) { - throw Error('Bad dependency path or symbol: ' + namespace); - } - - if (loader.written_[path]) { - return; - } - - loader.written_[path] = true; - - var dep = loader.dependencies_[path]; - for (var i = 0; i < dep.requires.length; i++) { - if (!goog.isProvided_(dep.requires[i])) { - visit(dep.requires[i]); - } - } - - deps.push(dep); - }; - - visit(namespace); - - var wasLoading = !!this.depsToLoad_.length; - this.depsToLoad_ = this.depsToLoad_.concat(deps); - - if (!wasLoading) { - this.loadDeps_(); - } - } -}; - - -/** - * Loads any queued dependencies until they are all loaded or paused. - * - * @private - */ -goog.DebugLoader_.prototype.loadDeps_ = function() { - var loader = this; - - while (this.depsToLoad_.length) { - (function() { - var loadCallDone = false; - var dep = loader.depsToLoad_.shift(); - - try { - dep.load(); - } finally { - loadCallDone = true; - } - })(); - } -}; - - -/** - * @param {string} absPathOrId - * @return {?string} - * @private - */ -goog.DebugLoader_.prototype.getPathFromDeps_ = function(absPathOrId) { - return this.idToPath_[absPathOrId]; -}; - - -/** - * Basic super class for all dependencies Closure Library can load. - * - * This default implementation is designed to load untranspiled, non-module - * scripts in a web broswer. - * - * For transpiled non-goog.module files {@see goog.TranspiledDependency}. - * For goog.modules see {@see goog.GoogModuleDependency}. - * For untranspiled ES6 modules {@see goog.Es6ModuleDependency}. - * - * @param {string} path Absolute path of this script. - * @param {!Array} requires goog symbols or relative paths to Closure - * this depends on. - * @struct @constructor - */ -goog.Dependency = function(path, requires) { - /** @const */ - this.path = path; - /** @const */ - this.requires = requires; -}; - -/** - * Map of script ready / state change callbacks. Old IE cannot handle putting - * these properties on goog.global. - * - * @private @const {!Object} - */ -goog.Dependency.callbackMap_ = {}; - - -/** - * Starts loading this dependency. This dependency can pause loading if it - * needs to and resume it later via the controller interface. - * - * When this is loaded it should call controller.loaded(). Note that this will - * end up calling the loaded method of this dependency; there is no need to - * call it explicitly. - */ -goog.Dependency.prototype.load = function() { - /** @type {!HTMLDocument} */ - var doc = goog.global.document; - doc.write(' -// -// Call with: -// -// - -var cp_grid = [ - ['ffffff', 'ffcccc', 'ffcc99', 'ffff99', 'ffffcc', '99ff99', '99ffff', 'ccffff', 'ccccff', 'ffccff'], - ['cccccc', 'ff6666', 'ff9966', 'ffff66', 'ffff33', '66ff99', '33ffff', '66ffff', '9999ff', 'ff99ff'], - ['c0c0c0', 'ff0000', 'ff9900', 'ffcc66', 'ffff00', '33ff33', '66cccc', '33ccff', '6666cc', 'cc66cc'], - ['999999', 'cc0000', 'ff6600', 'ffcc33', 'ffcc00', '33cc00', '00cccc', '3366ff', '6633ff', 'cc33cc'], - ['666666', '990000', 'cc6600', 'cc9933', '999900', '009900', '339999', '3333ff', '6600cc', '993399'], - ['333333', '660000', '993300', '996633', '666600', '006600', '336666', '000099', '333399', '663366'], - ['000000', '330000', '663300', '663333', '333300', '003300', '003333', '000066', '330099', '330033'], - [''] -]; - -var cp_popupDom = null; -var cp_activeSwatch = null; -var cp_closePid = null; - -function cp_init(id) { - var input = document.getElementById(id); - if (!input) { - throw Error('Colour picker can\'t find "' + id + '"'); - } - if (!input.cp_swatch) { - // Hide the input. - input.type = 'hidden'; - // - var swatch = document.createElement('span'); - swatch.className = 'cp_swatch'; - swatch.addEventListener('click', cp_open); - swatch.addEventListener('mouseover', cp_cancelclose); - swatch.addEventListener('mouseout', cp_closesoon); - input.parentNode.insertBefore(swatch, input); - // Cross-link the swatch and input. - swatch.cp_input = input; - input.cp_swatch = swatch; - } - cp_updateSwatch(input.cp_swatch); -} - -function cp_updateSwatch(swatch) { - var colour = swatch.cp_input.value; - if (colour) { - swatch.style.backgroundColor = '#' + colour; - swatch.textContent = '\xa0'; - } else { - swatch.style.backgroundColor = '#fff'; - swatch.innerHTML = 'X'; - } -} - -function cp_open(e) { - // Create a table of colours. - if (cp_popupDom) { - cp_close(); - return; - } - cp_activeSwatch = e.currentTarget; - var currentColour = cp_activeSwatch.cp_input.value.toLowerCase(); - var element = cp_activeSwatch; - var posX = 0; - var posY = element.offsetHeight; - while (element) { - posX += element.offsetLeft; - posY += element.offsetTop; - element = element.offsetParent; - } - cp_popupDom = document.createElement('div'); - cp_popupDom.id = 'cp_popup'; - var table = document.createElement('table'); - table.addEventListener('mouseover', cp_cancelclose); - table.addEventListener('mouseout', cp_closesoon); - table.addEventListener('click', cp_onclick); - var tbody = document.createElement('tbody'); - var row, cell, div; - for (var y = 0; y < cp_grid.length; y++) { - row = document.createElement('tr'); - tbody.appendChild(row); - for (var x = 0; x < cp_grid[y].length; x++) { - var colour = cp_grid[y][x]; - if (colour === undefined) continue; - cell = document.createElement('td'); - row.appendChild(cell); - div = document.createElement('div'); - cell.appendChild(div); - cell.cp_colour = colour; - if (colour) { - div.style.backgroundColor = '#' + colour; - div.innerHTML = '\xa0'; - } else { - div.innerHTML = 'X'; - } - if (currentColour == colour.toLowerCase()) { - div.className = 'cp_current' - } - } - } - table.appendChild(tbody); - cp_popupDom.appendChild(table); - - document.body.appendChild(cp_popupDom); - // Don't widen the screen. - var rightOverhang = (posX + cp_popupDom.offsetWidth) - - (window.innerWidth + window.scrollX) + 15; // Scrollbar is 15px. - if (rightOverhang > 0) { - posX -= rightOverhang; - } - // Flip to above swatch if no room below. - if (posY + cp_popupDom.offsetHeight >= window.innerHeight + window.scrollY) { - posY -= cp_popupDom.offsetHeight + cp_activeSwatch.offsetHeight; - if (posY < window.scrollY) { - posY = window.scrollY; - } - } - cp_popupDom.style.left = posX + 'px'; - cp_popupDom.style.top = posY + 'px'; -} - -function cp_close() { - // Close the table now. - cp_cancelclose(); - if (cp_popupDom) { - document.body.removeChild(cp_popupDom) - } - cp_popupDom = null; - cp_activeSwatch = null; -} - -function cp_closesoon() { - // Close the table a split-second from now. - cp_closePid = setTimeout(cp_close, 250); -} - -function cp_cancelclose() { - // Don't close the colour table after all. - if (cp_closePid) { - clearTimeout(cp_closePid); - } -} - -function cp_onclick(e) { - // Clicked on a colour. - var element = e.target; - var colour; - // Walk up the DOM, looking for a colour. - while (element) { - colour = element.cp_colour; - if (colour !== undefined) { - break; - } - element = element.parentNode; - } - if (colour !== undefined) { - // Set the colour. - cp_activeSwatch.cp_input.value = colour; - cp_updateSwatch(cp_activeSwatch); - // Fire a change event. - var evt = document.createEvent('HTMLEvents'); - evt.initEvent('change', false, true); - cp_activeSwatch.cp_input.dispatchEvent(evt); - } - // Close the table. - cp_close(); -} diff --git a/lib/blockly/demos/blockfactory/factory.css b/lib/blockly/demos/blockfactory/factory.css deleted file mode 100644 index 751f6f0..0000000 --- a/lib/blockly/demos/blockfactory/factory.css +++ /dev/null @@ -1,579 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -html, body { - height: 100%; - min-height: 375px; -} - -body { - background-color: #fff; - font-family: sans-serif; - margin: 0 5px; - overflow: hidden; -} - -h1 { - font-weight: normal; - font-size: 140%; -} - -h3 { - margin-top: 5px; - margin-bottom: 0; -} - -table { - border: none; - border-collapse: collapse; - height: 100%; - margin: 0; - padding: 0; - width: 100%; -} - -td { - vertical-align: top; - padding: 0; -} - -p { - display: block; - -webkit-margin-before: 0; - -webkit-margin-after: 0; - -webkit-margin-start: 0; - -webkit-margin-end: 0; - padding: 5px 0; -} - -#factoryHeader { - display: table; - height: 10%; -} - -#blockly { - position: absolute; -} - -#blocklyMask { - background-color: #000; - cursor: not-allowed; - display: none; - position: fixed; - opacity: 0.2; - z-index: 9; -} - -#preview { - position: absolute; -} - -pre, -#languageTA { - border: #ddd 1px solid; - margin-top: 0; - position: absolute; - overflow: scroll; -} - -#languageTA { - display: none; - font: 10pt monospace; -} - -.downloadButton { - padding: 5px; -} - -.disabled { - color: #888; -} - -button:disabled, .buttonStyle:disabled { - opacity: 0.6; -} - -button>*, .buttonStyle>* { - opacity: 1; - vertical-align: text-bottom; -} - -button, .buttonStyle { - border-radius: 4px; - border: 1px solid #ddd; - background-color: #eee; - color: #000; - padding: 10px; - margin: 10px 5px; - font-size: small; -} - -.buttonStyle:hover:not(:disabled), button:hover:not(:disabled) { - box-shadow: 2px 2px 5px #888; -} - -.buttonStyle:hover:not(:disabled)>*, button:hover:not(:disabled)>* { - opacity: 1; -} - -#linkButton { - display: none; -} - -#helpButton { - float: right; -} - -#blockFactoryContent { - height: 85%; - width: 100%; - overflow: hidden; -} - -#blockFactoryPreview { - height: 100%; - width: 100%; -} - -#blockLibraryContainer { - vertical-align: bottom; -} - -#blockLibraryControls { - text-align: right; - vertical-align: middle; -} - -#previewContainer { - vertical-align: bottom; -} - -#buttonContainer { - text-align: right; - vertical-align: middle; -} - -#files { - position: absolute; - visibility: hidden; -} - -.toolbox { - display: none; -} - -#blocklyWorkspaceContainer { - width: 50%; -} - -#workspaceFactoryContent { - clear: both; - display: none; - height: 90%; - overflow-x: hidden; - overflow-y: scroll; -} - -/* Exporter */ - -#blockLibraryExporter { - clear: both; - display: none; - height: 90%; - overflow-x: hidden; - overflow-y: scroll; -} - -#exportSelector { - display: inline-block; - float: left; - height: 70%; - width: 30%; -} - -#exportSettings { - float: left; - overflow: hidden; - padding-left: 16px; - width: 20%; -} - -#selectedBlocksTextContainer { - max-height: 200px; - overflow-y: scroll; - padding-bottom: 2em; -} - -::-webkit-scrollbar { - -webkit-appearance: none; - width: 7px; -} - -::-webkit-scrollbar-thumb { - border-radius: 4px; - background-color: #ccc; - -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5); -} - -.subsettings { - margin: 0 25px; -} - -#exporterHiddenWorkspace { - display: none; -} - -#exportPreview { - float: right; - height: 90%; - overflow: hidden; - width: 45%; -} - -.exportPreviewTextArea { - display: block; - float: right; - height: 40%; - width: 100%; -} - -#genStubs_textArea, #blockDefs_textArea { - display: block; - height: 80%; - margin-right: 20px; - max-height: 300px; - overflow: scroll; - position: static; -} - -#blockDefs_label, #genStubs_label { - display: block; -} - -#blockSelector { - background-color: #eee; - border: 1px solid lightgrey; - width: 80%; - height: 90%; - overflow-y: scroll; - position: relative; -} - -/* Exporter Block Option */ - -.blockOption { - background-color: #eee; - padding: 0px 20px; - width: 95%; -} - -.blockOption_check_label { - position: relative; -} - -.blockOption_check { - float: left; - display:inline; - padding: 4px; -} - -.blockOption_label { - display:inline; - max-width: inherit; - word-wrap: break-word; -} - -.blockOption_preview { - height: 100px; - padding-top: 10px; - width: 90%; -} - -/* Block Library */ - -#dropdownDiv_blockLib { - max-height: 65%; - overflow-y: scroll; -} - -#button_blockLib { - border-color: darkgrey; - font-size: large; -} - -.button_alert { - background-color: #fcc; - border-color: #f99; -} - -.button_warn { - background-color: #aea; - border-color: #5d5; -} - -/* Tabs */ - -.tab { - float: left; - padding: 5px 19px; -} - -.tab:hover:not(.tabon) { - background-color: #e8e8e8; -} - -.tab.tabon { - background-color: #ccc; -} - -.tab.taboff { - cursor: pointer; -} - -#tabContainer { - background-color: #f8f8f8; - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - display: table; - width: 100%; -} - -/* Workspace Factory */ - -section { - float: left; -} - -aside { - float: right; -} - -#categoryTable>table { - border: 1px solid #ccc; - border-bottom: none; - width: auto; -} - -td.tabon { - background-color: #ccc; - border-bottom-color: #ccc; - padding: 5px 19px; -} - -td.taboff { - cursor: pointer; - padding: 5px 19px; -} - -td.taboff:hover { - background-color: #eee; -} - -.large { - font-size: large; -} - -.inputfile { - height: 0; - opacity: 0; - overflow: hidden; - position: absolute; - width: 0; - z-index: -1; -} -#wfactoryHeader { - height: 29%; - padding: 0.5%; -} - -#workspaceTabs { - background-color: #f8f8f8; - border: 1px solid #ccc; - display: table; - width: auto; -} - -#toolbox_section { - height: 85%; - width: 60%; -} - -#previewHelp { - padding: 10px; - width: 98%; -} - -#toolbox_blocks { - height: 100%; - width: 100%; -} - -#preview_blocks { - height: 80%; - padding: 10px; - width: 100%; -} - -#createDiv { - height: 79%; - padding: 0.5%; - width: 60%; -} - -#previewDiv { - border: 10px solid #eee; - height: 77%; - margin-right: 0.5%; - padding-bottom: 10px; - width: 35%; -} - -#previewBorder { - border: 5px solid #ddd; - height: 100%; - padding-right: 20px; -} - -.disabled { - background-color: white; - opacity: 0.5; -} - -#toolbox_div { - display: table; - height: auto; - margin-right: 5%; - overflow: hidden; - width: 35%; -} - -#preload_div { - display: table; - height: 75%; - margin-left: 2%; - margin-right: 2%; - max-height: 500px; - overflow: hidden; - overflow-y: scroll; - width: 30%; -} - -#shadowBlockDropdown { - height: 15%; -} - -#preloadHelp { - display: table-row; - height: 30%; -} - -#workspace_options { - display: table-row; - margin-top: 2%; -} - -#disable_div { - background-color: white; - height: 100%; - left: 0; - opacity: .5; - position: absolute; - top: 0; - width: 100%; - z-index: -1; /* Start behind workspace */ -} - -#grid_options, #zoom_options, #maxBlockNumber_option { - padding-left: 15px; -} - -#modalShadow { - display: none; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: rgba(0, 0, 0, 0.1); - z-index: 100; -} - -/* The container
    - needed to position the dropdown content */ -.dropdown { - display: inline-block; -} - -/* Dropdown Content (Hidden by Default) */ -.dropdown-content { - background-color: #fff; - box-shadow: 0 8px 16px 0 rgba(0,0,0,.2); - display: none; - min-width: 170px; - opacity: 1; - position: absolute; - z-index: 101; /* On top of the modal Shadow. */ -} - -/* Links inside the dropdown */ -.dropdown-content a, .dropdown-content label { - color: black; - display: block; - font-size: small; - padding: 12px 16px; - text-decoration: none; -} - -/* Change color of dropdown links on hover. */ -.dropdown-content a:hover, .dropdown-content label:hover { - background-color: #EEE; -} - -/* Change color of dropdown links on selected. */ -.dropdown-content-selected { - background-color: #DDD; -} - -/* Show the dropdown menu */ -.show { - display: block; -} - -#dropdownDiv_editCategory { - padding: 0 1ex; -} - -#dropdownDiv_editCategory>img { - vertical-align: middle; -} - -.cp_swatch { - vertical-align: middle !important; -} - -#cp_popup { - z-index: 999; -} - -.shadowBlock>.blocklyPath { - fill-opacity: .5; - stroke-opacity: .5; -} - -.shadowBlock>.blocklyPathLight, -.shadowBlock>.blocklyPathDark { - display: none; -} diff --git a/lib/blockly/demos/blockfactory/factory.js b/lib/blockly/demos/blockfactory/factory.js deleted file mode 100644 index 8218846..0000000 --- a/lib/blockly/demos/blockfactory/factory.js +++ /dev/null @@ -1,337 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview JavaScript for Blockly's Block Factory application through - * which users can build blocks using a visual interface and dynamically - * generate a preview block and starter code for the block (block definition and - * generator stub. Uses the Block Factory namespace. Depends on the FactoryUtils - * for its code generation functions. - * - * @author fraser@google.com (Neil Fraser), quachtina96 (Tina Quach) - */ -'use strict'; - -/** - * Namespace for Block Factory. - */ -var BlockFactory = BlockFactory || Object.create(null); - -/** - * Workspace for user to build block. - * @type {Blockly.Workspace} - */ -BlockFactory.mainWorkspace = null; - -/** - * Workspace for preview of block. - * @type {Blockly.Workspace} - */ -BlockFactory.previewWorkspace = null; - -/** - * Name of block if not named. - * @type string - */ -BlockFactory.UNNAMED = 'unnamed'; - -/** - * Existing direction ('ltr' vs 'rtl') of preview. - * @type string - */ -BlockFactory.oldDir = null; - -/** - * Flag to signal that an update came from a manual update to the JSON or JavaScript. - * definition manually. - * @type boolean - */ -// TODO: Replace global state with parameter passed to functions. -BlockFactory.updateBlocksFlag = false; - -/** - * Delayed flag to avoid infinite update after updating the JSON or JavaScript. - * definition manually. - * @type boolean - */ -// TODO: Replace global state with parameter passed to functions. -BlockFactory.updateBlocksFlagDelayed = false; - -/* - * The starting XML for the Block Factory main workspace. Contains the - * unmovable, undeletable factory_base block. - */ -BlockFactory.STARTER_BLOCK_XML_TEXT = - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '230' + - ''; - -/** - * Change the language code format. - */ -BlockFactory.formatChange = function() { - var mask = document.getElementById('blocklyMask'); - var languagePre = document.getElementById('languagePre'); - var languageTA = document.getElementById('languageTA'); - if (document.getElementById('format').value == 'Manual-JSON' || - document.getElementById('format').value == 'Manual-JS') { - Blockly.hideChaff(); - mask.style.display = 'block'; - languagePre.style.display = 'none'; - languageTA.style.display = 'block'; - var code = languagePre.textContent.trim(); - languageTA.value = code; - languageTA.focus(); - BlockFactory.updatePreview(); - } else { - mask.style.display = 'none'; - languageTA.style.display = 'none'; - languagePre.style.display = 'block'; - var code = languagePre.textContent.trim(); - languageTA.value = code; - - BlockFactory.updateLanguage(); - } - BlockFactory.disableEnableLink(); -}; - -/** - * Update the language code based on constructs made in Blockly. - */ -BlockFactory.updateLanguage = function() { - var rootBlock = FactoryUtils.getRootBlock(BlockFactory.mainWorkspace); - if (!rootBlock) { - return; - } - var blockType = rootBlock.getFieldValue('NAME').trim().toLowerCase(); - if (!blockType) { - blockType = BlockFactory.UNNAMED; - } - - if (!BlockFactory.updateBlocksFlag) { - var format = document.getElementById('format').value; - if (format == 'Manual-JSON') { - format = 'JSON'; - } else if (format == 'Manual-JS') { - format = 'JavaScript'; - } - - var code = FactoryUtils.getBlockDefinition(blockType, rootBlock, format, - BlockFactory.mainWorkspace); - FactoryUtils.injectCode(code, 'languagePre'); - if (!BlockFactory.updateBlocksFlagDelayed) { - var languagePre = document.getElementById('languagePre'); - var languageTA = document.getElementById('languageTA'); - code = languagePre.innerText.trim(); - languageTA.value = code; - } - } - - BlockFactory.updatePreview(); -}; - -/** - * Update the generator code. - * @param {!Blockly.Block} block Rendered block in preview workspace. - */ -BlockFactory.updateGenerator = function(block) { - var language = document.getElementById('language').value; - var generatorStub = FactoryUtils.getGeneratorStub(block, language); - FactoryUtils.injectCode(generatorStub, 'generatorPre'); -}; - -/** - * Update the preview display. - */ -BlockFactory.updatePreview = function() { - // Toggle between LTR/RTL if needed (also used in first display). - var newDir = document.getElementById('direction').value; - if (BlockFactory.oldDir != newDir) { - if (BlockFactory.previewWorkspace) { - BlockFactory.previewWorkspace.dispose(); - } - var rtl = newDir == 'rtl'; - BlockFactory.previewWorkspace = Blockly.inject('preview', - {rtl: rtl, - media: '../../media/', - scrollbars: true}); - BlockFactory.oldDir = newDir; - } - BlockFactory.previewWorkspace.clear(); - - var format = BlockFactory.getBlockDefinitionFormat(); - var code = document.getElementById('languageTA').value; - if (!code.trim()) { - // Nothing to render. Happens while cloud storage is loading. - return; - } - - // Backup Blockly.Blocks object so that main workspace and preview don't - // collide if user creates a 'factory_base' block, for instance. - var backupBlocks = Blockly.Blocks; - try { - // Make a shallow copy. - Blockly.Blocks = Object.create(null); - for (var prop in backupBlocks) { - Blockly.Blocks[prop] = backupBlocks[prop]; - } - - if (format == 'JSON') { - var json = JSON.parse(code); - Blockly.Blocks[json.type || BlockFactory.UNNAMED] = { - init: function() { - this.jsonInit(json); - } - }; - } else if (format == 'JavaScript') { - try { - eval(code); - } catch (e) { - // TODO: Display error in the UI - console.error("Error while evaluating JavaScript formatted block definition", e); - return; - } - } - - // Look for a block on Blockly.Blocks that does not match the backup. - var blockType = null; - for (var type in Blockly.Blocks) { - if (typeof Blockly.Blocks[type].init == 'function' && - Blockly.Blocks[type] != backupBlocks[type]) { - blockType = type; - break; - } - } - if (!blockType) { - return; - } - - // Create the preview block. - var previewBlock = BlockFactory.previewWorkspace.newBlock(blockType); - previewBlock.initSvg(); - previewBlock.render(); - previewBlock.setMovable(false); - previewBlock.setDeletable(false); - previewBlock.moveBy(15, 10); - BlockFactory.previewWorkspace.clearUndo(); - BlockFactory.updateGenerator(previewBlock); - - // Warn user only if their block type is already exists in Blockly's - // standard library. - var rootBlock = FactoryUtils.getRootBlock(BlockFactory.mainWorkspace); - if (StandardCategories.coreBlockTypes.indexOf(blockType) != -1) { - rootBlock.setWarningText('A core Blockly block already exists ' + - 'under this name.'); - - } else if (blockType == 'block_type') { - // Warn user to let them know they can't save a block under the default - // name 'block_type' - rootBlock.setWarningText('You cannot save a block with the default ' + - 'name, "block_type"'); - - } else { - rootBlock.setWarningText(null); - } - } catch(err) { - // TODO: Show error on the UI - console.log(err); - BlockFactory.updateBlocksFlag = false - BlockFactory.updateBlocksFlagDelayed = false - } finally { - Blockly.Blocks = backupBlocks; - } -}; - -/** - * Gets the format from the Block Definitions' format selector/drop-down. - * @return Either 'JavaScript' or 'JSON'. - * @throws If selector value is not recognized. - */ -BlockFactory.getBlockDefinitionFormat = function() { - switch (document.getElementById('format').value) { - case 'JSON': - case 'Manual-JSON': - return 'JSON'; - - case 'JavaScript': - case 'Manual-JS': - return 'JavaScript'; - - default: - throw 'Unknown format: ' + format; - } -} - -/** - * Disable link and save buttons if the format is 'Manual', enable otherwise. - */ -BlockFactory.disableEnableLink = function() { - var linkButton = document.getElementById('linkButton'); - var saveBlockButton = document.getElementById('localSaveButton'); - var saveToLibButton = document.getElementById('saveToBlockLibraryButton'); - var disabled = document.getElementById('format').value.substr(0, 6) == 'Manual'; - linkButton.disabled = disabled; - saveBlockButton.disabled = disabled; - saveToLibButton.disabled = disabled; -}; - -/** - * Render starter block (factory_base). - */ -BlockFactory.showStarterBlock = function() { - BlockFactory.mainWorkspace.clear(); - var xml = Blockly.Xml.textToDom(BlockFactory.STARTER_BLOCK_XML_TEXT); - Blockly.Xml.domToWorkspace(xml, BlockFactory.mainWorkspace); -}; - -/** - * Returns whether or not the current block open is the starter block. - */ -BlockFactory.isStarterBlock = function() { - var rootBlock = FactoryUtils.getRootBlock(BlockFactory.mainWorkspace); - return rootBlock && !( - // The starter block does not have blocks nested into the factory_base block. - rootBlock.getChildren().length > 0 || - // The starter block's name is the default, 'block_type'. - rootBlock.getFieldValue('NAME').trim().toLowerCase() != 'block_type' || - // The starter block has no connections. - rootBlock.getFieldValue('CONNECTIONS') != 'NONE' || - // The starter block has automatic inputs. - rootBlock.getFieldValue('INLINE') != 'AUTO' - ); -}; - -/** - * Updates blocks from the manually edited js or json from their text area. - */ -BlockFactory.manualEdit = function() { - // TODO(#1267): Replace these global state flags with parameters passed to - // the right functions. - BlockFactory.updateBlocksFlag = true; - BlockFactory.updateBlocksFlagDelayed = true; - BlockFactory.updateLanguage(); -} diff --git a/lib/blockly/demos/blockfactory/factory_utils.js b/lib/blockly/demos/blockfactory/factory_utils.js deleted file mode 100644 index dfed457..0000000 --- a/lib/blockly/demos/blockfactory/factory_utils.js +++ /dev/null @@ -1,1070 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview FactoryUtils is a namespace that holds block starter code - * generation functions shared by the Block Factory, Workspace Factory, and - * Exporter applications within Blockly Factory. Holds functions to generate - * block definitions and generator stubs and to create and download files. - * - * @author fraser@google.com (Neil Fraser), quachtina96 (Tina Quach), JC-Orozco - * (Juan Carlos Orozco) - */ -'use strict'; - -/** - * Namespace for FactoryUtils. - */ -var FactoryUtils = FactoryUtils || Object.create(null); - -/** - * Get block definition code for the current block. - * @param {string} blockType Type of block. - * @param {!Blockly.Block} rootBlock RootBlock from main workspace in which - * user uses Block Factory Blocks to create a custom block. - * @param {string} format 'JSON' or 'JavaScript'. - * @param {!Blockly.Workspace} workspace Where the root block lives. - * @return {string} Block definition. - */ -FactoryUtils.getBlockDefinition = function(blockType, rootBlock, format, workspace) { - blockType = FactoryUtils.cleanBlockType(blockType); - switch (format) { - case 'JSON': - var code = FactoryUtils.formatJson_(blockType, rootBlock); - break; - case 'JavaScript': - var code = FactoryUtils.formatJavaScript_(blockType, rootBlock, workspace); - break; - } - return code; -}; - -/** - * Convert invalid block name to a valid one. Replaces whitespace - * and prepend names that start with a digit with an '_'. - * @param {string} blockType Type of block. - * @return {string} Cleaned up block type. - */ -FactoryUtils.cleanBlockType = function(blockType) { - if (!blockType) { - return ''; - } - return blockType.replace(/\W/g, '_').replace(/^(\d)/, '_$1'); -}; - -/** - * Get the generator code for a given block. - * @param {!Blockly.Block} block Rendered block in preview workspace. - * @param {string} generatorLanguage 'JavaScript', 'Python', 'PHP', 'Lua', - * or 'Dart'. - * @return {string} Generator code for multiple blocks. - */ -FactoryUtils.getGeneratorStub = function(block, generatorLanguage) { - // Build factory blocks from block - if (BlockFactory.updateBlocksFlag) { // TODO: Move this to updatePreview() - BlockFactory.mainWorkspace.clear(); - var xml = BlockDefinitionExtractor.buildBlockFactoryWorkspace(block); - Blockly.Xml.domToWorkspace(xml, BlockFactory.mainWorkspace); - // Calculate timer to avoid infinite update loops - // TODO(#1267): Remove the global variables and any infinite loops. - BlockFactory.updateBlocksFlag = false; - setTimeout( - function() {BlockFactory.updateBlocksFlagDelayed = false;}, 3000); - } - BlockFactory.lastUpdatedBlock = block; // Variable to share the block value. - - function makeVar(root, name) { - name = name.toLowerCase().replace(/\W/g, '_'); - return ' var ' + root + '_' + name; - } - // The makevar function lives in the original update generator. - var language = generatorLanguage; - var code = []; - code.push("Blockly." + language + "['" + block.type + - "'] = function(block) {"); - - // Generate getters for any fields or inputs. - for (var i = 0, input; input = block.inputList[i]; i++) { - for (var j = 0, field; field = input.fieldRow[j]; j++) { - var name = field.name; - if (!name) { - continue; - } - if (field instanceof Blockly.FieldVariable) { - // Subclass of Blockly.FieldDropdown, must test first. - code.push(makeVar('variable', name) + - " = Blockly." + language + - ".variableDB_.getName(block.getFieldValue('" + name + - "'), Blockly.Variables.NAME_TYPE);"); - } else if (field instanceof Blockly.FieldAngle) { - // Subclass of Blockly.FieldTextInput, must test first. - code.push(makeVar('angle', name) + - " = block.getFieldValue('" + name + "');"); - } else if (Blockly.FieldDate && field instanceof Blockly.FieldDate) { - // Blockly.FieldDate may not be compiled into Blockly. - code.push(makeVar('date', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldColour) { - code.push(makeVar('colour', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldCheckbox) { - code.push(makeVar('checkbox', name) + - " = block.getFieldValue('" + name + "') == 'TRUE';"); - } else if (field instanceof Blockly.FieldDropdown) { - code.push(makeVar('dropdown', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldNumber) { - code.push(makeVar('number', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldTextInput) { - code.push(makeVar('text', name) + - " = block.getFieldValue('" + name + "');"); - } - } - var name = input.name; - if (name) { - if (input.type == Blockly.INPUT_VALUE) { - code.push(makeVar('value', name) + - " = Blockly." + language + ".valueToCode(block, '" + name + - "', Blockly." + language + ".ORDER_ATOMIC);"); - } else if (input.type == Blockly.NEXT_STATEMENT) { - code.push(makeVar('statements', name) + - " = Blockly." + language + ".statementToCode(block, '" + - name + "');"); - } - } - } - // Most languages end lines with a semicolon. Python & Lua do not. - var lineEnd = { - 'JavaScript': ';', - 'Python': '', - 'PHP': ';', - 'Lua': '', - 'Dart': ';' - }; - code.push(" // TODO: Assemble " + language + " into code variable."); - if (block.outputConnection) { - code.push(" var code = '...';"); - code.push(" // TODO: Change ORDER_NONE to the correct strength."); - code.push(" return [code, Blockly." + language + ".ORDER_NONE];"); - } else { - code.push(" var code = '..." + (lineEnd[language] || '') + "\\n';"); - code.push(" return code;"); - } - code.push("};"); - - return code.join('\n'); -}; - -/** - * Update the language code as JSON. - * @param {string} blockType Name of block. - * @param {!Blockly.Block} rootBlock Factory_base block. - * @return {string} Generanted language code. - * @private - */ -FactoryUtils.formatJson_ = function(blockType, rootBlock) { - var JS = {}; - // Type is not used by Blockly, but may be used by a loader. - JS.type = blockType; - // Generate inputs. - var message = []; - var args = []; - var contentsBlock = rootBlock.getInputTargetBlock('INPUTS'); - var lastInput = null; - while (contentsBlock) { - if (!contentsBlock.disabled && !contentsBlock.getInheritedDisabled()) { - var fields = FactoryUtils.getFieldsJson_( - contentsBlock.getInputTargetBlock('FIELDS')); - for (var i = 0; i < fields.length; i++) { - if (typeof fields[i] == 'string') { - message.push(fields[i].replace(/%/g, '%%')); - } else { - args.push(fields[i]); - message.push('%' + args.length); - } - } - - var input = {type: contentsBlock.type}; - // Dummy inputs don't have names. Other inputs do. - if (contentsBlock.type != 'input_dummy') { - input.name = contentsBlock.getFieldValue('INPUTNAME'); - } - var check = JSON.parse( - FactoryUtils.getOptTypesFrom(contentsBlock, 'TYPE') || 'null'); - if (check) { - input.check = check; - } - var align = contentsBlock.getFieldValue('ALIGN'); - if (align != 'LEFT') { - input.align = align; - } - args.push(input); - message.push('%' + args.length); - lastInput = contentsBlock; - } - contentsBlock = contentsBlock.nextConnection && - contentsBlock.nextConnection.targetBlock(); - } - // Remove last input if dummy and not empty. - if (lastInput && lastInput.type == 'input_dummy') { - var fields = lastInput.getInputTargetBlock('FIELDS'); - if (fields && FactoryUtils.getFieldsJson_(fields).join('').trim() != '') { - var align = lastInput.getFieldValue('ALIGN'); - if (align != 'LEFT') { - JS.lastDummyAlign0 = align; - } - args.pop(); - message.pop(); - } - } - JS.message0 = message.join(' '); - if (args.length) { - JS.args0 = args; - } - // Generate inline/external switch. - if (rootBlock.getFieldValue('INLINE') == 'EXT') { - JS.inputsInline = false; - } else if (rootBlock.getFieldValue('INLINE') == 'INT') { - JS.inputsInline = true; - } - // Generate output, or next/previous connections. - switch (rootBlock.getFieldValue('CONNECTIONS')) { - case 'LEFT': - JS.output = - JSON.parse( - FactoryUtils.getOptTypesFrom(rootBlock, 'OUTPUTTYPE') || 'null'); - break; - case 'BOTH': - JS.previousStatement = - JSON.parse( - FactoryUtils.getOptTypesFrom(rootBlock, 'TOPTYPE') || 'null'); - JS.nextStatement = - JSON.parse( - FactoryUtils.getOptTypesFrom(rootBlock, 'BOTTOMTYPE') || 'null'); - break; - case 'TOP': - JS.previousStatement = - JSON.parse( - FactoryUtils.getOptTypesFrom(rootBlock, 'TOPTYPE') || 'null'); - break; - case 'BOTTOM': - JS.nextStatement = - JSON.parse( - FactoryUtils.getOptTypesFrom(rootBlock, 'BOTTOMTYPE') || 'null'); - break; - } - // Generate colour. - var colourBlock = rootBlock.getInputTargetBlock('COLOUR'); - if (colourBlock && !colourBlock.disabled) { - var hue = parseInt(colourBlock.getFieldValue('HUE'), 10); - JS.colour = hue; - } - - JS.tooltip = FactoryUtils.getTooltipFromRootBlock_(rootBlock); - JS.helpUrl = FactoryUtils.getHelpUrlFromRootBlock_(rootBlock); - - return JSON.stringify(JS, null, ' '); -}; - -/** - * Update the language code as JavaScript. - * @param {string} blockType Name of block. - * @param {!Blockly.Block} rootBlock Factory_base block. - * @param {!Blockly.Workspace} workspace Where the root block lives. - * @return {string} Generated language code. - * @private - */ -FactoryUtils.formatJavaScript_ = function(blockType, rootBlock, workspace) { - var code = []; - code.push("Blockly.Blocks['" + blockType + "'] = {"); - code.push(" init: function() {"); - // Generate inputs. - var TYPES = {'input_value': 'appendValueInput', - 'input_statement': 'appendStatementInput', - 'input_dummy': 'appendDummyInput'}; - var contentsBlock = rootBlock.getInputTargetBlock('INPUTS'); - while (contentsBlock) { - if (!contentsBlock.disabled && !contentsBlock.getInheritedDisabled()) { - var name = ''; - // Dummy inputs don't have names. Other inputs do. - if (contentsBlock.type != 'input_dummy') { - name = - JSON.stringify(contentsBlock.getFieldValue('INPUTNAME')); - } - code.push(' this.' + TYPES[contentsBlock.type] + '(' + name + ')'); - var check = FactoryUtils.getOptTypesFrom(contentsBlock, 'TYPE'); - if (check) { - code.push(' .setCheck(' + check + ')'); - } - var align = contentsBlock.getFieldValue('ALIGN'); - if (align != 'LEFT') { - code.push(' .setAlign(Blockly.ALIGN_' + align + ')'); - } - var fields = FactoryUtils.getFieldsJs_( - contentsBlock.getInputTargetBlock('FIELDS')); - for (var i = 0; i < fields.length; i++) { - code.push(' .appendField(' + fields[i] + ')'); - } - // Add semicolon to last line to finish the statement. - code[code.length - 1] += ';'; - } - contentsBlock = contentsBlock.nextConnection && - contentsBlock.nextConnection.targetBlock(); - } - // Generate inline/external switch. - if (rootBlock.getFieldValue('INLINE') == 'EXT') { - code.push(' this.setInputsInline(false);'); - } else if (rootBlock.getFieldValue('INLINE') == 'INT') { - code.push(' this.setInputsInline(true);'); - } - // Generate output, or next/previous connections. - switch (rootBlock.getFieldValue('CONNECTIONS')) { - case 'LEFT': - code.push(FactoryUtils.connectionLineJs_('setOutput', 'OUTPUTTYPE', workspace)); - break; - case 'BOTH': - code.push( - FactoryUtils.connectionLineJs_('setPreviousStatement', 'TOPTYPE', workspace)); - code.push( - FactoryUtils.connectionLineJs_('setNextStatement', 'BOTTOMTYPE', workspace)); - break; - case 'TOP': - code.push( - FactoryUtils.connectionLineJs_('setPreviousStatement', 'TOPTYPE', workspace)); - break; - case 'BOTTOM': - code.push( - FactoryUtils.connectionLineJs_('setNextStatement', 'BOTTOMTYPE', workspace)); - break; - } - // Generate colour. - var colourBlock = rootBlock.getInputTargetBlock('COLOUR'); - if (colourBlock && !colourBlock.disabled) { - var hue = parseInt(colourBlock.getFieldValue('HUE'), 10); - if (!isNaN(hue)) { - code.push(' this.setColour(' + hue + ');'); - } - } - - var tooltip = FactoryUtils.getTooltipFromRootBlock_(rootBlock); - var helpUrl = FactoryUtils.getHelpUrlFromRootBlock_(rootBlock); - code.push(' this.setTooltip(' + JSON.stringify(tooltip) + ');'); - code.push(' this.setHelpUrl(' + JSON.stringify(helpUrl) + ');'); - code.push(' }'); - code.push('};'); - return code.join('\n'); -}; - -/** - * Create JS code required to create a top, bottom, or value connection. - * @param {string} functionName JavaScript function name. - * @param {string} typeName Name of type input. - * @param {!Blockly.Workspace} workspace Where the root block lives. - * @return {string} Line of JavaScript code to create connection. - * @private - */ -FactoryUtils.connectionLineJs_ = function(functionName, typeName, workspace) { - var type = FactoryUtils.getOptTypesFrom( - FactoryUtils.getRootBlock(workspace), typeName); - if (type) { - type = ', ' + type; - } else { - type = ''; - } - return ' this.' + functionName + '(true' + type + ');'; -}; - -/** - * Returns field strings and any config. - * @param {!Blockly.Block} block Input block. - * @return {!Array.} Field strings. - * @private - */ -FactoryUtils.getFieldsJs_ = function(block) { - var fields = []; - while (block) { - if (!block.disabled && !block.getInheritedDisabled()) { - switch (block.type) { - case 'field_static': - // Result: 'hello' - fields.push(JSON.stringify(block.getFieldValue('TEXT'))); - break; - case 'field_label_serializable': - // Result: new Blockly.FieldLabelSerializable('Hello'), 'GREET' - fields.push('new Blockly.FieldLabelSerializable(' + - JSON.stringify(block.getFieldValue('TEXT')) + '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_input': - // Result: new Blockly.FieldTextInput('Hello'), 'GREET' - fields.push('new Blockly.FieldTextInput(' + - JSON.stringify(block.getFieldValue('TEXT')) + '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_number': - // Result: new Blockly.FieldNumber(10, 0, 100, 1), 'NUMBER' - var args = [ - Number(block.getFieldValue('VALUE')), - Number(block.getFieldValue('MIN')), - Number(block.getFieldValue('MAX')), - Number(block.getFieldValue('PRECISION')) - ]; - // Remove any trailing arguments that aren't needed. - if (args[3] == 0) { - args.pop(); - if (args[2] == Infinity) { - args.pop(); - if (args[1] == -Infinity) { - args.pop(); - } - } - } - fields.push('new Blockly.FieldNumber(' + args.join(', ') + '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_angle': - // Result: new Blockly.FieldAngle(90), 'ANGLE' - fields.push('new Blockly.FieldAngle(' + - Number(block.getFieldValue('ANGLE')) + '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_checkbox': - // Result: new Blockly.FieldCheckbox('TRUE'), 'CHECK' - fields.push('new Blockly.FieldCheckbox(' + - JSON.stringify(block.getFieldValue('CHECKED')) + - '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_colour': - // Result: new Blockly.FieldColour('#ff0000'), 'COLOUR' - fields.push('new Blockly.FieldColour(' + - JSON.stringify(block.getFieldValue('COLOUR')) + - '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_date': - // Result: new Blockly.FieldDate('2015-02-04'), 'DATE' - fields.push('new Blockly.FieldDate(' + - JSON.stringify(block.getFieldValue('DATE')) + '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_variable': - // Result: new Blockly.FieldVariable('item'), 'VAR' - var varname - = JSON.stringify(block.getFieldValue('TEXT') || null); - fields.push('new Blockly.FieldVariable(' + varname + '), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - break; - case 'field_dropdown': - // Result: - // new Blockly.FieldDropdown([['yes', '1'], ['no', '0']]), 'TOGGLE' - var options = []; - for (var i = 0; i < block.optionList_.length; i++) { - options[i] = JSON.stringify([block.getUserData(i), - block.getFieldValue('CPU' + i)]); - } - if (options.length) { - fields.push('new Blockly.FieldDropdown([' + - options.join(', ') + ']), ' + - JSON.stringify(block.getFieldValue('FIELDNAME'))); - } - break; - case 'field_image': - // Result: new Blockly.FieldImage('http://...', 80, 60, '*') - var src = JSON.stringify(block.getFieldValue('SRC')); - var width = Number(block.getFieldValue('WIDTH')); - var height = Number(block.getFieldValue('HEIGHT')); - var alt = JSON.stringify(block.getFieldValue('ALT')); - var flipRtl = JSON.stringify(block.getFieldValue('FLIP_RTL')); - fields.push('new Blockly.FieldImage(' + - src + ', ' + width + ', ' + height + - ', { alt: ' + alt + ', flipRtl: ' + flipRtl + ' })'); - break; - } - } - block = block.nextConnection && block.nextConnection.targetBlock(); - } - return fields; -}; - -/** - * Returns field strings and any config. - * @param {!Blockly.Block} block Input block. - * @return {!Array.} Array of static text and field configs. - * @private - */ -FactoryUtils.getFieldsJson_ = function(block) { - var fields = []; - while (block) { - if (!block.disabled && !block.getInheritedDisabled()) { - switch (block.type) { - case 'field_static': - // Result: 'hello' - fields.push(block.getFieldValue('TEXT')); - break; - case 'field_label_serializable': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - text: block.getFieldValue('TEXT') - }); - break; - case 'field_input': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - text: block.getFieldValue('TEXT') - }); - break; - case 'field_number': - var obj = { - type: block.type, - name: block.getFieldValue('FIELDNAME'), - value: Number(block.getFieldValue('VALUE')) - }; - var min = Number(block.getFieldValue('MIN')); - if (min > -Infinity) { - obj.min = min; - } - var max = Number(block.getFieldValue('MAX')); - if (max < Infinity) { - obj.max = max; - } - var precision = Number(block.getFieldValue('PRECISION')); - if (precision) { - obj.precision = precision; - } - fields.push(obj); - break; - case 'field_angle': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - angle: Number(block.getFieldValue('ANGLE')) - }); - break; - case 'field_checkbox': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - checked: block.getFieldValue('CHECKED') == 'TRUE' - }); - break; - case 'field_colour': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - colour: block.getFieldValue('COLOUR') - }); - break; - case 'field_date': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - date: block.getFieldValue('DATE') - }); - break; - case 'field_variable': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - variable: block.getFieldValue('TEXT') || null - }); - break; - case 'field_dropdown': - var options = []; - for (var i = 0; i < block.optionList_.length; i++) { - options[i] = [block.getUserData(i), - block.getFieldValue('CPU' + i)]; - } - if (options.length) { - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - options: options - }); - } - break; - case 'field_image': - fields.push({ - type: block.type, - src: block.getFieldValue('SRC'), - width: Number(block.getFieldValue('WIDTH')), - height: Number(block.getFieldValue('HEIGHT')), - alt: block.getFieldValue('ALT'), - flipRtl: block.getFieldValue('FLIP_RTL') == 'TRUE' - }); - break; - } - } - block = block.nextConnection && block.nextConnection.targetBlock(); - } - return fields; -}; - -/** - * Fetch the type(s) defined in the given input. - * Format as a string for appending to the generated code. - * @param {!Blockly.Block} block Block with input. - * @param {string} name Name of the input. - * @return {?string} String defining the types. - */ -FactoryUtils.getOptTypesFrom = function(block, name) { - var types = FactoryUtils.getTypesFrom_(block, name); - if (types.length == 0) { - return undefined; - } else if (types.indexOf('null') != -1) { - return 'null'; - } else if (types.length == 1) { - return types[0]; - } else { - return '[' + types.join(', ') + ']'; - } -}; - - -/** - * Fetch the type(s) defined in the given input. - * @param {!Blockly.Block} block Block with input. - * @param {string} name Name of the input. - * @return {!Array.} List of types. - * @private - */ -FactoryUtils.getTypesFrom_ = function(block, name) { - var typeBlock = block.getInputTargetBlock(name); - var types; - if (!typeBlock || typeBlock.disabled) { - types = []; - } else if (typeBlock.type == 'type_other') { - types = [JSON.stringify(typeBlock.getFieldValue('TYPE'))]; - } else if (typeBlock.type == 'type_group') { - types = []; - for (var n = 0; n < typeBlock.typeCount_; n++) { - types = types.concat(FactoryUtils.getTypesFrom_(typeBlock, 'TYPE' + n)); - } - // Remove duplicates. - var hash = Object.create(null); - for (var n = types.length - 1; n >= 0; n--) { - if (hash[types[n]]) { - types.splice(n, 1); - } - hash[types[n]] = true; - } - } else { - types = [JSON.stringify(typeBlock.valueType)]; - } - return types; -}; - -/** - * Return the uneditable container block that everything else attaches to in - * given workspace. - * @param {!Blockly.Workspace} workspace Where the root block lives. - * @return {Blockly.Block} Root block. - */ -FactoryUtils.getRootBlock = function(workspace) { - var blocks = workspace.getTopBlocks(false); - for (var i = 0, block; block = blocks[i]; i++) { - if (block.type == 'factory_base') { - return block; - } - } - return null; -}; - -// TODO(quachtina96): Move hide, show, makeInvisible, and makeVisible to a new -// AppView namespace. - -/** - * Hides element so that it's invisible and doesn't take up space. - * @param {string} elementID ID of element to hide. - */ -FactoryUtils.hide = function(elementID) { - document.getElementById(elementID).style.display = 'none'; -}; - -/** - * Un-hides an element. - * @param {string} elementID ID of element to hide. - */ -FactoryUtils.show = function(elementID) { - document.getElementById(elementID).style.display = 'block'; -}; - -/** - * Hides element so that it's invisible but still takes up space. - * @param {string} elementID ID of element to hide. - */ -FactoryUtils.makeInvisible = function(elementID) { - document.getElementById(elementID).visibility = 'hidden'; -}; - -/** - * Makes element visible. - * @param {string} elementID ID of element to hide. - */ -FactoryUtils.makeVisible = function(elementID) { - document.getElementById(elementID).visibility = 'visible'; -}; - -/** - * Create a file with the given attributes and download it. - * @param {string} contents The contents of the file. - * @param {string} filename The name of the file to save to. - * @param {string} fileType The type of the file to save. - */ -FactoryUtils.createAndDownloadFile = function(contents, filename, fileType) { - var data = new Blob([contents], {type: 'text/' + fileType}); - var clickEvent = new MouseEvent("click", { - "view": window, - "bubbles": true, - "cancelable": false - }); - - var a = document.createElement('a'); - a.href = window.URL.createObjectURL(data); - a.download = filename; - a.textContent = 'Download file!'; - a.dispatchEvent(clickEvent); -}; - -/** - * Get Blockly Block by rendering pre-defined block in workspace. - * @param {!Element} blockType Type of block that has already been defined. - * @param {!Blockly.Workspace} workspace Workspace on which to render - * the block. - * @return {!Blockly.Block} The Blockly.Block of desired type. - */ -FactoryUtils.getDefinedBlock = function(blockType, workspace) { - workspace.clear(); - return workspace.newBlock(blockType); -}; - -/** - * Parses a block definition get the type of the block it defines. - * @param {string} blockDef A single block definition. - * @return {string} Type of block defined by the given definition. - */ -FactoryUtils.getBlockTypeFromJsDefinition = function(blockDef) { - var indexOfStartBracket = blockDef.indexOf('[\''); - var indexOfEndBracket = blockDef.indexOf('\']'); - if (indexOfStartBracket != -1 && indexOfEndBracket != -1) { - return blockDef.substring(indexOfStartBracket + 2, indexOfEndBracket); - } else { - throw Error('Could not parse block type out of JavaScript block ' + - 'definition. Brackets normally enclosing block type not found.'); - } -}; - -/** - * Generates a category containing blocks of the specified block types. - * @param {!Array.} blocks Blocks to include in the category. - * @param {string} categoryName Name to use for the generated category. - * @return {!Element} Category XML containing the given block types. - */ -FactoryUtils.generateCategoryXml = function(blocks, categoryName) { - // Create category DOM element. - var categoryElement = Blockly.utils.xml.createElement('category'); - categoryElement.setAttribute('name', categoryName); - - // For each block, add block element to category. - for (var i = 0, block; block = blocks[i]; i++) { - - // Get preview block XML. - var blockXml = Blockly.Xml.blockToDom(block); - blockXml.removeAttribute('id'); - - // Add block to category and category to XML. - categoryElement.appendChild(blockXml); - } - return categoryElement; -}; - -/** - * Parses a string containing JavaScript block definition(s) to create an array - * in which each element is a single block definition. - * @param {string} blockDefsString JavaScript block definition(s). - * @return {!Array.} Array of block definitions. - */ -FactoryUtils.parseJsBlockDefinitions = function(blockDefsString) { - var blockDefArray = []; - var defStart = blockDefsString.indexOf('Blockly.Blocks'); - - while (blockDefsString.indexOf('Blockly.Blocks', defStart) != -1) { - var nextStart = blockDefsString.indexOf('Blockly.Blocks', defStart + 1); - if (nextStart == -1) { - // This is the last block definition. - nextStart = blockDefsString.length; - } - var blockDef = blockDefsString.substring(defStart, nextStart); - blockDefArray.push(blockDef); - defStart = nextStart; - } - return blockDefArray; -}; - -/** - * Parses a string containing JSON block definition(s) to create an array - * in which each element is a single block definition. Expected input is - * one or more block definitions in the form of concatenated, stringified - * JSON objects. - * @param {string} blockDefsString String containing JSON block - * definition(s). - * @return {!Array.} Array of block definitions. - */ -FactoryUtils.parseJsonBlockDefinitions = function(blockDefsString) { - var blockDefArray = []; - var unbalancedBracketCount = 0; - var defStart = 0; - // Iterate through the blockDefs string. Keep track of whether brackets - // are balanced. - for (var i = 0; i < blockDefsString.length; i++) { - var currentChar = blockDefsString[i]; - if (currentChar == '{') { - unbalancedBracketCount++; - } - else if (currentChar == '}') { - unbalancedBracketCount--; - if (unbalancedBracketCount == 0 && i > 0) { - // The brackets are balanced. We've got a complete block defintion. - var blockDef = blockDefsString.substring(defStart, i + 1); - blockDefArray.push(blockDef); - defStart = i + 1; - } - } - } - return blockDefArray; -}; - -/** - * Define blocks from imported block definitions. - * @param {string} blockDefsString Block definition(s). - * @param {string} format Block definition format ('JSON' or 'JavaScript'). - * @return {!Array.} Array of block types defined. - */ -FactoryUtils.defineAndGetBlockTypes = function(blockDefsString, format) { - var blockTypes = []; - - // Define blocks and get block types. - if (format == 'JSON') { - var blockDefArray = FactoryUtils.parseJsonBlockDefinitions(blockDefsString); - - // Populate array of blocktypes and define each block. - for (var i = 0, blockDef; blockDef = blockDefArray[i]; i++) { - var json = JSON.parse(blockDef); - blockTypes.push(json.type); - - // Define the block. - Blockly.Blocks[json.type] = { - init: function() { - this.jsonInit(json); - } - }; - } - } else if (format == 'JavaScript') { - var blockDefArray = FactoryUtils.parseJsBlockDefinitions(blockDefsString); - - // Populate array of block types. - for (var i = 0, blockDef; blockDef = blockDefArray[i]; i++) { - var blockType = FactoryUtils.getBlockTypeFromJsDefinition(blockDef); - blockTypes.push(blockType); - } - - // Define all blocks. - eval(blockDefsString); - } - - return blockTypes; -}; - -/** - * Inject code into a pre tag, with syntax highlighting. - * Safe from HTML/script injection. - * @param {string} code Lines of code. - * @param {string} id ID of
     element to inject into.
    - */
    -FactoryUtils.injectCode = function(code, id) {
    -  var pre = document.getElementById(id);
    -  pre.textContent = code;
    -  // Remove the 'prettyprinted' class, so that Prettify will recalculate.
    -  pre.className = pre.className.replace('prettyprinted', '');
    -  PR.prettyPrint();
    -};
    -
    -/**
    - * Returns whether or not two blocks are the same based on their XML. Expects
    - * XML with a single child node that is a factory_base block, the XML found on
    - * Block Factory's main workspace.
    - * @param {!Element} blockXml1 An XML element with a single child node that
    - *    is a factory_base block.
    - * @param {!Element} blockXml2 An XML element with a single child node that
    - *    is a factory_base block.
    - * @return {boolean} Whether or not two blocks are the same based on their XML.
    - */
    -FactoryUtils.sameBlockXml = function(blockXml1, blockXml2) {
    -  // Each XML element should contain a single child element with a 'block' tag
    -  if (blockXml1.tagName.toLowerCase() != 'xml' ||
    -      blockXml2.tagName.toLowerCase() != 'xml') {
    -    throw Error('Expected two XML elements, received elements with tag ' +
    -        'names: ' + blockXml1.tagName + ' and ' + blockXml2.tagName + '.');
    -  }
    -
    -  // Compare the block elements directly. The XML tags may include other meta
    -  // information we want to ignore.
    -  var blockElement1 = blockXml1.getElementsByTagName('block')[0];
    -  var blockElement2 = blockXml2.getElementsByTagName('block')[0];
    -
    -  if (!(blockElement1 && blockElement2)) {
    -    throw Error('Could not get find block element in XML.');
    -  }
    -
    -  var cleanBlockXml1 = FactoryUtils.cleanXml(blockElement1);
    -  var cleanBlockXml2 = FactoryUtils.cleanXml(blockElement2);
    -
    -  var blockXmlText1 = Blockly.Xml.domToText(cleanBlockXml1);
    -  var blockXmlText2 = Blockly.Xml.domToText(cleanBlockXml2);
    -
    -  // Strip white space.
    -  blockXmlText1 = blockXmlText1.replace(/\s+/g, '');
    -  blockXmlText2 = blockXmlText2.replace(/\s+/g, '');
    -
    -  // Return whether or not changes have been saved.
    -  return blockXmlText1 == blockXmlText2;
    -};
    -
    -/**
    - * Strips the provided xml of any attributes that don't describe the
    - * 'structure' of the blocks (i.e. block order, field values, etc).
    - * @param {Node} xml The xml to clean.
    - * @return {Node}
    - */
    -FactoryUtils.cleanXml = function(xml) {
    -  var newXml = xml.cloneNode(true);
    -  var node = newXml;
    -  while (node) {
    -    // Things like text inside tags are still treated as nodes, but they
    -    // don't have attributes (or the removeAttribute function) so we can
    -    // skip removing attributes from them.
    -    if (node.removeAttribute) {
    -      node.removeAttribute('xmlns');
    -      node.removeAttribute('x');
    -      node.removeAttribute('y');
    -      node.removeAttribute('id');
    -    }
    -
    -    // Try to go down the tree
    -    var nextNode = node.firstChild || node.nextSibling;
    -    // If we can't go down, try to go back up the tree.
    -    if (!nextNode) {
    -      nextNode = node.parentNode;
    -      while (nextNode) {
    -        // We are valid again!
    -        if (nextNode.nextSibling) {
    -          nextNode = nextNode.nextSibling;
    -          break;
    -        }
    -        // Try going up again. If parentNode is null that means we have
    -        // reached the top, and we will break out of both loops.
    -        nextNode = nextNode.parentNode;
    -      }
    -    }
    -    node = nextNode;
    -  }
    -  return newXml;
    -};
    -
    -/*
    - * Checks if a block has a variable field. Blocks with variable fields cannot
    - * be shadow blocks.
    - * @param {Blockly.Block} block The block to check if a variable field exists.
    - * @return {boolean} True if the block has a variable field, false otherwise.
    - */
    -FactoryUtils.hasVariableField = function(block) {
    -  if (!block) {
    -    return false;
    -  }
    -  return block.getVars().length > 0;
    -};
    -
    -/**
    - * Checks if a block is a procedures block. If procedures block names are
    - * ever updated or expanded, this function should be updated as well (no
    - * other known markers for procedure blocks beyond name).
    - * @param {Blockly.Block} block The block to check.
    - * @return {boolean} True if the block is a procedure block, false otherwise.
    - */
    -FactoryUtils.isProcedureBlock = function(block) {
    -  return block &&
    -      (block.type == 'procedures_defnoreturn' ||
    -      block.type == 'procedures_defreturn' ||
    -      block.type == 'procedures_callnoreturn' ||
    -      block.type == 'procedures_callreturn' ||
    -      block.type == 'procedures_ifreturn');
    -};
    -
    -/**
    - * Returns whether or not a modified block's changes has been saved to the
    - * Block Library.
    - * TODO(quachtina96): move into the Block Factory Controller once made.
    - * @param {!BlockLibraryController} blockLibraryController Block Library
    - *    Controller storing custom blocks.
    - * @return {boolean} True if all changes made to the block have been saved to
    - *    the given Block Library.
    - */
    -FactoryUtils.savedBlockChanges = function(blockLibraryController) {
    -  if (BlockFactory.isStarterBlock()) {
    -    return true;
    -  }
    -  var blockType = blockLibraryController.getCurrentBlockType();
    -  var currentXml = Blockly.Xml.workspaceToDom(BlockFactory.mainWorkspace);
    -
    -  if (blockLibraryController.has(blockType)) {
    -    // Block is saved in block library.
    -    var savedXml = blockLibraryController.getBlockXml(blockType);
    -    return FactoryUtils.sameBlockXml(savedXml, currentXml);
    -  }
    -  return false;
    -};
    -
    -/**
    - * Given the root block of the factory, return the tooltip specified by the user
    - * or the empty string if no tooltip is found.
    - * @param {!Blockly.Block} rootBlock Factory_base block.
    - * @return {string} The tooltip for the generated block, or the empty string.
    - */
    -FactoryUtils.getTooltipFromRootBlock_ = function(rootBlock) {
    -  var tooltipBlock = rootBlock.getInputTargetBlock('TOOLTIP');
    -  if (tooltipBlock && !tooltipBlock.disabled) {
    -    return tooltipBlock.getFieldValue('TEXT');
    -  }
    -  return '';
    -};
    -
    -/**
    - * Given the root block of the factory, return the help url specified by the
    - * user or the empty string if no tooltip is found.
    - * @param {!Blockly.Block} rootBlock Factory_base block.
    - * @return {string} The help url for the generated block, or the empty string.
    - */
    -FactoryUtils.getHelpUrlFromRootBlock_ = function(rootBlock) {
    -  var helpUrlBlock = rootBlock.getInputTargetBlock('HELPURL');
    -  if (helpUrlBlock && !helpUrlBlock.disabled) {
    -    return helpUrlBlock.getFieldValue('TEXT');
    -  }
    -  return '';
    -};
    diff --git a/lib/blockly/demos/blockfactory/icon.png b/lib/blockly/demos/blockfactory/icon.png
    deleted file mode 100644
    index 2fcb25e..0000000
    Binary files a/lib/blockly/demos/blockfactory/icon.png and /dev/null differ
    diff --git a/lib/blockly/demos/blockfactory/index.html b/lib/blockly/demos/blockfactory/index.html
    deleted file mode 100644
    index 0c1fc87..0000000
    --- a/lib/blockly/demos/blockfactory/index.html
    +++ /dev/null
    @@ -1,763 +0,0 @@
    -
    -
    -
    -  
    -  
    -  Blockly Demo: Blockly Developer Tools
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -
    -
    -  

    Blockly > - Demos > Blockly Developer Tools - -

    -
    -
    Block Factory
    -
    Block Exporter
    -
    Workspace Factory
    -
    - - -
    -
    -

    - First, select blocks from your block library by clicking on them. Then, use the Export Settings form to download starter code for selected blocks. -

    -
    -
    -

    Block Selector

    - - -
    -
    - - -
    -
    -

    Export Settings

    -
    - -
    -

    Currently Selected:

    -

    -
    -
    -
    - -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -

    Export Preview

    -
    -

    Block Definitions:

    -
    
    -      
    -
    -

    Generator Stubs:

    -
    
    -      
    -
    -
    - - - -
    -
    -

    -

    - - - - - - -

    -
    - -
    -
    -

    Edit

    -

    Drag blocks into the workspace to configure the toolbox in your custom workspace.

    -
    - - - - - -
    ToolboxWorkspace
    -
    -
    -
    - - - - - - - -
    - - -
    - - - - - - - - - - - -
    - - - - - -
    - - - - - - - -
    -
    - - - - - -
    -

    Preview: - -

    -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - -
    -
    -
    -

    Block Definition: - - -

    -
    -
    
    -              
    -            
    -

    Generator stub: - -

    -
    -
    
    -            
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20 - 65 - 120 - 160 - 210 - 230 - 260 - 290 - 330 - - - - - - - - - - - - - - - - - - 10 - - - - - - - - 1 - - - - - 10 - - - - - 1 - - - - - - - - - - - - 1 - - - - - 1 - - - - - - - 9 - - - - - - - 45 - - - - - - - - 0 - - - - - - - 3.1 - - - - - - - - 64 - - - - - 10 - - - - - - - 50 - - - - - 1 - - - - - 100 - - - - - - - 1 - - - - - 100 - - - - - - - - - - - - - - - - - abc - - - - - - - - - - - - - - text - - - - - abc - - - - - - - text - - - - - - - text - - - - - - - abc - - - - - - - abc - - - - - - - abc - - - - - - - abc - - - - - - - - - - - - - 5 - - - - - - - - - list - - - - - - - list - - - - - - - list - - - - - - - list - - - - - - - , - - - - - - - - - - - - 100 - - - - - 50 - - - - - 0 - - - - - - - #ff0000 - - - - - #3333ff - - - - - 0.5 - - - - - - - - - - - - - diff --git a/lib/blockly/demos/blockfactory/link.png b/lib/blockly/demos/blockfactory/link.png deleted file mode 100644 index 11dfd82..0000000 Binary files a/lib/blockly/demos/blockfactory/link.png and /dev/null differ diff --git a/lib/blockly/demos/blockfactory/standard_categories.js b/lib/blockly/demos/blockfactory/standard_categories.js deleted file mode 100644 index 95c3324..0000000 --- a/lib/blockly/demos/blockfactory/standard_categories.js +++ /dev/null @@ -1,392 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Contains a map of standard Blockly categories used to load - * standard Blockly categories into the user's toolbox. The map is keyed by - * the lower case name of the category, and contains the Category object for - * that particular category. Also has a list of core block types provided - * by Blockly. - * - * @author Emma Dauterman (evd2014) - */ - 'use strict'; - -/** - * Namespace for StandardCategories - */ -var StandardCategories = StandardCategories || Object.create(null); - - -// Map of standard category information necessary to add a standard category -// to the toolbox. -StandardCategories.categoryMap = Object.create(null); - -StandardCategories.categoryMap['logic'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Logic'); -StandardCategories.categoryMap['logic'].xml = - Blockly.Xml.textToDom( - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - ''); -StandardCategories.categoryMap['logic'].hue = 210; - -StandardCategories.categoryMap['loops'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Loops'); -StandardCategories.categoryMap['loops'].xml = - Blockly.Xml.textToDom( - '' + - '' + - '' + - '' + - '10' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '1' + - '' + - '' + - '' + - '' + - '10' + - '' + - '' + - '' + - '' + - '1' + - '' + - '' + - '' + - '' + - '' + - ''); -StandardCategories.categoryMap['loops'].hue = 120; - -StandardCategories.categoryMap['math'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Math'); -StandardCategories.categoryMap['math'].xml = - Blockly.Xml.textToDom( - '' + - '' + - '' + - '' + - '' + - '1' + - '' + - '' + - '' + - '' + - '1' + - '' + - '' + - '' + - '' + - '' + - '' + - '9' + - '' + - '' + - '' + - '' + - '' + - '' + - '45' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '0' + - '' + - '' + - '' + - '' + - '' + - '' + - '3.1' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '64' + - '' + - '' + - '' + - '' + - '10'+ - '' + - '' + - '' + - '' + - '' + - '' + - '50' + - '' + - '' + - '' + - '' + - '1' + - '' + - '' + - '' + - '' + - '100' + - '' + - '' + - '' + - '' + - '' + - '' + - '1' + - '' + - '' + - '' + - '' + - '100' + - '' + - '' + - '' + - '' + - ''); -StandardCategories.categoryMap['math'].hue = 230; - -StandardCategories.categoryMap['text'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Text'); -StandardCategories.categoryMap['text'].xml = - Blockly.Xml.textToDom( - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - 'abc' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - 'text' + - '' + - '' + - '' + - '' + - 'abc' + - '' + - '' + - '' + - '' + - '' + - '' + - 'text' + - '' + - '' + - '' + - '' + - '' + - '' + - 'text' + - '' + - '' + - '' + - '' + - '' + - '' + - 'abc' + - '' + - '' + - '' + - '' + - '' + - '' + - 'abc' + - '' + - '' + - '' + - '' + - '' + - '' + - 'abc' + - '' + - '' + - '' + - '' + - '' + - '' + - 'abc' + - '' + - '' + - '' + - ''); -StandardCategories.categoryMap['text'].hue = 160; - -StandardCategories.categoryMap['lists'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Lists'); -StandardCategories.categoryMap['lists'].xml = - Blockly.Xml.textToDom( - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '5' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - 'list' + - '' + - '' + - '' + - '' + - '' + - '' + - 'list' + - '' + - '' + - '' + - '' + - '' + - '' + - 'list' + - '' + - '' + - '' + - '' + - '' + - '' + - 'list' + - '' + - '' + - '' + - '' + - '' + - '' + - ',' + - '' + - '' + - '' + - '' + - ''); -StandardCategories.categoryMap['lists'].hue = 260; - -StandardCategories.categoryMap['colour'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Colour'); -StandardCategories.categoryMap['colour'].xml = - Blockly.Xml.textToDom( - '' + - '' + - '' + - '' + - '' + - '' + - '100' + - '' + - '' + - '' + - '' + - '50' + - '' + - '' + - '' + - '' + - '0' + - '' + - '' + - '' + - '' + - '' + - '' + - '#ff0000' + - '' + - '' + - '' + - '' + - '#3333ff' + - '' + - '' + - '' + - '' + - '0.5' + - '' + - '' + - '' + - ''); -StandardCategories.categoryMap['colour'].hue = 20; - -StandardCategories.categoryMap['functions'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Functions'); -StandardCategories.categoryMap['functions'].hue = 290; -StandardCategories.categoryMap['functions'].custom = 'PROCEDURE'; - -StandardCategories.categoryMap['variables'] = - new ListElement(ListElement.TYPE_CATEGORY, 'Variables'); -StandardCategories.categoryMap['variables'].hue = 330; -StandardCategories.categoryMap['variables'].custom = 'VARIABLE'; - -// All standard block types in provided in Blockly core. -StandardCategories.coreBlockTypes = ["controls_if", "logic_compare", - "logic_operation", "logic_negate", "logic_boolean", "logic_null", - "logic_ternary", "controls_repeat_ext", "controls_whileUntil", - "controls_for", "controls_forEach", "controls_flow_statements", - "math_number", "math_arithmetic", "math_single", "math_trig", - "math_constant", "math_number_property", "math_change", "math_round", - "math_on_list", "math_modulo", "math_constrain", "math_random_int", - "math_random_float", "text", "text_join", "text_append", "text_length", - "text_isEmpty", "text_indexOf", "variables_get", "text_charAt", - "text_getSubstring", "text_changeCase", "text_trim", "text_print", - "text_prompt_ext", "colour_picker", "colour_random", "colour_rgb", - "colour_blend", "lists_create_with", "lists_repeat", "lists_length", - "lists_isEmpty", "lists_indexOf", "lists_getIndex", "lists_setIndex", - "lists_getSublist", "lists_split", "lists_sort", "variables_set", - "procedures_defreturn", "procedures_ifreturn", "procedures_defnoreturn", - "procedures_callreturn"]; diff --git a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_controller.js b/lib/blockly/demos/blockfactory/workspacefactory/wfactory_controller.js deleted file mode 100644 index c1305fd..0000000 --- a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_controller.js +++ /dev/null @@ -1,1348 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Contains the controller code for workspace factory. Depends - * on the model and view objects (created as internal variables) and interacts - * with previewWorkspace and toolboxWorkspace (internal references stored to - * both). Also depends on standard_categories.js for standard Blockly - * categories. Provides the functionality for the actions the user can initiate: - * - adding and removing categories - * - switching between categories - * - printing and downloading configuration xml - * - updating the preview workspace - * - changing a category name - * - moving the position of a category. - * - * @author Emma Dauterman (evd2014) - */ - -/** - * Class for a WorkspaceFactoryController - * @param {string} toolboxName Name of workspace toolbox XML. - * @param {string} toolboxDiv Name of div to inject toolbox workspace in. - * @param {string} previewDiv Name of div to inject preview workspace in. - * @constructor - */ -WorkspaceFactoryController = function(toolboxName, toolboxDiv, previewDiv) { - // Toolbox XML element for the editing workspace. - this.toolbox = document.getElementById(toolboxName); - - // Workspace for user to drag blocks in for a certain category. - this.toolboxWorkspace = Blockly.inject(toolboxDiv, - {grid: - {spacing: 25, - length: 3, - colour: '#ccc', - snap: true}, - media: '../../media/', - toolbox: this.toolbox - }); - - // Workspace for user to preview their changes. - this.previewWorkspace = Blockly.inject(previewDiv, - {grid: - {spacing: 25, - length: 3, - colour: '#ccc', - snap: true}, - media: '../../media/', - toolbox: '', - zoom: - {controls: true, - wheel: true} - }); - - // Model to keep track of categories and blocks. - this.model = new WorkspaceFactoryModel(); - // Updates the category tabs. - this.view = new WorkspaceFactoryView(); - // Generates XML for categories. - this.generator = new WorkspaceFactoryGenerator(this.model); - // Tracks which editing mode the user is in. Toolbox mode on start. - this.selectedMode = WorkspaceFactoryController.MODE_TOOLBOX; - // True if key events are enabled, false otherwise. - this.keyEventsEnabled = true; - // True if there are unsaved changes in the toolbox, false otherwise. - this.hasUnsavedToolboxChanges = false; - // True if there are unsaved changes in the preloaded blocks, false otherwise. - this.hasUnsavedPreloadChanges = false; -}; - -// Toolbox editing mode. Changes the user makes to the workspace updates the -// toolbox. -WorkspaceFactoryController.MODE_TOOLBOX = 'toolbox'; -// Pre-loaded workspace editing mode. Changes the user makes to the workspace -// udpates the pre-loaded blocks. -WorkspaceFactoryController.MODE_PRELOAD = 'preload'; - -/** - * Currently prompts the user for a name, checking that it's valid (not used - * before), and then creates a tab and switches to it. - */ -WorkspaceFactoryController.prototype.addCategory = function() { - // Transfers the user's blocks to a flyout if it's the first category created. - this.transferFlyoutBlocksToCategory(); - - // After possibly creating a category, check again if it's the first category. - var isFirstCategory = !this.model.hasElements(); - // Get name from user. - var name = this.promptForNewCategoryName('Enter the name of your new category:'); - if (!name) { // Exit if cancelled. - return; - } - // Create category. - this.createCategory(name); - // Switch to category. - this.switchElement(this.model.getCategoryIdByName(name)); - - // Sets the default options for injecting the workspace - // when there are categories if adding the first category. - if (isFirstCategory) { - this.view.setCategoryOptions(this.model.hasElements()); - this.generateNewOptions(); - } - // Update preview. - this.updatePreview(); -}; - -/** - * Helper method for addCategory. Adds a category to the view given a name, ID, - * and a boolean for if it's the first category created. Assumes the category - * has already been created in the model. Does not switch to category. - * @param {string} name Name of category being added. - * @param {string} id The ID of the category being added. - */ -WorkspaceFactoryController.prototype.createCategory = function(name) { - // Create empty category - var category = new ListElement(ListElement.TYPE_CATEGORY, name); - this.model.addElementToList(category); - // Create new category. - var tab = this.view.addCategoryRow(name, category.id); - this.addClickToSwitch(tab, category.id); -}; - -/** - * Given a tab and a ID to be associated to that tab, adds a listener to - * that tab so that when the user clicks on the tab, it switches to the - * element associated with that ID. - * @param {!Element} tab The DOM element to add the listener to. - * @param {string} id The ID of the element to switch to when tab is clicked. - */ -WorkspaceFactoryController.prototype.addClickToSwitch = function(tab, id) { - var self = this; - var clickFunction = function(id) { // Keep this in scope for switchElement. - return function() { - self.switchElement(id); - }; - }; - this.view.bindClick(tab, clickFunction(id)); -}; - -/** - * Transfers the blocks in the user's flyout to a new category if - * the user is creating their first category and their workspace is not - * empty. Should be called whenever it is possible to switch from single flyout - * to categories (not including importing). - */ -WorkspaceFactoryController.prototype.transferFlyoutBlocksToCategory = - function() { - // Saves the user's blocks from the flyout in a category if there is no - // toolbox and the user has dragged in blocks. - if (!this.model.hasElements() && - this.toolboxWorkspace.getAllBlocks(false).length > 0) { - // Create the new category. - this.createCategory('Category 1', true); - // Set the new category as selected. - var id = this.model.getCategoryIdByName('Category 1'); - this.model.setSelectedById(id); - this.view.setCategoryTabSelection(id, true); - // Allow user to use the default options for injecting with categories. - this.view.setCategoryOptions(this.model.hasElements()); - this.generateNewOptions(); - // Update preview here in case exit early. - this.updatePreview(); - } -}; - -/** - * Attached to "-" button. Checks if the user wants to delete - * the current element. Removes the element and switches to another element. - * When the last element is removed, it switches to a single flyout mode. - */ -WorkspaceFactoryController.prototype.removeElement = function() { - // Check that there is a currently selected category to remove. - if (!this.model.getSelected()) { - return; - } - - // Check if user wants to remove current category. - var check = confirm('Are you sure you want to delete the currently selected ' - + this.model.getSelected().type + '?'); - if (!check) { // If cancelled, exit. - return; - } - - var selectedId = this.model.getSelectedId(); - var selectedIndex = this.model.getIndexByElementId(selectedId); - // Delete element visually. - this.view.deleteElementRow(selectedId, selectedIndex); - // Delete element in model. - this.model.deleteElementFromList(selectedIndex); - - // Find next logical element to switch to. - var next = this.model.getElementByIndex(selectedIndex); - if (!next && this.model.hasElements()) { - next = this.model.getElementByIndex(selectedIndex - 1); - } - var nextId = next ? next.id : null; - - // Open next element. - this.clearAndLoadElement(nextId); - - // If no element to switch to, display message, clear the workspace, and - // set a default selected element not in toolbox list in the model. - if (!nextId) { - alert('You currently have no categories or separators. All your blocks' + - ' will be displayed in a single flyout.'); - this.toolboxWorkspace.clear(); - this.toolboxWorkspace.clearUndo(); - this.model.createDefaultSelectedIfEmpty(); - } - // Update preview. - this.updatePreview(); -}; - -/** - * Gets a valid name for a new category from the user. - * @param {string} promptString Prompt for the user to enter a name. - * @param {string=} opt_oldName The current name. - * @return {string?} Valid name for a new category, or null if cancelled. - */ -WorkspaceFactoryController.prototype.promptForNewCategoryName = - function(promptString, opt_oldName) { - var defaultName = opt_oldName; - do { - var name = prompt(promptString, defaultName); - if (!name) { // If cancelled. - return null; - } - defaultName = name; - } while (this.model.hasCategoryByName(name)); - return name; -}; - -/** - * Switches to a new tab for the element given by ID. Stores XML and blocks - * to reload later, updates selected accordingly, and clears the workspace - * and clears undo, then loads the new element. - * @param {string} id ID of tab to be opened, must be valid element ID. - */ -WorkspaceFactoryController.prototype.switchElement = function(id) { - // Disables events while switching so that Blockly delete and create events - // don't update the preview repeatedly. - Blockly.Events.disable(); - // Caches information to reload or generate XML if switching to/from element. - // Only saves if a category is selected. - if (this.model.getSelectedId() != null && id != null) { - this.model.getSelected().saveFromWorkspace(this.toolboxWorkspace); - } - // Load element. - this.clearAndLoadElement(id); - // Enable Blockly events again. - Blockly.Events.enable(); -}; - -/** - * Switches to a new tab for the element by ID. Helper for switchElement. - * Updates selected, clears the workspace and clears undo, loads a new element. - * @param {string} id ID of category to load. - */ -WorkspaceFactoryController.prototype.clearAndLoadElement = function(id) { - // Unselect current tab if switching to and from an element. - if (this.model.getSelectedId() != null && id != null) { - this.view.setCategoryTabSelection(this.model.getSelectedId(), false); - } - - // If switching to another category, set category selection in the model and - // view. - if (id != null) { - // Set next category. - this.model.setSelectedById(id); - - // Clears workspace and loads next category. - this.clearAndLoadXml_(this.model.getSelectedXml()); - - // Selects the next tab. - this.view.setCategoryTabSelection(id, true); - - // Order blocks as shown in flyout. - this.toolboxWorkspace.cleanUp(); - - // Update category editing buttons. - this.view.updateState(this.model.getIndexByElementId - (this.model.getSelectedId()), this.model.getSelected()); - } else { - // Update category editing buttons for no categories. - this.view.updateState(-1, null); - } -}; - -/** - * Tied to "Export" button. Gets a file name from the user and downloads - * the corresponding configuration XML to that file. - * @param {string} exportMode The type of file to export - * (WorkspaceFactoryController.MODE_TOOLBOX for the toolbox configuration, - * and WorkspaceFactoryController.MODE_PRELOAD for the pre-loaded workspace - * configuration) - */ -WorkspaceFactoryController.prototype.exportXmlFile = function(exportMode) { - // Get file name. - if (exportMode == WorkspaceFactoryController.MODE_TOOLBOX) { - var fileName = prompt('File Name for toolbox XML:', 'toolbox.xml'); - } else { - var fileName = prompt('File Name for pre-loaded workspace XML:', - 'workspace.xml'); - } - if (!fileName) { // If cancelled. - return; - } - - // Generate XML. - if (exportMode == WorkspaceFactoryController.MODE_TOOLBOX) { - // Export the toolbox XML. - var configXml = Blockly.Xml.domToPrettyText( - this.generator.generateToolboxXml()); - this.hasUnsavedToolboxChanges = false; - } else if (exportMode == WorkspaceFactoryController.MODE_PRELOAD) { - // Export the pre-loaded block XML. - var configXml = Blockly.Xml.domToPrettyText( - this.generator.generateWorkspaceXml()); - this.hasUnsavedPreloadChanges = false; - } else { - // Unknown mode. Throw error. - var msg = 'Unknown export mode: ' + exportMode; - BlocklyDevTools.Analytics.onError(msg); - throw Error(msg); - } - - // Unpack self-closing tags. These tags fail when embedded in HTML. - // -> - configXml = configXml.replace(/<(\w+)([^<]*)\/>/g, '<$1$2>'); - - // Download file. - var data = new Blob([configXml], {type: 'text/xml'}); - this.view.createAndDownloadFile(fileName, data); - - if (exportMode == WorkspaceFactoryController.MODE_TOOLBOX) { - BlocklyDevTools.Analytics.onExport( - BlocklyDevTools.Analytics.TOOLBOX, - { format: BlocklyDevTools.Analytics.FORMAT_XML }); - } else if (exportMode == WorkspaceFactoryController.MODE_PRELOAD) { - BlocklyDevTools.Analytics.onExport( - BlocklyDevTools.Analytics.WORKSPACE_CONTENTS, - { format: BlocklyDevTools.Analytics.FORMAT_XML }); - } -}; - -/** - * Export the options object to be used for the Blockly inject call. Gets a - * file name from the user and downloads the options object to that file. - */ -WorkspaceFactoryController.prototype.exportInjectFile = function() { - var fileName = prompt('File Name for starter Blockly workspace code:', - 'workspace.js'); - if (!fileName) { // If cancelled. - return; - } - // Generate new options to remove toolbox XML from options object (if - // necessary). - this.generateNewOptions(); - var printableOptions = this.generator.generateInjectString() - var data = new Blob([printableOptions], {type: 'text/javascript'}); - this.view.createAndDownloadFile(fileName, data); - - BlocklyDevTools.Analytics.onExport( - BlocklyDevTools.Analytics.STARTER_CODE, - { - format: BlocklyDevTools.Analytics.FORMAT_JS, - platform: BlocklyDevTools.Analytics.PLATFORM_WEB - }); -}; - -/** - * Tied to "Print" button. Mainly used for debugging purposes. Prints - * the configuration XML to the console. - */ -WorkspaceFactoryController.prototype.printConfig = function() { - // Capture any changes made by user before generating XML. - this.saveStateFromWorkspace(); - // Print XML. - console.log(Blockly.Xml.domToPrettyText(this.generator.generateToolboxXml())); -}; - -/** - * Updates the preview workspace based on the toolbox workspace. If switching - * from no categories to categories or categories to no categories, reinjects - * Blockly with reinjectPreview, otherwise just updates without reinjecting. - * Called whenever a list element is created, removed, or modified and when - * Blockly move and delete events are fired. Do not call on create events - * or disabling will cause the user to "drop" their current blocks. Make sure - * that no changes have been made to the workspace since updating the model - * (if this might be the case, call saveStateFromWorkspace). - */ -WorkspaceFactoryController.prototype.updatePreview = function() { - // Disable events to stop updatePreview from recursively calling itself - // through event handlers. - Blockly.Events.disable(); - - // Only update the toolbox if not in read only mode. - if (!this.model.options['readOnly']) { - // Get toolbox XML. - var tree = Blockly.Options.parseToolboxTree( - this.generator.generateToolboxXml()); - - // No categories, creates a simple flyout. - if (tree.getElementsByTagName('category').length == 0) { - // No categories, creates a simple flyout. - if (this.previewWorkspace.toolbox_) { - this.reinjectPreview(tree); // Switch to simple flyout, expensive. - } else { - this.previewWorkspace.updateToolbox(tree); - } - } else { - // Uses categories, creates a toolbox. - if (!this.previewWorkspace.toolbox_) { - this.reinjectPreview(tree); // Create a toolbox, expensive. - } else { - // Close the toolbox before updating it so that the user has to reopen - // the flyout and see their updated toolbox (open flyout doesn't update) - this.previewWorkspace.toolbox_.clearSelection(); - this.previewWorkspace.updateToolbox(tree); - } - } - } - - // Update pre-loaded blocks in the preview workspace. - this.previewWorkspace.clear(); - Blockly.Xml.domToWorkspace(this.generator.generateWorkspaceXml(), - this.previewWorkspace); - - // Reenable events. - Blockly.Events.enable(); -}; - -/** - * Saves the state from the workspace depending on the current mode. Should - * be called after making changes to the workspace. - */ -WorkspaceFactoryController.prototype.saveStateFromWorkspace = function() { - if (this.selectedMode == WorkspaceFactoryController.MODE_TOOLBOX) { - // If currently editing the toolbox. - // Update flags if toolbox has been changed. - if (this.model.getSelectedXml() != - Blockly.Xml.workspaceToDom(this.toolboxWorkspace)) { - this.hasUnsavedToolboxChanges = true; - } - - this.model.getSelected().saveFromWorkspace(this.toolboxWorkspace); - - } else if (this.selectedMode == WorkspaceFactoryController.MODE_PRELOAD) { - // If currently editing the pre-loaded workspace. - // Update flags if preloaded blocks have been changed. - if (this.model.getPreloadXml() != - Blockly.Xml.workspaceToDom(this.toolboxWorkspace)) { - this.hasUnsavedPreloadChanges = true; - } - - this.model.savePreloadXml( - Blockly.Xml.workspaceToDom(this.toolboxWorkspace)); - } -}; - -/** - * Used to completely reinject the preview workspace. This should be used only - * when switching from simple flyout to categories, or categories to simple - * flyout. More expensive than simply updating the flyout or toolbox. - * @param {!Element} Tree of XML elements - * @package - */ -WorkspaceFactoryController.prototype.reinjectPreview = function(tree) { - this.previewWorkspace.dispose(); - var injectOptions = this.readOptions_(); - injectOptions['toolbox'] = Blockly.Xml.domToPrettyText(tree); - this.previewWorkspace = Blockly.inject('preview_blocks', injectOptions); - Blockly.Xml.domToWorkspace(this.generator.generateWorkspaceXml(), - this.previewWorkspace); -}; - -/** - * Changes the name and colour of the selected category. - * Return if selected element is a separator. - * @param {string} name New name for selected category. - * @param {?string} colour New colour for selected category, or null if none. - * Must be a valid CSS string, or '' for none. - */ -WorkspaceFactoryController.prototype.changeSelectedCategory = function(name, - colour) { - var selected = this.model.getSelected(); - // Return if a category is not selected. - if (selected.type != ListElement.TYPE_CATEGORY) { - return; - } - // Change colour of selected category. - selected.changeColor(colour); - this.view.setBorderColor(this.model.getSelectedId(), colour); - // Change category name. - selected.changeName(name); - this.view.updateCategoryName(name, this.model.getSelectedId()); - // Update preview. - this.updatePreview(); -}; - -/** - * Tied to arrow up and arrow down buttons. Swaps with the element above or - * below the currently selected element (offset categories away from the - * current element). Updates state to enable the correct element editing - * buttons. - * @param {number} offset The index offset from the currently selected element - * to swap with. Positive if the element to be swapped with is below, negative - * if the element to be swapped with is above. - */ -WorkspaceFactoryController.prototype.moveElement = function(offset) { - var curr = this.model.getSelected(); - if (!curr) { // Return if no selected element. - return; - } - var currIndex = this.model.getIndexByElementId(curr.id); - var swapIndex = this.model.getIndexByElementId(curr.id) + offset; - var swap = this.model.getElementByIndex(swapIndex); - if (!swap) { // Return if cannot swap in that direction. - return; - } - // Move currently selected element to index of other element. - // Indexes must be valid because confirmed that curr and swap exist. - this.moveElementToIndex(curr, swapIndex, currIndex); - // Update element editing buttons. - this.view.updateState(swapIndex, this.model.getSelected()); - // Update preview. - this.updatePreview(); -}; - -/** - * Moves a element to a specified index and updates the model and view - * accordingly. Helper functions throw an error if indexes are out of bounds. - * @param {!Element} element The element to move. - * @param {number} newIndex The index to insert the element at. - * @param {number} oldIndex The index the element is currently at. - */ -WorkspaceFactoryController.prototype.moveElementToIndex = function(element, - newIndex, oldIndex) { - this.model.moveElementToIndex(element, newIndex, oldIndex); - this.view.moveTabToIndex(element.id, newIndex, oldIndex); -}; - -/** - * Tied to the "Standard Category" dropdown option, this function prompts - * the user for a name of a standard Blockly category (case insensitive) and - * loads it as a new category and switches to it. Leverages StandardCategories. - */ -WorkspaceFactoryController.prototype.loadCategory = function() { - // Prompt user for the name of the standard category to load. - do { - var name = prompt('Enter the name of the category you would like to import ' - + '(Logic, Loops, Math, Text, Lists, Colour, Variables, or Functions)'); - if (!name) { - return; // Exit if cancelled. - } - } while (!this.isStandardCategoryName(name)); - - // Load category. - this.loadCategoryByName(name); -}; - -/** - * Loads a Standard Category by name and switches to it. Leverages - * StandardCategories. Returns if cannot load standard category. - * @param {string} name Name of the standard category to load. - */ -WorkspaceFactoryController.prototype.loadCategoryByName = function(name) { - // Check if the user can load that standard category. - if (!this.isStandardCategoryName(name)) { - return; - } - if (this.model.hasVariables() && name.toLowerCase() == 'variables') { - alert('A Variables category already exists. You cannot create multiple' + - ' variables categories.'); - return; - } - if (this.model.hasProcedures() && name.toLowerCase() == 'functions') { - alert('A Functions category already exists. You cannot create multiple' + - ' functions categories.'); - return; - } - // Check if the user can create a category with that name. - var standardCategory = StandardCategories.categoryMap[name.toLowerCase()] - if (this.model.hasCategoryByName(standardCategory.name)) { - alert('You already have a category with the name ' + standardCategory.name - + '. Rename your category and try again.'); - return; - } - if (!standardCategory.color && standardCategory.hue !== undefined) { - // Calculate the hex colour based on the hue. - standardCategory.color = Blockly.hueToHex(standardCategory.hue); - } - // Transfers current flyout blocks to a category if it's the first category - // created. - this.transferFlyoutBlocksToCategory(); - - var isFirstCategory = !this.model.hasElements(); - // Copy the standard category in the model. - var copy = standardCategory.copy(); - - // Add it to the model. - this.model.addElementToList(copy); - - // Update the copy in the view. - var tab = this.view.addCategoryRow(copy.name, copy.id); - this.addClickToSwitch(tab, copy.id); - // Color the category tab in the view. - if (copy.color) { - this.view.setBorderColor(copy.id, copy.color); - } - // Switch to loaded category. - this.switchElement(copy.id); - // Convert actual shadow blocks to user-generated shadow blocks. - this.convertShadowBlocks(); - // Save state from workspace before updating preview. - this.saveStateFromWorkspace(); - if (isFirstCategory) { - // Allow the user to use the default options for injecting the workspace - // when there are categories. - this.view.setCategoryOptions(this.model.hasElements()); - this.generateNewOptions(); - } - // Update preview. - this.updatePreview(); -}; - -/** - * Loads the standard Blockly toolbox into the editing space. Should only - * be called when the mode is set to toolbox. - */ -WorkspaceFactoryController.prototype.loadStandardToolbox = function() { - this.loadCategoryByName('Logic'); - this.loadCategoryByName('Loops'); - this.loadCategoryByName('Math'); - this.loadCategoryByName('Text'); - this.loadCategoryByName('Lists'); - this.loadCategoryByName('Colour'); - this.addSeparator(); - this.loadCategoryByName('Variables'); - this.loadCategoryByName('Functions'); -}; - -/** - * Given the name of a category, determines if it's the name of a standard - * category (case insensitive). - * @param {string} name The name of the category that should be checked if it's - * in StandardCategories categoryMap - * @return {boolean} True if name is a standard category name, false otherwise. - */ -WorkspaceFactoryController.prototype.isStandardCategoryName = function(name) { - return !!StandardCategories.categoryMap[name.toLowerCase()]; -}; - -/** - * Connected to the "add separator" dropdown option. If categories already - * exist, adds a separator to the model and view. Does not switch to select - * the separator, and updates the preview. - */ -WorkspaceFactoryController.prototype.addSeparator = function() { - // If adding the first element in the toolbox, transfers the user's blocks - // in a flyout to a category. - this.transferFlyoutBlocksToCategory(); - // Create the separator in the model. - var separator = new ListElement(ListElement.TYPE_SEPARATOR); - this.model.addElementToList(separator); - // Create the separator in the view. - var tab = this.view.addSeparatorTab(separator.id); - this.addClickToSwitch(tab, separator.id); - // Switch to the separator and update the preview. - this.switchElement(separator.id); - this.updatePreview(); -}; - -/** - * Connected to the import button. Given the file path inputted by the user - * from file input, if the import mode is for the toolbox, this function loads - * that toolbox XML to the workspace, creating category and separator tabs as - * necessary. If the import mode is for pre-loaded blocks in the workspace, - * this function loads that XML to the workspace to be edited further. This - * function switches mode to whatever the import mode is. Catches errors from - * file reading and prints an error message alerting the user. - * @param {string} file The path for the file to be imported into the workspace. - * Should contain valid toolbox XML. - * @param {string} importMode The mode corresponding to the type of file the - * user is importing (WorkspaceFactoryController.MODE_TOOLBOX or - * WorkspaceFactoryController.MODE_PRELOAD). - */ -WorkspaceFactoryController.prototype.importFile = function(file, importMode) { - // Exit if cancelled. - if (!file) { - return; - } - - Blockly.Events.disable(); - var controller = this; - var reader = new FileReader(); - - // To be executed when the reader has read the file. - reader.onload = function() { - // Try to parse XML from file and load it into toolbox editing area. - // Print error message if fail. - try { - var tree = Blockly.Xml.textToDom(reader.result); - if (importMode == WorkspaceFactoryController.MODE_TOOLBOX) { - // Switch mode. - controller.setMode(WorkspaceFactoryController.MODE_TOOLBOX); - - // Confirm that the user wants to override their current toolbox. - var hasToolboxElements = controller.model.hasElements() || - controller.toolboxWorkspace.getAllBlocks(false).length > 0; - if (hasToolboxElements) { - var msg = 'Are you sure you want to import? You will lose your ' + - 'current toolbox.'; - BlocklyDevTools.Analytics.onWarning(msg); - var continueAnyway = confirm(); - if (!continueAnyway) { - return; - } - } - // Import toolbox XML. - controller.importToolboxFromTree_(tree); - BlocklyDevTools.Analytics.onImport('Toolbox.xml'); - - } else if (importMode == WorkspaceFactoryController.MODE_PRELOAD) { - // Switch mode. - controller.setMode(WorkspaceFactoryController.MODE_PRELOAD); - - // Confirm that the user wants to override their current blocks. - if (controller.toolboxWorkspace.getAllBlocks(false).length > 0) { - var msg = 'Are you sure you want to import? You will lose your ' + - 'current workspace blocks.'; - var continueAnyway = confirm(msg); - BlocklyDevTools.Analytics.onWarning(msg); - if (!continueAnyway) { - return; - } - } - - // Import pre-loaded workspace XML. - controller.importPreloadFromTree_(tree); - BlocklyDevTools.Analytics.onImport('WorkspaceContents.xml'); - } else { - // Throw error if invalid mode. - throw Error('Unknown import mode: ' + importMode); - } - } catch(e) { - var msg = 'Cannot load XML from file.'; - alert(msg); - BlocklyDevTools.Analytics.onError(msg); - console.log(e); - } finally { - Blockly.Events.enable(); - } - } - - // Read the file asynchronously. - reader.readAsText(file); -}; - -/** - * Given a XML DOM tree, loads it into the toolbox editing area so that the - * user can continue editing their work. Assumes that tree is in valid toolbox - * XML format. Assumes that the mode is MODE_TOOLBOX. - * @param {!Element} tree XML tree to be loaded to toolbox editing area. - * @private - */ -WorkspaceFactoryController.prototype.importToolboxFromTree_ = function(tree) { - // Clear current editing area. - this.model.clearToolboxList(); - this.view.clearToolboxTabs(); - - if (tree.getElementsByTagName('category').length == 0) { - // No categories present. - // Load all the blocks into a single category evenly spaced. - Blockly.Xml.domToWorkspace(tree, this.toolboxWorkspace); - this.toolboxWorkspace.cleanUp(); - - // Convert actual shadow blocks to user-generated shadow blocks. - this.convertShadowBlocks(); - - // Add message to denote empty category. - this.view.addEmptyCategoryMessage(); - - } else { - // Categories/separators present. - for (var i = 0, item; item = tree.children[i]; i++) { - - if (item.tagName == 'category') { - // If the element is a category, create a new category and switch to it. - this.createCategory(item.getAttribute('name'), false); - var category = this.model.getElementByIndex(i); - this.switchElement(category.id); - - // Load all blocks in that category to the workspace to be evenly - // spaced and saved to that category. - for (var j = 0, blockXml; blockXml = item.children[j]; j++) { - Blockly.Xml.domToBlock(blockXml, this.toolboxWorkspace); - } - - // Evenly space the blocks. - this.toolboxWorkspace.cleanUp(); - - // Convert actual shadow blocks to user-generated shadow blocks. - this.convertShadowBlocks(); - - // Set category color. - if (item.getAttribute('colour')) { - category.changeColor(item.getAttribute('colour')); - this.view.setBorderColor(category.id, category.color); - } - // Set any custom tags. - if (item.getAttribute('custom')) { - this.model.addCustomTag(category, item.getAttribute('custom')); - } - } else { - // If the element is a separator, add the separator and switch to it. - this.addSeparator(); - this.switchElement(this.model.getElementByIndex(i).id); - } - } - } - this.view.updateState(this.model.getIndexByElementId - (this.model.getSelectedId()), this.model.getSelected()); - - this.saveStateFromWorkspace(); - - // Set default configuration options for a single flyout or multiple - // categories. - this.view.setCategoryOptions(this.model.hasElements()); - this.generateNewOptions(); - - this.updatePreview(); -}; - -/** - * Given a XML DOM tree, loads it into the pre-loaded workspace editing area. - * Assumes that tree is in valid XML format and that the selected mode is - * MODE_PRELOAD. - * @param {!Element} tree XML tree to be loaded to pre-loaded block editing - * area. - */ -WorkspaceFactoryController.prototype.importPreloadFromTree_ = function(tree) { - this.clearAndLoadXml_(tree); - this.model.savePreloadXml(tree); - this.updatePreview(); -}; - -/** - * Given a XML DOM tree, loads it into the pre-loaded workspace editing area. - * Assumes that tree is in valid XML format and that the selected mode is - * MODE_PRELOAD. - * @param {!Element} tree XML tree to be loaded to pre-loaded block editing - * area. - */ -WorkspaceFactoryController.prototype.importPreloadFromTree_ = function(tree) { - this.clearAndLoadXml_(tree); - this.model.savePreloadXml(tree); - this.saveStateFromWorkspace(); - this.updatePreview(); -}; - -/** - * Given a XML DOM tree, loads it into the pre-loaded workspace editing area. - * Assumes that tree is in valid XML format and that the selected mode is - * MODE_PRELOAD. - * @param {!Element} tree XML tree to be loaded to pre-loaded block editing - * area. - */ -WorkspaceFactoryController.prototype.importPreloadFromTree_ = function(tree) { - this.clearAndLoadXml_(tree); - this.model.savePreloadXml(tree); - this.saveStateFromWorkspace(); - this.updatePreview(); -}; - -/** - * Clears the editing area completely, deleting all categories and all - * blocks in the model and view and all pre-loaded blocks. Tied to the - * "Clear" button. - */ -WorkspaceFactoryController.prototype.clearAll = function() { - var msg = 'Are you sure you want to clear all of your work in Workspace' + - ' Factory?'; - BlocklyDevTools.Analytics.onWarning(msg); - if (!confirm(msg)) { - return; - } - var hasCategories = this.model.hasElements(); - this.model.clearToolboxList(); - this.view.clearToolboxTabs(); - this.model.savePreloadXml(Blockly.utils.xml.createElement('xml')); - this.view.addEmptyCategoryMessage(); - this.view.updateState(-1, null); - this.toolboxWorkspace.clear(); - this.toolboxWorkspace.clearUndo(); - this.saveStateFromWorkspace(); - this.hasUnsavedToolboxChanges = false; - this.hasUnsavedPreloadChanges = false; - this.view.setCategoryOptions(this.model.hasElements()); - this.generateNewOptions(); - this.updatePreview(); -}; - -/* - * Makes the currently selected block a user-generated shadow block. These - * blocks are not made into real shadow blocks, but recorded in the model - * and visually marked as shadow blocks, allowing the user to move and edit - * them (which would be impossible with actual shadow blocks). Updates the - * preview when done. - */ -WorkspaceFactoryController.prototype.addShadow = function() { - // No block selected to make a shadow block. - if (!Blockly.selected) { - return; - } - // Clear any previous warnings on the block (would only have warnings on - // a non-shadow block if it was nested inside another shadow block). - Blockly.selected.setWarningText(null); - // Set selected block and all children as shadow blocks. - this.addShadowForBlockAndChildren_(Blockly.selected); - - // Save and update the preview. - this.saveStateFromWorkspace(); - this.updatePreview(); -}; - -/** - * Sets a block and all of its children to be user-generated shadow blocks, - * both in the model and view. - * @param {!Blockly.Block} block The block to be converted to a user-generated - * shadow block. - * @private - */ -WorkspaceFactoryController.prototype.addShadowForBlockAndChildren_ = - function(block) { - // Convert to shadow block. - this.view.markShadowBlock(block); - this.model.addShadowBlock(block.id); - - if (FactoryUtils.hasVariableField(block)) { - block.setWarningText('Cannot make variable blocks shadow blocks.'); - } - - // Convert all children to shadow blocks recursively. - var children = block.getChildren(); - for (var i = 0; i < children.length; i++) { - this.addShadowForBlockAndChildren_(children[i]); - } -}; - -/** - * If the currently selected block is a user-generated shadow block, this - * function makes it a normal block again, removing it from the list of - * shadow blocks and loading the workspace again. Updates the preview again. - */ -WorkspaceFactoryController.prototype.removeShadow = function() { - // No block selected to modify. - if (!Blockly.selected) { - return; - } - this.model.removeShadowBlock(Blockly.selected.id); - this.view.unmarkShadowBlock(Blockly.selected); - - // If turning invalid shadow block back to normal block, remove warning. - Blockly.selected.setWarningText(null); - - this.saveStateFromWorkspace(); - this.updatePreview(); -}; - -/** - * Given a unique block ID, uses the model to determine if a block is a - * user-generated shadow block. - * @param {string} blockId The unique ID of the block to examine. - * @return {boolean} True if the block is a user-generated shadow block, false - * otherwise. - */ -WorkspaceFactoryController.prototype.isUserGenShadowBlock = function(blockId) { - return this.model.isShadowBlock(blockId); -}; - -/** - * Call when importing XML containing real shadow blocks. This function turns - * all real shadow blocks loaded in the workspace into user-generated shadow - * blocks, meaning they are marked as shadow blocks by the model and appear as - * shadow blocks in the view but are still editable and movable. - */ -WorkspaceFactoryController.prototype.convertShadowBlocks = function() { - var blocks = this.toolboxWorkspace.getAllBlocks(false); - for (var i = 0, block; block = blocks[i]; i++) { - if (block.isShadow()) { - block.setShadow(false); - // Delete the shadow DOM attached to the block so that the shadow block - // does not respawn. Dependent on implementation details. - var parentConnection = block.outputConnection ? - block.outputConnection.targetConnection : - block.previousConnection.targetConnection; - if (parentConnection) { - parentConnection.setShadowDom(null); - } - this.model.addShadowBlock(block.id); - this.view.markShadowBlock(block); - } - } -}; - -/** - * Sets the currently selected mode that determines what the toolbox workspace - * is being used to edit. Updates the view and then saves and loads XML - * to and from the toolbox and updates the help text. - * @param {string} tab The type of tab being switched to - * (WorkspaceFactoryController.MODE_TOOLBOX or - * WorkspaceFactoryController.MODE_PRELOAD). - */ -WorkspaceFactoryController.prototype.setMode = function(mode) { - // No work to change mode that's currently set. - if (this.selectedMode == mode) { - return; - } - - // No work to change mode that's currently set. - if (this.selectedMode == mode) { - return; - } - - // Set tab selection and display appropriate tab. - this.view.setModeSelection(mode); - - // Update selected tab. - this.selectedMode = mode; - - // Update help text above workspace. - this.view.updateHelpText(mode); - - if (mode == WorkspaceFactoryController.MODE_TOOLBOX) { - // Open the toolbox editing space. - this.model.savePreloadXml - (Blockly.Xml.workspaceToDom(this.toolboxWorkspace)); - this.clearAndLoadXml_(this.model.getSelectedXml()); - this.view.disableWorkspace(this.view.shouldDisableWorkspace - (this.model.getSelected())); - } else { - // Open the pre-loaded workspace editing space. - if (this.model.getSelected()) { - this.model.getSelected().saveFromWorkspace(this.toolboxWorkspace); - } - this.clearAndLoadXml_(this.model.getPreloadXml()); - this.view.disableWorkspace(false); - } -}; - -/** - * Clears the toolbox workspace and loads XML to it, marking shadow blocks - * as necessary. - * @private - * @param {!Element} xml The XML to be loaded to the workspace. - */ -WorkspaceFactoryController.prototype.clearAndLoadXml_ = function(xml) { - this.toolboxWorkspace.clear(); - this.toolboxWorkspace.clearUndo(); - Blockly.Xml.domToWorkspace(xml, this.toolboxWorkspace); - this.view.markShadowBlocks(this.model.getShadowBlocksInWorkspace - (this.toolboxWorkspace.getAllBlocks(false))); - this.warnForUndefinedBlocks_(); -}; - -/** - * Sets the standard default options for the options object and updates - * the preview workspace. The default values depends on if categories are - * present. - */ -WorkspaceFactoryController.prototype.setStandardOptionsAndUpdate = function() { - this.view.setBaseOptions(); - this.view.setCategoryOptions(this.model.hasElements()); - this.generateNewOptions(); -}; - -/** - * Generates a new options object for injecting a Blockly workspace based - * on user input. Should be called every time a change has been made to - * an input field. Updates the model and reinjects the preview workspace. - */ -WorkspaceFactoryController.prototype.generateNewOptions = function() { - this.model.setOptions(this.readOptions_()); - - this.reinjectPreview(Blockly.Options.parseToolboxTree( - this.generator.generateToolboxXml())); -}; - -/** - * Generates a new options object for injecting a Blockly workspace based on - * user input. - * @return {!Object} Blockly injection options object. - * @private - */ -WorkspaceFactoryController.prototype.readOptions_ = function() { - var optionsObj = Object.create(null); - - // Add all standard options to the options object. - // Use parse int to get numbers from value inputs. - var readonly = document.getElementById('option_readOnly_checkbox').checked; - if (readonly) { - optionsObj['readOnly'] = true; - } else { - optionsObj['collapse'] = - document.getElementById('option_collapse_checkbox').checked; - optionsObj['comments'] = - document.getElementById('option_comments_checkbox').checked; - optionsObj['disable'] = - document.getElementById('option_disable_checkbox').checked; - if (document.getElementById('option_infiniteBlocks_checkbox').checked) { - optionsObj['maxBlocks'] = Infinity; - } else { - var maxBlocksValue = - document.getElementById('option_maxBlocks_number').value; - optionsObj['maxBlocks'] = typeof maxBlocksValue == 'string' ? - parseInt(maxBlocksValue) : maxBlocksValue; - } - optionsObj['trashcan'] = - document.getElementById('option_trashcan_checkbox').checked; - optionsObj['horizontalLayout'] = - document.getElementById('option_horizontalLayout_checkbox').checked; - optionsObj['toolboxPosition'] = - document.getElementById('option_toolboxPosition_checkbox').checked ? - 'end' : 'start'; - } - - optionsObj['css'] = document.getElementById('option_css_checkbox').checked; - optionsObj['media'] = document.getElementById('option_media_text').value; - optionsObj['rtl'] = document.getElementById('option_rtl_checkbox').checked; - optionsObj['scrollbars'] = - document.getElementById('option_scrollbars_checkbox').checked; - optionsObj['sounds'] = - document.getElementById('option_sounds_checkbox').checked; - optionsObj['oneBasedIndex'] = - document.getElementById('option_oneBasedIndex_checkbox').checked; - - // If using a grid, add all grid options. - if (document.getElementById('option_grid_checkbox').checked) { - var grid = Object.create(null); - var spacingValue = - document.getElementById('gridOption_spacing_number').value; - grid['spacing'] = typeof spacingValue == 'string' ? - parseInt(spacingValue) : spacingValue; - var lengthValue = document.getElementById('gridOption_length_number').value; - grid['length'] = typeof lengthValue == 'string' ? - parseInt(lengthValue) : lengthValue; - grid['colour'] = document.getElementById('gridOption_colour_text').value; - if (!readonly) { - grid['snap'] = - document.getElementById('gridOption_snap_checkbox').checked; - } - optionsObj['grid'] = grid; - } - - // If using zoom, add all zoom options. - if (document.getElementById('option_zoom_checkbox').checked) { - var zoom = Object.create(null); - zoom['controls'] = - document.getElementById('zoomOption_controls_checkbox').checked; - zoom['wheel'] = - document.getElementById('zoomOption_wheel_checkbox').checked; - var startScaleValue = - document.getElementById('zoomOption_startScale_number').value; - zoom['startScale'] = typeof startScaleValue == 'string' ? - Number(startScaleValue) : startScaleValue; - var maxScaleValue = - document.getElementById('zoomOption_maxScale_number').value; - zoom['maxScale'] = typeof maxScaleValue == 'string' ? - Number(maxScaleValue) : maxScaleValue; - var minScaleValue = - document.getElementById('zoomOption_minScale_number').value; - zoom['minScale'] = typeof minScaleValue == 'string' ? - Number(minScaleValue) : minScaleValue; - var scaleSpeedValue = - document.getElementById('zoomOption_scaleSpeed_number').value; - zoom['scaleSpeed'] = typeof scaleSpeedValue == 'string' ? - Number(scaleSpeedValue) : scaleSpeedValue; - optionsObj['zoom'] = zoom; - } - - return optionsObj; -}; - -/** - * Imports blocks from a file, generating a category in the toolbox workspace - * to allow the user to use imported blocks in the toolbox and in pre-loaded - * blocks. - * @param {!File} file File object for the blocks to import. - * @param {string} format The format of the file to import, either 'JSON' or - * 'JavaScript'. - */ -WorkspaceFactoryController.prototype.importBlocks = function(file, format) { - // Generate category name from file name. - var categoryName = file.name; - - var controller = this; - var reader = new FileReader(); - - // To be executed when the reader has read the file. - reader.onload = function() { - try { - // Define blocks using block types from file. - var blockTypes = FactoryUtils.defineAndGetBlockTypes(reader.result, - format); - - // If an imported block type is already defined, check if the user wants - // to override the current block definition. - if (controller.model.hasDefinedBlockTypes(blockTypes)) { - var msg = 'An imported block uses the same name as a block ' - + 'already in your toolbox. Are you sure you want to override the ' - + 'currently defined block?'; - var continueAnyway = confirm(msg); - BlocklyDevTools.Analytics.onWarning(msg); - if (!continueAnyway) { - return; - } - } - - var blocks = controller.generator.getDefinedBlocks(blockTypes); - // Generate category XML and append to toolbox. - var categoryXml = FactoryUtils.generateCategoryXml(blocks, categoryName); - // Get random color for category between 0 and 360. Gives each imported - // category a different color. - var randomColor = Math.floor(Math.random() * 360); - categoryXml.setAttribute('colour', randomColor); - controller.toolbox.appendChild(categoryXml); - controller.toolboxWorkspace.updateToolbox(controller.toolbox); - // Update imported block types. - controller.model.addImportedBlockTypes(blockTypes); - // Reload current category to possibly reflect any newly defined blocks. - controller.clearAndLoadXml_ - (Blockly.Xml.workspaceToDom(controller.toolboxWorkspace)); - - BlocklyDevTools.Analytics.onImport('BlockDefinitions' + - (format == 'JSON' ? '.json' : '.js')); - } catch (e) { - msg = 'Cannot read blocks from file.'; - alert(msg); - BlocklyDevTools.Analytics.onError(msg); - window.console.log(e); - } - } - - // Read the file asynchronously. - reader.readAsText(file); -}; - -/* - * Updates the block library category in the toolbox workspace toolbox. - * @param {!Element} categoryXml XML for the block library category. - * @param {!Array.} libBlockTypes Array of block types from the block - * library. - */ -WorkspaceFactoryController.prototype.setBlockLibCategory = - function(categoryXml, libBlockTypes) { - var blockLibCategory = document.getElementById('blockLibCategory'); - - // Set category ID so that it can be easily replaced, and set a standard, - // arbitrary block library color. - categoryXml.id = 'blockLibCategory'; - categoryXml.setAttribute('colour', 260); - - // Update the toolbox and toolboxWorkspace. - this.toolbox.replaceChild(categoryXml, blockLibCategory); - this.toolboxWorkspace.toolbox_.clearSelection(); - this.toolboxWorkspace.updateToolbox(this.toolbox); - - // Update the block library types. - this.model.updateLibBlockTypes(libBlockTypes); - - // Reload XML on page to account for blocks now defined or undefined in block - // library. - this.clearAndLoadXml_(Blockly.Xml.workspaceToDom(this.toolboxWorkspace)); -}; - -/** - * Return the block types used in the custom toolbox and pre-loaded workspace. - * @return {!Array.} Block types used in the custom toolbox and - * pre-loaded workspace. - */ -WorkspaceFactoryController.prototype.getAllUsedBlockTypes = function() { - return this.model.getAllUsedBlockTypes(); -}; - -/** - * Determines if a block loaded in the workspace has a definition (if it - * is a standard block, is defined in the block library, or has a definition - * imported). - * @param {!Blockly.Block} block The block to examine. - */ -WorkspaceFactoryController.prototype.isDefinedBlock = function(block) { - return this.model.isDefinedBlockType(block.type); -}; - -/** - * Sets a warning on blocks loaded to the workspace that are not defined. - * @private - */ -WorkspaceFactoryController.prototype.warnForUndefinedBlocks_ = function() { - var blocks = this.toolboxWorkspace.getAllBlocks(false); - for (var i = 0, block; block = blocks[i]; i++) { - if (!this.isDefinedBlock(block)) { - block.setWarningText(block.type + ' is not defined (it is not a ' + - 'standard block,\nin your block library, or an imported block)'); - } - } -}; - -/* - * Determines if a standard variable category is in the custom toolbox. - * @return {boolean} True if a variables category is in use, false otherwise. - */ -WorkspaceFactoryController.prototype.hasVariablesCategory = function() { - return this.model.hasVariables(); -}; - -/** - * Determines if a standard procedures category is in the custom toolbox. - * @return {boolean} True if a procedures category is in use, false otherwise. - */ -WorkspaceFactoryController.prototype.hasProceduresCategory = function() { - return this.model.hasProcedures(); -}; - -/** - * Determines if there are any unsaved changes in workspace factory. - * @return {boolean} True if there are unsaved changes, false otherwise. - */ -WorkspaceFactoryController.prototype.hasUnsavedChanges = function() { - return this.hasUnsavedToolboxChanges || this.hasUnsavedPreloadChanges; -}; diff --git a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_generator.js b/lib/blockly/demos/blockfactory/workspacefactory/wfactory_generator.js deleted file mode 100644 index a58c565..0000000 --- a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_generator.js +++ /dev/null @@ -1,237 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generates the configuration XML used to update the preview - * workspace or print to the console or download to a file. Leverages - * Blockly.Xml and depends on information in the model (holds a reference). - * Depends on a hidden workspace created in the generator to load saved XML in - * order to generate toolbox XML. - * - * @author Emma Dauterman (evd2014) - */ - - -/** - * Class for a WorkspaceFactoryGenerator - * @constructor - */ -WorkspaceFactoryGenerator = function(model) { - // Model to share information about categories and shadow blocks. - this.model = model; - // Create hidden workspace to load saved XML to generate toolbox XML. - var hiddenBlocks = document.createElement('div'); - // Generate a globally unique ID for the hidden div element to avoid - // collisions. - var hiddenBlocksId = Blockly.utils.genUid(); - hiddenBlocks.id = hiddenBlocksId; - hiddenBlocks.style.display = 'none'; - document.body.appendChild(hiddenBlocks); - this.hiddenWorkspace = Blockly.inject(hiddenBlocksId); -}; - -/** - * Generates the XML for the toolbox or flyout with information from - * toolboxWorkspace and the model. Uses the hiddenWorkspace to generate XML. - * Save state of workspace in model (saveFromWorkspace) before calling if - * changes might have been made to the selected category. - * @param {!Blockly.workspace} toolboxWorkspace Toolbox editing workspace where - * blocks are added by user to be part of the toolbox. - * @return {!Element} XML element representing toolbox or flyout corresponding - * to toolbox workspace. - */ -WorkspaceFactoryGenerator.prototype.generateToolboxXml = function() { - // Create DOM for XML. - var xmlDom = Blockly.utils.xml.createElement('xml'); - xmlDom.id = 'toolbox'; - xmlDom.setAttribute('style', 'display: none'); - - if (!this.model.hasElements()) { - // Toolbox has no categories. Use XML directly from workspace. - this.loadToHiddenWorkspace_(this.model.getSelectedXml()); - this.appendHiddenWorkspaceToDom_(xmlDom); - } else { - // Toolbox has categories. - // Assert that selected != null - if (!this.model.getSelected()) { - throw Error('Selected is null when the toolbox is empty.'); - } - - var xml = this.model.getSelectedXml(); - var toolboxList = this.model.getToolboxList(); - - // Iterate through each category to generate XML for each using the - // hidden workspace. Load each category to the hidden workspace to make sure - // that all the blocks that are not top blocks are also captured as block - // groups in the flyout. - for (var i = 0; i < toolboxList.length; i++) { - var element = toolboxList[i]; - if (element.type == ListElement.TYPE_SEPARATOR) { - // If the next element is a separator. - var nextElement = Blockly.utils.xml.createElement('sep'); - } else if (element.type == ListElement.TYPE_CATEGORY) { - // If the next element is a category. - var nextElement = Blockly.utils.xml.createElement('category'); - nextElement.setAttribute('name', element.name); - // Add a colour attribute if one exists. - if (element.color != null) { - nextElement.setAttribute('colour', element.color); - } - // Add a custom attribute if one exists. - if (element.custom != null) { - nextElement.setAttribute('custom', element.custom); - } - // Load that category to hidden workspace, setting user-generated shadow - // blocks as real shadow blocks. - this.loadToHiddenWorkspace_(element.xml); - this.appendHiddenWorkspaceToDom_(nextElement); - } - xmlDom.appendChild(nextElement); - } - } - return xmlDom; - }; - - - /** - * Generates XML for the workspace (different from generateConfigXml in that - * it includes XY and ID attributes). Uses a workspace and converts user - * generated shadow blocks to actual shadow blocks. - * @return {!Element} XML element representing toolbox or flyout corresponding - * to toolbox workspace. - */ -WorkspaceFactoryGenerator.prototype.generateWorkspaceXml = function() { - // Load workspace XML to hidden workspace with user-generated shadow blocks - // as actual shadow blocks. - this.hiddenWorkspace.clear(); - Blockly.Xml.domToWorkspace(this.model.getPreloadXml(), this.hiddenWorkspace); - this.setShadowBlocksInHiddenWorkspace_(); - - // Generate XML and set attributes. - var xmlDom = Blockly.Xml.workspaceToDom(this.hiddenWorkspace); - xmlDom.id = 'workspaceBlocks'; - xmlDom.setAttribute('style', 'display: none'); - return xmlDom; -}; - -/** - * Generates a string representation of the options object for injecting the - * workspace and starter code. - * @return {string} String representation of starter code for injecting. - */ -WorkspaceFactoryGenerator.prototype.generateInjectString = function() { - var addAttributes = function(obj, tabChar) { - if (!obj) { - return '{}\n'; - } - var str = ''; - for (var key in obj) { - if (key == 'grid' || key == 'zoom') { - var temp = tabChar + key + ' : {\n' + addAttributes(obj[key], - tabChar + '\t') + tabChar + '}, \n'; - } else if (typeof obj[key] == 'string') { - var temp = tabChar + key + ' : \'' + obj[key] + '\', \n'; - } else { - var temp = tabChar + key + ' : ' + obj[key] + ', \n'; - } - str += temp; - } - var lastCommaIndex = str.lastIndexOf(','); - str = str.slice(0, lastCommaIndex) + '\n'; - return str; - }; - - var attributes = addAttributes(this.model.options, '\t'); - if (!this.model.options['readOnly']) { - attributes = '\ttoolbox : toolbox, \n' + - attributes; - } - var finalStr = '/* TODO: Change toolbox XML ID if necessary. Can export ' + - 'toolbox XML from Workspace Factory. */\n' + - 'var toolbox = document.getElementById("toolbox");\n\n'; - finalStr += 'var options = { \n' + attributes + '};'; - finalStr += '\n\n/* Inject your workspace */ \nvar workspace = Blockly.' + - 'inject(/* TODO: Add ID of div to inject Blockly into */, options);'; - finalStr += '\n\n/* Load Workspace Blocks from XML to workspace. ' + - 'Remove all code below if no blocks to load */\n\n' + - '/* TODO: Change workspace blocks XML ID if necessary. Can export' + - ' workspace blocks XML from Workspace Factory. */\n' + - 'var workspaceBlocks = document.getElementById("workspaceBlocks"); \n\n' + - '/* Load blocks to workspace. */\n' + - 'Blockly.Xml.domToWorkspace(workspaceBlocks, workspace);'; - return finalStr; -}; - -/** - * Loads the given XML to the hidden workspace and sets any user-generated - * shadow blocks to be actual shadow blocks. - * @param {!Element} xml The XML to be loaded to the hidden workspace. - * @private - */ -WorkspaceFactoryGenerator.prototype.loadToHiddenWorkspace_ = function(xml) { - this.hiddenWorkspace.clear(); - Blockly.Xml.domToWorkspace(xml, this.hiddenWorkspace); - this.setShadowBlocksInHiddenWorkspace_(); -}; - -/** - * Encodes blocks in the hidden workspace in a XML DOM element. Very - * similar to workspaceToDom, but doesn't capture IDs. Uses the top-level - * blocks loaded in hiddenWorkspace. - * @private - * @param {!Element} xmlDom Tree of XML elements to be appended to. - */ -WorkspaceFactoryGenerator.prototype.appendHiddenWorkspaceToDom_ = - function(xmlDom) { - var blocks = this.hiddenWorkspace.getTopBlocks(); - for (var i = 0, block; block = blocks[i]; i++) { - var blockChild = Blockly.Xml.blockToDom(block, /* opt_noId */ true); - xmlDom.appendChild(blockChild); - } -}; - -/** - * Sets the user-generated shadow blocks loaded into hiddenWorkspace to be - * actual shadow blocks. This is done so that blockToDom records them as - * shadow blocks instead of regular blocks. - * @private - */ -WorkspaceFactoryGenerator.prototype.setShadowBlocksInHiddenWorkspace_ = - function() { - var blocks = this.hiddenWorkspace.getAllBlocks(false); - for (var i = 0; i < blocks.length; i++) { - if (this.model.isShadowBlock(blocks[i].id)) { - blocks[i].setShadow(true); - } - } -}; - -/** - * Given a set of block types, gets the Blockly.Block objects for each block - * type. - * @param {!Array.} blockTypes Array of blocks that have been defined. - * @return {!Array.} Array of Blockly.Block objects corresponding - * to the array of blockTypes. - */ -WorkspaceFactoryGenerator.prototype.getDefinedBlocks = function(blockTypes) { - var blocks = []; - for (var i = 0; i < blockTypes.length ; i++) { - blocks.push(FactoryUtils.getDefinedBlock(blockTypes[i], - this.hiddenWorkspace)); - } - return blocks; -}; diff --git a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_init.js b/lib/blockly/demos/blockfactory/workspacefactory/wfactory_init.js deleted file mode 100644 index f99e856..0000000 --- a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_init.js +++ /dev/null @@ -1,554 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Contains the init functions for the workspace factory tab. - * Adds click handlers to buttons and dropdowns, adds event listeners for - * keydown events and Blockly events, and configures the initial setup of - * the page. - * - * @author Emma Dauterman (evd2014) - */ - -/** - * Namespace for workspace factory initialization methods. - * @namespace - */ -WorkspaceFactoryInit = {}; - -/** - * Initialization for workspace factory tab. - * @param {!FactoryController} controller The controller for the workspace - * factory tab. - */ -WorkspaceFactoryInit.initWorkspaceFactory = function(controller) { - // Disable category editing buttons until categories are created. - document.getElementById('button_remove').disabled = true; - document.getElementById('button_up').disabled = true; - document.getElementById('button_down').disabled = true; - document.getElementById('button_editCategory').disabled = true; - - this.initColourPicker_(controller); - this.addWorkspaceFactoryEventListeners_(controller); - this.assignWorkspaceFactoryClickHandlers_(controller); - this.addWorkspaceFactoryOptionsListeners_(controller); - - // Check standard options and apply the changes to update the view. - controller.setStandardOptionsAndUpdate(); -}; - -/** - * Initialize the colour picker in workspace factory. - * @param {!FactoryController} controller The controller for the workspace - * factory tab. - * @private - */ -WorkspaceFactoryInit.initColourPicker_ = function(controller) { - // Array of Blockly category colours, consistent with the colour defaults. - var colours = [20, 65, 120, 160, 210, 230, 260, 290, 330, '']; - // Convert hue numbers to RRGGBB strings. - for (var i = 0; i < colours.length; i++) { - if (colours[i] !== '') { - colours[i] = Blockly.hueToHex(colours[i]).substring(1); - } - } - // Convert to 2D array. - var maxCols = Math.ceil(Math.sqrt(colours.length)); - var grid = []; - var row = []; - for (var i = 0; i < colours.length; i++) { - row.push(colours[i]); - if (row.length == maxCols) { - grid.push(row); - row = []; - } - } - if (row.length) { - grid.push(row); - } - - // Override the default colours. - cp_grid = grid; -}; - -/** - * Assign click handlers for workspace factory. - * @param {!FactoryController} controller The controller for the workspace - * factory tab. - * @private - */ -WorkspaceFactoryInit.assignWorkspaceFactoryClickHandlers_ = - function(controller) { - - // Import Custom Blocks button. - document.getElementById('button_importBlocks').addEventListener - ('click', - function() { - blocklyFactory.openModal('dropdownDiv_importBlocks'); - }); - document.getElementById('input_importBlocksJson').addEventListener - ('change', - function() { - controller.importBlocks(event.target.files[0], 'JSON'); - }); - document.getElementById('input_importBlocksJson').addEventListener - ('click', function() {blocklyFactory.closeModal()}); - document.getElementById('input_importBlocksJs').addEventListener - ('change', - function() { - controller.importBlocks(event.target.files[0], 'JavaScript'); - }); - document.getElementById('input_importBlocksJs').addEventListener - ('click', function() {blocklyFactory.closeModal()}); - - // Load to Edit button. - document.getElementById('button_load').addEventListener - ('click', - function() { - blocklyFactory.openModal('dropdownDiv_load'); - }); - document.getElementById('input_loadToolbox').addEventListener - ('change', - function() { - controller.importFile(event.target.files[0], - WorkspaceFactoryController.MODE_TOOLBOX); - }); - document.getElementById('input_loadToolbox').addEventListener - ('click', function() {blocklyFactory.closeModal()}); - document.getElementById('input_loadPreload').addEventListener - ('change', - function() { - controller.importFile(event.target.files[0], - WorkspaceFactoryController.MODE_PRELOAD); - }); - document.getElementById('input_loadPreload').addEventListener - ('click', function() {blocklyFactory.closeModal()}); - - // Export button. - document.getElementById('dropdown_exportOptions').addEventListener - ('click', - function() { - controller.exportInjectFile(); - blocklyFactory.closeModal(); - }); - document.getElementById('dropdown_exportToolbox').addEventListener - ('click', - function() { - controller.exportXmlFile(WorkspaceFactoryController.MODE_TOOLBOX); - blocklyFactory.closeModal(); - }); - document.getElementById('dropdown_exportPreload').addEventListener - ('click', - function() { - controller.exportXmlFile(WorkspaceFactoryController.MODE_PRELOAD); - blocklyFactory.closeModal(); - }); - document.getElementById('dropdown_exportAll').addEventListener - ('click', - function() { - controller.exportInjectFile(); - controller.exportXmlFile(WorkspaceFactoryController.MODE_TOOLBOX); - controller.exportXmlFile(WorkspaceFactoryController.MODE_PRELOAD); - blocklyFactory.closeModal(); - }); - document.getElementById('button_export').addEventListener - ('click', - function() { - blocklyFactory.openModal('dropdownDiv_export'); - }); - - // Clear button. - document.getElementById('button_clear').addEventListener - ('click', - function() { - controller.clearAll(); - }); - - // Toolbox and Workspace tabs. - document.getElementById('tab_toolbox').addEventListener - ('click', - function() { - controller.setMode(WorkspaceFactoryController.MODE_TOOLBOX); - }); - document.getElementById('tab_preload').addEventListener - ('click', - function() { - controller.setMode(WorkspaceFactoryController.MODE_PRELOAD); - }); - - // '+' button. - document.getElementById('button_add').addEventListener - ('click', - function() { - blocklyFactory.openModal('dropdownDiv_add'); - }); - document.getElementById('dropdown_newCategory').addEventListener - ('click', - function() { - controller.addCategory(); - blocklyFactory.closeModal(); - }); - document.getElementById('dropdown_loadCategory').addEventListener - ('click', - function() { - controller.loadCategory(); - blocklyFactory.closeModal(); - }); - document.getElementById('dropdown_separator').addEventListener - ('click', - function() { - controller.addSeparator(); - blocklyFactory.closeModal(); - }); - document.getElementById('dropdown_loadStandardToolbox').addEventListener - ('click', - function() { - controller.loadStandardToolbox(); - blocklyFactory.closeModal(); - }); - - // '-' button. - document.getElementById('button_remove').addEventListener - ('click', - function() { - controller.removeElement(); - }); - - // Up/Down buttons. - document.getElementById('button_up').addEventListener - ('click', - function() { - controller.moveElement(-1); - }); - document.getElementById('button_down').addEventListener - ('click', - function() { - controller.moveElement(1); - }); - - // Edit Category button. - document.getElementById('button_editCategory').addEventListener - ('click', - function() { - var selected = controller.model.getSelected(); - // Return if a category is not selected. - if (selected.type != ListElement.TYPE_CATEGORY) { - return; - } - document.getElementById('categoryName').value = selected.name; - document.getElementById('categoryColour').value = selected.color ? - selected.color.substring(1).toLowerCase() : ''; - console.log(document.getElementById('categoryColour').value); - // Link the colour picker to the field. - cp_init('categoryColour'); - blocklyFactory.openModal('dropdownDiv_editCategory'); - }); - - document.getElementById('categorySave').addEventListener - ('click', - function() { - var name = document.getElementById('categoryName').value.trim(); - var colour = document.getElementById('categoryColour').value; - colour = colour ? '#' + colour : null; - controller.changeSelectedCategory(name, colour); - blocklyFactory.closeModal(); - }); - - // Make/Remove Shadow buttons. - document.getElementById('button_addShadow').addEventListener - ('click', - function() { - controller.addShadow(); - WorkspaceFactoryInit.displayAddShadow_(false); - WorkspaceFactoryInit.displayRemoveShadow_(true); - }); - document.getElementById('button_removeShadow').addEventListener - ('click', - function() { - controller.removeShadow(); - WorkspaceFactoryInit.displayAddShadow_(true); - WorkspaceFactoryInit.displayRemoveShadow_(false); - - // Disable shadow editing button if turning invalid shadow block back - // to normal block. - if (!Blockly.selected.getSurroundParent()) { - document.getElementById('button_addShadow').disabled = true; - } - }); - - // Help button on workspace tab. - document.getElementById('button_optionsHelp').addEventListener - ('click', function() { - open('https://developers.google.com/blockly/guides/get-started/web#configuration'); - }); - - // Reset to Default button on workspace tab. - document.getElementById('button_standardOptions').addEventListener - ('click', function() { - controller.setStandardOptionsAndUpdate(); - }); -}; - -/** - * Add event listeners for workspace factory. - * @param {!FactoryController} controller The controller for the workspace - * factory tab. - * @private - */ -WorkspaceFactoryInit.addWorkspaceFactoryEventListeners_ = function(controller) { - // Use up and down arrow keys to move categories. - window.addEventListener('keydown', function(e) { - // Don't let arrow keys have any effect if not in Workspace Factory - // editing the toolbox. - if (!(controller.keyEventsEnabled && controller.selectedMode - == WorkspaceFactoryController.MODE_TOOLBOX)) { - return; - } - - if (e.keyCode == 38) { - // Arrow up. - controller.moveElement(-1); - } else if (e.keyCode == 40) { - // Arrow down. - controller.moveElement(1); - } - }); - - // Determines if a block breaks shadow block placement rules. - // Breaks rules if (1) a shadow block no longer has a valid - // parent, or (2) a normal block is inside of a shadow block. - var isInvalidBlockPlacement = function(block) { - return ((controller.isUserGenShadowBlock(block.id) && - !block.getSurroundParent()) || - (!controller.isUserGenShadowBlock(block.id) && - block.getSurroundParent() && - controller.isUserGenShadowBlock(block.getSurroundParent().id))); - }; - - // Add change listeners for toolbox workspace in workspace factory. - controller.toolboxWorkspace.addChangeListener(function(e) { - // Listen for Blockly move and delete events to update preview. - // Not listening for Blockly create events because causes the user to drop - // blocks when dragging them into workspace. Could cause problems if ever - // load blocks into workspace directly without calling updatePreview. - if (e.type == Blockly.Events.BLOCK_MOVE || - e.type == Blockly.Events.BLOCK_DELETE || - e.type == Blockly.Events.BLOCK_CHANGE) { - controller.saveStateFromWorkspace(); - controller.updatePreview(); - } - - // Listen for Blockly UI events to correctly enable the "Edit Block" button. - // Only enable "Edit Block" when a block is selected and it has a - // surrounding parent, meaning it is nested in another block (blocks that - // are not nested in parents cannot be shadow blocks). - if (e.type == Blockly.Events.BLOCK_MOVE || (e.type == Blockly.Events.UI && - e.element == 'selected')) { - var selected = Blockly.selected; - - // Show shadow button if a block is selected. Show "Add Shadow" if - // a block is not a shadow block, show "Remove Shadow" if it is a - // shadow block. - if (selected) { - var isShadow = controller.isUserGenShadowBlock(selected.id); - WorkspaceFactoryInit.displayAddShadow_(!isShadow); - WorkspaceFactoryInit.displayRemoveShadow_(isShadow); - } else { - WorkspaceFactoryInit.displayAddShadow_(false); - WorkspaceFactoryInit.displayRemoveShadow_(false); - } - - if (selected != null && selected.getSurroundParent() != null && - !controller.isUserGenShadowBlock(selected.getSurroundParent().id)) { - // Selected block is a valid shadow block or could be a valid shadow - // block. - - // Enable block editing and remove warnings if the block is not a - // variable user-generated shadow block. - document.getElementById('button_addShadow').disabled = false; - document.getElementById('button_removeShadow').disabled = false; - - if (!FactoryUtils.hasVariableField(selected) && - controller.isDefinedBlock(selected)) { - selected.setWarningText(null); - } - } else { - // Selected block cannot be a valid shadow block. - - if (selected != null && isInvalidBlockPlacement(selected)) { - // Selected block breaks shadow block rules. - // Invalid shadow block if (1) a shadow block no longer has a valid - // parent, or (2) a normal block is inside of a shadow block. - - if (!controller.isUserGenShadowBlock(selected.id)) { - // Warn if a non-shadow block is nested inside a shadow block. - selected.setWarningText('Only shadow blocks can be nested inside\n' - + 'other shadow blocks.'); - } else if (!FactoryUtils.hasVariableField(selected)) { - // Warn if a shadow block is invalid only if not replacing - // warning for variables. - selected.setWarningText('Shadow blocks must be nested inside other' - + ' blocks.') - } - - // Give editing options so that the user can make an invalid shadow - // block a normal block. - document.getElementById('button_removeShadow').disabled = false; - document.getElementById('button_addShadow').disabled = true; - } else { - // Selected block does not break any shadow block rules, but cannot - // be a shadow block. - - // Remove possible 'invalid shadow block placement' warning. - if (selected != null && controller.isDefinedBlock(selected) && - (!FactoryUtils.hasVariableField(selected) || - !controller.isUserGenShadowBlock(selected.id))) { - selected.setWarningText(null); - } - - // No block selected that is a shadow block or could be a valid shadow - // block. Disable block editing. - document.getElementById('button_addShadow').disabled = true; - document.getElementById('button_removeShadow').disabled = true; - } - } - } - - // Convert actual shadow blocks added from the toolbox to user-generated - // shadow blocks. - if (e.type == Blockly.Events.BLOCK_CREATE) { - controller.convertShadowBlocks(); - - // Let the user create a Variables or Functions category if they use - // blocks from either category. - - // Get all children of a block and add them to childList. - var getAllChildren = function(block, childList) { - childList.push(block); - var children = block.getChildren(); - for (var i = 0, child; child = children[i]; i++) { - getAllChildren(child, childList); - } - }; - - var newBaseBlock = controller.toolboxWorkspace.getBlockById(e.blockId); - var allNewBlocks = []; - getAllChildren(newBaseBlock, allNewBlocks); - var variableCreated = false; - var procedureCreated = false; - - // Check if the newly created block or any of its children are variable - // or procedure blocks. - for (var i = 0, block; block = allNewBlocks[i]; i++) { - if (FactoryUtils.hasVariableField(block)) { - variableCreated = true; - } else if (FactoryUtils.isProcedureBlock(block)) { - procedureCreated = true; - } - } - - // If any of the newly created blocks are variable or procedure blocks, - // prompt the user to create the corresponding standard category. - if (variableCreated && !controller.hasVariablesCategory()) { - if (confirm('Your new block has a variables field. To use this block ' - + 'fully, you will need a Variables category. Do you want to add ' - + 'a Variables category to your custom toolbox?')) { - controller.setMode(WorkspaceFactoryController.MODE_TOOLBOX); - controller.loadCategoryByName('variables'); - } - } - - if (procedureCreated && !controller.hasProceduresCategory()) { - if (confirm('Your new block is a function block. To use this block ' - + 'fully, you will need a Functions category. Do you want to add ' - + 'a Functions category to your custom toolbox?')) { - controller.setMode(WorkspaceFactoryController.MODE_TOOLBOX); - controller.loadCategoryByName('functions'); - } - } - } - }); -}; - -/** - * Display or hide the add shadow button. - * @param {boolean} show True if the add shadow button should be shown, false - * otherwise. - */ -WorkspaceFactoryInit.displayAddShadow_ = function(show) { - document.getElementById('button_addShadow').style.display = - show ? 'inline-block' : 'none'; -}; - -/** - * Display or hide the remove shadow button. - * @param {boolean} show True if the remove shadow button should be shown, false - * otherwise. - */ -WorkspaceFactoryInit.displayRemoveShadow_ = function(show) { - document.getElementById('button_removeShadow').style.display = - show ? 'inline-block' : 'none'; -}; - -/** - * Add listeners for workspace factory options input elements. - * @param {!FactoryController} controller The controller for the workspace - * factory tab. - * @private - */ -WorkspaceFactoryInit.addWorkspaceFactoryOptionsListeners_ = - function(controller) { - // Checking the grid checkbox displays grid options. - document.getElementById('option_grid_checkbox').addEventListener('change', - function(e) { - document.getElementById('grid_options').style.display = - document.getElementById('option_grid_checkbox').checked ? - 'block' : 'none'; - }); - - // Checking the zoom checkbox displays zoom options. - document.getElementById('option_zoom_checkbox').addEventListener('change', - function(e) { - document.getElementById('zoom_options').style.display = - document.getElementById('option_zoom_checkbox').checked ? - 'block' : 'none'; - }); - - // Checking the readonly checkbox enables/disables other options. - document.getElementById('option_readOnly_checkbox').addEventListener('change', - function(e) { - var checkbox = document.getElementById('option_readOnly_checkbox'); - blocklyFactory.ifCheckedEnable(!checkbox.checked, - ['readonly1', 'readonly2']); - }); - - document.getElementById('option_infiniteBlocks_checkbox').addEventListener('change', - function(e) { - document.getElementById('maxBlockNumber_option').style.display = - document.getElementById('option_infiniteBlocks_checkbox').checked ? - 'none' : 'block'; - }); - - // Generate new options every time an options input is updated. - var div = document.getElementById('workspace_options'); - var options = div.getElementsByTagName('input'); - for (var i = 0, option; option = options[i]; i++) { - option.addEventListener('change', function() { - controller.generateNewOptions(); - }); - } -}; diff --git a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_model.js b/lib/blockly/demos/blockfactory/workspacefactory/wfactory_model.js deleted file mode 100644 index a295a49..0000000 --- a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_model.js +++ /dev/null @@ -1,561 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Stores and updates information about state and categories - * in workspace factory. Each list element is either a separator or a category, - * and each category stores its name, XML to load that category, color, - * custom tags, and a unique ID making it possible to change category names and - * move categories easily. Keeps track of the currently selected list - * element. Also keeps track of all the user-created shadow blocks and - * manipulates them as necessary. - * - * @author Emma Dauterman (evd2014) - */ - -/** - * Class for a WorkspaceFactoryModel - * @constructor - */ -WorkspaceFactoryModel = function() { - // Ordered list of ListElement objects. Empty if there is a single flyout. - this.toolboxList = []; - // ListElement for blocks in a single flyout. Null if a toolbox exists. - this.flyout = new ListElement(ListElement.TYPE_FLYOUT); - // Array of block IDs for all user created shadow blocks. - this.shadowBlocks = []; - // Reference to currently selected ListElement. Stored in this.toolboxList if - // there are categories, or in this.flyout if blocks are displayed in a single - // flyout. - this.selected = this.flyout; - // Boolean for if a Variable category has been added. - this.hasVariableCategory = false; - // Boolean for if a Procedure category has been added. - this.hasProcedureCategory = false; - // XML to be pre-loaded to workspace. Empty on default; - this.preloadXml = Blockly.utils.xml.createElement('xml'); - // Options object to be configured for Blockly inject call. - this.options = new Object(null); - // Block Library block types. - this.libBlockTypes = []; - // Imported block types. - this.importedBlockTypes = []; - // -}; - -/** - * Given a name, determines if it is the name of a category already present. - * Used when getting a valid category name from the user. - * @param {string} name String name to be compared against. - * @return {boolean} True if string is a used category name, false otherwise. - */ -WorkspaceFactoryModel.prototype.hasCategoryByName = function(name) { - for (var i = 0; i < this.toolboxList.length; i++) { - if (this.toolboxList[i].type == ListElement.TYPE_CATEGORY && - this.toolboxList[i].name == name) { - return true; - } - } - return false; -}; - -/** - * Determines if a category with the 'VARIABLE' tag exists. - * @return {boolean} True if there exists a category with the Variables tag, - * false otherwise. - */ -WorkspaceFactoryModel.prototype.hasVariables = function() { - return this.hasVariableCategory; -}; - -/** - * Determines if a category with the 'PROCEDURE' tag exists. - * @return {boolean} True if there exists a category with the Procedures tag, - * false otherwise. - */ -WorkspaceFactoryModel.prototype.hasProcedures = function() { - return this.hasProcedureCategory; -}; - -/** - * Determines if the user has any elements in the toolbox. Uses the length of - * toolboxList. - * @return {boolean} True if elements exist, false otherwise. - */ -WorkspaceFactoryModel.prototype.hasElements = function() { - return this.toolboxList.length > 0; -}; - -/** - * Given a ListElement, adds it to the toolbox list. - * @param {!ListElement} element The element to be added to the list. - */ -WorkspaceFactoryModel.prototype.addElementToList = function(element) { - // Update state if the copied category has a custom tag. - this.hasVariableCategory = element.custom == 'VARIABLE' ? true : - this.hasVariableCategory; - this.hasProcedureCategory = element.custom == 'PROCEDURE' ? true : - this.hasProcedureCategory; - // Add element to toolboxList. - this.toolboxList.push(element); - // Empty single flyout. - this.flyout = null; -}; - -/** - * Given an index, deletes a list element and all associated data. - * @param {number} index The index of the list element to delete. - */ -WorkspaceFactoryModel.prototype.deleteElementFromList = function(index) { - // Check if index is out of bounds. - if (index < 0 || index >= this.toolboxList.length) { - return; // No entry to delete. - } - // Check if need to update flags. - this.hasVariableCategory = this.toolboxList[index].custom == 'VARIABLE' ? - false : this.hasVariableCategory; - this.hasProcedureCategory = this.toolboxList[index].custom == 'PROCEDURE' ? - false : this.hasProcedureCategory; - // Remove element. - this.toolboxList.splice(index, 1); -}; - -/** - * Sets selected to be an empty category not in toolbox list if toolbox list - * is empty. Should be called when removing the last element from toolbox list. - * If the toolbox list is empty, selected stores the XML for the single flyout - * of blocks displayed. - */ -WorkspaceFactoryModel.prototype.createDefaultSelectedIfEmpty = function() { - if (this.toolboxList.length == 0) { - this.flyout = new ListElement(ListElement.TYPE_FLYOUT); - this.selected = this.flyout; - } -}; - -/** - * Moves a list element to a certain position in toolboxList by removing it - * and then inserting it at the correct index. Checks that indices are in - * bounds (throws error if not), but assumes that oldIndex is the correct index - * for list element. - * @param {!ListElement} element The element to move in toolboxList. - * @param {number} newIndex The index to insert the element at. - * @param {number} oldIndex The index the element is currently at. - */ -WorkspaceFactoryModel.prototype.moveElementToIndex = function(element, newIndex, - oldIndex) { - // Check that indexes are in bounds. - if (newIndex < 0 || newIndex >= this.toolboxList.length || oldIndex < 0 || - oldIndex >= this.toolboxList.length) { - throw Error('Index out of bounds when moving element in the model.'); - } - this.deleteElementFromList(oldIndex); - this.toolboxList.splice(newIndex, 0, element); -}; - -/** - * Returns the ID of the currently selected element. Returns null if there are - * no categories (if selected == null). - * @return {string} The ID of the element currently selected. - */ -WorkspaceFactoryModel.prototype.getSelectedId = function() { - return this.selected ? this.selected.id : null; -}; - -/** - * Returns the name of the currently selected category. Returns null if there - * are no categories (if selected == null) or the selected element is not - * a category (in which case its name is null). - * @return {string} The name of the category currently selected. - */ -WorkspaceFactoryModel.prototype.getSelectedName = function() { - return this.selected ? this.selected.name : null; -}; - -/** - * Returns the currently selected list element object. - * @return {ListElement} The currently selected ListElement - */ -WorkspaceFactoryModel.prototype.getSelected = function() { - return this.selected; -}; - -/** - * Sets list element currently selected by id. - * @param {string} id ID of list element that should now be selected. - */ -WorkspaceFactoryModel.prototype.setSelectedById = function(id) { - this.selected = this.getElementById(id); -}; - -/** - * Given an ID of a list element, returns the index of that list element in - * toolboxList. Returns -1 if ID is not present. - * @param {string} id The ID of list element to search for. - * @return {number} The index of the list element in toolboxList, or -1 if it - * doesn't exist. - */ -WorkspaceFactoryModel.prototype.getIndexByElementId = function(id) { - for (var i = 0; i < this.toolboxList.length; i++) { - if (this.toolboxList[i].id == id) { - return i; - } - } - return -1; // ID not present in toolboxList. -}; - -/** - * Given the ID of a list element, returns that ListElement object. - * @param {string} id The ID of element to search for. - * @return {ListElement} Corresponding ListElement object in toolboxList, or - * null if that element does not exist. - */ -WorkspaceFactoryModel.prototype.getElementById = function(id) { - for (var i = 0; i < this.toolboxList.length; i++) { - if (this.toolboxList[i].id == id) { - return this.toolboxList[i]; - } - } - return null; // ID not present in toolboxList. -}; - -/** - * Given the index of a list element in toolboxList, returns that ListElement - * object. - * @param {number} index The index of the element to return. - * @return {ListElement} The corresponding ListElement object in toolboxList. - */ -WorkspaceFactoryModel.prototype.getElementByIndex = function(index) { - if (index < 0 || index >= this.toolboxList.length) { - return null; - } - return this.toolboxList[index]; -}; - -/** - * Returns the XML to load the selected element. - * @return {!Element} The XML of the selected element, or null if there is - * no selected element. - */ -WorkspaceFactoryModel.prototype.getSelectedXml = function() { - return this.selected ? this.selected.xml : null; -}; - -/** - * Return ordered list of ListElement objects. - * @return {!Array.} ordered list of ListElement objects - */ -WorkspaceFactoryModel.prototype.getToolboxList = function() { - return this.toolboxList; -}; - -/** - * Gets the ID of a category given its name. - * @param {string} name Name of category. - * @return {number} ID of category - */ -WorkspaceFactoryModel.prototype.getCategoryIdByName = function(name) { - for (var i = 0; i < this.toolboxList.length; i++) { - if (this.toolboxList[i].name == name) { - return this.toolboxList[i].id; - } - } - return null; // Name not present in toolboxList. -}; - -/** - * Clears the toolbox list, deleting all ListElements. - */ -WorkspaceFactoryModel.prototype.clearToolboxList = function() { - this.toolboxList = []; - this.hasVariableCategory = false; - this.hasProcedureCategory = false; - this.shadowBlocks = []; - this.selected.xml = Blockly.utils.xml.createElement('xml'); -}; - -/** - * Class for a ListElement - * Adds a shadow block to the list of shadow blocks. - * @param {string} blockId The unique ID of block to be added. - */ -WorkspaceFactoryModel.prototype.addShadowBlock = function(blockId) { - this.shadowBlocks.push(blockId); -}; - -/** - * Removes a shadow block ID from the list of shadow block IDs if that ID is - * in the list. - * @param {string} blockId The unique ID of block to be removed. - */ -WorkspaceFactoryModel.prototype.removeShadowBlock = function(blockId) { - for (var i = 0; i < this.shadowBlocks.length; i++) { - if (this.shadowBlocks[i] == blockId) { - this.shadowBlocks.splice(i, 1); - return; - } - } -}; - -/** - * Determines if a block is a shadow block given a unique block ID. - * @param {string} blockId The unique ID of the block to examine. - * @return {boolean} True if the block is a user-generated shadow block, false - * otherwise. - */ -WorkspaceFactoryModel.prototype.isShadowBlock = function(blockId) { - for (var i = 0; i < this.shadowBlocks.length; i++) { - if (this.shadowBlocks[i] == blockId) { - return true; - } - } - return false; -}; - -/** - * Given a set of blocks currently loaded, returns all blocks in the workspace - * that are user generated shadow blocks. - * @param {!} blocks Array of blocks currently loaded. - * @return {!} Array of user-generated shadow blocks currently - * loaded. - */ -WorkspaceFactoryModel.prototype.getShadowBlocksInWorkspace = - function(workspaceBlocks) { - var shadowsInWorkspace = []; - for (var i = 0; i < workspaceBlocks.length; i++) { - if (this.isShadowBlock(workspaceBlocks[i].id)) { - shadowsInWorkspace.push(workspaceBlocks[i]); - } - } - return shadowsInWorkspace; -}; - -/** - * Adds a custom tag to a category, updating state variables accordingly. - * Only accepts 'VARIABLE' and 'PROCEDURE' tags. - * @param {!ListElement} category The category to add the tag to. - * @param {string} tag The custom tag to add to the category. - */ -WorkspaceFactoryModel.prototype.addCustomTag = function(category, tag) { - // Only update list elements that are categories. - if (category.type != ListElement.TYPE_CATEGORY) { - return; - } - // Only update the tag to be 'VARIABLE' or 'PROCEDURE'. - if (tag == 'VARIABLE') { - this.hasVariableCategory = true; - category.custom = 'VARIABLE'; - } else if (tag == 'PROCEDURE') { - this.hasProcedureCategory = true; - category.custom = 'PROCEDURE'; - } -}; - -/** - * Have basic pre-loaded workspace working - * Saves XML as XML to be pre-loaded into the workspace. - * @param {!Element} xml The XML to be saved. - */ -WorkspaceFactoryModel.prototype.savePreloadXml = function(xml) { - this.preloadXml = xml -}; - -/** - * Gets the XML to be pre-loaded into the workspace. - * @return {!Element} The XML for the workspace. - */ -WorkspaceFactoryModel.prototype.getPreloadXml = function() { - return this.preloadXml; -}; - -/** - * Sets a new options object for injecting a Blockly workspace. - * @param {Object} options Options object for injecting a Blockly workspace. - */ -WorkspaceFactoryModel.prototype.setOptions = function(options) { - this.options = options; -}; - -/* - * Returns an array of all the block types currently being used in the toolbox - * and the pre-loaded blocks. No duplicates. - * TODO(evd2014): Move pushBlockTypesToList to FactoryUtils. - * @return {!Array.} Array of block types currently being used. - */ -WorkspaceFactoryModel.prototype.getAllUsedBlockTypes = function() { - var blockTypeList = []; - - // Given XML for the workspace, adds all block types included in the XML - // to the list, not including duplicates. - var pushBlockTypesToList = function(xml, list) { - // Get all block XML nodes. - var blocks = xml.getElementsByTagName('block'); - - // Add block types if not already in list. - for (var i = 0; i < blocks.length; i++) { - var type = blocks[i].getAttribute('type'); - if (list.indexOf(type) == -1) { - list.push(type); - } - } - }; - - if (this.flyout) { - // If has a single flyout, add block types for the single flyout. - pushBlockTypesToList(this.getSelectedXml(), blockTypeList); - } else { - // If has categories, add block types for each category. - - for (var i = 0, category; category = this.toolboxList[i]; i++) { - if (category.type == ListElement.TYPE_CATEGORY) { - pushBlockTypesToList(category.xml, blockTypeList); - } - } - } - - // Add the block types from any pre-loaded blocks. - pushBlockTypesToList(this.getPreloadXml(), blockTypeList); - - return blockTypeList; -}; - -/** - * Adds new imported block types to the list of current imported block types. - * @param {!Array.} blockTypes Array of block types imported. - */ -WorkspaceFactoryModel.prototype.addImportedBlockTypes = function(blockTypes) { - this.importedBlockTypes = this.importedBlockTypes.concat(blockTypes); -}; - -/** - * Updates block types in block library. - * @param {!Array.} blockTypes Array of block types in block library. - */ -WorkspaceFactoryModel.prototype.updateLibBlockTypes = function(blockTypes) { - this.libBlockTypes = blockTypes; -}; - -/** - * Determines if a block type is defined as a standard block, in the block - * library, or as an imported block. - * @param {string} blockType Block type to check. - * @return {boolean} True if blockType is defined, false otherwise. - */ -WorkspaceFactoryModel.prototype.isDefinedBlockType = function(blockType) { - var isStandardBlock = StandardCategories.coreBlockTypes.indexOf(blockType) - != -1; - var isLibBlock = this.libBlockTypes.indexOf(blockType) != -1; - var isImportedBlock = this.importedBlockTypes.indexOf(blockType) != -1; - return (isStandardBlock || isLibBlock || isImportedBlock); -}; - -/** - * Checks if any of the block types are already defined. - * @param {!Array.} blockTypes Array of block types. - * @return {boolean} True if a block type in the array is already defined, - * false if none of the blocks are already defined. - */ -WorkspaceFactoryModel.prototype.hasDefinedBlockTypes = function(blockTypes) { - for (var i = 0, blockType; blockType = blockTypes[i]; i++) { - if (this.isDefinedBlockType(blockType)) { - return true; - } - } - return false; -}; - -/** - * Class for a ListElement. - * @constructor - */ -ListElement = function(type, opt_name) { - this.type = type; - // XML DOM element to load the element. - this.xml = Blockly.utils.xml.createElement('xml'); - // Name of category. Can be changed by user. Null if separator. - this.name = opt_name ? opt_name : null; - // Unique ID of element. Does not change. - this.id = Blockly.utils.genUid(); - // Color of category. Default is no color. Null if separator. - this.color = null; - // Stores a custom tag, if necessary. Null if no custom tag or separator. - this.custom = null; -}; - -// List element types. -ListElement.TYPE_CATEGORY = 'category'; -ListElement.TYPE_SEPARATOR = 'separator'; -ListElement.TYPE_FLYOUT = 'flyout'; - -/** - * Saves a category by updating its XML (does not save XML for - * elements that are not categories). - * @param {!Blockly.workspace} workspace The workspace to save category entry - * from. - */ -ListElement.prototype.saveFromWorkspace = function(workspace) { - // Only save XML for categories and flyouts. - if (this.type == ListElement.TYPE_FLYOUT || - this.type == ListElement.TYPE_CATEGORY) { - this.xml = Blockly.Xml.workspaceToDom(workspace); - } -}; - - -/** - * Changes the name of a category object given a new name. Returns if - * not a category. - * @param {string} name New name of category. - */ -ListElement.prototype.changeName = function (name) { - // Only update list elements that are categories. - if (this.type != ListElement.TYPE_CATEGORY) { - return; - } - this.name = name; -}; - -/** - * Sets the color of a category. If tries to set the color of something other - * than a category, returns. - * @param {?string} color The color that should be used for that category, - * or null if none. - */ -ListElement.prototype.changeColor = function (color) { - if (this.type != ListElement.TYPE_CATEGORY) { - return; - } - this.color = color; -}; - -/** - * Makes a copy of the original element and returns it. Everything about the - * copy is identical except for its ID. - * @return {!ListElement} The copy of the ListElement. - */ -ListElement.prototype.copy = function() { - copy = new ListElement(this.type); - // Generate a unique ID for the element. - copy.id = Blockly.utils.genUid(); - // Copy all attributes except ID. - copy.name = this.name; - copy.xml = this.xml; - copy.color = this.color; - copy.custom = this.custom; - // Return copy. - return copy; -}; diff --git a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_view.js b/lib/blockly/demos/blockfactory/workspacefactory/wfactory_view.js deleted file mode 100644 index 287fb3d..0000000 --- a/lib/blockly/demos/blockfactory/workspacefactory/wfactory_view.js +++ /dev/null @@ -1,438 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Controls the UI elements for workspace factory, mainly the category tabs. - * Also includes downloading files because that interacts directly with the DOM. - * Depends on WorkspaceFactoryController (for adding mouse listeners). Tabs for - * each category are stored in tab map, which associates a unique ID for a - * category with a particular tab. - * - * @author Emma Dauterman (edauterman) - */ - - -/** - * Class for a WorkspaceFactoryView - * @constructor - */ -WorkspaceFactoryView = function() { - // For each tab, maps ID of a ListElement to the td DOM element. - this.tabMap = Object.create(null); -}; - -/** - * Adds a category tab to the UI, and updates tabMap accordingly. - * @param {string} name The name of the category being created - * @param {string} id ID of category being created - * @return {!Element} DOM element created for tab - */ -WorkspaceFactoryView.prototype.addCategoryRow = function(name, id) { - var table = document.getElementById('categoryTable'); - var count = table.rows.length; - - // Delete help label and enable category buttons if it's the first category. - if (count == 0) { - document.getElementById('categoryHeader').textContent = 'Your categories:'; - } - - // Create tab. - var row = table.insertRow(count); - var nextEntry = row.insertCell(0); - // Configure tab. - nextEntry.id = this.createCategoryIdName(name); - nextEntry.textContent = name; - // Store tab. - this.tabMap[id] = table.rows[count].cells[0]; - // Return tab. - return nextEntry; -}; - -/** - * Deletes a category tab from the UI and updates tabMap accordingly. - * @param {string} id ID of category to be deleted. - * @param {string} name The name of the category to be deleted. - */ -WorkspaceFactoryView.prototype.deleteElementRow = function(id, index) { - // Delete tab entry. - delete this.tabMap[id]; - // Delete tab row. - var table = document.getElementById('categoryTable'); - var count = table.rows.length; - table.deleteRow(index); - - // If last category removed, add category help text and disable category - // buttons. - this.addEmptyCategoryMessage(); -}; - -/** - * If there are no toolbox elements created, adds a help message to show - * where categories will appear. Should be called when deleting list elements - * in case the last element is deleted. - */ -WorkspaceFactoryView.prototype.addEmptyCategoryMessage = function() { - var table = document.getElementById('categoryTable'); - if (!table.rows.length) { - document.getElementById('categoryHeader').textContent = - 'You currently have no categories.'; - } -}; - -/** - * Given the index of the currently selected element, updates the state of - * the buttons that allow the user to edit the list elements. Updates the edit - * and arrow buttons. Should be called when adding or removing elements - * or when changing to a new element or when swapping to a different element. - * TODO(evd2014): Switch to using CSS to add/remove styles. - * @param {number} selectedIndex The index of the currently selected category, - * -1 if no categories created. - * @param {ListElement} selected The selected ListElement. - */ -WorkspaceFactoryView.prototype.updateState = function(selectedIndex, selected) { - // Disable/enable editing buttons as necessary. - document.getElementById('button_editCategory').disabled = selectedIndex < 0 || - selected.type != ListElement.TYPE_CATEGORY; - document.getElementById('button_remove').disabled = selectedIndex < 0; - document.getElementById('button_up').disabled = selectedIndex <= 0; - var table = document.getElementById('categoryTable'); - document.getElementById('button_down').disabled = selectedIndex >= - table.rows.length - 1 || selectedIndex < 0; - // Disable/enable the workspace as necessary. - this.disableWorkspace(this.shouldDisableWorkspace(selected)); -}; - -/** - * Determines the DOM ID for a category given its name. - * @param {string} name Name of category - * @return {string} ID of category tab - */ -WorkspaceFactoryView.prototype.createCategoryIdName = function(name) { - return 'tab_' + name; -}; - -/** - * Switches a tab on or off. - * @param {string} id ID of the tab to switch on or off. - * @param {boolean} selected True if tab should be on, false if tab should be - * off. - */ -WorkspaceFactoryView.prototype.setCategoryTabSelection = - function(id, selected) { - if (!this.tabMap[id]) { - return; // Exit if tab does not exist. - } - this.tabMap[id].className = selected ? 'tabon' : 'taboff'; -}; - -/** - * Used to bind a click to a certain DOM element (used for category tabs). - * Taken directly from code.js - * @param {string|!Element} e1 Tab element or corresponding ID string. - * @param {!Function} func Function to be executed on click. - */ -WorkspaceFactoryView.prototype.bindClick = function(el, func) { - if (typeof el == 'string') { - el = document.getElementById(el); - } - el.addEventListener('click', func, true); - el.addEventListener('touchend', func, true); -}; - -/** - * Creates a file and downloads it. In some browsers downloads, and in other - * browsers, opens new tab with contents. - * @param {string} filename Name of file - * @param {!Blob} data Blob containing contents to download - */ -WorkspaceFactoryView.prototype.createAndDownloadFile = - function(filename, data) { - var clickEvent = new MouseEvent('click', { - 'view': window, - 'bubbles': true, - 'cancelable': false - }); - var a = document.createElement('a'); - a.href = window.URL.createObjectURL(data); - a.download = filename; - a.textContent = 'Download file!'; - a.dispatchEvent(clickEvent); -}; - -/** - * Given the ID of a certain category, updates the corresponding tab in - * the DOM to show a new name. - * @param {string} newName Name of string to be displayed on tab - * @param {string} id ID of category to be updated - */ -WorkspaceFactoryView.prototype.updateCategoryName = function(newName, id) { - this.tabMap[id].textContent = newName; - this.tabMap[id].id = this.createCategoryIdName(newName); -}; - -/** - * Moves a tab from one index to another. Adjusts index inserting before - * based on if inserting before or after. Checks that the indexes are in - * bounds, throws error if not. - * @param {string} id The ID of the category to move. - * @param {number} newIndex The index to move the category to. - * @param {number} oldIndex The index the category is currently at. - */ -WorkspaceFactoryView.prototype.moveTabToIndex = - function(id, newIndex, oldIndex) { - var table = document.getElementById('categoryTable'); - // Check that indexes are in bounds. - if (newIndex < 0 || newIndex >= table.rows.length || oldIndex < 0 || - oldIndex >= table.rows.length) { - throw Error('Index out of bounds when moving tab in the view.'); - } - - if (newIndex < oldIndex) { - // Inserting before. - var row = table.insertRow(newIndex); - row.appendChild(this.tabMap[id]); - table.deleteRow(oldIndex + 1); - } else { - // Inserting after. - var row = table.insertRow(newIndex + 1); - row.appendChild(this.tabMap[id]); - table.deleteRow(oldIndex); - } -}; - -/** - * Given a category ID and color, use that color to color the left border of the - * tab for that category. - * @param {string} id The ID of the category to color. - * @param {?string} colour The colour for to be used for the border of the tab, - * or null if none. Must be a valid CSS string. - */ -WorkspaceFactoryView.prototype.setBorderColor = function(id, colour) { - var style = this.tabMap[id].style; - if (colour) { - style.borderLeftWidth = '8px'; - style.borderLeftStyle = 'solid'; - style.borderColor = colour; - } else { - style.borderLeftWidth = ''; - style.borderLeftStyle = ''; - style.borderColor = ''; - } -}; - -/** - * Given a separator ID, creates a corresponding tab in the view, updates - * tab map, and returns the tab. - * @param {string} id The ID of the separator. - * @param {!Element} The td DOM element representing the separator. - */ -WorkspaceFactoryView.prototype.addSeparatorTab = function(id) { - var table = document.getElementById('categoryTable'); - var count = table.rows.length; - - if (count == 0) { - document.getElementById('categoryHeader').textContent = 'Your categories:'; - } - // Create separator. - var row = table.insertRow(count); - var nextEntry = row.insertCell(0); - // Configure separator. - nextEntry.style.height = '10px'; - // Store and return separator. - this.tabMap[id] = table.rows[count].cells[0]; - return nextEntry; -}; - -/** - * Disables or enables the workspace by putting a div over or under the - * toolbox workspace, depending on the value of disable. Used when switching - * to/from separators where the user shouldn't be able to drag blocks into - * the workspace. - * @param {boolean} disable True if the workspace should be disabled, false - * if it should be enabled. - */ -WorkspaceFactoryView.prototype.disableWorkspace = function(disable) { - if (disable) { - document.getElementById('toolbox_section').className = 'disabled'; - document.getElementById('toolbox_blocks').style.pointerEvents = 'none'; - } else { - document.getElementById('toolbox_section').className = ''; - document.getElementById('toolbox_blocks').style.pointerEvents = 'auto'; - } - -}; - -/** - * Determines if the workspace should be disabled. The workspace should be - * disabled if category is a separator or has VARIABLE or PROCEDURE tags. - * @return {boolean} True if the workspace should be disabled, false otherwise. - */ -WorkspaceFactoryView.prototype.shouldDisableWorkspace = function(category) { - return category != null && category.type != ListElement.TYPE_FLYOUT && - (category.type == ListElement.TYPE_SEPARATOR || - category.custom == 'VARIABLE' || category.custom == 'PROCEDURE'); -}; - -/** - * Removes all categories and separators in the view. Clears the tabMap to - * reflect this. - */ -WorkspaceFactoryView.prototype.clearToolboxTabs = function() { - this.tabMap = []; - var oldCategoryTable = document.getElementById('categoryTable'); - var newCategoryTable = document.createElement('table'); - newCategoryTable.id = 'categoryTable'; - newCategoryTable.style.width = 'auto'; - oldCategoryTable.parentElement.replaceChild(newCategoryTable, - oldCategoryTable); -}; - -/** - * Given a set of blocks currently loaded user-generated shadow blocks, visually - * marks them without making them actual shadow blocks (allowing them to still - * be editable and movable). - * @param {!Array.} blocks Array of user-generated shadow blocks - * currently loaded. - */ -WorkspaceFactoryView.prototype.markShadowBlocks = function(blocks) { - for (var i = 0; i < blocks.length; i++) { - this.markShadowBlock(blocks[i]); - } -}; - -/** - * Visually marks a user-generated shadow block as a shadow block in the - * workspace without making the block an actual shadow block (allowing it - * to be moved and edited). - * @param {!Blockly.Block} block The block that should be marked as a shadow - * block (must be rendered). - */ -WorkspaceFactoryView.prototype.markShadowBlock = function(block) { - // Add Blockly CSS for user-generated shadow blocks. - Blockly.utils.dom.addClass(block.svgGroup_, 'shadowBlock'); - // If not a valid shadow block, add a warning message. - if (!block.getSurroundParent()) { - block.setWarningText('Shadow blocks must be nested inside' + - ' other blocks to be displayed.'); - } - if (FactoryUtils.hasVariableField(block)) { - block.setWarningText('Cannot make variable blocks shadow blocks.'); - } -}; - -/** - * Removes visual marking for a shadow block given a rendered block. - * @param {!Blockly.Block} block The block that should be unmarked as a shadow - * block (must be rendered). - */ -WorkspaceFactoryView.prototype.unmarkShadowBlock = function(block) { - // Remove Blockly CSS for user-generated shadow blocks. - Blockly.utils.dom.removeClass(block.svgGroup_, 'shadowBlock'); -}; - -/** - * Sets the tabs for modes according to which mode the user is currenly - * editing in. - * @param {string} mode The mode being switched to - * (WorkspaceFactoryController.MODE_TOOLBOX or WorkspaceFactoryController.MODE_PRELOAD). - */ -WorkspaceFactoryView.prototype.setModeSelection = function(mode) { - document.getElementById('tab_preload').className = mode == - WorkspaceFactoryController.MODE_PRELOAD ? 'tabon' : 'taboff'; - document.getElementById('preload_div').style.display = mode == - WorkspaceFactoryController.MODE_PRELOAD ? 'block' : 'none'; - document.getElementById('tab_toolbox').className = mode == - WorkspaceFactoryController.MODE_TOOLBOX ? 'tabon' : 'taboff'; - document.getElementById('toolbox_div').style.display = mode == - WorkspaceFactoryController.MODE_TOOLBOX ? 'block' : 'none'; -}; - -/** - * Updates the help text above the workspace depending on the selected mode. - * @param {string} mode The selected mode (WorkspaceFactoryController.MODE_TOOLBOX or - * WorkspaceFactoryController.MODE_PRELOAD). - */ -WorkspaceFactoryView.prototype.updateHelpText = function(mode) { - if (mode == WorkspaceFactoryController.MODE_TOOLBOX) { - var helpText = 'Drag blocks into the workspace to configure the toolbox ' + - 'in your custom workspace.'; - } else { - var helpText = 'Drag blocks into the workspace to pre-load them in your ' + - 'custom workspace.' - } - document.getElementById('editHelpText').textContent = helpText; -}; - -/** - * Sets the basic options that are not dependent on if there are categories - * or a single flyout of blocks. Updates checkboxes and text fields. - */ -WorkspaceFactoryView.prototype.setBaseOptions = function() { - // Readonly mode. - document.getElementById('option_readOnly_checkbox').checked = false; - blocklyFactory.ifCheckedEnable(true, ['readonly1', 'readonly2']); - - // Set basic options. - document.getElementById('option_css_checkbox').checked = true; - document.getElementById('option_maxBlocks_number').value = 100; - document.getElementById('option_media_text').value = - 'https://blockly-demo.appspot.com/static/media/'; - document.getElementById('option_rtl_checkbox').checked = false; - document.getElementById('option_sounds_checkbox').checked = true; - document.getElementById('option_oneBasedIndex_checkbox').checked = true; - document.getElementById('option_horizontalLayout_checkbox').checked = false; - document.getElementById('option_toolboxPosition_checkbox').checked = false; - - // Check infinite blocks and hide suboption. - document.getElementById('option_infiniteBlocks_checkbox').checked = true; - document.getElementById('maxBlockNumber_option').style.display = - 'none'; - - // Uncheck grid and zoom options and hide suboptions. - document.getElementById('option_grid_checkbox').checked = false; - document.getElementById('grid_options').style.display = 'none'; - document.getElementById('option_zoom_checkbox').checked = false; - document.getElementById('zoom_options').style.display = 'none'; - - // Set grid options. - document.getElementById('gridOption_spacing_number').value = 20; - document.getElementById('gridOption_length_number').value = 1; - document.getElementById('gridOption_colour_text').value = '#888'; - document.getElementById('gridOption_snap_checkbox').checked = false; - - // Set zoom options. - document.getElementById('zoomOption_controls_checkbox').checked = true; - document.getElementById('zoomOption_wheel_checkbox').checked = true; - document.getElementById('zoomOption_startScale_number').value = 1.0; - document.getElementById('zoomOption_maxScale_number').value = 3; - document.getElementById('zoomOption_minScale_number').value = 0.3; - document.getElementById('zoomOption_scaleSpeed_number').value = 1.2; -}; - -/** - * Updates category specific options depending on if there are categories - * currently present. Updates checkboxes and text fields in the view. - * @param {boolean} hasCategories True if categories are present, false if all - * blocks are displayed in a single flyout. - */ -WorkspaceFactoryView.prototype.setCategoryOptions = function(hasCategories) { - document.getElementById('option_collapse_checkbox').checked = hasCategories; - document.getElementById('option_comments_checkbox').checked = hasCategories; - document.getElementById('option_disable_checkbox').checked = hasCategories; - document.getElementById('option_scrollbars_checkbox').checked = hasCategories; - document.getElementById('option_trashcan_checkbox').checked = hasCategories; -}; diff --git a/lib/blockly/demos/blockfactory_old/blocks.js b/lib/blockly/demos/blockfactory_old/blocks.js deleted file mode 100644 index 58c7ca3..0000000 --- a/lib/blockly/demos/blockfactory_old/blocks.js +++ /dev/null @@ -1,824 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blocks for Blockly's Block Factory application. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -Blockly.Blocks['factory_base'] = { - // Base of new block. - init: function() { - this.setColour(120); - this.appendDummyInput() - .appendField('name') - .appendField(new Blockly.FieldTextInput('block_type'), 'NAME'); - this.appendStatementInput('INPUTS') - .setCheck('Input') - .appendField('inputs'); - var dropdown = new Blockly.FieldDropdown([ - ['automatic inputs', 'AUTO'], - ['external inputs', 'EXT'], - ['inline inputs', 'INT']]); - this.appendDummyInput() - .appendField(dropdown, 'INLINE'); - dropdown = new Blockly.FieldDropdown([ - ['no connections', 'NONE'], - ['← left output', 'LEFT'], - ['↕ top+bottom connections', 'BOTH'], - ['↑ top connection', 'TOP'], - ['↓ bottom connection', 'BOTTOM']], - function(option) { - this.sourceBlock_.updateShape_(option); - // Connect a shadow block to this new input. - this.sourceBlock_.spawnOutputShadow_(option); - }); - this.appendDummyInput() - .appendField(dropdown, 'CONNECTIONS'); - this.appendValueInput('COLOUR') - .setCheck('Colour') - .appendField('colour'); - this.setTooltip('Build a custom block by plugging\n' + - 'fields, inputs and other blocks here.'); - this.setHelpUrl( - 'https://developers.google.com/blockly/guides/create-custom-blocks/block-factory'); - }, - mutationToDom: function() { - var container = Blockly.utils.xml.createElement('mutation'); - container.setAttribute('connections', this.getFieldValue('CONNECTIONS')); - return container; - }, - domToMutation: function(xmlElement) { - var connections = xmlElement.getAttribute('connections'); - this.updateShape_(connections); - }, - spawnOutputShadow_: function(option) { - // Helper method for deciding which type of outputs this block needs - // to attach shaddow blocks to. - switch (option) { - case 'LEFT': - this.connectOutputShadow_('OUTPUTTYPE'); - break; - case 'TOP': - this.connectOutputShadow_('TOPTYPE'); - break; - case 'BOTTOM': - this.connectOutputShadow_('BOTTOMTYPE'); - break; - case 'BOTH': - this.connectOutputShadow_('TOPTYPE'); - this.connectOutputShadow_('BOTTOMTYPE'); - break; - } - }, - connectOutputShadow_: function(outputType) { - // Helper method to create & connect shadow block. - var type = this.workspace.newBlock('type_null'); - type.setShadow(true); - type.outputConnection.connect(this.getInput(outputType).connection); - type.initSvg(); - type.render(); - }, - updateShape_: function(option) { - var outputExists = this.getInput('OUTPUTTYPE'); - var topExists = this.getInput('TOPTYPE'); - var bottomExists = this.getInput('BOTTOMTYPE'); - if (option == 'LEFT') { - if (!outputExists) { - this.addTypeInput_('OUTPUTTYPE', 'output type'); - } - } else if (outputExists) { - this.removeInput('OUTPUTTYPE'); - } - if (option == 'TOP' || option == 'BOTH') { - if (!topExists) { - this.addTypeInput_('TOPTYPE', 'top type'); - } - } else if (topExists) { - this.removeInput('TOPTYPE'); - } - if (option == 'BOTTOM' || option == 'BOTH') { - if (!bottomExists) { - this.addTypeInput_('BOTTOMTYPE', 'bottom type'); - } - } else if (bottomExists) { - this.removeInput('BOTTOMTYPE'); - } - }, - addTypeInput_: function(name, label) { - this.appendValueInput(name) - .setCheck('Type') - .appendField(label); - this.moveInputBefore(name, 'COLOUR'); - } -}; - -var FIELD_MESSAGE = 'fields %1 %2'; -var FIELD_ARGS = [ - { - "type": "field_dropdown", - "name": "ALIGN", - "options": [['left', 'LEFT'], ['right', 'RIGHT'], ['centre', 'CENTRE']], - }, - { - "type": "input_statement", - "name": "FIELDS", - "check": "Field" - } -]; - -var TYPE_MESSAGE = 'type %1'; -var TYPE_ARGS = [ - { - "type": "input_value", - "name": "TYPE", - "check": "Type", - "align": "RIGHT" - } -]; - -Blockly.Blocks['input_value'] = { - // Value input. - init: function() { - this.jsonInit({ - "message0": "value input %1 %2", - "args0": [ - { - "type": "field_input", - "name": "INPUTNAME", - "text": "NAME" - }, - { - "type": "input_dummy" - } - ], - "message1": FIELD_MESSAGE, - "args1": FIELD_ARGS, - "message2": TYPE_MESSAGE, - "args2": TYPE_ARGS, - "previousStatement": "Input", - "nextStatement": "Input", - "colour": 210, - "tooltip": "A value socket for horizontal connections.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=71" - }); - }, - onchange: function() { - inputNameCheck(this); - } -}; - -Blockly.Blocks['input_statement'] = { - // Statement input. - init: function() { - this.jsonInit({ - "message0": "statement input %1 %2", - "args0": [ - { - "type": "field_input", - "name": "INPUTNAME", - "text": "NAME" - }, - { - "type": "input_dummy" - }, - ], - "message1": FIELD_MESSAGE, - "args1": FIELD_ARGS, - "message2": TYPE_MESSAGE, - "args2": TYPE_ARGS, - "previousStatement": "Input", - "nextStatement": "Input", - "colour": 210, - "tooltip": "A statement socket for enclosed vertical stacks.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=246" - }); - }, - onchange: function() { - inputNameCheck(this); - } -}; - -Blockly.Blocks['input_dummy'] = { - // Dummy input. - init: function() { - this.jsonInit({ - "message0": "dummy input", - "message1": FIELD_MESSAGE, - "args1": FIELD_ARGS, - "previousStatement": "Input", - "nextStatement": "Input", - "colour": 210, - "tooltip": "For adding fields on a separate row with no " + - "connections. Alignment options (left, right, centre) " + - "apply only to multi-line fields.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=293" - }); - } -}; - -Blockly.Blocks['field_static'] = { - // Text value. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('text') - .appendField(new Blockly.FieldTextInput(''), 'TEXT'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('Static text that serves as a label.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=88'); - } -}; - -Blockly.Blocks['field_input'] = { - // Text input. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('text input') - .appendField(new Blockly.FieldTextInput('default'), 'TEXT') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('An input field for the user to enter text.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=319'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_number'] = { - // Numeric input. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('numeric input') - .appendField(new Blockly.FieldNumber(0), 'VALUE') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.appendDummyInput() - .appendField('min') - .appendField(new Blockly.FieldNumber(-Infinity), 'MIN') - .appendField('max') - .appendField(new Blockly.FieldNumber(Infinity), 'MAX') - .appendField('precision') - .appendField(new Blockly.FieldNumber(0, 0), 'PRECISION'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('An input field for the user to enter a number.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=319'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_angle'] = { - // Angle input. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('angle input') - .appendField(new Blockly.FieldAngle('90'), 'ANGLE') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('An input field for the user to enter an angle.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=372'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_dropdown'] = { - // Dropdown menu. - init: function() { - this.appendDummyInput() - .appendField('dropdown') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.optionCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setMutator(new Blockly.Mutator(['field_dropdown_option'])); - this.setColour(160); - this.setTooltip('Dropdown menu with a list of options.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=386'); - }, - mutationToDom: function(workspace) { - // Create XML to represent menu options. - var container = Blockly.utils.xml.createElement('mutation'); - container.setAttribute('options', this.optionCount_); - return container; - }, - domToMutation: function(container) { - // Parse XML to restore the menu options. - this.optionCount_ = parseInt(container.getAttribute('options'), 10); - this.updateShape_(); - }, - decompose: function(workspace) { - // Populate the mutator's dialog with this block's components. - var containerBlock = workspace.newBlock('field_dropdown_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.optionCount_; i++) { - var optionBlock = workspace.newBlock('field_dropdown_option'); - optionBlock.initSvg(); - connection.connect(optionBlock.previousConnection); - connection = optionBlock.nextConnection; - } - return containerBlock; - }, - compose: function(containerBlock) { - // Reconfigure this block based on the mutator dialog's components. - var optionBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var data = []; - while (optionBlock) { - data.push([optionBlock.userData_, optionBlock.cpuData_]); - optionBlock = optionBlock.nextConnection && - optionBlock.nextConnection.targetBlock(); - } - this.optionCount_ = data.length; - this.updateShape_(); - // Restore any data. - for (var i = 0; i < this.optionCount_; i++) { - this.setFieldValue(data[i][0] || 'option', 'USER' + i); - this.setFieldValue(data[i][1] || 'OPTIONNAME', 'CPU' + i); - } - }, - saveConnections: function(containerBlock) { - // Store names and values for each option. - var optionBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (optionBlock) { - optionBlock.userData_ = this.getFieldValue('USER' + i); - optionBlock.cpuData_ = this.getFieldValue('CPU' + i); - i++; - optionBlock = optionBlock.nextConnection && - optionBlock.nextConnection.targetBlock(); - } - }, - updateShape_: function() { - // Modify this block to have the correct number of options. - // Add new options. - for (var i = 0; i < this.optionCount_; i++) { - if (!this.getInput('OPTION' + i)) { - this.appendDummyInput('OPTION' + i) - .appendField(new Blockly.FieldTextInput('option'), 'USER' + i) - .appendField(',') - .appendField(new Blockly.FieldTextInput('OPTIONNAME'), 'CPU' + i); - } - } - // Remove deleted options. - while (this.getInput('OPTION' + i)) { - this.removeInput('OPTION' + i); - i++; - } - }, - onchange: function() { - if (this.workspace && this.optionCount_ < 1) { - this.setWarningText('Drop down menu must\nhave at least one option.'); - } else { - fieldNameCheck(this); - } - } -}; - -Blockly.Blocks['field_dropdown_container'] = { - // Container. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('add options'); - this.appendStatementInput('STACK'); - this.setTooltip('Add, remove, or reorder options\n' + - 'to reconfigure this dropdown menu.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=386'); - this.contextMenu = false; - } -}; - -Blockly.Blocks['field_dropdown_option'] = { - // Add option. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('option'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip('Add a new option to the dropdown menu.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=386'); - this.contextMenu = false; - } -}; - -Blockly.Blocks['field_checkbox'] = { - // Checkbox. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('checkbox') - .appendField(new Blockly.FieldCheckbox('TRUE'), 'CHECKED') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('Checkbox field.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=485'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_colour'] = { - // Colour input. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('colour') - .appendField(new Blockly.FieldColour('#ff0000'), 'COLOUR') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('Colour input field.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=495'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_date'] = { - // Date input. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('date') - .appendField(new Blockly.FieldDate(), 'DATE') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('Date input field.'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_variable'] = { - // Dropdown for variables. - init: function() { - this.setColour(160); - this.appendDummyInput() - .appendField('variable') - .appendField(new Blockly.FieldTextInput('item'), 'TEXT') - .appendField(',') - .appendField(new Blockly.FieldTextInput('NAME'), 'FIELDNAME'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('Dropdown menu for variable names.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=510'); - }, - onchange: function() { - fieldNameCheck(this); - } -}; - -Blockly.Blocks['field_image'] = { - // Image. - init: function() { - this.setColour(160); - var src = 'https://www.gstatic.com/codesite/ph/images/star_on.gif'; - this.appendDummyInput() - .appendField('image') - .appendField(new Blockly.FieldTextInput(src), 'SRC'); - this.appendDummyInput() - .appendField('width') - .appendField(new Blockly.FieldNumber('15', 0, NaN, 1), 'WIDTH') - .appendField('height') - .appendField(new Blockly.FieldNumber('15', 0, NaN, 1), 'HEIGHT') - .appendField('alt text') - .appendField(new Blockly.FieldTextInput('*'), 'ALT'); - this.setPreviousStatement(true, 'Field'); - this.setNextStatement(true, 'Field'); - this.setTooltip('Static image (JPEG, PNG, GIF, SVG, BMP).\n' + - 'Retains aspect ratio regardless of height and width.\n' + - 'Alt text is for when collapsed.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=567'); - } -}; - -Blockly.Blocks['type_group'] = { - // Group of types. - init: function() { - this.typeCount_ = 2; - this.updateShape_(); - this.setOutput(true, 'Type'); - this.setMutator(new Blockly.Mutator(['type_group_item'])); - this.setColour(230); - this.setTooltip('Allows more than one type to be accepted.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=677'); - }, - mutationToDom: function(workspace) { - // Create XML to represent a group of types. - var container = Blockly.utils.xml.createElement('mutation'); - container.setAttribute('types', this.typeCount_); - return container; - }, - domToMutation: function(container) { - // Parse XML to restore the group of types. - this.typeCount_ = parseInt(container.getAttribute('types'), 10); - this.updateShape_(); - for (var i = 0; i < this.typeCount_; i++) { - this.removeInput('TYPE' + i); - } - for (var i = 0; i < this.typeCount_; i++) { - var input = this.appendValueInput('TYPE' + i) - .setCheck('Type'); - if (i == 0) { - input.appendField('any of'); - } - } - }, - decompose: function(workspace) { - // Populate the mutator's dialog with this block's components. - var containerBlock = workspace.newBlock('type_group_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.typeCount_; i++) { - var typeBlock = workspace.newBlock('type_group_item'); - typeBlock.initSvg(); - connection.connect(typeBlock.previousConnection); - connection = typeBlock.nextConnection; - } - return containerBlock; - }, - compose: function(containerBlock) { - // Reconfigure this block based on the mutator dialog's components. - var typeBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - while (typeBlock) { - connections.push(typeBlock.valueConnection_); - typeBlock = typeBlock.nextConnection && - typeBlock.nextConnection.targetBlock(); - } - // Disconnect any children that don't belong. - for (var i = 0; i < this.typeCount_; i++) { - var connection = this.getInput('TYPE' + i).connection.targetConnection; - if (connection && connections.indexOf(connection) == -1) { - connection.disconnect(); - } - } - this.typeCount_ = connections.length; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.typeCount_; i++) { - Blockly.Mutator.reconnect(connections[i], this, 'TYPE' + i); - } - }, - saveConnections: function(containerBlock) { - // Store a pointer to any connected child blocks. - var typeBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (typeBlock) { - var input = this.getInput('TYPE' + i); - typeBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - typeBlock = typeBlock.nextConnection && - typeBlock.nextConnection.targetBlock(); - } - }, - updateShape_: function() { - // Modify this block to have the correct number of inputs. - // Add new inputs. - for (var i = 0; i < this.typeCount_; i++) { - if (!this.getInput('TYPE' + i)) { - var input = this.appendValueInput('TYPE' + i); - if (i == 0) { - input.appendField('any of'); - } - } - } - // Remove deleted inputs. - while (this.getInput('TYPE' + i)) { - this.removeInput('TYPE' + i); - i++; - } - } -}; - -Blockly.Blocks['type_group_container'] = { - // Container. - init: function() { - this.jsonInit({ - "message0": "add types %1 %2", - "args0": [ - {"type": "input_dummy"}, - {"type": "input_statement", "name": "STACK"} - ], - "colour": 230, - "tooltip": "Add, or remove allowed type.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=677" - }); - } -}; - -Blockly.Blocks['type_group_item'] = { - // Add type. - init: function() { - this.jsonInit({ - "message0": "type", - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "Add a new allowed type.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=677" - }); - } -}; - -Blockly.Blocks['type_null'] = { - // Null type. - valueType: null, - init: function() { - this.jsonInit({ - "message0": "any", - "output": "Type", - "colour": 230, - "tooltip": "Any type is allowed.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=602" - }); - } -}; - -Blockly.Blocks['type_boolean'] = { - // Boolean type. - valueType: 'Boolean', - init: function() { - this.jsonInit({ - "message0": "Boolean", - "output": "Type", - "colour": 230, - "tooltip": "Booleans (true/false) are allowed.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=602" - }); - } -}; - -Blockly.Blocks['type_number'] = { - // Number type. - valueType: 'Number', - init: function() { - this.jsonInit({ - "message0": "Number", - "output": "Type", - "colour": 230, - "tooltip": "Numbers (int/float) are allowed.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=602" - }); - } -}; - -Blockly.Blocks['type_string'] = { - // String type. - valueType: 'String', - init: function() { - this.jsonInit({ - "message0": "String", - "output": "Type", - "colour": 230, - "tooltip": "Strings (text) are allowed.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=602" - }); - } -}; - -Blockly.Blocks['type_list'] = { - // List type. - valueType: 'Array', - init: function() { - this.jsonInit({ - "message0": "Array", - "output": "Type", - "colour": 230, - "tooltip": "Arrays (lists) are allowed.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=602" - }); - } -}; - -Blockly.Blocks['type_other'] = { - // Other type. - init: function() { - this.jsonInit({ - "message0": "other %1", - "args0": [{"type": "field_input", "name": "TYPE", "text": ""}], - "output": "Type", - "colour": 230, - "tooltip": "Custom type to allow.", - "helpUrl": "https://www.youtube.com/watch?v=s2_xaEvcVI0#t=702" - }); - } -}; - -Blockly.Blocks['colour_hue'] = { - // Set the colour of the block. - init: function() { - this.appendDummyInput() - .appendField('hue:') - .appendField(new Blockly.FieldAngle('0', this.validator), 'HUE'); - this.setOutput(true, 'Colour'); - this.setTooltip('Paint the block with this colour.'); - this.setHelpUrl('https://www.youtube.com/watch?v=s2_xaEvcVI0#t=55'); - }, - validator: function(text) { - // Update the current block's colour to match. - var hue = parseInt(text, 10); - if (!isNaN(hue)) { - this.sourceBlock_.setColour(hue); - } - }, - mutationToDom: function(workspace) { - var container = Blockly.utils.xml.createElement('mutation'); - container.setAttribute('colour', this.getColour()); - return container; - }, - domToMutation: function(container) { - this.setColour(container.getAttribute('colour')); - } -}; - -/** - * Check to see if more than one field has this name. - * Highly inefficient (On^2), but n is small. - * @param {!Blockly.Block} referenceBlock Block to check. - */ -function fieldNameCheck(referenceBlock) { - if (!referenceBlock.workspace) { - // Block has been deleted. - return; - } - var name = referenceBlock.getFieldValue('FIELDNAME').toLowerCase(); - var count = 0; - var blocks = referenceBlock.workspace.getAllBlocks(false); - for (var i = 0, block; block = blocks[i]; i++) { - var otherName = block.getFieldValue('FIELDNAME'); - if (!block.disabled && !block.getInheritedDisabled() && - otherName && otherName.toLowerCase() == name) { - count++; - } - } - var msg = (count > 1) ? - 'There are ' + count + ' field blocks\n with this name.' : null; - referenceBlock.setWarningText(msg); -} - -/** - * Check to see if more than one input has this name. - * Highly inefficient (On^2), but n is small. - * @param {!Blockly.Block} referenceBlock Block to check. - */ -function inputNameCheck(referenceBlock) { - if (!referenceBlock.workspace) { - // Block has been deleted. - return; - } - var name = referenceBlock.getFieldValue('INPUTNAME').toLowerCase(); - var count = 0; - var blocks = referenceBlock.workspace.getAllBlocks(false); - for (var i = 0, block; block = blocks[i]; i++) { - var otherName = block.getFieldValue('INPUTNAME'); - if (!block.disabled && !block.getInheritedDisabled() && - otherName && otherName.toLowerCase() == name) { - count++; - } - } - var msg = (count > 1) ? - 'There are ' + count + ' input blocks\n with this name.' : null; - referenceBlock.setWarningText(msg); -} diff --git a/lib/blockly/demos/blockfactory_old/factory.js b/lib/blockly/demos/blockfactory_old/factory.js deleted file mode 100644 index fce170a..0000000 --- a/lib/blockly/demos/blockfactory_old/factory.js +++ /dev/null @@ -1,848 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview JavaScript for Blockly's Block Factory application. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -/** - * Workspace for user to build block. - * @type {Blockly.Workspace} - */ -var mainWorkspace = null; - -/** - * Workspace for preview of block. - * @type {Blockly.Workspace} - */ -var previewWorkspace = null; - -/** - * Name of block if not named. - */ -var UNNAMED = 'unnamed'; - -/** - * Change the language code format. - */ -function formatChange() { - var mask = document.getElementById('blocklyMask'); - var languagePre = document.getElementById('languagePre'); - var languageTA = document.getElementById('languageTA'); - if (document.getElementById('format').value == 'Manual') { - Blockly.hideChaff(); - mask.style.display = 'block'; - languagePre.style.display = 'none'; - languageTA.style.display = 'block'; - var code = languagePre.textContent.trim(); - languageTA.value = code; - languageTA.focus(); - updatePreview(); - } else { - mask.style.display = 'none'; - languageTA.style.display = 'none'; - languagePre.style.display = 'block'; - updateLanguage(); - } - disableEnableLink(); -} - -/** - * Update the language code based on constructs made in Blockly. - */ -function updateLanguage() { - var rootBlock = getRootBlock(); - if (!rootBlock) { - return; - } - var blockType = rootBlock.getFieldValue('NAME').trim().toLowerCase(); - if (!blockType) { - blockType = UNNAMED; - } - blockType = blockType.replace(/\W/g, '_').replace(/^(\d)/, '_\\1'); - switch (document.getElementById('format').value) { - case 'JSON': - var code = formatJson_(blockType, rootBlock); - break; - case 'JavaScript': - var code = formatJavaScript_(blockType, rootBlock); - break; - } - injectCode(code, 'languagePre'); - updatePreview(); -} - -/** - * Update the language code as JSON. - * @param {string} blockType Name of block. - * @param {!Blockly.Block} rootBlock Factory_base block. - * @return {string} Generanted language code. - * @private - */ -function formatJson_(blockType, rootBlock) { - var JS = {}; - // Type is not used by Blockly, but may be used by a loader. - JS.type = blockType; - // Generate inputs. - var message = []; - var args = []; - var contentsBlock = rootBlock.getInputTargetBlock('INPUTS'); - var lastInput = null; - while (contentsBlock) { - if (!contentsBlock.disabled && !contentsBlock.getInheritedDisabled()) { - var fields = getFieldsJson_(contentsBlock.getInputTargetBlock('FIELDS')); - for (var i = 0; i < fields.length; i++) { - if (typeof fields[i] == 'string') { - message.push(fields[i].replace(/%/g, '%%')); - } else { - args.push(fields[i]); - message.push('%' + args.length); - } - } - - var input = {type: contentsBlock.type}; - // Dummy inputs don't have names. Other inputs do. - if (contentsBlock.type != 'input_dummy') { - input.name = contentsBlock.getFieldValue('INPUTNAME'); - } - var check = JSON.parse(getOptTypesFrom(contentsBlock, 'TYPE') || 'null'); - if (check) { - input.check = check; - } - var align = contentsBlock.getFieldValue('ALIGN'); - if (align != 'LEFT') { - input.align = align; - } - args.push(input); - message.push('%' + args.length); - lastInput = contentsBlock; - } - contentsBlock = contentsBlock.nextConnection && - contentsBlock.nextConnection.targetBlock(); - } - // Remove last input if dummy and not empty. - if (lastInput && lastInput.type == 'input_dummy') { - var fields = lastInput.getInputTargetBlock('FIELDS'); - if (fields && getFieldsJson_(fields).join('').trim() != '') { - var align = lastInput.getFieldValue('ALIGN'); - if (align != 'LEFT') { - JS.lastDummyAlign0 = align; - } - args.pop(); - message.pop(); - } - } - JS.message0 = message.join(' '); - if (args.length) { - JS.args0 = args; - } - // Generate inline/external switch. - if (rootBlock.getFieldValue('INLINE') == 'EXT') { - JS.inputsInline = false; - } else if (rootBlock.getFieldValue('INLINE') == 'INT') { - JS.inputsInline = true; - } - // Generate output, or next/previous connections. - switch (rootBlock.getFieldValue('CONNECTIONS')) { - case 'LEFT': - JS.output = - JSON.parse(getOptTypesFrom(rootBlock, 'OUTPUTTYPE') || 'null'); - break; - case 'BOTH': - JS.previousStatement = - JSON.parse(getOptTypesFrom(rootBlock, 'TOPTYPE') || 'null'); - JS.nextStatement = - JSON.parse(getOptTypesFrom(rootBlock, 'BOTTOMTYPE') || 'null'); - break; - case 'TOP': - JS.previousStatement = - JSON.parse(getOptTypesFrom(rootBlock, 'TOPTYPE') || 'null'); - break; - case 'BOTTOM': - JS.nextStatement = - JSON.parse(getOptTypesFrom(rootBlock, 'BOTTOMTYPE') || 'null'); - break; - } - // Generate colour. - var colourBlock = rootBlock.getInputTargetBlock('COLOUR'); - if (colourBlock && !colourBlock.disabled) { - var hue = parseInt(colourBlock.getFieldValue('HUE'), 10); - JS.colour = hue; - } - JS.tooltip = ''; - JS.helpUrl = 'http://www.example.com/'; - return JSON.stringify(JS, null, ' '); -} - -/** - * Update the language code as JavaScript. - * @param {string} blockType Name of block. - * @param {!Blockly.Block} rootBlock Factory_base block. - * @return {string} Generanted language code. - * @private - */ -function formatJavaScript_(blockType, rootBlock) { - var code = []; - code.push("Blockly.Blocks['" + blockType + "'] = {"); - code.push(" init: function() {"); - // Generate inputs. - var TYPES = {'input_value': 'appendValueInput', - 'input_statement': 'appendStatementInput', - 'input_dummy': 'appendDummyInput'}; - var contentsBlock = rootBlock.getInputTargetBlock('INPUTS'); - while (contentsBlock) { - if (!contentsBlock.disabled && !contentsBlock.getInheritedDisabled()) { - var name = ''; - // Dummy inputs don't have names. Other inputs do. - if (contentsBlock.type != 'input_dummy') { - name = escapeString(contentsBlock.getFieldValue('INPUTNAME')); - } - code.push(' this.' + TYPES[contentsBlock.type] + '(' + name + ')'); - var check = getOptTypesFrom(contentsBlock, 'TYPE'); - if (check) { - code.push(' .setCheck(' + check + ')'); - } - var align = contentsBlock.getFieldValue('ALIGN'); - if (align != 'LEFT') { - code.push(' .setAlign(Blockly.ALIGN_' + align + ')'); - } - var fields = getFieldsJs_(contentsBlock.getInputTargetBlock('FIELDS')); - for (var i = 0; i < fields.length; i++) { - code.push(' .appendField(' + fields[i] + ')'); - } - // Add semicolon to last line to finish the statement. - code[code.length - 1] += ';'; - } - contentsBlock = contentsBlock.nextConnection && - contentsBlock.nextConnection.targetBlock(); - } - // Generate inline/external switch. - if (rootBlock.getFieldValue('INLINE') == 'EXT') { - code.push(' this.setInputsInline(false);'); - } else if (rootBlock.getFieldValue('INLINE') == 'INT') { - code.push(' this.setInputsInline(true);'); - } - // Generate output, or next/previous connections. - switch (rootBlock.getFieldValue('CONNECTIONS')) { - case 'LEFT': - code.push(connectionLineJs_('setOutput', 'OUTPUTTYPE')); - break; - case 'BOTH': - code.push(connectionLineJs_('setPreviousStatement', 'TOPTYPE')); - code.push(connectionLineJs_('setNextStatement', 'BOTTOMTYPE')); - break; - case 'TOP': - code.push(connectionLineJs_('setPreviousStatement', 'TOPTYPE')); - break; - case 'BOTTOM': - code.push(connectionLineJs_('setNextStatement', 'BOTTOMTYPE')); - break; - } - // Generate colour. - var colourBlock = rootBlock.getInputTargetBlock('COLOUR'); - if (colourBlock && !colourBlock.disabled) { - var hue = parseInt(colourBlock.getFieldValue('HUE'), 10); - if (!isNaN(hue)) { - code.push(' this.setColour(' + hue + ');'); - } - } - code.push(" this.setTooltip('');"); - code.push(" this.setHelpUrl('http://www.example.com/');"); - code.push(' }'); - code.push('};'); - return code.join('\n'); -} - -/** - * Create JS code required to create a top, bottom, or value connection. - * @param {string} functionName JavaScript function name. - * @param {string} typeName Name of type input. - * @return {string} Line of JavaScript code to create connection. - * @private - */ -function connectionLineJs_(functionName, typeName) { - var type = getOptTypesFrom(getRootBlock(), typeName); - if (type) { - type = ', ' + type; - } else { - type = ''; - } - return ' this.' + functionName + '(true' + type + ');'; -} - -/** - * Returns field strings and any config. - * @param {!Blockly.Block} block Input block. - * @return {!Array.} Field strings. - * @private - */ -function getFieldsJs_(block) { - var fields = []; - while (block) { - if (!block.disabled && !block.getInheritedDisabled()) { - switch (block.type) { - case 'field_static': - // Result: 'hello' - fields.push(escapeString(block.getFieldValue('TEXT'))); - break; - case 'field_input': - // Result: new Blockly.FieldTextInput('Hello'), 'GREET' - fields.push('new Blockly.FieldTextInput(' + - escapeString(block.getFieldValue('TEXT')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_number': - // Result: new Blockly.FieldNumber(10, 0, 100, 1), 'NUMBER' - var args = [ - Number(block.getFieldValue('VALUE')), - Number(block.getFieldValue('MIN')), - Number(block.getFieldValue('MAX')), - Number(block.getFieldValue('PRECISION')) - ]; - // Remove any trailing arguments that aren't needed. - if (args[3] == 0) { - args.pop(); - if (args[2] == Infinity) { - args.pop(); - if (args[1] == -Infinity) { - args.pop(); - } - } - } - fields.push('new Blockly.FieldNumber(' + args.join(', ') + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_angle': - // Result: new Blockly.FieldAngle(90), 'ANGLE' - fields.push('new Blockly.FieldAngle(' + - Number(block.getFieldValue('ANGLE')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_checkbox': - // Result: new Blockly.FieldCheckbox('TRUE'), 'CHECK' - fields.push('new Blockly.FieldCheckbox(' + - escapeString(block.getFieldValue('CHECKED')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_colour': - // Result: new Blockly.FieldColour('#ff0000'), 'COLOUR' - fields.push('new Blockly.FieldColour(' + - escapeString(block.getFieldValue('COLOUR')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_date': - // Result: new Blockly.FieldDate('2015-02-04'), 'DATE' - fields.push('new Blockly.FieldDate(' + - escapeString(block.getFieldValue('DATE')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_variable': - // Result: new Blockly.FieldVariable('item'), 'VAR' - var varname = escapeString(block.getFieldValue('TEXT') || null); - fields.push('new Blockly.FieldVariable(' + varname + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_dropdown': - // Result: - // new Blockly.FieldDropdown([['yes', '1'], ['no', '0']]), 'TOGGLE' - var options = []; - for (var i = 0; i < block.optionCount_; i++) { - options[i] = '[' + escapeString(block.getFieldValue('USER' + i)) + - ', ' + escapeString(block.getFieldValue('CPU' + i)) + ']'; - } - if (options.length) { - fields.push('new Blockly.FieldDropdown([' + - options.join(', ') + ']), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - } - break; - case 'field_image': - // Result: new Blockly.FieldImage('http://...', 80, 60, '*') - var src = escapeString(block.getFieldValue('SRC')); - var width = Number(block.getFieldValue('WIDTH')); - var height = Number(block.getFieldValue('HEIGHT')); - var alt = escapeString(block.getFieldValue('ALT')); - fields.push('new Blockly.FieldImage(' + - src + ', ' + width + ', ' + height + ', ' + alt + ')'); - break; - } - } - block = block.nextConnection && block.nextConnection.targetBlock(); - } - return fields; -} - -/** - * Returns field strings and any config. - * @param {!Blockly.Block} block Input block. - * @return {!Array.} Array of static text and field configs. - * @private - */ -function getFieldsJson_(block) { - var fields = []; - while (block) { - if (!block.disabled && !block.getInheritedDisabled()) { - switch (block.type) { - case 'field_static': - // Result: 'hello' - fields.push(block.getFieldValue('TEXT')); - break; - case 'field_input': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - text: block.getFieldValue('TEXT') - }); - break; - case 'field_number': - var obj = { - type: block.type, - name: block.getFieldValue('FIELDNAME'), - value: Number(block.getFieldValue('VALUE')) - }; - var min = Number(block.getFieldValue('MIN')); - if (min > -Infinity) { - obj.min = min; - } - var max = Number(block.getFieldValue('MAX')); - if (max < Infinity) { - obj.max = max; - } - var precision = Number(block.getFieldValue('PRECISION')); - if (precision) { - obj.precision = precision; - } - fields.push(obj); - break; - case 'field_angle': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - angle: Number(block.getFieldValue('ANGLE')) - }); - break; - case 'field_checkbox': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - checked: block.getFieldValue('CHECKED') == 'TRUE' - }); - break; - case 'field_colour': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - colour: block.getFieldValue('COLOUR') - }); - break; - case 'field_date': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - date: block.getFieldValue('DATE') - }); - break; - case 'field_variable': - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - variable: block.getFieldValue('TEXT') || null - }); - break; - case 'field_dropdown': - var options = []; - for (var i = 0; i < block.optionCount_; i++) { - options[i] = [block.getFieldValue('USER' + i), - block.getFieldValue('CPU' + i)]; - } - if (options.length) { - fields.push({ - type: block.type, - name: block.getFieldValue('FIELDNAME'), - options: options - }); - } - break; - case 'field_image': - fields.push({ - type: block.type, - src: block.getFieldValue('SRC'), - width: Number(block.getFieldValue('WIDTH')), - height: Number(block.getFieldValue('HEIGHT')), - alt: block.getFieldValue('ALT') - }); - break; - } - } - block = block.nextConnection && block.nextConnection.targetBlock(); - } - return fields; -} - -/** - * Escape a string. - * @param {string} string String to escape. - * @return {string} Escaped string surrouned by quotes. - */ -function escapeString(string) { - return JSON.stringify(string); -} - -/** - * Fetch the type(s) defined in the given input. - * Format as a string for appending to the generated code. - * @param {!Blockly.Block} block Block with input. - * @param {string} name Name of the input. - * @return {?string} String defining the types. - */ -function getOptTypesFrom(block, name) { - var types = getTypesFrom_(block, name); - if (types.length == 0) { - return undefined; - } else if (types.indexOf('null') != -1) { - return 'null'; - } else if (types.length == 1) { - return types[0]; - } else { - return '[' + types.join(', ') + ']'; - } -} - -/** - * Fetch the type(s) defined in the given input. - * @param {!Blockly.Block} block Block with input. - * @param {string} name Name of the input. - * @return {!Array.} List of types. - * @private - */ -function getTypesFrom_(block, name) { - var typeBlock = block.getInputTargetBlock(name); - var types; - if (!typeBlock || typeBlock.disabled) { - types = []; - } else if (typeBlock.type == 'type_other') { - types = [escapeString(typeBlock.getFieldValue('TYPE'))]; - } else if (typeBlock.type == 'type_group') { - types = []; - for (var i = 0; i < typeBlock.typeCount_; i++) { - types = types.concat(getTypesFrom_(typeBlock, 'TYPE' + i)); - } - // Remove duplicates. - var hash = Object.create(null); - for (var n = types.length - 1; n >= 0; n--) { - if (hash[types[n]]) { - types.splice(n, 1); - } - hash[types[n]] = true; - } - } else { - types = [escapeString(typeBlock.valueType)]; - } - return types; -} - -/** - * Update the generator code. - * @param {!Blockly.Block} block Rendered block in preview workspace. - */ -function updateGenerator(block) { - function makeVar(root, name) { - name = name.toLowerCase().replace(/\W/g, '_'); - return ' var ' + root + '_' + name; - } - var language = document.getElementById('language').value; - var code = []; - code.push("Blockly." + language + "['" + block.type + - "'] = function(block) {"); - - // Generate getters for any fields or inputs. - for (var i = 0, input; input = block.inputList[i]; i++) { - for (var j = 0, field; field = input.fieldRow[j]; j++) { - var name = field.name; - if (!name) { - continue; - } - if (field instanceof Blockly.FieldVariable) { - // Subclass of Blockly.FieldDropdown, must test first. - code.push(makeVar('variable', name) + - " = Blockly." + language + - ".variableDB_.getName(block.getFieldValue('" + name + - "'), Blockly.Variables.NAME_TYPE);"); - } else if (field instanceof Blockly.FieldAngle) { - // Subclass of Blockly.FieldTextInput, must test first. - code.push(makeVar('angle', name) + - " = block.getFieldValue('" + name + "');"); - } else if (Blockly.FieldDate && field instanceof Blockly.FieldDate) { - // Blockly.FieldDate may not be compiled into Blockly. - code.push(makeVar('date', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldColour) { - code.push(makeVar('colour', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldCheckbox) { - code.push(makeVar('checkbox', name) + - " = block.getFieldValue('" + name + "') == 'TRUE';"); - } else if (field instanceof Blockly.FieldDropdown) { - code.push(makeVar('dropdown', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldNumber) { - code.push(makeVar('number', name) + - " = block.getFieldValue('" + name + "');"); - } else if (field instanceof Blockly.FieldTextInput) { - code.push(makeVar('text', name) + - " = block.getFieldValue('" + name + "');"); - } - } - var name = input.name; - if (name) { - if (input.type == Blockly.INPUT_VALUE) { - code.push(makeVar('value', name) + - " = Blockly." + language + ".valueToCode(block, '" + name + - "', Blockly." + language + ".ORDER_ATOMIC);"); - } else if (input.type == Blockly.NEXT_STATEMENT) { - code.push(makeVar('statements', name) + - " = Blockly." + language + ".statementToCode(block, '" + - name + "');"); - } - } - } - // Most languages end lines with a semicolon. Python does not. - var lineEnd = { - 'JavaScript': ';', - 'Python': '', - 'PHP': ';', - 'Dart': ';' - }; - code.push(" // TODO: Assemble " + language + " into code variable."); - if (block.outputConnection) { - code.push(" var code = '...';"); - code.push(" // TODO: Change ORDER_NONE to the correct strength."); - code.push(" return [code, Blockly." + language + ".ORDER_NONE];"); - } else { - code.push(" var code = '..." + (lineEnd[language] || '') + "\\n';"); - code.push(" return code;"); - } - code.push("};"); - - injectCode(code.join('\n'), 'generatorPre'); -} - -/** - * Existing direction ('ltr' vs 'rtl') of preview. - */ -var oldDir = null; - -/** - * Update the preview display. - */ -function updatePreview() { - // Toggle between LTR/RTL if needed (also used in first display). - var newDir = document.getElementById('direction').value; - if (oldDir != newDir) { - if (previewWorkspace) { - previewWorkspace.dispose(); - } - var rtl = newDir == 'rtl'; - previewWorkspace = Blockly.inject('preview', - {rtl: rtl, - media: '../../media/', - scrollbars: true}); - oldDir = newDir; - } - previewWorkspace.clear(); - - // Fetch the code and determine its format (JSON or JavaScript). - var format = document.getElementById('format').value; - if (format == 'Manual') { - var code = document.getElementById('languageTA').value; - // If the code is JSON, it will parse, otherwise treat as JS. - try { - JSON.parse(code); - format = 'JSON'; - } catch (e) { - format = 'JavaScript'; - } - } else { - var code = document.getElementById('languagePre').textContent; - } - if (!code.trim()) { - // Nothing to render. Happens while cloud storage is loading. - return; - } - - // Backup Blockly.Blocks object so that main workspace and preview don't - // collide if user creates a 'factory_base' block, for instance. - var backupBlocks = Blockly.Blocks; - try { - // Make a shallow copy. - Blockly.Blocks = {}; - for (var prop in backupBlocks) { - Blockly.Blocks[prop] = backupBlocks[prop]; - } - - if (format == 'JSON') { - var json = JSON.parse(code); - Blockly.Blocks[json.type || UNNAMED] = { - init: function() { - this.jsonInit(json); - } - }; - } else if (format == 'JavaScript') { - eval(code); - } else { - throw 'Unknown format: ' + format; - } - - // Look for a block on Blockly.Blocks that does not match the backup. - var blockType = null; - for (var type in Blockly.Blocks) { - if (typeof Blockly.Blocks[type].init == 'function' && - Blockly.Blocks[type] != backupBlocks[type]) { - blockType = type; - break; - } - } - if (!blockType) { - return; - } - - // Create the preview block. - var previewBlock = previewWorkspace.newBlock(blockType); - previewBlock.initSvg(); - previewBlock.render(); - previewBlock.setMovable(false); - previewBlock.setDeletable(false); - previewBlock.moveBy(15, 10); - previewWorkspace.clearUndo(); - - updateGenerator(previewBlock); - } finally { - Blockly.Blocks = backupBlocks; - } -} - -/** - * Inject code into a pre tag, with syntax highlighting. - * Safe from HTML/script injection. - * @param {string} code Lines of code. - * @param {string} id ID of
     element to inject into.
    - */
    -function injectCode(code, id) {
    -  var pre = document.getElementById(id);
    -  pre.textContent = code;
    -  // Remove the 'prettyprinted' class, so that Prettify will recalculate.
    -  pre.className = pre.className.replace('prettyprinted', '');
    -  PR.prettyPrint();
    -}
    -
    -/**
    - * Return the uneditable container block that everything else attaches to.
    - * @return {Blockly.Block}
    - */
    -function getRootBlock() {
    -  var blocks = mainWorkspace.getTopBlocks(false);
    -  for (var i = 0, block; block = blocks[i]; i++) {
    -    if (block.type == 'factory_base') {
    -      return block;
    -    }
    -  }
    -  return null;
    -}
    -
    -/**
    - * Disable the link button if the format is 'Manual', enable otherwise.
    - */
    -function disableEnableLink() {
    -  var linkButton = document.getElementById('linkButton');
    -  linkButton.disabled = document.getElementById('format').value == 'Manual';
    -}
    -
    -/**
    - * Initialize Blockly and layout.  Called on page load.
    - */
    -function init() {
    -  if ('BlocklyStorage' in window) {
    -    BlocklyStorage.HTTPREQUEST_ERROR =
    -        'There was a problem with the request.\n';
    -    BlocklyStorage.LINK_ALERT =
    -        'Share your blocks with this link:\n\n%1';
    -    BlocklyStorage.HASH_ERROR =
    -        'Sorry, "%1" doesn\'t correspond with any saved Blockly file.';
    -    BlocklyStorage.XML_ERROR = 'Could not load your saved file.\n'+
    -        'Perhaps it was created with a different version of Blockly?';
    -    var linkButton = document.getElementById('linkButton');
    -    linkButton.style.display = 'inline-block';
    -    linkButton.addEventListener('click',
    -        function() {BlocklyStorage.link(mainWorkspace);});
    -    disableEnableLink();
    -  }
    -
    -  document.getElementById('helpButton').addEventListener('click',
    -    function() {
    -      open('https://developers.google.com/blockly/guides/create-custom-blocks/block-factory',
    -           'BlockFactoryHelp');
    -    });
    -
    -  var expandList = [
    -    document.getElementById('blockly'),
    -    document.getElementById('blocklyMask'),
    -    document.getElementById('preview'),
    -    document.getElementById('languagePre'),
    -    document.getElementById('languageTA'),
    -    document.getElementById('generatorPre')
    -  ];
    -  var onresize = function(e) {
    -    for (var i = 0, expand; expand = expandList[i]; i++) {
    -      expand.style.width = (expand.parentNode.offsetWidth - 2) + 'px';
    -      expand.style.height = (expand.parentNode.offsetHeight - 2) + 'px';
    -    }
    -  };
    -  onresize();
    -  window.addEventListener('resize', onresize);
    -
    -  var toolbox = document.getElementById('toolbox');
    -  mainWorkspace = Blockly.inject('blockly',
    -      {collapse: false,
    -       toolbox: toolbox,
    -       media: '../../media/'});
    -
    -  // Create the root block.
    -  if ('BlocklyStorage' in window && window.location.hash.length > 1) {
    -    BlocklyStorage.retrieveXml(window.location.hash.substring(1),
    -                               mainWorkspace);
    -  } else {
    -    var xml = '';
    -    Blockly.Xml.domToWorkspace(Blockly.Xml.textToDom(xml), mainWorkspace);
    -  }
    -  mainWorkspace.clearUndo();
    -
    -  mainWorkspace.addChangeListener(Blockly.Events.disableOrphans);
    -  mainWorkspace.addChangeListener(updateLanguage);
    -  document.getElementById('direction')
    -      .addEventListener('change', updatePreview);
    -  document.getElementById('languageTA')
    -      .addEventListener('change', updatePreview);
    -  document.getElementById('languageTA')
    -      .addEventListener('keyup', updatePreview);
    -  document.getElementById('format')
    -      .addEventListener('change', formatChange);
    -  document.getElementById('language')
    -      .addEventListener('change', updatePreview);
    -}
    -window.addEventListener('load', init);
    diff --git a/lib/blockly/demos/blockfactory_old/icon.png b/lib/blockly/demos/blockfactory_old/icon.png
    deleted file mode 100644
    index 4f8b72f..0000000
    Binary files a/lib/blockly/demos/blockfactory_old/icon.png and /dev/null differ
    diff --git a/lib/blockly/demos/blockfactory_old/index.html b/lib/blockly/demos/blockfactory_old/index.html
    deleted file mode 100644
    index b03db91..0000000
    --- a/lib/blockly/demos/blockfactory_old/index.html
    +++ /dev/null
    @@ -1,229 +0,0 @@
    -
    -
    -
    -  
    -  
    -  Blockly Demo: Block Factory
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -
    -
    -  
    -    
    -      
    -      
    -    
    -    
    -      
    -      
    -    
    -  
    -

    Blockly > - Demos > Block Factory

    -
    - - - - - -
    -

    Preview: - -

    -
    - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - -
    -
    -
    -

    Language code: - -

    -
    -
    
    -              
    -            
    -

    Generator stub: - -

    -
    -
    
    -            
    -
    - - - diff --git a/lib/blockly/demos/blockfactory_old/link.png b/lib/blockly/demos/blockfactory_old/link.png deleted file mode 100644 index 11dfd82..0000000 Binary files a/lib/blockly/demos/blockfactory_old/link.png and /dev/null differ diff --git a/lib/blockly/demos/code/code.js b/lib/blockly/demos/code/code.js deleted file mode 100644 index 67cace7..0000000 --- a/lib/blockly/demos/code/code.js +++ /dev/null @@ -1,550 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview JavaScript for Blockly's Code demo. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -/** - * Create a namespace for the application. - */ -var Code = {}; - -/** - * Lookup for names of supported languages. Keys should be in ISO 639 format. - */ -Code.LANGUAGE_NAME = { - 'ar': 'العربية', - 'be-tarask': 'Taraškievica', - 'br': 'Brezhoneg', - 'ca': 'Català', - 'cs': 'Česky', - 'da': 'Dansk', - 'de': 'Deutsch', - 'el': 'Ελληνικά', - 'en': 'English', - 'es': 'Español', - 'et': 'Eesti', - 'fa': 'فارسی', - 'fr': 'Français', - 'he': 'עברית', - 'hrx': 'Hunsrik', - 'hu': 'Magyar', - 'ia': 'Interlingua', - 'is': 'Íslenska', - 'it': 'Italiano', - 'ja': '日本語', - 'kab': 'Kabyle', - 'ko': '한국어', - 'mk': 'Македонски', - 'ms': 'Bahasa Melayu', - 'nb': 'Norsk Bokmål', - 'nl': 'Nederlands, Vlaams', - 'oc': 'Lenga d\'òc', - 'pl': 'Polski', - 'pms': 'Piemontèis', - 'pt-br': 'Português Brasileiro', - 'ro': 'Română', - 'ru': 'Русский', - 'sc': 'Sardu', - 'sk': 'Slovenčina', - 'sr': 'Српски', - 'sv': 'Svenska', - 'ta': 'தமிழ்', - 'th': 'ภาษาไทย', - 'tlh': 'tlhIngan Hol', - 'tr': 'Türkçe', - 'uk': 'Українська', - 'vi': 'Tiếng Việt', - 'zh-hans': '简体中文', - 'zh-hant': '正體中文' -}; - -/** - * List of RTL languages. - */ -Code.LANGUAGE_RTL = ['ar', 'fa', 'he', 'lki']; - -/** - * Blockly's main workspace. - * @type {Blockly.WorkspaceSvg} - */ -Code.workspace = null; - -/** - * Extracts a parameter from the URL. - * If the parameter is absent default_value is returned. - * @param {string} name The name of the parameter. - * @param {string} defaultValue Value to return if parameter not found. - * @return {string} The parameter value or the default value if not found. - */ -Code.getStringParamFromUrl = function(name, defaultValue) { - var val = location.search.match(new RegExp('[?&]' + name + '=([^&]+)')); - return val ? decodeURIComponent(val[1].replace(/\+/g, '%20')) : defaultValue; -}; - -/** - * Get the language of this user from the URL. - * @return {string} User's language. - */ -Code.getLang = function() { - var lang = Code.getStringParamFromUrl('lang', ''); - if (Code.LANGUAGE_NAME[lang] === undefined) { - // Default to English. - lang = 'en'; - } - return lang; -}; - -/** - * Is the current language (Code.LANG) an RTL language? - * @return {boolean} True if RTL, false if LTR. - */ -Code.isRtl = function() { - return Code.LANGUAGE_RTL.indexOf(Code.LANG) != -1; -}; - -/** - * Load blocks saved on App Engine Storage or in session/local storage. - * @param {string} defaultXml Text representation of default blocks. - */ -Code.loadBlocks = function(defaultXml) { - try { - var loadOnce = window.sessionStorage.loadOnceBlocks; - } catch(e) { - // Firefox sometimes throws a SecurityError when accessing sessionStorage. - // Restarting Firefox fixes this, so it looks like a bug. - var loadOnce = null; - } - if ('BlocklyStorage' in window && window.location.hash.length > 1) { - // An href with #key trigers an AJAX call to retrieve saved blocks. - BlocklyStorage.retrieveXml(window.location.hash.substring(1)); - } else if (loadOnce) { - // Language switching stores the blocks during the reload. - delete window.sessionStorage.loadOnceBlocks; - var xml = Blockly.Xml.textToDom(loadOnce); - Blockly.Xml.domToWorkspace(xml, Code.workspace); - } else if (defaultXml) { - // Load the editor with default starting blocks. - var xml = Blockly.Xml.textToDom(defaultXml); - Blockly.Xml.domToWorkspace(xml, Code.workspace); - } else if ('BlocklyStorage' in window) { - // Restore saved blocks in a separate thread so that subsequent - // initialization is not affected from a failed load. - window.setTimeout(BlocklyStorage.restoreBlocks, 0); - } -}; - -/** - * Save the blocks and reload with a different language. - */ -Code.changeLanguage = function() { - // Store the blocks for the duration of the reload. - // MSIE 11 does not support sessionStorage on file:// URLs. - if (window.sessionStorage) { - var xml = Blockly.Xml.workspaceToDom(Code.workspace); - var text = Blockly.Xml.domToText(xml); - window.sessionStorage.loadOnceBlocks = text; - } - - var languageMenu = document.getElementById('languageMenu'); - var newLang = encodeURIComponent( - languageMenu.options[languageMenu.selectedIndex].value); - var search = window.location.search; - if (search.length <= 1) { - search = '?lang=' + newLang; - } else if (search.match(/[?&]lang=[^&]*/)) { - search = search.replace(/([?&]lang=)[^&]*/, '$1' + newLang); - } else { - search = search.replace(/\?/, '?lang=' + newLang + '&'); - } - - window.location = window.location.protocol + '//' + - window.location.host + window.location.pathname + search; -}; - -/** - * Bind a function to a button's click event. - * On touch enabled browsers, ontouchend is treated as equivalent to onclick. - * @param {!Element|string} el Button element or ID thereof. - * @param {!Function} func Event handler to bind. - */ -Code.bindClick = function(el, func) { - if (typeof el == 'string') { - el = document.getElementById(el); - } - el.addEventListener('click', func, true); - el.addEventListener('touchend', func, true); -}; - -/** - * Load the Prettify CSS and JavaScript. - */ -Code.importPrettify = function() { - var script = document.createElement('script'); - script.setAttribute('src', 'https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'); - document.head.appendChild(script); -}; - -/** - * Compute the absolute coordinates and dimensions of an HTML element. - * @param {!Element} element Element to match. - * @return {!Object} Contains height, width, x, and y properties. - * @private - */ -Code.getBBox_ = function(element) { - var height = element.offsetHeight; - var width = element.offsetWidth; - var x = 0; - var y = 0; - do { - x += element.offsetLeft; - y += element.offsetTop; - element = element.offsetParent; - } while (element); - return { - height: height, - width: width, - x: x, - y: y - }; -}; - -/** - * User's language (e.g. "en"). - * @type {string} - */ -Code.LANG = Code.getLang(); - -/** - * List of tab names. - * @private - */ -Code.TABS_ = ['blocks', 'javascript', 'php', 'python', 'dart', 'lua', 'xml']; - -Code.selected = 'blocks'; - -/** - * Switch the visible pane when a tab is clicked. - * @param {string} clickedName Name of tab clicked. - */ -Code.tabClick = function(clickedName) { - // If the XML tab was open, save and render the content. - if (document.getElementById('tab_xml').className == 'tabon') { - var xmlTextarea = document.getElementById('content_xml'); - var xmlText = xmlTextarea.value; - var xmlDom = null; - try { - xmlDom = Blockly.Xml.textToDom(xmlText); - } catch (e) { - var q = - window.confirm(MSG['badXml'].replace('%1', e)); - if (!q) { - // Leave the user on the XML tab. - return; - } - } - if (xmlDom) { - Code.workspace.clear(); - Blockly.Xml.domToWorkspace(xmlDom, Code.workspace); - } - } - - if (document.getElementById('tab_blocks').className == 'tabon') { - Code.workspace.setVisible(false); - } - // Deselect all tabs and hide all panes. - for (var i = 0; i < Code.TABS_.length; i++) { - var name = Code.TABS_[i]; - document.getElementById('tab_' + name).className = 'taboff'; - document.getElementById('content_' + name).style.visibility = 'hidden'; - } - - // Select the active tab. - Code.selected = clickedName; - document.getElementById('tab_' + clickedName).className = 'tabon'; - // Show the selected pane. - document.getElementById('content_' + clickedName).style.visibility = - 'visible'; - Code.renderContent(); - if (clickedName == 'blocks') { - Code.workspace.setVisible(true); - } - Blockly.svgResize(Code.workspace); -}; - -/** - * Populate the currently selected pane with content generated from the blocks. - */ -Code.renderContent = function() { - var content = document.getElementById('content_' + Code.selected); - // Initialize the pane. - if (content.id == 'content_xml') { - var xmlTextarea = document.getElementById('content_xml'); - var xmlDom = Blockly.Xml.workspaceToDom(Code.workspace); - var xmlText = Blockly.Xml.domToPrettyText(xmlDom); - xmlTextarea.value = xmlText; - xmlTextarea.focus(); - } else if (content.id == 'content_javascript') { - Code.attemptCodeGeneration(Blockly.JavaScript); - } else if (content.id == 'content_python') { - Code.attemptCodeGeneration(Blockly.Python); - } else if (content.id == 'content_php') { - Code.attemptCodeGeneration(Blockly.PHP); - } else if (content.id == 'content_dart') { - Code.attemptCodeGeneration(Blockly.Dart); - } else if (content.id == 'content_lua') { - Code.attemptCodeGeneration(Blockly.Lua); - } - if (typeof PR == 'object') { - PR.prettyPrint(); - } -}; - -/** - * Attempt to generate the code and display it in the UI, pretty printed. - * @param generator {!Blockly.Generator} The generator to use. - */ -Code.attemptCodeGeneration = function(generator) { - var content = document.getElementById('content_' + Code.selected); - content.textContent = ''; - if (Code.checkAllGeneratorFunctionsDefined(generator)) { - var code = generator.workspaceToCode(Code.workspace); - content.textContent = code; - // Remove the 'prettyprinted' class, so that Prettify will recalculate. - content.className = content.className.replace('prettyprinted', ''); - } -}; - -/** - * Check whether all blocks in use have generator functions. - * @param generator {!Blockly.Generator} The generator to use. - */ -Code.checkAllGeneratorFunctionsDefined = function(generator) { - var blocks = Code.workspace.getAllBlocks(false); - var missingBlockGenerators = []; - for (var i = 0; i < blocks.length; i++) { - var blockType = blocks[i].type; - if (!generator[blockType]) { - if (missingBlockGenerators.indexOf(blockType) == -1) { - missingBlockGenerators.push(blockType); - } - } - } - - var valid = missingBlockGenerators.length == 0; - if (!valid) { - var msg = 'The generator code for the following blocks not specified for ' + - generator.name_ + ':\n - ' + missingBlockGenerators.join('\n - '); - Blockly.alert(msg); // Assuming synchronous. No callback. - } - return valid; -}; - -/** - * Initialize Blockly. Called on page load. - */ -Code.init = function() { - Code.initLanguage(); - - var rtl = Code.isRtl(); - var container = document.getElementById('content_area'); - var onresize = function(e) { - var bBox = Code.getBBox_(container); - for (var i = 0; i < Code.TABS_.length; i++) { - var el = document.getElementById('content_' + Code.TABS_[i]); - el.style.top = bBox.y + 'px'; - el.style.left = bBox.x + 'px'; - // Height and width need to be set, read back, then set again to - // compensate for scrollbars. - el.style.height = bBox.height + 'px'; - el.style.height = (2 * bBox.height - el.offsetHeight) + 'px'; - el.style.width = bBox.width + 'px'; - el.style.width = (2 * bBox.width - el.offsetWidth) + 'px'; - } - // Make the 'Blocks' tab line up with the toolbox. - if (Code.workspace && Code.workspace.toolbox_.width) { - document.getElementById('tab_blocks').style.minWidth = - (Code.workspace.toolbox_.width - 38) + 'px'; - // Account for the 19 pixel margin and on each side. - } - }; - window.addEventListener('resize', onresize, false); - - // The toolbox XML specifies each category name using Blockly's messaging - // format (eg. ``). - // These message keys need to be defined in `Blockly.Msg` in order to - // be decoded by the library. Therefore, we'll use the `MSG` dictionary that's - // been defined for each language to import each category name message - // into `Blockly.Msg`. - // TODO: Clean up the message files so this is done explicitly instead of - // through this for-loop. - for (var messageKey in MSG) { - if (messageKey.indexOf('cat') == 0) { - Blockly.Msg[messageKey.toUpperCase()] = MSG[messageKey]; - } - } - - // Construct the toolbox XML, replacing translated variable names. - var toolboxText = document.getElementById('toolbox').outerHTML; - toolboxText = toolboxText.replace(/(^|[^%]){(\w+)}/g, - function(m, p1, p2) {return p1 + MSG[p2];}); - var toolboxXml = Blockly.Xml.textToDom(toolboxText); - - Code.workspace = Blockly.inject('content_blocks', - {grid: - {spacing: 25, - length: 3, - colour: '#ccc', - snap: true}, - media: '../../media/', - rtl: rtl, - toolbox: toolboxXml, - zoom: - {controls: true, - wheel: true} - }); - - // Add to reserved word list: Local variables in execution environment (runJS) - // and the infinite loop detection function. - Blockly.JavaScript.addReservedWords('code,timeouts,checkTimeout'); - - Code.loadBlocks(''); - - if ('BlocklyStorage' in window) { - // Hook a save function onto unload. - BlocklyStorage.backupOnUnload(Code.workspace); - } - - Code.tabClick(Code.selected); - - Code.bindClick('trashButton', - function() {Code.discard(); Code.renderContent();}); - Code.bindClick('runButton', Code.runJS); - // Disable the link button if page isn't backed by App Engine storage. - var linkButton = document.getElementById('linkButton'); - if ('BlocklyStorage' in window) { - BlocklyStorage['HTTPREQUEST_ERROR'] = MSG['httpRequestError']; - BlocklyStorage['LINK_ALERT'] = MSG['linkAlert']; - BlocklyStorage['HASH_ERROR'] = MSG['hashError']; - BlocklyStorage['XML_ERROR'] = MSG['xmlError']; - Code.bindClick(linkButton, - function() {BlocklyStorage.link(Code.workspace);}); - } else if (linkButton) { - linkButton.className = 'disabled'; - } - - for (var i = 0; i < Code.TABS_.length; i++) { - var name = Code.TABS_[i]; - Code.bindClick('tab_' + name, - function(name_) {return function() {Code.tabClick(name_);};}(name)); - } - onresize(); - Blockly.svgResize(Code.workspace); - - // Lazy-load the syntax-highlighting. - window.setTimeout(Code.importPrettify, 1); -}; - -/** - * Initialize the page language. - */ -Code.initLanguage = function() { - // Set the HTML's language and direction. - var rtl = Code.isRtl(); - document.dir = rtl ? 'rtl' : 'ltr'; - document.head.parentElement.setAttribute('lang', Code.LANG); - - // Sort languages alphabetically. - var languages = []; - for (var lang in Code.LANGUAGE_NAME) { - languages.push([Code.LANGUAGE_NAME[lang], lang]); - } - var comp = function(a, b) { - // Sort based on first argument ('English', 'Русский', '简体字', etc). - if (a[0] > b[0]) return 1; - if (a[0] < b[0]) return -1; - return 0; - }; - languages.sort(comp); - // Populate the language selection menu. - var languageMenu = document.getElementById('languageMenu'); - languageMenu.options.length = 0; - for (var i = 0; i < languages.length; i++) { - var tuple = languages[i]; - var lang = tuple[tuple.length - 1]; - var option = new Option(tuple[0], lang); - if (lang == Code.LANG) { - option.selected = true; - } - languageMenu.options.add(option); - } - languageMenu.addEventListener('change', Code.changeLanguage, true); - - // Inject language strings. - document.title += ' ' + MSG['title']; - document.getElementById('title').textContent = MSG['title']; - document.getElementById('tab_blocks').textContent = MSG['blocks']; - - document.getElementById('linkButton').title = MSG['linkTooltip']; - document.getElementById('runButton').title = MSG['runTooltip']; - document.getElementById('trashButton').title = MSG['trashTooltip']; -}; - -/** - * Execute the user's code. - * Just a quick and dirty eval. Catch infinite loops. - */ -Code.runJS = function() { - Blockly.JavaScript.INFINITE_LOOP_TRAP = 'checkTimeout();\n'; - var timeouts = 0; - var checkTimeout = function() { - if (timeouts++ > 1000000) { - throw MSG['timeout']; - } - }; - var code = Blockly.JavaScript.workspaceToCode(Code.workspace); - Blockly.JavaScript.INFINITE_LOOP_TRAP = null; - try { - eval(code); - } catch (e) { - alert(MSG['badCode'].replace('%1', e)); - } -}; - -/** - * Discard all blocks from the workspace. - */ -Code.discard = function() { - var count = Code.workspace.getAllBlocks(false).length; - if (count < 2 || - window.confirm(Blockly.Msg['DELETE_ALL_BLOCKS'].replace('%1', count))) { - Code.workspace.clear(); - if (window.location.hash) { - window.location.hash = ''; - } - } -}; - -// Load the Code demo's language strings. -document.write('\n'); -// Load Blockly's language strings. -document.write('\n'); - -window.addEventListener('load', Code.init); diff --git a/lib/blockly/demos/code/icon.png b/lib/blockly/demos/code/icon.png deleted file mode 100644 index feaa929..0000000 Binary files a/lib/blockly/demos/code/icon.png and /dev/null differ diff --git a/lib/blockly/demos/code/icons.png b/lib/blockly/demos/code/icons.png deleted file mode 100644 index 7cced7a..0000000 Binary files a/lib/blockly/demos/code/icons.png and /dev/null differ diff --git a/lib/blockly/demos/code/index.html b/lib/blockly/demos/code/index.html deleted file mode 100644 index fdf083e..0000000 --- a/lib/blockly/demos/code/index.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - Blockly Demo: - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Blockly‏ > - Demos‏ > - ... -

    -
    - -
    - - - - - - - - - - - - - - - - - -
    ... JavaScript Python PHP Lua Dart XML - - - -
    -
    -
    -
    -
    
    -  
    
    -  
    
    -  
    
    -  
    
    -  
    -
    -  
    -
    -
    -
    diff --git a/lib/blockly/demos/code/msg/ar.js b/lib/blockly/demos/code/msg/ar.js
    deleted file mode 100644
    index 952198b..0000000
    --- a/lib/blockly/demos/code/msg/ar.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "كود",
    -  blocks: "البلوكات",
    -  linkTooltip: "احفظ ووصلة إلى البلوكات.",
    -  runTooltip: "شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.",
    -  badCode: "خطأ في البرنامج:\n %1",
    -  timeout: "تم تجاوز الحد الأقصى لتكرارات التنفيذ .",
    -  trashTooltip: "تجاهل كل البلوكات.",
    -  catLogic: "منطق",
    -  catLoops: "الحلقات",
    -  catMath: "رياضيات",
    -  catText: "نص",
    -  catLists: "قوائم",
    -  catColour: "لون",
    -  catVariables: "متغيرات",
    -  catFunctions: "إجراءات",
    -  listVariable: "قائمة",
    -  textVariable: "نص",
    -  httpRequestError: "كانت هناك مشكلة مع هذا الطلب.",
    -  linkAlert: "مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n %1",
    -  hashError: "عذراً،ال '%1' لا تتوافق مع أي برنامج تم حفظه.",
    -  xmlError: "تعذر تحميل الملف المحفوظة الخاصة بك.  ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟",
    -  badXml: "خطأ في توزيع ال \"XML\":\n %1\n\nحدد 'موافق' للتخلي عن التغييرات أو 'إلغاء الأمر' لمواصلة تحرير ال\"XML\"."
    -};
    diff --git a/lib/blockly/demos/code/msg/be-tarask.js b/lib/blockly/demos/code/msg/be-tarask.js
    deleted file mode 100644
    index 5c8d722..0000000
    --- a/lib/blockly/demos/code/msg/be-tarask.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Код",
    -  blocks: "Блёкі",
    -  linkTooltip: "Захаваць і зьвязаць з блёкамі.",
    -  runTooltip: "Запусьціце праграму, вызначаную блёкамі ў працоўнай вобласьці.",
    -  badCode: "Памылка праграмы:\n%1",
    -  timeout: "Перавышана максымальная колькасьць ітэрацыяў.",
    -  trashTooltip: "Выдаліць усе блёкі.",
    -  catLogic: "Лёгіка",
    -  catLoops: "Петлі",
    -  catMath: "Матэматычныя формулы",
    -  catText: "Тэкст",
    -  catLists: "Сьпісы",
    -  catColour: "Колер",
    -  catVariables: "Зьменныя",
    -  catFunctions: "Функцыі",
    -  listVariable: "сьпіс",
    -  textVariable: "тэкст",
    -  httpRequestError: "Узьнікла праблема з запытам.",
    -  linkAlert: "Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1",
    -  hashError: "Прабачце, '%1' не адпавядае ніводнай захаванай праграме.",
    -  xmlError: "Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?",
    -  badXml: "Памылка сынтаксічнага аналізу XML:\n%1\n\nАбярыце \"ОК\", каб адмовіцца ад зьменаў ці \"Скасаваць\" для далейшага рэдагаваньня XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/br.js b/lib/blockly/demos/code/msg/br.js
    deleted file mode 100644
    index 321e28e..0000000
    --- a/lib/blockly/demos/code/msg/br.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kod",
    -  blocks: "Bloc'hoù",
    -  linkTooltip: "Enrollañ ha liammañ d'ar bloc'hadoù.",
    -  runTooltip: "Lañsañ ar programm termenet gant ar bloc'hadoù en takad labour.",
    -  badCode: "Fazi programm :\n%1",
    -  timeout: "Tizhet eo bet an niver brasañ a iteradurioù seveniñ aotreet.",
    -  trashTooltip: "Disteurel an holl vloc'hoù.",
    -  catLogic: "Poell",
    -  catLoops: "Boukloù",
    -  catMath: "Matematik",
    -  catText: "Testenn",
    -  catLists: "Rolloù",
    -  catColour: "Liv",
    -  catVariables: "Argemmennoù",
    -  catFunctions: "Arc'hwelioù",
    -  listVariable: "roll",
    -  textVariable: "testenn",
    -  httpRequestError: "Ur gudenn zo gant ar reked.",
    -  linkAlert: "Rannañ ho ploc'hoù gant al liamm-mañ :\n\n%1",
    -  hashError: "Digarezit. \"%1\" ne glot gant programm enrollet ebet.",
    -  xmlError: "Ne c'haller ket kargañ ho restr enrollet. Marteze e oa bet krouet gant ur stumm disheñvel eus Blockly ?",
    -  badXml: "Fazi dielfennañ XML :\n%1\n\nDibabit \"Mat eo\" evit dilezel ar c'hemmoù-se pe \"Nullañ\" evit kemmañ an XML c'hoazh."
    -};
    diff --git a/lib/blockly/demos/code/msg/ca.js b/lib/blockly/demos/code/msg/ca.js
    deleted file mode 100644
    index 2b6d973..0000000
    --- a/lib/blockly/demos/code/msg/ca.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Codi",
    -  blocks: "Blocs",
    -  linkTooltip: "Desa i enllaça als blocs.",
    -  runTooltip: "Executa el programa definit pels blocs de l'àrea de treball.",
    -  badCode: "Error de programa:\n %1",
    -  timeout: "S'ha superat el nombre màxim d'iteracions d'execució.",
    -  trashTooltip: "Descarta tots els blocs.",
    -  catLogic: "Lògica",
    -  catLoops: "Bucles",
    -  catMath: "Matemàtiques",
    -  catText: "Text",
    -  catLists: "Llistes",
    -  catColour: "Color",
    -  catVariables: "Variables",
    -  catFunctions: "Procediments",
    -  listVariable: "llista",
    -  textVariable: "text",
    -  httpRequestError: "Hi ha hagut un problema amb la sol·licitud.",
    -  linkAlert: "Comparteix els teus blocs amb aquest enllaç: %1",
    -  hashError: "Ho sentim, '%1' no es correspon amb cap fitxer desat de Blockly.",
    -  xmlError: "No s'ha pogut carregar el teu fitxer desat.  Potser va ser creat amb una versió diferent de Blockly?",
    -  badXml: "Error d'anàlisi XML:\n%1\n\nSeleccioneu 'Acceptar' per abandonar els vostres canvis, o 'Cancel·lar' per continuar editant l'XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/cs.js b/lib/blockly/demos/code/msg/cs.js
    deleted file mode 100644
    index 1026511..0000000
    --- a/lib/blockly/demos/code/msg/cs.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kód",
    -  blocks: "Bloky",
    -  linkTooltip: "Ulož a spoj bloky..",
    -  runTooltip: "",
    -  badCode: "Chyba programu:\n%1",
    -  timeout: "Maximum execution iterations exceeded.",
    -  trashTooltip: "Zahodit všechny bloky.",
    -  catLogic: "Logika",
    -  catLoops: "Smyčky",
    -  catMath: "Matematika",
    -  catText: "Text",
    -  catLists: "Seznamy",
    -  catColour: "Barva",
    -  catVariables: "Proměnné",
    -  catFunctions: "Procedury",
    -  listVariable: "seznam",
    -  textVariable: "text",
    -  httpRequestError: "Došlo k potížím s požadavkem.",
    -  linkAlert: "Sdílej bloky tímto odkazem: \n\n%1",
    -  hashError: "Omlouváme se, '%1' nesouhlasí s žádným z uložených souborů.",
    -  xmlError: "Nepodařilo se uložit vás soubor.  Pravděpodobně byl vytvořen jinou verzí Blockly?",
    -  badXml: "Chyba parsování XML:\n%1\n\nVybrat \"OK\" pro zahození vašich změn nebo 'Cancel' k dalšímu upravování XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/da.js b/lib/blockly/demos/code/msg/da.js
    deleted file mode 100644
    index 089450b..0000000
    --- a/lib/blockly/demos/code/msg/da.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kode",
    -  blocks: "Blokke",
    -  linkTooltip: "Gem og link til blokke.",
    -  runTooltip: "Kør programmet, der er defineret af blokkene i arbejdsområdet.",
    -  badCode: "Programfejl:\n%1",
    -  timeout: "Maksimale antal udførelsesgentagelser overskredet.",
    -  trashTooltip: "Kassér alle blokke.",
    -  catLogic: "Logik",
    -  catLoops: "Løkker",
    -  catMath: "Matematik",
    -  catText: "Tekst",
    -  catLists: "Lister",
    -  catColour: "Farve",
    -  catVariables: "Variabler",
    -  catFunctions: "Funktioner",
    -  listVariable: "liste",
    -  textVariable: "tekst",
    -  httpRequestError: "Der var et problem med forespørgslen.",
    -  linkAlert: "Del dine blokke med dette link:\n\n%1",
    -  hashError: "Beklager, '%1' passer ikke med nogen gemt Blockly fil.",
    -  xmlError: "Kunne ikke hente din gemte fil.  Måske er den lavet med en anden udgave af Blockly?",
    -  badXml: "Fejl under fortolkningen af XML:\n%1\n\nVælg 'OK' for at opgive dine ændringer eller 'Afbryd' for at redigere XML-filen yderligere."
    -};
    diff --git a/lib/blockly/demos/code/msg/de.js b/lib/blockly/demos/code/msg/de.js
    deleted file mode 100644
    index 422f918..0000000
    --- a/lib/blockly/demos/code/msg/de.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Code",
    -  blocks: "Bausteine",
    -  linkTooltip: "Speichern und auf Bausteine verlinken.",
    -  runTooltip: "Das Programm ausführen, das von den Bausteinen im Arbeitsbereich definiert ist.",
    -  badCode: "Programmfehler:\n%1",
    -  timeout: "Die maximalen Ausführungswiederholungen wurden überschritten.",
    -  trashTooltip: "Alle Bausteine verwerfen.",
    -  catLogic: "Logik",
    -  catLoops: "Schleifen",
    -  catMath: "Mathematik",
    -  catText: "Text",
    -  catLists: "Listen",
    -  catColour: "Farbe",
    -  catVariables: "Variablen",
    -  catFunctions: "Funktionen",
    -  listVariable: "Liste",
    -  textVariable: "Text",
    -  httpRequestError: "Mit der Anfrage gab es ein Problem.",
    -  linkAlert: "Teile deine Bausteine mit diesem Link:\n\n%1",
    -  hashError: "„%1“ stimmt leider mit keinem gespeicherten Programm überein.",
    -  xmlError: "Deine gespeicherte Datei konnte nicht geladen werden. Vielleicht wurde sie mit einer anderen Version von Blockly erstellt.",
    -  badXml: "Fehler beim Parsen von XML:\n%1\n\nWähle 'OK' zum Verwerfen deiner Änderungen oder 'Abbrechen' zum weiteren Bearbeiten des XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/el.js b/lib/blockly/demos/code/msg/el.js
    deleted file mode 100644
    index c63b7a6..0000000
    --- a/lib/blockly/demos/code/msg/el.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Κώδικας",
    -  blocks: "Μπλοκ",
    -  linkTooltip: "Αποθηκεύει και συνδέει σε μπλοκ.",
    -  runTooltip: "Εκτελεί το πρόγραμμα που ορίζεται από τα μπλοκ στον χώρο εργασίας.",
    -  badCode: "Σφάλμα προγράμματος:\n%1",
    -  timeout: "Υπέρβαση μέγιστου αριθμού επαναλήψεων.",
    -  trashTooltip: "Απόρριψη όλων των μπλοκ.",
    -  catLogic: "Λογική",
    -  catLoops: "Επαναλήψεις",
    -  catMath: "Μαθηματικά",
    -  catText: "Κείμενο",
    -  catLists: "Λίστες",
    -  catColour: "Χρώμα",
    -  catVariables: "Μεταβλητές",
    -  catFunctions: "Συναρτήσεις",
    -  listVariable: "λίστα",
    -  textVariable: "κείμενο",
    -  httpRequestError: "Υπήρξε πρόβλημα με το αίτημα.",
    -  linkAlert: "Κοινοποίησε τα μπλοκ σου με αυτόν τον σύνδεσμο:\n\n%1",
    -  hashError: "Λυπάμαι, το «%1» δεν αντιστοιχεί σε κανένα αποθηκευμένο πρόγραμμα.",
    -  xmlError: "Δεν μπορώ να φορτώσω το αποθηκευμένο αρχείο σου.  Μήπως δημιουργήθηκε από μία παλιότερη έκδοση του Blockly;",
    -  badXml: "Σφάλμα ανάλυσης XML:\n%1\n\nΕπίλεξε «Εντάξει» για να εγκαταλείψεις τις αλλαγές σου ή «Ακύρωση» για να επεξεργαστείς το XML κι άλλο."
    -};
    diff --git a/lib/blockly/demos/code/msg/en.js b/lib/blockly/demos/code/msg/en.js
    deleted file mode 100644
    index 8d52cf3..0000000
    --- a/lib/blockly/demos/code/msg/en.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Code",
    -  blocks: "Blocks",
    -  linkTooltip: "Save and link to blocks.",
    -  runTooltip: "Run the program defined by the blocks in the workspace.",
    -  badCode: "Program error:\n%1",
    -  timeout: "Maximum execution iterations exceeded.",
    -  trashTooltip: "Discard all blocks.",
    -  catLogic: "Logic",
    -  catLoops: "Loops",
    -  catMath: "Math",
    -  catText: "Text",
    -  catLists: "Lists",
    -  catColour: "Colour",
    -  catVariables: "Variables",
    -  catFunctions: "Functions",
    -  listVariable: "list",
    -  textVariable: "text",
    -  httpRequestError: "There was a problem with the request.",
    -  linkAlert: "Share your blocks with this link:\n\n%1",
    -  hashError: "Sorry, '%1' doesn't correspond with any saved program.",
    -  xmlError: "Could not load your saved file. Perhaps it was created with a different version of Blockly?",
    -  badXml: "Error parsing XML:\n%1\n\nSelect 'OK' to abandon your changes or 'Cancel' to further edit the XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/es.js b/lib/blockly/demos/code/msg/es.js
    deleted file mode 100644
    index 24358e3..0000000
    --- a/lib/blockly/demos/code/msg/es.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Código",
    -  blocks: "Bloques",
    -  linkTooltip: "Guarda conexión a los bloques.",
    -  runTooltip: "Ejecute el programa definido por los bloques en el área de trabajo.",
    -  badCode: "Error del programa:\n%1",
    -  timeout: "Se excedio el máximo de iteraciones ejecutadas permitidas.",
    -  trashTooltip: "Descartar todos los bloques.",
    -  catLogic: "Lógica",
    -  catLoops: "Secuencias",
    -  catMath: "Matemáticas",
    -  catText: "Texto",
    -  catLists: "Listas",
    -  catColour: "Color",
    -  catVariables: "Variables",
    -  catFunctions: "Funciones",
    -  listVariable: "lista",
    -  textVariable: "texto",
    -  httpRequestError: "Hubo un problema con la petición.",
    -  linkAlert: "Comparte tus bloques con este enlace:\n\n%1",
    -  hashError: "«%1» no corresponde con ningún programa guardado.",
    -  xmlError: "No se pudo cargar el archivo guardado.  ¿Quizá fue creado con otra versión de Blockly?",
    -  badXml: "Error de análisis XML:\n%1\n\nSelecciona OK para abandonar tus cambios o Cancelar para seguir editando el XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/et.js b/lib/blockly/demos/code/msg/et.js
    deleted file mode 100644
    index 320c391..0000000
    --- a/lib/blockly/demos/code/msg/et.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kood",
    -  blocks: "Plokid",
    -  linkTooltip: "Salvesta ja tekita link plokkidele.",
    -  runTooltip: "Käivita töölaual olevate plokkidega defineeritud programm.",
    -  badCode: "Viga programmis:\n%1",
    -  timeout: "Käivitatavate iteratsioonide maksimaalne arv on ületatud.",
    -  trashTooltip: "Eemalda kõik plokid.",
    -  catLogic: "Loogika",
    -  catLoops: "Kordus",
    -  catMath: "Matemaatika",
    -  catText: "Tekst",
    -  catLists: "Loendid",
    -  catColour: "Värv",
    -  catVariables: "Muutujad",
    -  catFunctions: "Funktsioonid",
    -  listVariable: "loend",
    -  textVariable: "tekst",
    -  httpRequestError: "Probleem päringuga.",
    -  linkAlert: "Oma plokke saad jagada selle lingiga:\n\n%1",
    -  hashError: "Vabandust, kuid '%1' ei vasta ühelegi salvestatud programmile.",
    -  xmlError: "Su salvestatud faili ei õnnestunud laadida. Võibolla on see loodud mõne teise Blockly versiooniga?",
    -  badXml: "Viga XML-i parsimisel:\n%1\n\nTehtud muudatustest loobumiseks vajuta 'OK', XML-i muudatuste tegemise jätkamiseks 'Katkesta'."
    -};
    diff --git a/lib/blockly/demos/code/msg/fa.js b/lib/blockly/demos/code/msg/fa.js
    deleted file mode 100644
    index 96dd966..0000000
    --- a/lib/blockly/demos/code/msg/fa.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "کد",
    -  blocks: "بلوک‌ها",
    -  linkTooltip: "ذخیره و پیوند به بلوک‌ها.",
    -  runTooltip: "اجرای برنامهٔ تعریف‌شده توسط بلوک‌ها در فضای کار.",
    -  badCode: "خطای برنامه:\n%1",
    -  timeout: "حداکثر تکرارهای اجرا رد شده‌است.",
    -  trashTooltip: "دورریختن همهٔ بلوک‌ها.",
    -  catLogic: "منطق",
    -  catLoops: "حلقه‌ها",
    -  catMath: "ریاضی",
    -  catText: "متن",
    -  catLists: "فهرست‌ها",
    -  catColour: "رنگ",
    -  catVariables: "متغییرها",
    -  catFunctions: "توابع",
    -  listVariable: "فهرست",
    -  textVariable: "متن",
    -  httpRequestError: "مشکلی با درخواست وجود داشت.",
    -  linkAlert: "اشتراک‌گذاری بلاک‌هایتان با این پیوند:\n\n%1",
    -  hashError: "شرمنده، «%1» با هیچ برنامهٔ ذخیره‌شده‌ای تطبیق پیدا نکرد.",
    -  xmlError: "نتوانست پروندهٔ ذخیرهٔ شما بارگیری شود.  احتمالاً با نسخهٔ متفاوتی از بلوکی درست شده‌است؟",
    -  badXml: "خطای تجزیهٔ اکس‌ام‌ال:\n%1\n\n«باشد» را برای ذخیره و «فسخ» را برای ویرایش بیشتر اکس‌ام‌ال انتخاب کنید."
    -};
    diff --git a/lib/blockly/demos/code/msg/fr.js b/lib/blockly/demos/code/msg/fr.js
    deleted file mode 100644
    index 6018113..0000000
    --- a/lib/blockly/demos/code/msg/fr.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Code",
    -  blocks: "Blocs",
    -  linkTooltip: "Sauvegarder et lier aux blocs.",
    -  runTooltip: "Lancer le programme défini par les blocs dans l’espace de travail.",
    -  badCode: "Erreur du programme :\n%1",
    -  timeout: "Nombre maximum d’itérations d’exécution dépassé.",
    -  trashTooltip: "Jeter tous les blocs.",
    -  catLogic: "Logique",
    -  catLoops: "Boucles",
    -  catMath: "Math",
    -  catText: "Texte",
    -  catLists: "Listes",
    -  catColour: "Couleur",
    -  catVariables: "Variables",
    -  catFunctions: "Fonctions",
    -  listVariable: "liste",
    -  textVariable: "texte",
    -  httpRequestError: "Il y a eu un problème avec la demande.",
    -  linkAlert: "Partagez vos blocs grâce à ce lien:\n\n%1",
    -  hashError: "Désolé, '%1' ne correspond à aucun programme sauvegardé.",
    -  xmlError: "Impossible de charger le fichier de sauvegarde.  Peut être a t-il été créé avec une autre version de Blockly?",
    -  badXml: "Erreur d’analyse du XML :\n%1\n\nSélectionner 'OK' pour abandonner vos modifications ou 'Annuler' pour continuer à modifier le XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/he.js b/lib/blockly/demos/code/msg/he.js
    deleted file mode 100644
    index dc28266..0000000
    --- a/lib/blockly/demos/code/msg/he.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "קוד",
    -  blocks: "קטעי קוד",
    -  linkTooltip: "שמירה וקישור לקטעי קוד.",
    -  runTooltip: "הרצת התכנית שהוגדרה על ידי קטעי הקוד שבמרחב העבודה.",
    -  badCode: "שגיאה בתכנית: %1",
    -  timeout: "חריגה ממספר פעולות חוזרות אפשריות.",
    -  trashTooltip: "השלך את כל קטעי הקוד.",
    -  catLogic: "לוגיקה",
    -  catLoops: "לולאות",
    -  catMath: "מתמטיקה",
    -  catText: "טקסט",
    -  catLists: "רשימות",
    -  catColour: "צבע",
    -  catVariables: "משתנים",
    -  catFunctions: "פונקציות",
    -  listVariable: "רשימה",
    -  textVariable: "טקסט",
    -  httpRequestError: "הבקשה נכשלה.",
    -  linkAlert: "ניתן לשתף את קטעי הקוד שלך באמצעות קישור זה:\n\n%1",
    -  hashError: "לצערנו, '%1' איננו מתאים לאף אחת מהתוכניות השמורות",
    -  xmlError: "נסיון הטעינה של הקובץ השמור שלך נכשל. האם ייתכן שהוא נוצר בגרסא שונה של בלוקלי?",
    -  badXml: "תקלה בפענוח XML:\n\n%1\n\nנא לבחור 'אישור' כדי לנטוש את השינויים שלך או 'ביטול' כדי להמשיך ולערוך את ה־XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/hrx.js b/lib/blockly/demos/code/msg/hrx.js
    deleted file mode 100644
    index ca0dea3..0000000
    --- a/lib/blockly/demos/code/msg/hrx.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Code",
    -  blocks: "Bausten",
    -  linkTooltip: "Speichre und auf Bausten verlinke.",
    -  runTooltip: "Das Programm ausfüahre, das von den Bausten im Oorweitsbereich definiert ist.",
    -  badCode: "Programmfehler:\n%1",
    -  timeout: "Die maximale Ausführungswiederholunge woore üwerschritt.",
    -  trashTooltip: "All Bausten verwerfe.",
    -  catLogic: "Logik",
    -  catLoops: "Schleife",
    -  catMath: "Mathematik",
    -  catText: "Text",
    -  catLists: "Liste",
    -  catColour: "Farreb",
    -  catVariables: "Variable",
    -  catFunctions: "Funktione",
    -  listVariable: "List",
    -  textVariable: "Text",
    -  httpRequestError: "Mit der Oonfroch hots en Problem geb.",
    -  linkAlert: "Tel von dein Bausten mit dem Link:\n\n%1",
    -  hashError: "„%1“ stimmt leider mit kenem üweren gespeicherte Programm.",
    -  xmlError: "Dein gespeicherte Datei könnt net gelood sin. Vielleicht woard se mit ener annre Version von Blockly erstellt.",
    -  badXml: "Fehler beim Parse von XML:\n%1\n\nWähle 'OK' zum Verwerfe von deiner Ändrunge orrer 'Abbreche' zum XML weiter beoorbeite."
    -};
    diff --git a/lib/blockly/demos/code/msg/hu.js b/lib/blockly/demos/code/msg/hu.js
    deleted file mode 100644
    index eee1868..0000000
    --- a/lib/blockly/demos/code/msg/hu.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kódszerkesztő",
    -  blocks: "Blokkok",
    -  linkTooltip: "Hivatkozás létrehozása",
    -  runTooltip: "Program futtatása.",
    -  badCode: "Program hiba:\n%1",
    -  timeout: "A program elérte a maximális végrehajtási időt.",
    -  trashTooltip: "Összes blokk törlése.",
    -  catLogic: "Logikai műveletek",
    -  catLoops: "Ciklusok",
    -  catMath: "Matematikai műveletek",
    -  catText: "Sztring műveletek",
    -  catLists: "Listakezelés",
    -  catColour: "Színek",
    -  catVariables: "Változók",
    -  catFunctions: "Eljárások",
    -  listVariable: "lista",
    -  textVariable: "szöveg",
    -  httpRequestError: "A kéréssel kapcsolatban probléma merült fel.",
    -  linkAlert: "Ezzel a hivatkozással tudod megosztani a programodat:\n\n%1",
    -  hashError: "Sajnos a '%1' hivatkozás nem tartozik egyetlen programhoz sem.",
    -  xmlError: "A programodat nem lehet betölteni.  Elképzelhető, hogy a Blockly egy másik verziójában készült?",
    -  badXml: "Hiba az XML feldolgozásakor:\n%1\n\nVáltozások elvetése?"
    -};
    diff --git a/lib/blockly/demos/code/msg/ia.js b/lib/blockly/demos/code/msg/ia.js
    deleted file mode 100644
    index 5938458..0000000
    --- a/lib/blockly/demos/code/msg/ia.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Codice",
    -  blocks: "Blocos",
    -  linkTooltip: "Salveguardar e ligar a blocos.",
    -  runTooltip: "Executar le programma definite per le blocos in le spatio de travalio.",
    -  badCode: "Error del programma:\n%1",
    -  timeout: "Le numero de iterationes executate ha excedite le maximo.",
    -  trashTooltip: "Abandonar tote le blocos.",
    -  catLogic: "Logica",
    -  catLoops: "Buclas",
    -  catMath: "Mathematica",
    -  catText: "Texto",
    -  catLists: "Listas",
    -  catColour: "Color",
    -  catVariables: "Variabiles",
    -  catFunctions: "Functiones",
    -  listVariable: "lista",
    -  textVariable: "texto",
    -  httpRequestError: "Il habeva un problema con le requesta.",
    -  linkAlert: "Divide tu blocos con iste ligamine:\n\n%1",
    -  hashError: "Infelicemente, '%1' non corresponde a alcun programma salveguardate.",
    -  xmlError: "Impossibile cargar le file salveguardate. Pote esser que illo ha essite create con un altere version de Blockly?",
    -  badXml: "Error de analyse del XML:\n%1\n\nSelige 'OK' pro abandonar le modificationes o 'Cancellar' pro continuar a modificar le codice XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/is.js b/lib/blockly/demos/code/msg/is.js
    deleted file mode 100644
    index fa5c40d..0000000
    --- a/lib/blockly/demos/code/msg/is.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kóði",
    -  blocks: "Kubbar",
    -  linkTooltip: "Vista og tengja við kubba.",
    -  runTooltip: "Keyra forritið sem kubbarnir á vinnusvæðinu mynda.",
    -  badCode: "Villa í forriti:\n%1",
    -  timeout: "Forritið hefur endurtekið sig of oft.",
    -  trashTooltip: "Fleygja öllum kubbum.",
    -  catLogic: "Rökvísi",
    -  catLoops: "Lykkjur",
    -  catMath: "Reikningur",
    -  catText: "Texti",
    -  catLists: "Listar",
    -  catColour: "Litir",
    -  catVariables: "Breytur",
    -  catFunctions: "Stefjur",
    -  listVariable: "listi",
    -  textVariable: "texti",
    -  httpRequestError: "Það kom upp vandamál með beiðnina.",
    -  linkAlert: "Deildu kubbunum þínum með þessari krækju:",
    -  hashError: "Því miður, '%1' passar ekki við neitt vistað forrit.",
    -  xmlError: "Gat ekki hlaðið vistuðu skrána þína. Var hún kannske búin til í annarri útgáfu af Blockly?",
    -  badXml: "Villa við úrvinnslu XML:\n%1\n\nVeldu 'Í lagi' til að sleppa breytingum eða 'Hætta við' til að halda áfram með XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/it.js b/lib/blockly/demos/code/msg/it.js
    deleted file mode 100644
    index cd69b66..0000000
    --- a/lib/blockly/demos/code/msg/it.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Codice",
    -  blocks: "Blocchi",
    -  linkTooltip: "Salva e collega ai blocchi.",
    -  runTooltip: "Esegui il programma definito dai blocchi nell'area di lavoro.",
    -  badCode: "Errore programma:\n%1",
    -  timeout: "È stato superato il numero massimo consentito di interazioni eseguite.",
    -  trashTooltip: "Elimina tutti i blocchi.",
    -  catLogic: "Logica",
    -  catLoops: "Cicli",
    -  catMath: "Matematica",
    -  catText: "Testo",
    -  catLists: "Elenchi",
    -  catColour: "Colore",
    -  catVariables: "Variabili",
    -  catFunctions: "Funzioni",
    -  listVariable: "elenco",
    -  textVariable: "testo",
    -  httpRequestError: "La richiesta non è stata soddisfatta.",
    -  linkAlert: "Condividi i tuoi blocchi con questo collegamento:\n\n%1",
    -  hashError: "Mi spiace, '%1' non corrisponde ad alcun programma salvato.",
    -  xmlError: "Non è stato possibile caricare il documento.  Forse è stato creato con una versione diversa di Blockly?",
    -  badXml: "Errore durante l'analisi XML:\n%1\n\nSeleziona 'OK' per abbandonare le modifiche o 'Annulla' per continuare a modificare l'XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/ja.js b/lib/blockly/demos/code/msg/ja.js
    deleted file mode 100644
    index 6d50419..0000000
    --- a/lib/blockly/demos/code/msg/ja.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "コード",
    -  blocks: "ブロック",
    -  linkTooltip: "ブロックの状態を保存してリンクを取得します。",
    -  runTooltip: "ブロックで作成したプログラムを実行します。",
    -  badCode: "プログラムのエラー:\n%1",
    -  timeout: "命令の実行回数が制限値を超えました。",
    -  trashTooltip: "すべてのブロックを消します。",
    -  catLogic: "論理",
    -  catLoops: "繰り返し",
    -  catMath: "数学",
    -  catText: "テキスト",
    -  catLists: "リスト",
    -  catColour: "色",
    -  catVariables: "変数",
    -  catFunctions: "関数",
    -  listVariable: "リスト",
    -  textVariable: "テキスト",
    -  httpRequestError: "ネットワーク接続のエラーです。",
    -  linkAlert: "ブロックの状態をこのリンクで共有できます:\n\n%1",
    -  hashError: "すみません。「%1」という名前のプログラムは保存されていません。",
    -  xmlError: "保存されたファイルを読み込めませんでした。別のバージョンのブロックリーで作成された可能性があります。",
    -  badXml: "XML のエラーです:\n%1\n\nXML の変更をやめるには「OK」、編集を続けるには「キャンセル」を選んでください。"
    -};
    diff --git a/lib/blockly/demos/code/msg/kab.js b/lib/blockly/demos/code/msg/kab.js
    deleted file mode 100644
    index 648ff7f..0000000
    --- a/lib/blockly/demos/code/msg/kab.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Tangalt",
    -  blocks: "Iḥedran",
    -  linkTooltip: "Sekles sakin cudd ar iḥedran.",
    -  runTooltip: "Senker ahil i d-sbadun iḥedran di tallunt n umahil.",
    -  badCode: "Tuccḍa deg ahil :\n%1",
    -  timeout: "Amḍan afellay n wallusen n uselkem iɛeddan.",
    -  trashTooltip: "Ḍeggeṛ akk iḥedran.",
    -  catLogic: "Tameẓla",
    -  catLoops: "Tineddicin",
    -  catMath: "Tusnakt",
    -  catText: "Aḍris",
    -  catLists: "Tibdarin",
    -  catColour: "Ini",
    -  catVariables: "Imuttiyen",
    -  catFunctions: "Tiwiriwin",
    -  listVariable: "tabdart",
    -  textVariable: "aḍris",
    -  httpRequestError: "yella ugur deg usuter.",
    -  linkAlert: "Bḍu iḥedran-ik s useqdec n useɣwen-agi:\n\n%1",
    -  hashError: "Suref-aɣ, '%1' ur imenṭaḍ ulad d yiwen n wahil yettwaskelsen.",
    -  xmlError: "Ur izmir ara ad d-isali afaylu  n usekles. Ahatyettwarna s lqem-nniḍen n Blockly?",
    -  badXml: "Tuccḍa di tesleḍt n XML :\n%1\n\nFren 'IH' akken ad tzgleḍ asnifel-ik 'Sefsex' akken ad tkemmleḍ asnifel n XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/ko.js b/lib/blockly/demos/code/msg/ko.js
    deleted file mode 100644
    index 990cb6f..0000000
    --- a/lib/blockly/demos/code/msg/ko.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "코드",
    -  blocks: "블록",
    -  linkTooltip: "블록을 저장하고 링크를 가져옵니다.",
    -  runTooltip: "작업 공간에서 블록으로 정의된 프로그램을 실행합니다.",
    -  badCode: "프로그램 오류:\n%1",
    -  timeout: "최대 실행 반복을 초과했습니다.",
    -  trashTooltip: "모든 블록을 버립니다.",
    -  catLogic: "논리",
    -  catLoops: "반복",
    -  catMath: "수학",
    -  catText: "텍스트",
    -  catLists: "목록",
    -  catColour: "색",
    -  catVariables: "변수",
    -  catFunctions: "기능",
    -  listVariable: "목록",
    -  textVariable: "텍스트",
    -  httpRequestError: "요청에 문제가 있습니다.",
    -  linkAlert: "다음 링크로 블록을 공유하세요:\n\n%1",
    -  hashError: "죄송하지만 '%1'은 어떤 저장된 프로그램으로 일치하지 않습니다.",
    -  xmlError: "저장된 파일을 불러올 수 없습니다. 혹시 블록리의 다른 버전으로 만들었습니까?",
    -  badXml: "XML 구문 분석 오류:\n%1\n\n바뀜을 포기하려면 '확인'을 선택하고 XML을 더 편집하려면 '취소'를 선택하세요."
    -};
    diff --git a/lib/blockly/demos/code/msg/mk.js b/lib/blockly/demos/code/msg/mk.js
    deleted file mode 100644
    index cc344a6..0000000
    --- a/lib/blockly/demos/code/msg/mk.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Код",
    -  blocks: "Блокчиња",
    -  linkTooltip: "Зачувај и стави врска до блокчињата.",
    -  runTooltip: "Пушти го програмот определен од блокчињата во работниот простор.",
    -  badCode: "Грешка во програмот:\n%1",
    -  timeout: "Го надминавте допуштениот број на повторувања во извршувањето.",
    -  trashTooltip: "Отстрани ги сите блокчиња.",
    -  catLogic: "Логика",
    -  catLoops: "Јамки",
    -  catMath: "Математика",
    -  catText: "Текст",
    -  catLists: "Списоци",
    -  catColour: "Боја",
    -  catVariables: "Променливи",
    -  catFunctions: "Функции",
    -  listVariable: "список",
    -  textVariable: "текст",
    -  httpRequestError: "Се појави проблем во барањето.",
    -  linkAlert: "Споделете ги вашите блокчиња со оваа врска:\n\n%1",
    -  hashError: "„%1“ не одговара на ниеден зачуван програм.",
    -  xmlError: "Не можев да ја вчитам зачуваната податотека. Да не сте ја создале со друга верзија на Blockly?",
    -  badXml: "Грешка при расчленувањето на XML:\n%1\n\nСтиснете на „ОК“ за да ги напуштите промените или на „Откажи“ ако сакате уште да ја уредувате XML-податотеката."
    -};
    diff --git a/lib/blockly/demos/code/msg/ms.js b/lib/blockly/demos/code/msg/ms.js
    deleted file mode 100644
    index 87ee8de..0000000
    --- a/lib/blockly/demos/code/msg/ms.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kod",
    -  blocks: "Blok",
    -  linkTooltip: "Simpan dan pautkan kepada blok.",
    -  runTooltip: "Jalankan aturcara yang ditetapkan oleh blok-blok di dalam ruang kerja.",
    -  badCode: "Ralat aturcara:\n%1",
    -  timeout: "Takat maksimum lelaran pelaksanaan dicecah.",
    -  trashTooltip: "Buang semua Blok.",
    -  catLogic: "Logik",
    -  catLoops: "Gelung",
    -  catMath: "Matematik",
    -  catText: "Teks",
    -  catLists: "Senarai",
    -  catColour: "Warna",
    -  catVariables: "Pemboleh ubah",
    -  catFunctions: "Fungsi",
    -  listVariable: "senarai",
    -  textVariable: "teks",
    -  httpRequestError: "Permintaan itu terdapat masalah.",
    -  linkAlert: "Kongsikan blok-blok anda dengan pautan ini:\n\n%1",
    -  hashError: "Maaf, '%1' tidak berpadanan dengan sebarang aturcara yang disimpan.",
    -  xmlError: "Fail simpanan anda tidak dapat dimuatkan. Jangan-jangan ia dicipta dengan versi Blockly yang berlainan?",
    -  badXml: "Ralat ketika menghuraikan XML:\n%1\n\nPilih 'OK' untuk melucutkan suntingan anda atau 'Batal' untuk bersambung menyunting XML-nya."
    -};
    diff --git a/lib/blockly/demos/code/msg/nb.js b/lib/blockly/demos/code/msg/nb.js
    deleted file mode 100644
    index 60ac039..0000000
    --- a/lib/blockly/demos/code/msg/nb.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kode",
    -  blocks: "Blokker",
    -  linkTooltip: "Lagre og lenke til blokker.",
    -  runTooltip: "Kjør programmet definert av blokken i arbeidsområdet.",
    -  badCode: "Programfeil:\n%1",
    -  timeout: "Det maksimale antallet utførte looper er oversteget.",
    -  trashTooltip: "Fjern alle blokker",
    -  catLogic: "Logikk",
    -  catLoops: "Looper",
    -  catMath: "Matte",
    -  catText: "Tekst",
    -  catLists: "Lister",
    -  catColour: "Farge",
    -  catVariables: "Variabler",
    -  catFunctions: "Funksjoner",
    -  listVariable: "Liste",
    -  textVariable: "Tekst",
    -  httpRequestError: "Det oppsto et problem med forespørselen din",
    -  linkAlert: "Del dine blokker med denne lenken:\n\n%1",
    -  hashError: "Beklager, '%1' samsvarer ikke med noe lagret program.",
    -  xmlError: "Kunne ikke laste inn filen. Kanskje den ble laget med en annen versjon av Blockly?",
    -  badXml: "Feil ved parsering av XML:\n%1\n\nVelg 'OK' for å avbryte endringene eller 'Cancel' for å fortsette å redigere XML-koden."
    -};
    diff --git a/lib/blockly/demos/code/msg/nl.js b/lib/blockly/demos/code/msg/nl.js
    deleted file mode 100644
    index 339a5e8..0000000
    --- a/lib/blockly/demos/code/msg/nl.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Code",
    -  blocks: "Blokken",
    -  linkTooltip: "Opslaan en koppelen naar blokken.",
    -  runTooltip: "Voer het programma uit dat met de blokken in de werkruimte is gemaakt.",
    -  badCode: "Programmafout:\n%1",
    -  timeout: "Het maximale aantal iteraties is overschreden.",
    -  trashTooltip: "Alle blokken verwijderen",
    -  catLogic: "Logica",
    -  catLoops: "Lussen",
    -  catMath: "Formules",
    -  catText: "Tekst",
    -  catLists: "Lijsten",
    -  catColour: "Kleur",
    -  catVariables: "Variabelen",
    -  catFunctions: "Functies",
    -  listVariable: "lijst",
    -  textVariable: "tekst",
    -  httpRequestError: "Er is een probleem opgetreden tijdens het verwerken van het verzoek.",
    -  linkAlert: "Deel uw blokken via deze koppeling:\n\n%1",
    -  hashError: "\"%1\" komt helaas niet overeen met een opgeslagen bestand.",
    -  xmlError: "Uw opgeslagen bestand kan niet geladen worden. Is het misschien gemaakt met een andere versie van Blockly?",
    -  badXml: "Fout tijdens het verwerken van de XML:\n%1\n\nSelecteer \"OK\" om uw wijzigingen te negeren of \"Annuleren\" om de XML verder te bewerken."
    -};
    diff --git a/lib/blockly/demos/code/msg/oc.js b/lib/blockly/demos/code/msg/oc.js
    deleted file mode 100644
    index c184ac8..0000000
    --- a/lib/blockly/demos/code/msg/oc.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Còde",
    -  blocks: "Blòts",
    -  linkTooltip: "Salva e liga als blòts.",
    -  runTooltip: "Aviar lo programa definit pels blòts dins l’espaci de trabalh.",
    -  badCode: "Error del programa :\n%1",
    -  timeout: "Nombre maximum d’iteracions d’execucion depassat.",
    -  trashTooltip: "Getar totes los blòts.",
    -  catLogic: "Logic",
    -  catLoops: "Boclas",
    -  catMath: "Math",
    -  catText: "Tèxte",
    -  catLists: "Listas",
    -  catColour: "Color",
    -  catVariables: "Variablas",
    -  catFunctions: "Foncions",
    -  listVariable: "lista",
    -  textVariable: "tèxte",
    -  httpRequestError: "I a agut un problèma amb la demanda.",
    -  linkAlert: "Partejatz vòstres blòts gràcia a aqueste ligam :\n\n%1",
    -  hashError: "O planhèm, '%1' correspond pas a un fichièr Blockly salvament.",
    -  xmlError: "Impossible de cargar lo fichièr de salvament.  Benlèu qu'es estat creat amb una autra version de Blockly ?",
    -  badXml: "Error d’analisi del XML :\n%1\n\nSeleccionar 'D'acòrdi' per abandonar vòstras modificacions o 'Anullar' per modificar encara lo XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/pl.js b/lib/blockly/demos/code/msg/pl.js
    deleted file mode 100644
    index 83bb05d..0000000
    --- a/lib/blockly/demos/code/msg/pl.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kod",
    -  blocks: "Bloki",
    -  linkTooltip: "Zapisz i podlinkuj do bloków",
    -  runTooltip: "Uruchom program zdefinowany przez bloki w obszarze roboczym",
    -  badCode: "Błąd programu:\n%1",
    -  timeout: "Maksymalna liczba iteracji wykonywań przekroczona",
    -  trashTooltip: "Odrzuć wszystkie bloki.",
    -  catLogic: "Logika",
    -  catLoops: "Pętle",
    -  catMath: "Matematyka",
    -  catText: "Tekst",
    -  catLists: "Listy",
    -  catColour: "Kolor",
    -  catVariables: "Zmienne",
    -  catFunctions: "Funkcje",
    -  listVariable: "lista",
    -  textVariable: "tekst",
    -  httpRequestError: "Wystąpił problem z żądaniem.",
    -  linkAlert: "Udpostępnij swoje bloki korzystając z poniższego linku : \n\n\n%1",
    -  hashError: "Przepraszamy, \"%1\" nie odpowiada żadnemu zapisanemu programowi.",
    -  xmlError: "Nie można załadować zapisanego pliku. Być może został utworzony za pomocą innej wersji Blockly?",
    -  badXml: "Błąd parsowania XML : \n%1\n\nZaznacz 'OK' aby odrzucić twoje zmiany lub 'Cancel', żeby w przyszłości edytować XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/pms.js b/lib/blockly/demos/code/msg/pms.js
    deleted file mode 100644
    index a7704f7..0000000
    --- a/lib/blockly/demos/code/msg/pms.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Còdes",
    -  blocks: "Blòch",
    -  linkTooltip: "Argistré e lijé ai blòch.",
    -  runTooltip: "Fé andé ël programa definì dai blòch ant lë spassi ëd travaj.",
    -  badCode: "Eror dël programa:\n%1",
    -  timeout: "Nùmer màssim d'arpetission d'esecussion sorpassà.",
    -  trashTooltip: "Scarté tuti ij blòch.",
    -  catLogic: "Lògica",
    -  catLoops: "Liasse",
    -  catMath: "Matemàtica",
    -  catText: "Test",
    -  catLists: "Liste",
    -  catColour: "Color",
    -  catVariables: "Variàbij",
    -  catFunctions: "Fonsion",
    -  listVariable: "lista",
    -  textVariable: "test",
    -  httpRequestError: "A-i é staje un problema con l'arcesta.",
    -  linkAlert: "Ch'a partagia ij sò blòch grassie a sta liura: %1",
    -  hashError: "An dëspias, '%1 a corëspond a gnun programa salvà.",
    -  xmlError: "A l'é nen podusse carié so archivi salvà. Miraco a l'é stàit creà con na version diferenta ëd Blockly?",
    -  badXml: "Eror d'anàlisi dl'XML:\n%1\n\nSelessioné 'Va bin' për lassé perde toe modìfiche o 'Anulé' për modifiché ancora l'XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/pt-br.js b/lib/blockly/demos/code/msg/pt-br.js
    deleted file mode 100644
    index 9b18d63..0000000
    --- a/lib/blockly/demos/code/msg/pt-br.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Código",
    -  blocks: "Blocos",
    -  linkTooltip: "Salvar e ligar aos blocos.",
    -  runTooltip: "Execute o programa definido pelos blocos na área de trabalho.",
    -  badCode: "Erro no programa:\n%1",
    -  timeout: "Máximo de iterações de execução excedido.",
    -  trashTooltip: "Descartar todos os blocos.",
    -  catLogic: "Lógica",
    -  catLoops: "Laços",
    -  catMath: "Matemática",
    -  catText: "Texto",
    -  catLists: "Listas",
    -  catColour: "Cor",
    -  catVariables: "Variáveis",
    -  catFunctions: "Funções",
    -  listVariable: "lista",
    -  textVariable: "texto",
    -  httpRequestError: "Houve um problema com a requisição.",
    -  linkAlert: "Compartilhe seus blocos com este link:\n\n%1",
    -  hashError: "Desculpe, '%1' não corresponde a um programa salvo.",
    -  xmlError: "Não foi possível carregar seu arquivo salvo. Talvez ele tenha sido criado com uma versão diferente do Blockly?",
    -  badXml: "Erro de análise XML:\n%1\n\nSelecione 'OK' para abandonar suas mudanças ou 'Cancelar' para editar o XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/ro.js b/lib/blockly/demos/code/msg/ro.js
    deleted file mode 100644
    index cd3de11..0000000
    --- a/lib/blockly/demos/code/msg/ro.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Cod",
    -  blocks: "Blocuri",
    -  linkTooltip: "Salvează și adaugă la blocuri.",
    -  runTooltip: "Execută programul definit de către blocuri în spațiul de lucru.",
    -  badCode: "Eroare de program:\n%1",
    -  timeout: "Numărul maxim de iterații a fost depășit.",
    -  trashTooltip: "Șterge toate blocurile.",
    -  catLogic: "Logic",
    -  catLoops: "Bucle",
    -  catMath: "Matematică",
    -  catText: "Text",
    -  catLists: "Liste",
    -  catColour: "Culoare",
    -  catVariables: "Variabile",
    -  catFunctions: "Funcții",
    -  listVariable: "listă",
    -  textVariable: "text",
    -  httpRequestError: "A apărut o problemă la solicitare.",
    -  linkAlert: "Distribuie-ți blocurile folosind această legătură:\n\n%1",
    -  hashError: "Scuze, „%1” nu corespunde nici unui program salvat.",
    -  xmlError: "Sistemul nu a putut încărca fișierul salvat. Poate că a fost creat cu o altă versiune de Blockly?",
    -  badXml: "Eroare de parsare XML:\n%1\n\nAlege „OK” pentru a renunța la modificările efectuate sau „Revocare” pentru a modifica în continuare fișierul XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/ru.js b/lib/blockly/demos/code/msg/ru.js
    deleted file mode 100644
    index 389e905..0000000
    --- a/lib/blockly/demos/code/msg/ru.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Код",
    -  blocks: "Блоки",
    -  linkTooltip: "Сохранить и показать ссылку на блоки.",
    -  runTooltip: "Запустить программу, заданную блоками в рабочей области.",
    -  badCode: "Ошибка программы:\n%1",
    -  timeout: "Превышено максимальное количество итераций.",
    -  trashTooltip: "Удалить все блоки.",
    -  catLogic: "Логические",
    -  catLoops: "Циклы",
    -  catMath: "Математика",
    -  catText: "Текст",
    -  catLists: "Списки",
    -  catColour: "Цвет",
    -  catVariables: "Переменные",
    -  catFunctions: "Функции",
    -  listVariable: "список",
    -  textVariable: "текст",
    -  httpRequestError: "Произошла проблема при запросе.",
    -  linkAlert: "Поделитесь своими блоками по этой ссылке:\n\n%1",
    -  hashError: "К сожалению, «%1» не соответствует ни одному сохраненному файлу Блокли.",
    -  xmlError: "Не удалось загрузить ваш сохраненный файл.  Возможно, он был создан в другой версии Блокли?",
    -  badXml: "Ошибка синтаксического анализа XML:\n%1\n\nВыберите 'ОК', чтобы отказаться от изменений или 'Cancel' для дальнейшего редактирования XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/sc.js b/lib/blockly/demos/code/msg/sc.js
    deleted file mode 100644
    index 82f94d6..0000000
    --- a/lib/blockly/demos/code/msg/sc.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Còdixi",
    -  blocks: "Brocus",
    -  linkTooltip: "Sarva e alliòngia a is brocus.",
    -  runTooltip: "Arròllia su programa cumpostu de is brocus in s'àrea de traballu.",
    -  badCode: "Errori in su Programa:\n%1",
    -  timeout: "Giai lòmpius a su màssimu numeru de repicus.",
    -  trashTooltip: "Boganci totu is brocus.",
    -  catLogic: "Lògica",
    -  catLoops: "Lòrigas",
    -  catMath: "Matemàtica",
    -  catText: "Testu",
    -  catLists: "Lista",
    -  catColour: "Colori",
    -  catVariables: "Variabilis",
    -  catFunctions: "Funtzionis",
    -  listVariable: "lista",
    -  textVariable: "testu",
    -  httpRequestError: "Ddui fut unu problema cun sa pregunta",
    -  linkAlert: "Poni is brocus tuus in custu acàpiu:\n\n%1",
    -  hashError: "Mi dispraxit, '%1' non torrat a pari cun nimancu unu de is programas sarvaus.",
    -  xmlError: "Non potzu carrigai su file sarvau. Fortzis est stètiu fatu cun d-una versioni diferenti de Blockly?",
    -  badXml: "Errori in s'anàlisi XML:\n%1\n\nCraca 'OK' po perdi is mudàntzias 'Anudda' po sighì a scriri su XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/sk.js b/lib/blockly/demos/code/msg/sk.js
    deleted file mode 100644
    index 3917df2..0000000
    --- a/lib/blockly/demos/code/msg/sk.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kód",
    -  blocks: "Bloky",
    -  linkTooltip: "Uložiť a zdieľať odkaz na tento program.",
    -  runTooltip: "Spustiť program, zložený z dielcov na pracovnej ploche.",
    -  badCode: "Chyba v programe:\n%1",
    -  timeout: "Bol prekročený maximálny počet opakovaní.",
    -  trashTooltip: "Zahodiť všetky dielce.",
    -  catLogic: "Logika",
    -  catLoops: "Cykly",
    -  catMath: "Matematické",
    -  catText: "Text",
    -  catLists: "Zoznamy",
    -  catColour: "Farby",
    -  catVariables: "Premenné",
    -  catFunctions: "Funkcie",
    -  listVariable: "zoznam",
    -  textVariable: "text",
    -  httpRequestError: "Problém so spracovaním požiadavky.",
    -  linkAlert: "Zdieľať tento program skopírovaním odkazu\n\n%1",
    -  hashError: "Prepáč, '%1' nie je meno žiadnemu uloženému programu.",
    -  xmlError: "Nebolo možné načítať uložený súbor. Možno bol vytvorený v inej verzii Blocky.",
    -  badXml: "Chyba pri parsovaní XML:\n%1\n\nStlačte 'OK' ak chcete zrušiť zmeny alebo 'Zrušiť' pre pokračovanie v úpravách XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/sr.js b/lib/blockly/demos/code/msg/sr.js
    deleted file mode 100644
    index f9a026c..0000000
    --- a/lib/blockly/demos/code/msg/sr.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Кôд",
    -  blocks: "Блокови",
    -  linkTooltip: "Сачувајте и повежите са блоковима.",
    -  runTooltip: "Покрените програм заснован на блоковима у радном простору.",
    -  badCode: "Грешка у програму:\n%1",
    -  timeout: "Достигнут је максималан број понављања у извршавању.",
    -  trashTooltip: "Одбаците све блокове.",
    -  catLogic: "Логика",
    -  catLoops: "Петље",
    -  catMath: "Математика",
    -  catText: "Текст",
    -  catLists: "Спискови",
    -  catColour: "Боја",
    -  catVariables: "Променљиве",
    -  catFunctions: "Процедуре",
    -  listVariable: "списак",
    -  textVariable: "текст",
    -  httpRequestError: "Дошло је до проблема у захтеву.",
    -  linkAlert: "Делите своје блокове овом везом:\n\n%1",
    -  hashError: "„%1“ не одговара ниједном сачуваном програму.",
    -  xmlError: "Не могу да учитам сачувану датотеку. Можда је направљена другом верзијом Blockly-ја.",
    -  badXml: "Грешка при рашчлањивању XML-а:\n%1\n\nПритисните „У реду“ да напустите измене или „Откажи“ да наставите са уређивањем XML датотеке."
    -};
    diff --git a/lib/blockly/demos/code/msg/sv.js b/lib/blockly/demos/code/msg/sv.js
    deleted file mode 100644
    index 4134a4c..0000000
    --- a/lib/blockly/demos/code/msg/sv.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kod",
    -  blocks: "Block",
    -  linkTooltip: "Spara och länka till block.",
    -  runTooltip: "Kör programmet som definierats av blocken i arbetsytan.",
    -  badCode: "Programfel:\n%1",
    -  timeout: "Det maximala antalet utförda loopar har överskridits.",
    -  trashTooltip: "Släng alla block.",
    -  catLogic: "Logik",
    -  catLoops: "Loopar",
    -  catMath: "Matematik",
    -  catText: "Text",
    -  catLists: "Listor",
    -  catColour: "Färg",
    -  catVariables: "Variabler",
    -  catFunctions: "Funktioner",
    -  listVariable: "lista",
    -  textVariable: "text",
    -  httpRequestError: "Det uppstod ett problem med begäran.",
    -  linkAlert: "Dela dina block med denna länk: \n\n%1",
    -  hashError: "Tyvärr, '%1' överensstämmer inte med något sparat program.",
    -  xmlError: "Kunde inte läsa din sparade fil. Den skapades kanske med en annan version av Blockly?",
    -  badXml: "Fel vid parsning av XML:\n%1\n\nKlicka på 'OK' för att strunta i dina ändringar eller 'Avbryt' för att fortsätta redigera XML-koden."
    -};
    diff --git a/lib/blockly/demos/code/msg/ta.js b/lib/blockly/demos/code/msg/ta.js
    deleted file mode 100644
    index ff472e2..0000000
    --- a/lib/blockly/demos/code/msg/ta.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "கணினி நிரல்", //Code
    -  blocks: "நிரல் துண்டு", //block
    -  linkTooltip: "சேமித்து நிரல் துண்டிற்கு இணைக்க", //save and link to block
    -  runTooltip: "பணிமனை நினைவகத்தில் இயக்குக", //Run the program defined by the blocks in the workspace.
    -  badCode: "கணினி நிரல் கோளாறு:\n%1",
    -  timeout: "அதிகபட்ச அடுக்கின் அளவை மீரியது", //max iters reached/exceeded
    -  trashTooltip: "நீக்கு",
    -  catLogic: "தர்க வகை",
    -  catLoops: "மடக்கு வாக்கியம்",
    -  catMath: "கணிதம்",
    -  catText: "உரை",
    -  catLists: "பட்டியல்",
    -  catColour: "வண்ணம்",
    -  catVariables: "மாறிகள்",
    -  catFunctions: "சார்புகள்",
    -  listVariable: "பட்டியல் மாறி",
    -  textVariable: "உரை சரம்",
    -  httpRequestError: "இந்த செயலை இயக்குவதில் கோளாறு ஏற்பட்டது",
    -  linkAlert: "இந்த சுட்டி வழியாக நிரல் துண்டுகளை பகிரவும்:\n\n%1",
    -  hashError: "'%1' : இது சேமித்த நிரலாக தெரியவில்லை.",
    -  xmlError: "உங்களது நிரலை காணவில்லை; வேறு Blockly அத்தியாயத்தில் சேமித்தீரா?",
    -  badXml: "XML பகுப்பதில் கோளாறு:\n%1\n\nOK' கிளிக் செய்தால் மாற்றங்கள் இழப்பீர்கள்; பிழைகளுடன் தொடர 'Cancel' கிளிக் செய்யவும்."
    -};
    diff --git a/lib/blockly/demos/code/msg/th.js b/lib/blockly/demos/code/msg/th.js
    deleted file mode 100644
    index 1ac3624..0000000
    --- a/lib/blockly/demos/code/msg/th.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "เขียนโปรแกรม",
    -  blocks: "บล็อก",
    -  linkTooltip: "บันทึกและสร้างลิงก์มายังบล็อกเหล่านี้",
    -  runTooltip: "เรียกใช้โปรแกรมตามที่กำหนดไว้ด้วยบล็อกที่อยู่ในพื้นที่ทำงาน",
    -  badCode: "โปรแกรมเกิดข้อผิดพลาด:\n%1",
    -  timeout: "โปรแกรมทำงานซ้ำคำสั่งเดิมมากเกินไป",
    -  trashTooltip: "ยกเลิกบล็อกทั้งหมด",
    -  catLogic: "ตรรกะ",
    -  catLoops: "การวนซ้ำ",
    -  catMath: "คณิตศาสตร์",
    -  catText: "ข้อความ",
    -  catLists: "รายการ",
    -  catColour: "สี",
    -  catVariables: "ตัวแปร",
    -  catFunctions: "ฟังก์ชัน",
    -  listVariable: "รายการ",
    -  textVariable: "ข้อความ",
    -  httpRequestError: "มีปัญหาเกี่ยวกับการร้องขอ",
    -  linkAlert: "แบ่งปันบล็อกของคุณด้วยลิงก์นี้:\n\n%1",
    -  hashError: "เสียใจด้วย '%1' ไม่ตรงกับโปรแกรมใดๆ ที่เคยบันทึกเอาไว้เลย",
    -  xmlError: "ไม่สามารถโหลดไฟล์ที่บันทึกไว้ของคุณได้ บางทีมันอาจจะถูกสร้างขึ้นด้วย Blockly รุ่นอื่นที่แตกต่างกัน?",
    -  badXml: "เกิดข้อผิดพลาดในการแยกวิเคราะห์ XML:\n%1\n\nเลือก 'ตกลง' เพื่อละทิ้งการเปลี่ยนแปลงต่างๆ ที่ทำไว้ หรือเลือก 'ยกเลิก' เพื่อแก้ไข XML ต่อไป"
    -};
    diff --git a/lib/blockly/demos/code/msg/tlh.js b/lib/blockly/demos/code/msg/tlh.js
    deleted file mode 100644
    index 8d0c056..0000000
    --- a/lib/blockly/demos/code/msg/tlh.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "ngoq",
    -  blocks: "ngoghmey",
    -  linkTooltip: "",
    -  runTooltip: "",
    -  badCode: "Qagh:\n%1",
    -  timeout: "tlhoy nI'qu' poH.",
    -  trashTooltip: "",
    -  catLogic: "meq",
    -  catLoops: "vIHtaHbogh ghomey",
    -  catMath: "mI'QeD",
    -  catText: "ghItlhHommey",
    -  catLists: "tetlhmey",
    -  catColour: "rItlh",
    -  catVariables: "lIwmey",
    -  catFunctions: "mIwmey",
    -  listVariable: "tetlh",
    -  textVariable: "ghItlhHom",
    -  httpRequestError: "Qapbe' tlhobmeH QIn.",
    -  linkAlert: "latlhvaD ngoghmeylIj DangeHmeH Quvvam yIlo':\n\n%1",
    -  hashError: "Do'Ha', ngogh nab pollu'pu'bogh 'oHbe'law' \"%1\"'e'.",
    -  xmlError: "ngogh nablIj pollu'pu'bogh chu'qa'laHbe' vay'.  chaq pollu'pu'DI' ghunmeH ngogh pIm lo'lu'pu'.",
    -  badXml: "XML yajchu'laHbe' vay':\n%1\n\nchoHmeylIj DalonmeH \"ruch\" yIwIv pagh XML DachoHqa'meH \"qIl\" yIwIv."
    -};
    diff --git a/lib/blockly/demos/code/msg/tr.js b/lib/blockly/demos/code/msg/tr.js
    deleted file mode 100644
    index 1448300..0000000
    --- a/lib/blockly/demos/code/msg/tr.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Kod",
    -  blocks: "Bloklar",
    -  linkTooltip: "Blokları ve bağlantı adresini kaydet.",
    -  runTooltip: "Çalışma alanında bloklar tarafından tanımlanan programını çalıştırın.",
    -  badCode: "Program hatası:\n %1",
    -  timeout: "Maksimum yürütme yinelemeleri aşıldı.",
    -  trashTooltip: "Bütün blokları at.",
    -  catLogic: "Mantık",
    -  catLoops: "Döngüler",
    -  catMath: "Matematik",
    -  catText: "Metin",
    -  catLists: "Listeler",
    -  catColour: "Renk",
    -  catVariables: "Değişkenler",
    -  catFunctions: "İşlevler",
    -  listVariable: "liste",
    -  textVariable: "metin",
    -  httpRequestError: "İstek ile ilgili bir problem var.",
    -  linkAlert: "Bloklarını bu bağlantı ile paylaş:\n\n%1",
    -  hashError: "Üzgünüz, '%1' hiç bir kaydedilmiş program ile uyuşmuyor.",
    -  xmlError: "Kaydedilen dosyanız yüklenemiyor\nBlockly'nin önceki sürümü ile kaydedilmiş olabilir mi?",
    -  badXml: "XML ayrıştırma hatası:\n%1\n\nDeğişikliklerden vazgeçmek için 'Tamam'ı, düzenlemeye devam etmek için 'İptal' seçeneğini seçiniz."
    -};
    diff --git a/lib/blockly/demos/code/msg/uk.js b/lib/blockly/demos/code/msg/uk.js
    deleted file mode 100644
    index 6b34627..0000000
    --- a/lib/blockly/demos/code/msg/uk.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Код",
    -  blocks: "Блоки",
    -  linkTooltip: "Зберегти і пов'язати з блоками.",
    -  runTooltip: "Запустіть програму, визначену блоками у робочій області.",
    -  badCode: "Помилка програми:\n%1",
    -  timeout: "Максимальне виконання ітерацій перевищено.",
    -  trashTooltip: "Відкинути всі блоки.",
    -  catLogic: "Логіка",
    -  catLoops: "Петлі",
    -  catMath: "Математика",
    -  catText: "Текст",
    -  catLists: "Списки",
    -  catColour: "Колір",
    -  catVariables: "Змінні",
    -  catFunctions: "Функції",
    -  listVariable: "список",
    -  textVariable: "текст",
    -  httpRequestError: "Виникла проблема із запитом.",
    -  linkAlert: "Поділитися вашим блоками через посилання:\n\n%1",
    -  hashError: "На жаль, \"%1\" не відповідає жодній збереженій програмі.",
    -  xmlError: "Не вдалося завантажити ваш збережений файл.  Можливо, він був створений з іншої версії Blockly?",
    -  badXml: "Помилка синтаксичного аналізу XML:\n%1\n\nВиберіть \"Гаразд\", щоб відмовитися від змін або 'Скасувати' для подальшого редагування XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/vi.js b/lib/blockly/demos/code/msg/vi.js
    deleted file mode 100644
    index 952d024..0000000
    --- a/lib/blockly/demos/code/msg/vi.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "Chương trình",
    -  blocks: "Các mảnh",
    -  linkTooltip: "Lưu và lấy địa chỉ liên kết.",
    -  runTooltip: "Chạy chương trình.",
    -  badCode: "'Lỗi chương trình:\n%1",
    -  timeout: "Đã vượt quá số lần lặp cho phép.",
    -  trashTooltip: "Xóa tất cả mọi mảnh.",
    -  catLogic: "Logic",
    -  catLoops: "Vòng lặp",
    -  catMath: "Công thức toán",
    -  catText: "Văn bản",
    -  catLists: "Danh sách",
    -  catColour: "Màu",
    -  catVariables: "Biến",
    -  catFunctions: "Hàm",
    -  listVariable: "danh sách",
    -  textVariable: "văn bản",
    -  httpRequestError: "Hoạt động bị trục trặc, không thực hiện được yêu cầu của bạn.",
    -  linkAlert: "Chia sẻ chương trình của bạn với liên kết sau:\n\n %1",
    -  hashError: "Không tìm thấy chương trình được lưu ở '%1'.",
    -  xmlError: "Không mở được chương trình của bạn.  Có thể nó nằm trong một phiên bản khác của Blockly?",
    -  badXml: "Lỗi sử lý XML:\n %1\n\nChọn 'OK' để từ bỏ các thay đổi hoặc 'Hủy' để tiếp tục chỉnh sửa các XML."
    -};
    diff --git a/lib/blockly/demos/code/msg/zh-hans.js b/lib/blockly/demos/code/msg/zh-hans.js
    deleted file mode 100644
    index abf8a65..0000000
    --- a/lib/blockly/demos/code/msg/zh-hans.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "代码",
    -  blocks: "块",
    -  linkTooltip: "保存模块并生成链接。",
    -  runTooltip: "于工作区中运行块所定义的程式。",
    -  badCode: "程序错误:\n%1",
    -  timeout: "超过最大执行行数。",
    -  trashTooltip: "放弃所有块。",
    -  catLogic: "逻辑",
    -  catLoops: "循环",
    -  catMath: "数学",
    -  catText: "文本",
    -  catLists: "列表",
    -  catColour: "颜色",
    -  catVariables: "变量",
    -  catFunctions: "函数",
    -  listVariable: "列表",
    -  textVariable: "文本",
    -  httpRequestError: "请求存在问题。",
    -  linkAlert: "通过这个链接分享您的模块:\n\n%1",
    -  hashError: "对不起,没有任何已保存的程序对应'%1' 。",
    -  xmlError: "无法载入您保存的文件。您是否使用其他版本的Blockly创建该文件的?",
    -  badXml: "XML解析错误:\n%1\n\n选择“确定”以取消您对XML的修改,或选择“取消”以继续编辑XML。"
    -};
    diff --git a/lib/blockly/demos/code/msg/zh-hant.js b/lib/blockly/demos/code/msg/zh-hant.js
    deleted file mode 100644
    index 48a8b52..0000000
    --- a/lib/blockly/demos/code/msg/zh-hant.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -var MSG = {
    -  title: "程式碼",
    -  blocks: "積木",
    -  linkTooltip: "儲存積木組並提供連結。",
    -  runTooltip: "於工作區中執行積木組所定義的程式。",
    -  badCode: "程式錯誤:\n%1",
    -  timeout: "超過最大執行數。",
    -  trashTooltip: "捨棄所有積木。",
    -  catLogic: "邏輯",
    -  catLoops: "迴圈",
    -  catMath: "數學式",
    -  catText: "文字",
    -  catLists: "列表",
    -  catColour: "顏色",
    -  catVariables: "變量",
    -  catFunctions: "流程",
    -  listVariable: "列表",
    -  textVariable: "文字",
    -  httpRequestError: "命令出現錯誤。",
    -  linkAlert: "透過此連結分享您的積木組:\n\n%1",
    -  hashError: "對不起,「%1」並未對應任何已保存的程式。",
    -  xmlError: "未能載入您保存的檔案。或許它是由其他版本的Blockly創建?",
    -  badXml: "解析 XML 時出現錯誤:\n%1\n\n選擇'確定'以放棄您的更改,或選擇'取消'以進一步編輯 XML。"
    -};
    diff --git a/lib/blockly/demos/code/style.css b/lib/blockly/demos/code/style.css
    deleted file mode 100644
    index 4098dbf..0000000
    --- a/lib/blockly/demos/code/style.css
    +++ /dev/null
    @@ -1,164 +0,0 @@
    -html, body {
    -  height: 100%;
    -}
    -
    -body {
    -  background-color: #fff;
    -  font-family: sans-serif;
    -  margin: 0;
    -  overflow: hidden;
    -}
    -
    -.farSide {
    -  text-align: right;
    -}
    -
    -html[dir="RTL"] .farSide {
    -  text-align: left;
    -}
    -
    -/* Buttons */
    -button {
    -  margin: 5px;
    -  padding: 10px;
    -  border-radius: 4px;
    -  border: 1px solid #ddd;
    -  font-size: large;
    -  background-color: #eee;
    -  color: #000;
    -}
    -button.primary {
    -  border: 1px solid #dd4b39;
    -  background-color: #dd4b39;
    -  color: #fff;
    -}
    -button.primary>img {
    -  opacity: 1;
    -}
    -button>img {
    -  opacity: 0.6;
    -  vertical-align: text-bottom;
    -}
    -button:hover>img {
    -  opacity: 1;
    -}
    -button:active {
    -  border: 1px solid #888 !important;
    -}
    -button:hover {
    -  box-shadow: 2px 2px 5px #888;
    -}
    -button.disabled:hover>img {
    -  opacity: 0.6;
    -}
    -button.disabled {
    -  display: none;
    -}
    -button.notext {
    -  font-size: 10%;
    -}
    -
    -h1 {
    -  font-weight: normal;
    -  font-size: 140%;
    -  margin-left: 5px;
    -  margin-right: 5px;
    -}
    -
    -/* Tabs */
    -#tabRow>td {
    -  border: 1px solid #ccc;
    -  border-bottom: none;
    -}
    -td.tabon {
    -  border-bottom-color: #ddd !important;
    -  background-color: #ddd;
    -  padding: 5px 19px;
    -}
    -td.taboff {
    -  cursor: pointer;
    -  padding: 5px 19px;
    -}
    -td.taboff:hover {
    -  background-color: #eee;
    -}
    -td.tabmin {
    -  border-top-style: none !important;
    -  border-left-style: none !important;
    -  border-right-style: none !important;
    -}
    -td.tabmax {
    -  border-top-style: none !important;
    -  border-left-style: none !important;
    -  border-right-style: none !important;
    -  width: 99%;
    -  padding-left: 10px;
    -  padding-right: 10px;
    -  text-align: right;
    -}
    -html[dir=rtl] td.tabmax {
    -  text-align: left;
    -}
    -
    -table {
    -  border-collapse: collapse;
    -  margin: 0;
    -  padding: 0;
    -  border: none;
    -}
    -td {
    -  padding: 0;
    -  vertical-align: top;
    -}
    -.content {
    -  visibility: hidden;
    -  margin: 0;
    -  padding: 1ex;
    -  position: absolute;
    -  direction: ltr;
    -}
    -pre.content {
    -  border: 1px solid #ccc;
    -  overflow: scroll;
    -}
    -#content_blocks {
    -  padding: 0;
    -}
    -.blocklySvg {
    -  border-top: none !important;
    -}
    -#content_xml {
    -  resize: none;
    -  outline: none;
    -  border: 1px solid #ccc;
    -  font-family: monospace;
    -  overflow: scroll;
    -}
    -#languageMenu {
    -  vertical-align: top;
    -  margin-left: 15px;
    -  margin-right: 15px;
    -  margin-top: 15px;
    -}
    -
    -/* Buttons */
    -button {
    -  padding: 1px 10px;
    -  margin: 1px 5px;
    -}
    -
    -/* Sprited icons. */
    -.icon21 {
    -  height: 21px;
    -  width: 21px;
    -  background-image: url(icons.png);
    -}
    -.trash {
    -  background-position: 0px 0px;
    -}
    -.link {
    -  background-position: -21px 0px;
    -}
    -.run {
    -  background-position: -42px 0px;
    -}
    diff --git a/lib/blockly/demos/codelab/README.md b/lib/blockly/demos/codelab/README.md
    deleted file mode 100644
    index 2a5e913..0000000
    --- a/lib/blockly/demos/codelab/README.md
    +++ /dev/null
    @@ -1,16 +0,0 @@
    -# Blockly for the Web codelab
    -
    -Code for the [Blockly for the Web codelab](https://developers.google.com/TODO).
    -
    -In this codelab, you'll learn how to use Blockly JavaScript library
    -to add a block code editor to a web application.
    -
    -## What you'll learn
    -
    -* How to add Blockly to a sample web app.
    -* How to set up a Blockly workspace.
    -* How to create a new block in Blockly.
    -* How to generate and run JavaScript code from blocks.
    -
    -Example code for each step of the codelab is available from
    -the [completed](completed/) directory.
    diff --git a/lib/blockly/demos/codelab/app-complete/index.html b/lib/blockly/demos/codelab/app-complete/index.html
    deleted file mode 100644
    index d5780e1..0000000
    --- a/lib/blockly/demos/codelab/app-complete/index.html
    +++ /dev/null
    @@ -1,73 +0,0 @@
    -
    -
    -
    -  
    -  
    -  
    -
    -  Blockly for the Web Codelab
    -
    -  
    -  
    -
    -
    -
    -  
    -

    Music Maker

    -

    Music Maker Configuration

    -
    - -
    - - - -

    Tap any button to edit its code.
    When complete, press Done.

    - -
    -
    -
    1
    -
    2
    -
    3
    -
    -
    -
    4
    -
    5
    -
    6
    -
    -
    -
    7
    -
    8
    -
    9
    -
    -
    - -
    -
    - -
    -
    - - - - - - - - - - - - diff --git a/lib/blockly/demos/codelab/app-complete/scripts/main.js b/lib/blockly/demos/codelab/app-complete/scripts/main.js deleted file mode 100644 index 795dd1a..0000000 --- a/lib/blockly/demos/codelab/app-complete/scripts/main.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - (function() { - - let currentButton; - - function handlePlay(event) { - loadWorkspace(event.target); - Blockly.JavaScript.addReservedWords('code'); - var code = Blockly.JavaScript.workspaceToCode(Blockly.getMainWorkspace()); - code += 'MusicMaker.play();'; - // Eval can be dangerous. For more controlled execution, check - // https://github.com/NeilFraser/JS-Interpreter. - try { - eval(code); - } catch (error) { - console.log(error); - } - } - - function loadWorkspace(button) { - let workspace = Blockly.getMainWorkspace(); - workspace.clear(); - if (button.blocklyXml) { - Blockly.Xml.domToWorkspace(button.blocklyXml, workspace); - } - } - - function save(button) { - let xml = Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace()); - button.blocklyXml = xml; - } - - function handleSave() { - document.body.setAttribute('mode', 'edit'); - save(currentButton); - } - - function enableEditMode() { - document.body.setAttribute('mode', 'edit'); - document.querySelectorAll('.button').forEach(btn => { - btn.removeEventListener('click', handlePlay); - btn.addEventListener('click', enableBlocklyMode); - }); - } - - function enableMakerMode() { - document.body.setAttribute('mode', 'maker'); - document.querySelectorAll('.button').forEach(btn => { - btn.addEventListener('click', handlePlay); - btn.removeEventListener('click', enableBlocklyMode); - }); - } - - function enableBlocklyMode(e) { - document.body.setAttribute('mode', 'blockly'); - currentButton = e.target; - loadWorkspace(currentButton); - } - - document.querySelector('#edit').addEventListener('click', enableEditMode); - document.querySelector('#done').addEventListener('click', enableMakerMode); - document.querySelector('#save').addEventListener('click', handleSave); - - enableMakerMode(); - - Blockly.inject('blockly-div', { - media: '../../../media/', - toolbox: document.getElementById('toolbox'), - toolboxPosition: 'end', - horizontalLayout: true, - scrollbars: false - }); -})(); diff --git a/lib/blockly/demos/codelab/app-complete/scripts/music_maker.js b/lib/blockly/demos/codelab/app-complete/scripts/music_maker.js deleted file mode 100644 index e3d4eff..0000000 --- a/lib/blockly/demos/codelab/app-complete/scripts/music_maker.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const MusicMaker = { - queue_: [], - player_: new Audio(), - queueSound: function(soundUrl) { - this.queue_.push(soundUrl); - }, - play: function() { - let next = this.queue_.shift(); - if (next) { - this.player_.src = next; - this.player_.play(); - } - }, -}; - -MusicMaker.player_.addEventListener( - 'ended', MusicMaker.play.bind(MusicMaker)); diff --git a/lib/blockly/demos/codelab/app-complete/scripts/sound_blocks.js b/lib/blockly/demos/codelab/app-complete/scripts/sound_blocks.js deleted file mode 100644 index 5546226..0000000 --- a/lib/blockly/demos/codelab/app-complete/scripts/sound_blocks.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -Blockly.defineBlocksWithJsonArray([ - // Block for colour picker. - { - "type": "play_sound", - "message0": "Play %1", - "args0": [ - { - "type": "field_dropdown", - "name": "VALUE", - "options": [ - ["C4", "sounds/c4.m4a"], - ["D4", "sounds/d4.m4a"], - ["E4", "sounds/e4.m4a"], - ["F4", "sounds/f4.m4a"], - ["G4", "sounds/g4.m4a"], - ["A5", "sounds/a5.m4a"], - ["B5", "sounds/b5.m4a"], - ["C5", "sounds/c5.m4a"] - ] - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 355, - "tooltip": "", - "helpUrl": "" - } -]); - -Blockly.JavaScript['play_sound'] = function(block) { - var value = '\'' + block.getFieldValue('VALUE') + '\''; - return 'MusicMaker.queueSound(' + value + ');\n'; -}; diff --git a/lib/blockly/demos/codelab/app-complete/sounds/c4.m4a b/lib/blockly/demos/codelab/app-complete/sounds/c4.m4a deleted file mode 100644 index 33941cf..0000000 Binary files a/lib/blockly/demos/codelab/app-complete/sounds/c4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app-complete/sounds/c5.m4a b/lib/blockly/demos/codelab/app-complete/sounds/c5.m4a deleted file mode 100644 index 49721cd..0000000 Binary files a/lib/blockly/demos/codelab/app-complete/sounds/c5.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app-complete/sounds/d4.m4a b/lib/blockly/demos/codelab/app-complete/sounds/d4.m4a deleted file mode 100644 index 51bcad6..0000000 Binary files a/lib/blockly/demos/codelab/app-complete/sounds/d4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app-complete/sounds/e4.m4a b/lib/blockly/demos/codelab/app-complete/sounds/e4.m4a deleted file mode 100644 index d910052..0000000 Binary files a/lib/blockly/demos/codelab/app-complete/sounds/e4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app-complete/sounds/f4.m4a b/lib/blockly/demos/codelab/app-complete/sounds/f4.m4a deleted file mode 100644 index c80a0bf..0000000 Binary files a/lib/blockly/demos/codelab/app-complete/sounds/f4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app-complete/sounds/g4.m4a b/lib/blockly/demos/codelab/app-complete/sounds/g4.m4a deleted file mode 100644 index 45ea448..0000000 Binary files a/lib/blockly/demos/codelab/app-complete/sounds/g4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app-complete/styles/index.css b/lib/blockly/demos/codelab/app-complete/styles/index.css deleted file mode 100644 index 0ef8f3b..0000000 --- a/lib/blockly/demos/codelab/app-complete/styles/index.css +++ /dev/null @@ -1,75 +0,0 @@ -main { - width: 400px; - position: relative; - margin: 0 auto; - overflow:hidden; - height: 600px; -} - -header { - background-color: green; - width: 100%; -} - -h1 { - width: 400px; - position: relative; - margin: 0 auto; - color: #fff; - font-size: 1.8em; - line-height: 2.4em; -} - -.mode-edit, -.mode-maker, -.mode-blockly { - display: none; -} - -[mode="maker"] .mode-maker, -[mode="edit"] .mode-edit, -[mode="blockly"] .mode-blockly { - display: block; -} - -.blockly-editor { - position: absolute; - top: 64px; - left: -400px; - transition: left .4s; - height: 460px; - width: 400px; - background-color: #eee; -} - -[mode="blockly"] .blockly-editor { - left: 0; -} - -.maker { - display: flex; - flex-flow: column; - justify-content: space-between; - height: 460px; - width: 400px; -} - -.maker > div { - display: flex; - justify-content: space-between; -} - -.button { - width: 120px; - height: 140px; - color: #fff; - font-size: 3em; - text-align: center; - vertical-align: middle; - line-height: 140px; -} - -.mdl-button { - margin: 1em 0; - float: right; -} diff --git a/lib/blockly/demos/codelab/app/index.html b/lib/blockly/demos/codelab/app/index.html deleted file mode 100644 index 31eeff7..0000000 --- a/lib/blockly/demos/codelab/app/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - Blockly for the Web Codelab - - - - - - -
    -

    Music Maker

    -

    Music Maker Configuration

    -
    - -
    - - - -

    Tap any button to edit its code.
    When complete, press Done.

    - -
    -
    -
    1
    -
    2
    -
    3
    -
    -
    -
    4
    -
    5
    -
    6
    -
    -
    -
    7
    -
    8
    -
    9
    -
    -
    - -
    -
    -
    -
    - - - - - - diff --git a/lib/blockly/demos/codelab/app/scripts/main.js b/lib/blockly/demos/codelab/app/scripts/main.js deleted file mode 100644 index 21b8848..0000000 --- a/lib/blockly/demos/codelab/app/scripts/main.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - (function() { - - let currentButton; - - function handlePlay(event) { - // Add code for playing sound. - } - - function save(button) { - // Add code for saving the behavior of a button. - } - - function handleSave() { - document.body.setAttribute('mode', 'edit'); - save(currentButton); - } - - function enableEditMode() { - document.body.setAttribute('mode', 'edit'); - document.querySelectorAll('.button').forEach(btn => { - btn.removeEventListener('click', handlePlay); - btn.addEventListener('click', enableBlocklyMode); - }); - } - - function enableMakerMode() { - document.body.setAttribute('mode', 'maker'); - document.querySelectorAll('.button').forEach(btn => { - btn.addEventListener('click', handlePlay); - btn.removeEventListener('click', enableBlocklyMode); - }); - } - - function enableBlocklyMode(e) { - document.body.setAttribute('mode', 'blockly'); - currentButton = e.target; - } - - document.querySelector('#edit').addEventListener('click', enableEditMode); - document.querySelector('#done').addEventListener('click', enableMakerMode); - document.querySelector('#save').addEventListener('click', handleSave); - - enableMakerMode(); - -})(); diff --git a/lib/blockly/demos/codelab/app/scripts/music_maker.js b/lib/blockly/demos/codelab/app/scripts/music_maker.js deleted file mode 100644 index e3d4eff..0000000 --- a/lib/blockly/demos/codelab/app/scripts/music_maker.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const MusicMaker = { - queue_: [], - player_: new Audio(), - queueSound: function(soundUrl) { - this.queue_.push(soundUrl); - }, - play: function() { - let next = this.queue_.shift(); - if (next) { - this.player_.src = next; - this.player_.play(); - } - }, -}; - -MusicMaker.player_.addEventListener( - 'ended', MusicMaker.play.bind(MusicMaker)); diff --git a/lib/blockly/demos/codelab/app/sounds/c4.m4a b/lib/blockly/demos/codelab/app/sounds/c4.m4a deleted file mode 100644 index 33941cf..0000000 Binary files a/lib/blockly/demos/codelab/app/sounds/c4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app/sounds/c5.m4a b/lib/blockly/demos/codelab/app/sounds/c5.m4a deleted file mode 100644 index 49721cd..0000000 Binary files a/lib/blockly/demos/codelab/app/sounds/c5.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app/sounds/d4.m4a b/lib/blockly/demos/codelab/app/sounds/d4.m4a deleted file mode 100644 index 51bcad6..0000000 Binary files a/lib/blockly/demos/codelab/app/sounds/d4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app/sounds/e4.m4a b/lib/blockly/demos/codelab/app/sounds/e4.m4a deleted file mode 100644 index d910052..0000000 Binary files a/lib/blockly/demos/codelab/app/sounds/e4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app/sounds/f4.m4a b/lib/blockly/demos/codelab/app/sounds/f4.m4a deleted file mode 100644 index c80a0bf..0000000 Binary files a/lib/blockly/demos/codelab/app/sounds/f4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app/sounds/g4.m4a b/lib/blockly/demos/codelab/app/sounds/g4.m4a deleted file mode 100644 index 45ea448..0000000 Binary files a/lib/blockly/demos/codelab/app/sounds/g4.m4a and /dev/null differ diff --git a/lib/blockly/demos/codelab/app/styles/index.css b/lib/blockly/demos/codelab/app/styles/index.css deleted file mode 100644 index 0ef8f3b..0000000 --- a/lib/blockly/demos/codelab/app/styles/index.css +++ /dev/null @@ -1,75 +0,0 @@ -main { - width: 400px; - position: relative; - margin: 0 auto; - overflow:hidden; - height: 600px; -} - -header { - background-color: green; - width: 100%; -} - -h1 { - width: 400px; - position: relative; - margin: 0 auto; - color: #fff; - font-size: 1.8em; - line-height: 2.4em; -} - -.mode-edit, -.mode-maker, -.mode-blockly { - display: none; -} - -[mode="maker"] .mode-maker, -[mode="edit"] .mode-edit, -[mode="blockly"] .mode-blockly { - display: block; -} - -.blockly-editor { - position: absolute; - top: 64px; - left: -400px; - transition: left .4s; - height: 460px; - width: 400px; - background-color: #eee; -} - -[mode="blockly"] .blockly-editor { - left: 0; -} - -.maker { - display: flex; - flex-flow: column; - justify-content: space-between; - height: 460px; - width: 400px; -} - -.maker > div { - display: flex; - justify-content: space-between; -} - -.button { - width: 120px; - height: 140px; - color: #fff; - font-size: 3em; - text-align: center; - vertical-align: middle; - line-height: 140px; -} - -.mdl-button { - margin: 1em 0; - float: right; -} diff --git a/lib/blockly/demos/custom-dialogs/custom-dialog.js b/lib/blockly/demos/custom-dialogs/custom-dialog.js deleted file mode 100644 index 99c66be..0000000 --- a/lib/blockly/demos/custom-dialogs/custom-dialog.js +++ /dev/null @@ -1,172 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * An example implementation of how one might replace Blockly's browser - * dialogs. This is just an example, and applications are not encouraged to use - * it verbatim. - * - * @namespace - */ -CustomDialog = {}; - -/** Override Blockly.alert() with custom implementation. */ -Blockly.alert = function(message, callback) { - console.log('Alert: ' + message); - CustomDialog.show('Alert', message, { - onCancel: callback - }); -}; - -/** Override Blockly.confirm() with custom implementation. */ -Blockly.confirm = function(message, callback) { - console.log('Confirm: ' + message); - CustomDialog.show('Confirm', message, { - showOkay: true, - onOkay: function() { - callback(true); - }, - showCancel: true, - onCancel: function() { - callback(false); - } - }); -}; - -/** Override Blockly.prompt() with custom implementation. */ -Blockly.prompt = function(message, defaultValue, callback) { - console.log('Prompt: ' + message); - CustomDialog.show('Prompt', message, { - showInput: true, - showOkay: true, - onOkay: function() { - callback(CustomDialog.inputField.value); - }, - showCancel: true, - onCancel: function() { - callback(null); - } - }); - CustomDialog.inputField.value = defaultValue; -}; - -/** Hides any currently visible dialog. */ -CustomDialog.hide = function() { - if (CustomDialog.backdropDiv_) { - CustomDialog.backdropDiv_.style.display = 'none'; - CustomDialog.dialogDiv_.style.display = 'none'; - } -}; - -/** - * Shows the dialog. - * Allowed options: - * - showOkay: Whether to show the OK button. - * - showCancel: Whether to show the Cancel button. - * - showInput: Whether to show the text input field. - * - onOkay: Callback to handle the okay button. - * - onCancel: Callback to handle the cancel button and backdrop clicks. - */ -CustomDialog.show = function(title, message, options) { - var backdropDiv = CustomDialog.backdropDiv_; - var dialogDiv = CustomDialog.dialogDiv_; - if (!dialogDiv) { - // Generate HTML - backdropDiv = document.createElement('div'); - backdropDiv.id = 'customDialogBackdrop'; - backdropDiv.style.cssText = - 'position: absolute;' + - 'top: 0; left: 0; right: 0; bottom: 0;' + - 'background-color: rgba(0, 0, 0, .7);' + - 'z-index: 100;'; - document.body.appendChild(backdropDiv); - - dialogDiv = document.createElement('div'); - dialogDiv.id = 'customDialog'; - dialogDiv.style.cssText = - 'background-color: #fff;' + - 'width: 400px;' + - 'margin: 20px auto 0;' + - 'padding: 10px;'; - backdropDiv.appendChild(dialogDiv); - - dialogDiv.onclick = function(event) { - event.stopPropagation(); - }; - - CustomDialog.backdropDiv_ = backdropDiv; - CustomDialog.dialogDiv_ = dialogDiv; - } - backdropDiv.style.display = 'block'; - dialogDiv.style.display = 'block'; - - dialogDiv.innerHTML = - '
    ' + - '

    ' + - (options.showInput ? '
    ' : '') + - '
    ' + - (options.showCancel ? '': '') + - (options.showOkay ? '': '') + - '
    '; - dialogDiv.getElementsByClassName('customDialogTitle')[0] - .appendChild(document.createTextNode(title)); - dialogDiv.getElementsByClassName('customDialogMessage')[0] - .appendChild(document.createTextNode(message)); - - var onOkay = function(event) { - CustomDialog.hide(); - options.onOkay && options.onOkay(); - event && event.stopPropagation(); - }; - var onCancel = function(event) { - CustomDialog.hide(); - options.onCancel && options.onCancel(); - event && event.stopPropagation(); - }; - - var dialogInput = document.getElementById('customDialogInput'); - CustomDialog.inputField = dialogInput; - if (dialogInput) { - dialogInput.focus(); - - dialogInput.onkeyup = function(event) { - if (event.keyCode == 13) { - // Process as OK when user hits enter. - onOkay(); - return false; - } else if (event.keyCode == 27) { - // Process as cancel when user hits esc. - onCancel(); - return false; - } - }; - } else { - var okay = document.getElementById('customDialogOkay'); - okay && okay.focus(); - } - - if (options.showOkay) { - document.getElementById('customDialogOkay') - .addEventListener('click', onOkay); - } - if (options.showCancel) { - document.getElementById('customDialogCancel') - .addEventListener('click', onCancel); - } - - backdropDiv.onclick = onCancel; -}; diff --git a/lib/blockly/demos/custom-dialogs/icon.png b/lib/blockly/demos/custom-dialogs/icon.png deleted file mode 100644 index 7ea7e69..0000000 Binary files a/lib/blockly/demos/custom-dialogs/icon.png and /dev/null differ diff --git a/lib/blockly/demos/custom-dialogs/index.html b/lib/blockly/demos/custom-dialogs/index.html deleted file mode 100644 index 9c17180..0000000 --- a/lib/blockly/demos/custom-dialogs/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - Blockly Demo: Custom Dialog - - - - - - -

    Blockly > - Demos > Custom Dialog

    - -

    This is a simple demo of replacing modal browser dialogs with HTML. - To see how it works, see the source code in - custom-dialog.js -

    - -

    Try creating new variables, creating variables with names already in - use, or deleting multiple blocks on the workspace. -

    - -
    - - - - - - - - diff --git a/lib/blockly/demos/custom-fields/icon.png b/lib/blockly/demos/custom-fields/icon.png deleted file mode 100644 index e69de29..0000000 diff --git a/lib/blockly/demos/custom-fields/index.html b/lib/blockly/demos/custom-fields/index.html deleted file mode 100644 index 9e681a8..0000000 --- a/lib/blockly/demos/custom-fields/index.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - Blockly Demo: Custom Fields - - - -

    Blockly > - Demos > Custom Fields

    - -

    These demos are intended for developers who want creating custom block fields.

    - - - - - - - - - - - -
    - - - - - -
    - - - - - -
    - - diff --git a/lib/blockly/demos/custom-fields/pitch/blocks.js b/lib/blockly/demos/custom-fields/pitch/blocks.js deleted file mode 100644 index 3e02ac8..0000000 --- a/lib/blockly/demos/custom-fields/pitch/blocks.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Pitch field demo blocks. - * @author samelh@gmail.com (Sam El-Husseini) - */ - -Blockly.Blocks['test_pitch_field'] = { - init: function() { - this.appendDummyInput() - .appendField('pitch') - .appendField(new CustomFields.FieldPitch('7'), 'PITCH'); - this.setStyle('loop_blocks'); - } -}; diff --git a/lib/blockly/demos/custom-fields/pitch/field_pitch.js b/lib/blockly/demos/custom-fields/pitch/field_pitch.js deleted file mode 100644 index b69789d..0000000 --- a/lib/blockly/demos/custom-fields/pitch/field_pitch.js +++ /dev/null @@ -1,230 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * https://github.com/google/blockly-games - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Music pitch input field. Borrowed from Blockly Games. - * @author fraser@google.com (Neil Fraser) - * @author samelh@google.com (Sam El-Husseini) - */ -'use strict'; - -goog.provide('CustomFields.FieldPitch'); - -goog.require('Blockly.FieldTextInput'); -goog.require('Blockly.utils.math'); -goog.require('Blockly.utils.object'); - -var CustomFields = CustomFields || {}; - -/** - * Class for an editable pitch field. - * @param {string} text The initial content of the field. - * @extends {Blockly.FieldTextInput} - * @constructor - */ -CustomFields.FieldPitch = function(text) { - CustomFields.FieldPitch.superClass_.constructor.call(this, text); -}; -Blockly.utils.object.inherits(CustomFields.FieldPitch, Blockly.FieldTextInput); - -/** - * Construct a FieldPitch from a JSON arg object. - * @param {!Object} options A JSON object with options (pitch). - * @return {!CustomFields.FieldPitch} The new field instance. - * @package - * @nocollapse - */ -CustomFields.FieldPitch.fromJson = function(options) { - return new CustomFields.FieldPitch(options['pitch']); -}; - -/** - * All notes available for the picker. - */ -CustomFields.FieldPitch.NOTES = 'C3 D3 E3 F3 G3 A3 B3 C4 D4 E4 F4 G4 A4'.split(/ /); - -/** - * Show the inline free-text editor on top of the text and the note picker. - * @private - */ -CustomFields.FieldPitch.prototype.showEditor_ = function() { - CustomFields.FieldPitch.superClass_.showEditor_.call(this); - - var div = Blockly.WidgetDiv.DIV; - if (!div.firstChild) { - // Mobile interface uses Blockly.prompt. - return; - } - // Build the DOM. - var editor = this.dropdownCreate_(); - Blockly.DropDownDiv.getContentDiv().appendChild(editor); - - var border = this.sourceBlock_.getColourBorder(); - border = border.colourBorder || border.colourLight; - Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(), border); - - Blockly.DropDownDiv.showPositionedByField( - this, this.dropdownDispose_.bind(this)); - - // The note picker is different from other fields in that it updates on - // mousemove even if it's not in the middle of a drag. In future we may - // change this behaviour. For now, using bindEvent_ instead of - // bindEventWithChecks_ allows it to work without a mousedown/touchstart. - this.clickWrapper_ = - Blockly.bindEvent_(this.imageElement_, 'click', this, - this.hide_); - this.moveWrapper_ = - Blockly.bindEvent_(this.imageElement_, 'mousemove', this, - this.onMouseMove); - - this.updateGraph_(); -}; - -/** - * Create the pitch editor. - * @return {!Element} The newly created pitch picker. - * @private - */ -CustomFields.FieldPitch.prototype.dropdownCreate_ = function() { - this.imageElement_ = document.createElement('div'); - this.imageElement_.id = 'notePicker'; - - return this.imageElement_; -}; - -/** - * Dispose of events belonging to the pitch editor. - * @private - */ -CustomFields.FieldPitch.prototype.dropdownDispose_ = function() { - Blockly.unbindEvent_(this.clickWrapper_); - Blockly.unbindEvent_(this.moveWrapper_); -}; - -/** - * Hide the editor. - * @private - */ -CustomFields.FieldPitch.prototype.hide_ = function() { - Blockly.WidgetDiv.hide(); - Blockly.DropDownDiv.hideWithoutAnimation(); -}; - -/** - * Set the note to match the mouse's position. - * @param {!Event} e Mouse move event. - */ -CustomFields.FieldPitch.prototype.onMouseMove = function(e) { - var bBox = this.imageElement_.getBoundingClientRect(); - var dy = e.clientY - bBox.top; - var note = Blockly.utils.math.clamp(Math.round(13.5 - dy / 7.5), 0, 12); - this.imageElement_.style.backgroundPosition = (-note * 37) + 'px 0'; - this.setEditorValue_(note); -}; - -/** - * Convert the machine-readable value (0-12) to human-readable text (C3-A4). - * @param {number|string} value The provided value. - * @return {string|undefined} The respective note, or undefined if invalid. - */ -CustomFields.FieldPitch.prototype.valueToNote = function(value) { - return CustomFields.FieldPitch.NOTES[Number(value)]; -}; - -/** - * Convert the human-readable text (C3-A4) to machine-readable value (0-12). - * @param {string} text The provided note. - * @return {number|undefined} The respective value, or undefined if invalid. - */ -CustomFields.FieldPitch.prototype.noteToValue = function(text) { - var normalizedText = text.trim().toUpperCase(); - var i = CustomFields.FieldPitch.NOTES.indexOf(normalizedText); - return i > -1 ? i : undefined; -}; - -/** - * Get the text to be displayed on the field node. - * @return {?string} The HTML value if we're editing, otherwise null. Null means - * the super class will handle it, likely a string cast of value. - * @protected - */ -CustomFields.FieldPitch.prototype.getText_ = function() { - if (this.isBeingEdited_) { - return CustomFields.FieldPitch.superClass_.getText_.call(this); - } - return this.valueToNote(this.getValue()) || null; -}; - -/** - * Transform the provided value into a text to show in the HTML input. - * @param {*} value The value stored in this field. - * @returns {string} The text to show on the HTML input. - */ -CustomFields.FieldPitch.prototype.getEditorText_ = function(value) { - return this.valueToNote(value); -}; - -/** - * Transform the text received from the HTML input (note) into a value - * to store in this field. - * @param {string} text Text received from the HTML input. - * @returns {*} The value to store. - */ -CustomFields.FieldPitch.prototype.getValueFromEditorText_ = function(text) { - return this.noteToValue(text); -}; - -/** - * Updates the graph when the field rerenders. - * @private - * @override - */ -CustomFields.FieldPitch.prototype.render_ = function() { - CustomFields.FieldPitch.superClass_.render_.call(this); - this.updateGraph_(); -}; - -/** - * Redraw the note picker with the current note. - * @private - */ -CustomFields.FieldPitch.prototype.updateGraph_ = function() { - if (!this.imageElement_) { - return; - } - var i = this.getValue(); - this.imageElement_.style.backgroundPosition = (-i * 37) + 'px 0'; -}; - -/** - * Ensure that only a valid value may be entered. - * @param {*} opt_newValue The input value. - * @return {*} A valid value, or null if invalid. - */ -CustomFields.FieldPitch.prototype.doClassValidation_ = function(opt_newValue) { - if (opt_newValue === null || opt_newValue === undefined) { - return null; - } - var note = this.valueToNote(opt_newValue); - if (note) { - return opt_newValue; - } - return null; -}; - -Blockly.fieldRegistry.register('field_pitch', CustomFields.FieldPitch); diff --git a/lib/blockly/demos/custom-fields/pitch/index.html b/lib/blockly/demos/custom-fields/pitch/index.html deleted file mode 100644 index 642482c..0000000 --- a/lib/blockly/demos/custom-fields/pitch/index.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Blockly Demo: Custom Pitch Field - - - - - - - - -

    - Blockly > - Demos > - Custom Fields > Pitch Field

    - - -

    This is a demo of creating custom block fields. In this case the field - is used to select a note pitch. -

    - -

    All of the custom field implementation is in - demos/custom-fields/pitch/field_pitch.js, including comments on each required - function. -

    - -

    - - -

    - - - - - - -
    - - -
    -
    - - - - - - diff --git a/lib/blockly/demos/custom-fields/pitch/media/notes.png b/lib/blockly/demos/custom-fields/pitch/media/notes.png deleted file mode 100644 index b9a57b5..0000000 Binary files a/lib/blockly/demos/custom-fields/pitch/media/notes.png and /dev/null differ diff --git a/lib/blockly/demos/custom-fields/pitch/pitch.css b/lib/blockly/demos/custom-fields/pitch/pitch.css deleted file mode 100644 index 586c6cd..0000000 --- a/lib/blockly/demos/custom-fields/pitch/pitch.css +++ /dev/null @@ -1,24 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#notePicker { - background-image: url(media/notes.png); - border: 1px solid #ccc; - height: 109px; - width: 46px; -} \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/blocks.js b/lib/blockly/demos/custom-fields/turtle/blocks.js deleted file mode 100644 index ef8b245..0000000 --- a/lib/blockly/demos/custom-fields/turtle/blocks.js +++ /dev/null @@ -1,103 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Turtle field demo blocks.. - * @author bekawestberg@gmail.com (Beka Westberg) - */ - -Blockly.Blocks['turtle_basic'] = { - init: function() { - this.appendDummyInput() - .appendField('simple turtle'); - this.appendDummyInput() - .setAlign(Blockly.ALIGN_CENTRE) - .appendField(new CustomFields.FieldTurtle(), 'TURTLE'); - this.setStyle('loop_blocks'); - this.setCommentText('Demonstrates a turtle field with no validator.'); - } -}; - -Blockly.Blocks['turtle_nullifier'] = { - init: function() { - this.appendDummyInput() - .appendField('no trademarks'); - this.appendDummyInput() - .setAlign(Blockly.ALIGN_CENTRE) - .appendField(new CustomFields.FieldTurtle(null, null, null, this.validate) - , 'TURTLE'); - this.setStyle('loop_blocks'); - this.setCommentText('Validates combinations of names and hats to null' + - ' (invalid) if they could be considered infringe-y. This turns the' + - ' turtle field red. Infringe-y combinations are: (Leonardo, Mask),' + - ' (Yertle, Crown), and (Franklin, Propeller).'); - }, - - validate: function(newValue) { - this.cachedValidatedValue_ = { - turtleName: newValue.turtleName, - pattern: newValue.pattern, - hat: newValue.hat, - }; - if ((newValue.turtleName == 'Leonardo' && newValue.hat == 'Mask') || - (newValue.turtleName == 'Yertle' && newValue.hat == 'Crown') || - (newValue.turtleName == 'Franklin') && newValue.hat == 'Propeller') { - - var currentValue = this.getValue(); - if (newValue.turtleName != currentValue.turtleName) { - // Turtle name changed. - this.cachedValidatedValue_.turtleName = null; - } else { - // Hat must have changed. - this.cachedValidatedValue_.hat = null; - } - - return null; - } - return newValue; - } -}; - -Blockly.Blocks['turtle_changer'] = { - init: function() { - this.appendDummyInput() - .setAlign(Blockly.ALIGN_CENTRE) - .appendField('force hats'); - this.appendDummyInput() - .appendField(new CustomFields.FieldTurtle( - 'Dots', 'Crown', 'Yertle', this.validate), 'TURTLE'); - this.setStyle('loop_blocks'); - this.setCommentText('Validates the input so that certain names always' + - ' have specific hats. The name-hat combinations are: (Leonardo, Mask),' + - ' (Yertle, Crown), (Franklin, Propeller).'); - }, - - validate: function(newValue) { - switch(newValue.turtleName) { - case 'Leonardo': - newValue.hat = 'Mask'; - break; - case 'Yertle': - newValue.hat = 'Crown'; - break; - case 'Franklin': - newValue.hat = 'Propeller'; - break; - } - return newValue; - } -}; diff --git a/lib/blockly/demos/custom-fields/turtle/field_turtle.js b/lib/blockly/demos/custom-fields/turtle/field_turtle.js deleted file mode 100644 index 8a4a083..0000000 --- a/lib/blockly/demos/custom-fields/turtle/field_turtle.js +++ /dev/null @@ -1,757 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview A field used to customize a turtle. - * @author bekawestberg@gmail.com (Beka Westberg) - */ -'use strict'; - -// You must provide the constructor for your custom field. -goog.provide('CustomFields.FieldTurtle'); - -// You must require the abstract field class to inherit from. -goog.require('Blockly.Field'); -goog.require('Blockly.fieldRegistry'); -goog.require('Blockly.utils'); -goog.require('Blockly.utils.dom'); -goog.require('Blockly.utils.object'); -goog.require('Blockly.utils.Size'); - -var CustomFields = CustomFields || {}; - -// Generally field's values should be optional, and have logical defaults. -// If this is not possible (for example image fields can't have logical -// defaults) the field should throw a clear error when a value is not provided. -// Editable fields also generally accept validators, so we will accept a -// validator. -CustomFields.FieldTurtle = function( - opt_pattern, opt_hat, opt_turtleName, opt_validator) { - - // The turtle field contains an object as its value, so we need to compile - // the parameters into an object. - var value = {}; - value.pattern = opt_pattern || CustomFields.FieldTurtle.PATTERNS[0]; - value.hat = opt_hat || CustomFields.FieldTurtle.HATS[0]; - value.turtleName = opt_turtleName || CustomFields.FieldTurtle.NAMES[0]; - - // A field constructor should always call its parent constructor, because - // that helps keep the code organized and DRY. - CustomFields.FieldTurtle.superClass_.constructor.call( - this, value, opt_validator); - - /** - * The size of the area rendered by the field. - * @type {Blockly.utils.Size} - * @protected - * @override - */ - this.size_ = new Blockly.utils.Size(0, 0); -}; -Blockly.utils.object.inherits(CustomFields.FieldTurtle, Blockly.Field); - -// This allows the field to be constructed using a JSON block definition. -CustomFields.FieldTurtle.fromJson = function(options) { - // In this case we simply pass the JSON options along to the constructor, - // but you can also use this to get message references, and other such things. - return new CustomFields.FieldTurtle( - options['pattern'], - options['hat'], - options['turtleName']); -}; - -// Since this field is editable we must also define serializable as true -// (for backwards compatibility reasons serializable is false by default). -CustomFields.FieldTurtle.prototype.SERIALIZABLE = true; - -// The cursor property defines what the mouse will look like when the user -// hovers over the field. By default the cursor will be whatever -// .blocklyDraggable's cursor is defined as (vis. grab). Most fields define -// this property as 'default'. -CustomFields.FieldTurtle.prototype.CURSOR = 'pointer'; - -// How far to move the text to keep it to the right of the turtle. -// May change if the turtle gets fancy enough. -CustomFields.FieldTurtle.prototype.TEXT_OFFSET_X = 80; - -// Padding that the border rect adds around the turtle and its name. -CustomFields.FieldTurtle.prototype.PADDING = Blockly.Field.X_PADDING; - -// These are the different options for our turtle. Being declared this way -// means they are static, and not translatable. If you want to do something -// similar, but make it translatable you should set up your options like a -// dropdown field, with language-neutral keys and human-readable values. -CustomFields.FieldTurtle.PATTERNS = - ['Dots', 'Stripes', 'Hexagons']; -CustomFields.FieldTurtle.HATS = - ['Stovepipe', 'Crown', 'Propeller', 'Mask', 'Fedora']; -CustomFields.FieldTurtle.NAMES = - ['Yertle', 'Franklin', 'Crush', 'Leonardo', 'Bowser', 'Squirtle', 'Oogway']; - -// Used to keep track of our editor event listeners, so they can be -// properly disposed of when the field closes. You can keep track of your -// listeners however you want, just be sure to dispose of them! -CustomFields.FieldTurtle.prototype.editorListeners_ = []; - -// Used to create the DOM of our field. -CustomFields.FieldTurtle.prototype.initView = function() { - // Because we want to have both a borderRect_ (background) and a - // textElement_ (text) we can call the super-function. If we only wanted - // one or the other, we could call their individual createX functions. - CustomFields.FieldTurtle.superClass_.initView.call(this); - - // Note that the field group is created by the abstract field's init_ - // function. This means that *all elements* should be children of the - // fieldGroup_. - this.createView_(); -}; - -// Updates how the field looks depending on if it is editable or not. -CustomFields.FieldTurtle.prototype.updateEditable = function() { - if (!this.fieldGroup_) { - // Not initialized yet. - return; - } - // The default functionality just makes it so the borderRect_ does not - // highlight when hovered. - Blockly.FieldColour.superClass_.updateEditable.call(this); - // Things like this are best applied to the clickTarget_. By default the - // click target is the same as getSvgRoot, which by default is the - // fieldGroup_. - var group = this.getClickTarget_(); - if (!this.isCurrentlyEditable()) { - group.style.cursor = 'not-allowed'; - } else { - group.style.cursor = this.CURSOR; - } -}; - -// Gets the text to display when the block is collapsed -CustomFields.FieldTurtle.prototype.getText = function() { - var text = this.value_.turtleName + ' wearing a ' + this.value_.hat; - if (this.value_.hat == 'Stovepipe' || this.value_.hat == 'Propeller') { - text += ' hat'; - } - return text; -}; - -// Makes sure new field values (given to setValue) are valid, meaning -// something this field can legally "hold". Class validators can either change -// the input value, or return null if the input value is invalid. Called by -// the setValue() function. -CustomFields.FieldTurtle.prototype.doClassValidation_ = function(newValue) { - // Undefined signals that we want the value to remain unchanged. This is a - // special feature of turtle fields, but could be useful for other - // multi-part fields. - if (newValue.pattern == undefined) { - newValue.pattern = this.displayValue_ && this.displayValue_.pattern; - // We only want to allow patterns that are part of our pattern list. - // Anything else is invalid, so we return null. - } else if (CustomFields.FieldTurtle.PATTERNS.indexOf(newValue.pattern) == -1) { - newValue.pattern = null; - } - - if (newValue.hat == undefined) { - newValue.hat = this.displayValue_ && this.displayValue_.hat; - } else if (CustomFields.FieldTurtle.HATS.indexOf(newValue.hat) == -1) { - newValue.hat = null; - } - - if (newValue.turtleName == undefined) { - newValue.turtleName = this.displayValue_ && this.displayValue_.turtleName; - } else if (CustomFields.FieldTurtle.NAMES.indexOf(newValue.turtleName) == -1) { - newValue.turtleName = null; - } - - // This is a strategy for dealing with defaults on multi-part values. - // The class validator sets individual properties of the object to null - // to indicate that they are invalid, and then caches that object to the - // cachedValidatedValue_ property. This way the field can, for - // example, properly handle an invalid pattern, combined with a valid hat. - // This can also be done with local validators. - this.cachedValidatedValue_ = newValue; - - // Always be sure to return! - if (!newValue.pattern || !newValue.hat || !newValue.turtleName) { - return null; - } - return newValue; -}; - -// Saves the new field value. Called by the setValue function. -CustomFields.FieldTurtle.prototype.doValueUpdate_ = function(newValue) { - // The default function sets this field's this.value_ property to the - // newValue, and its this.isDirty_ property to true. The isDirty_ property - // tells the setValue function whether the field needs to be re-rendered. - CustomFields.FieldTurtle.superClass_.doValueUpdate_.call(this, newValue); - this.displayValue_ = newValue; - // Since this field has custom UI for invalid values, we also want to make - // sure it knows it is now valid. - this.isValueInvalid_ = false; -}; - -// Notifies that the field that the new value was invalid. Called by -// setValue function. Can either be triggered by the class validator, or the -// local validator. -CustomFields.FieldTurtle.prototype.doValueInvalid_ = function(invalidValue) { - // By default this function is no-op, meaning if the new value is invalid - // the field simply won't be updated. This field has custom UI for invalid - // values, so we override this function. - - // We want the value to be displayed like normal. - // But we want to flag it as invalid, so the render_ function knows to - // make the borderRect_ red. - this.displayValue_ = invalidValue; - this.isDirty_ = true; - this.isValueInvalid_ = true; -}; - -// Updates the field's on-block display based on the current display value. -CustomFields.FieldTurtle.prototype.render_ = function() { - var value = this.displayValue_; - - // Always do editor updates inside render. This makes sure the editor - // always displays the correct value, even if a validator changes it. - if (this.editor_) { - this.renderEditor_(); - } - - this.stovepipe_.style.display = 'none'; - this.crown_.style.display = 'none'; - this.mask_.style.display = 'none'; - this.propeller_.style.display = 'none'; - this.fedora_.style.display = 'none'; - switch(value.hat) { - case 'Stovepipe': - this.stovepipe_.style.display = ''; - this.turtleGroup_.setAttribute('transform', 'translate(0,12)'); - this.textElement_.setAttribute( - 'transform', 'translate(' + this.TEXT_OFFSET_X + ',20)'); - break; - case 'Crown': - this.crown_.style.display = ''; - this.turtleGroup_.setAttribute('transform', 'translate(0,9)'); - this.textElement_.setAttribute( - 'transform', 'translate(' + this.TEXT_OFFSET_X + ',16)'); - break; - case 'Mask': - this.mask_.style.display = ''; - this.turtleGroup_.setAttribute('transform', 'translate(0,1.2)'); - this.textElement_.setAttribute('transform', - 'translate(' + this.TEXT_OFFSET_X + ',4)'); - break; - case 'Propeller': - this.propeller_.style.display = ''; - this.turtleGroup_.setAttribute('transform', 'translate(0,6)'); - this.textElement_.setAttribute('transform', - 'translate(' + this.TEXT_OFFSET_X + ',12)'); - break; - case 'Fedora': - this.fedora_.style.display = ''; - this.turtleGroup_.setAttribute('transform', 'translate(0,6)'); - this.textElement_.setAttribute('transform', - 'translate(' + this.TEXT_OFFSET_X + ',12)'); - break; - } - - switch(value.pattern) { - case 'Dots': - this.shellPattern_.setAttribute('fill', 'url(#polkadots)'); - break; - case 'Stripes': - this.shellPattern_.setAttribute('fill', 'url(#stripes)'); - break; - case 'Hexagons': - this.shellPattern_.setAttribute('fill', 'url(#hexagons)'); - break; - } - - // Always modify the textContent_ rather than the textElement_. This - // allows fields to append DOM to the textElement (e.g. the angle field). - this.textContent_.nodeValue = value.turtleName; - - if (this.isValueInvalid_) { - this.borderRect_.style.fill = '#f99'; - this.borderRect_.style.fillOpacity = 1; - } else { - this.borderRect_.style.fill = '#fff'; - this.borderRect_.style.fillOpacity = 0.6; - } - - this.updateSize_(); -}; - -CustomFields.FieldTurtle.prototype.renderEditor_ = function() { - var value = this.displayValue_; - - // .textElement is a property assigned to the element. - // It allows the text to be edited without destroying the warning icon. - this.editor_.patternText.textElement.nodeValue = value.pattern; - this.editor_.hatText.textElement.nodeValue = value.hat; - this.editor_.turtleNameText.textElement.nodeValue = value.turtleName; - - this.editor_.patternText.warningIcon.style.display = - this.cachedValidatedValue_.pattern ? 'none' : ''; - this.editor_.hatText.warningIcon.style.display = - this.cachedValidatedValue_.hat ? 'none' : ''; - this.editor_.turtleNameText.warningIcon.style.display = - this.cachedValidatedValue_.turtleName ? 'none' : ''; -}; - -// Used to update the size of the field. This function's logic could be simply -// included inside render_ (it is not called anywhere else), but it is -// usually separated to keep code more organized. -CustomFields.FieldTurtle.prototype.updateSize_ = function() { - var bbox = this.movableGroup_.getBBox(); - var width = bbox.width; - var height = bbox.height; - if (this.borderRect_) { - width += this.PADDING; - height += this.PADDING; - this.borderRect_.setAttribute('width', width); - this.borderRect_.setAttribute('height', height); - } - // Note how both the width and the height can be dynamic. - this.size_.width = width; - this.size_.height = height; -}; - -// Called when the field is clicked. It is usually used to show an editor, -// but it can also be used for other things e.g. the checkbox field uses -// this function to check/uncheck itself. -CustomFields.FieldTurtle.prototype.showEditor_ = function() { - this.editor_ = this.dropdownCreate_(); - this.renderEditor_(); - Blockly.DropDownDiv.getContentDiv().appendChild(this.editor_); - - // These allow us to have the editor match the block's colour. - var fillColour = this.sourceBlock_.getColour(); - // This is technically a package function, meaning it could change. - var borderColours = this.sourceBlock_.getColourBorder(); - var borderColour = borderColours.colourBorder || borderColours.colourDark; - Blockly.DropDownDiv.setColour(fillColour, borderColour); - - // Always pass the dropdown div a dispose function so that you can clean - // up event listeners when the editor closes. - Blockly.DropDownDiv.showPositionedByField( - this, this.dropdownDispose_.bind(this)); -}; - -// Creates the UI of the editor, and adds event listeners to it. -CustomFields.FieldTurtle.prototype.dropdownCreate_ = function() { - var createRow = function(table) { - var row = table.appendChild(document.createElement('tr')); - row.className = 'row'; - return row; - }; - var createLeftArrow = function(row) { - var cell = document.createElement('div'); - cell.className = 'arrow'; - var leftArrow = document.createElement('button'); - leftArrow.setAttribute('type', 'button'); - leftArrow.textContent = '<'; - cell.appendChild(leftArrow); - row.appendChild(cell); - return cell; - }; - var createTextNode = function(row, text) { - var cell = document.createElement('div'); - cell.className = 'text'; - var text = document.createTextNode(text); - cell.appendChild(text); - cell.textElement = text; - var warning = document.createElement('img'); - warning.setAttribute('src', 'media/warning.svg'); - warning.setAttribute('height', '16px'); - warning.setAttribute('width', '16px'); - warning.style.marginLeft = '4px'; - cell.appendChild(warning); - cell.warningIcon = warning; - row.appendChild(cell); - return cell; - }; - var createRightArrow = function(row) { - var cell = document.createElement('div'); - cell.className = 'arrow'; - var rightArrow = document.createElement('button'); - rightArrow.setAttribute('type', 'button'); - rightArrow.textContent = '>'; - cell.appendChild(rightArrow); - row.appendChild(cell); - return cell; - }; - var createArrowListener = function(variable, array, direction) { - return function() { - var currentIndex = array.indexOf(this.displayValue_[variable]); - currentIndex += direction; - if (currentIndex <= -1) { - currentIndex = array.length - 1; - } else if (currentIndex >= array.length) { - currentIndex = 0; - } - var value = {}; - value[variable] = array[currentIndex]; - this.setValue(value); - }; - }; - - var widget = document.createElement('div'); - widget.className = 'customFieldsTurtleWidget blocklyNonSelectable'; - - var table = document.createElement('div'); - table.className = 'table'; - widget.appendChild(table); - - var row = createRow(table); - var leftArrow = createLeftArrow(row); - widget.patternText = createTextNode(row, this.displayValue_.pattern); - var rightArrow = createRightArrow(row); - this.editorListeners_.push(Blockly.bindEvent_(leftArrow, 'mouseup', this, - createArrowListener('pattern', CustomFields.FieldTurtle.PATTERNS, -1))); - this.editorListeners_.push(Blockly.bindEvent_(rightArrow, 'mouseup', this, - createArrowListener('pattern', CustomFields.FieldTurtle.PATTERNS, 1))); - - row = createRow(table); - leftArrow = createLeftArrow(row); - widget.hatText = createTextNode(row, this.displayValue_.hat); - rightArrow = createRightArrow(row); - this.editorListeners_.push(Blockly.bindEvent_(leftArrow, 'mouseup', this, - createArrowListener('hat', CustomFields.FieldTurtle.HATS, -1))); - this.editorListeners_.push(Blockly.bindEvent_(rightArrow, 'mouseup', this, - createArrowListener('hat', CustomFields.FieldTurtle.HATS, 1))); - - row = createRow(table); - leftArrow = createLeftArrow(row); - widget.turtleNameText = createTextNode(row, this.displayValue_.turtleName); - rightArrow = createRightArrow(row); - this.editorListeners_.push(Blockly.bindEvent_(leftArrow, 'mouseup', this, - createArrowListener('turtleName', CustomFields.FieldTurtle.NAMES, -1))); - this.editorListeners_.push(Blockly.bindEvent_(rightArrow, 'mouseup', this, - createArrowListener('turtleName', CustomFields.FieldTurtle.NAMES, 1))); - - var randomizeButton = document.createElement('button'); - randomizeButton.className = 'randomize'; - randomizeButton.setAttribute('type', 'button'); - randomizeButton.textContent = 'randomize turtle'; - this.editorListeners_.push(Blockly.bindEvent_(randomizeButton, 'mouseup', this, - function() { - var value = {}; - value.pattern = CustomFields.FieldTurtle.PATTERNS[ - Math.floor(Math.random() * CustomFields.FieldTurtle.PATTERNS.length)]; - - value.hat = CustomFields.FieldTurtle.HATS[ - Math.floor(Math.random() * CustomFields.FieldTurtle.HATS.length)]; - - value.turtleName = CustomFields.FieldTurtle.NAMES[ - Math.floor(Math.random() * CustomFields.FieldTurtle.NAMES.length)]; - - this.setValue(value); - })); - widget.appendChild(randomizeButton); - - return widget; -}; - -// Cleans up any event listeners that were attached to the now hidden editor. -CustomFields.FieldTurtle.prototype.dropdownDispose_ = function() { - for (var i = this.editorListeners_.length, listener; - listener = this.editorListeners_[i]; i--) { - Blockly.unbindEvent_(listener); - this.editorListeners_.pop(); - } -}; - -// Updates the field's colour based on the colour of the block. Called by -// block.updateColour. -CustomFields.FieldTurtle.prototype.updateColour = function() { - if (!this.sourceBlock_) { - return; - } - // The getColourX functions are the best way to access the colours of a block. - var isShadow = this.sourceBlock_.isShadow(); - var fillColour = isShadow ? - this.sourceBlock_.getColourShadow() : this.sourceBlock_.getColour(); - // This is technically a package function, meaning it could change. - var borderColours = this.sourceBlock_.getColourBorder(); - var borderColour = isShadow ? fillColour : - borderColours.colourBorder || borderColours.colourDark; - - var child = this.turtleGroup_.firstChild; - while(child) { - // If it is a text node, continue. - if (child.nodeType == 3) { - child = child.nextSibling; - continue; - } - // Or if it is a non-turtle node, continue. - var className = child.getAttribute('class'); - if (!className || className.indexOf('turtleBody') == -1) { - child = child.nextSibling; - continue; - } - - child.style.fill = fillColour; - child.style.stroke = borderColour; - child = child.nextSibling; - } -}; - -// Saves the field's value to an XML node. Allows for custom serialization. -CustomFields.FieldTurtle.prototype.toXml = function(fieldElement) { - // The default implementation of this function creates a node that looks - // like this: (where value is returned by getValue()) - // value - // But this doesn't work for our field because it stores an /object/. - - fieldElement.setAttribute('pattern', this.value_.pattern); - fieldElement.setAttribute('hat', this.value_.hat); - // The textContent usually contains whatever is closest to the field's - // 'value'. The textContent doesn't need to contain anything, but saving - // something to it does aid in readability. - fieldElement.textContent = this.value_.turtleName; - - // Always return the element! - return fieldElement; -}; - -// Sets the field's value based on an XML node. Allows for custom -// de-serialization. -CustomFields.FieldTurtle.prototype.fromXml = function(fieldElement) { - // Because we had to do custom serialization for this field, we also need - // to do custom de-serialization. - - var value = {}; - value.pattern = fieldElement.getAttribute('pattern'); - value.hat = fieldElement.getAttribute('hat'); - value.turtleName = fieldElement.textContent; - // The end goal is to call this.setValue() - this.setValue(value); -}; - -// Blockly needs to know the JSON name of this field. Usually this is -// registered at the bottom of the field class. -Blockly.fieldRegistry.register('field_turtle', CustomFields.FieldTurtle); - -// Called by initView to create all of the SVGs. This is just used to keep -// the code more organized. -CustomFields.FieldTurtle.prototype.createView_ = function() { - this.movableGroup_ = Blockly.utils.dom.createSvgElement('g', - { - 'transform': 'translate(0,5)' - }, this.fieldGroup_); - var scaleGroup = Blockly.utils.dom.createSvgElement('g', - { - 'transform': 'scale(1.5)' - }, this.movableGroup_); - this.turtleGroup_ = Blockly.utils.dom.createSvgElement('g', - { - // Makes the smaller turtle graphic align with the hats. - 'class': 'turtleBody' - }, scaleGroup); - var tail = Blockly.utils.dom.createSvgElement('path', - { - 'class': 'turtleBody', - 'd': 'M7,27.5H0.188c3.959-2,6.547-2.708,8.776-5.237', - 'transform': 'translate(0.312 -12.994)' - }, this.turtleGroup_); - var legLeft = Blockly.utils.dom.createSvgElement('rect', - { - 'class': 'turtleBody', - 'x': 8.812, - 'y': 12.506, - 'width': 4, - 'height': 10 - }, this.turtleGroup_); - var legRight = Blockly.utils.dom.createSvgElement('rect', - { - 'class': 'turtleBody', - 'x': 28.812, - 'y': 12.506, - 'width': 4, - 'height': 10 - }, this.turtleGroup_); - var head = Blockly.utils.dom.createSvgElement('path', - { - 'class': 'turtleBody', - 'd': 'M47.991,17.884c0,1.92-2.144,3.477-4.788,3.477a6.262,6.262,0,0,1-2.212-.392c-0.2-.077-1.995,2.343-4.866,3.112a17.019,17.019,0,0,1-6.01.588c-4.413-.053-2.5-3.412-2.745-3.819-0.147-.242,2.232.144,6.126-0.376a7.392,7.392,0,0,0,4.919-2.588c0-1.92,2.144-3.477,4.788-3.477S47.991,15.964,47.991,17.884Z', - 'transform': 'translate(0.312 -12.994)' - }, this.turtleGroup_); - var smile = Blockly.utils.dom.createSvgElement('path', - { - 'class': 'turtleBody', - 'd': 'M42.223,18.668a3.614,3.614,0,0,0,2.728,2.38', - 'transform': 'translate(0.312 -12.994)' - }, this.turtleGroup_); - var sclera = Blockly.utils.dom.createSvgElement('ellipse', - { - 'cx': 43.435, - 'cy': 2.61, - 'rx': 2.247, - 'ry': 2.61, - 'fill': '#fff' - }, this.turtleGroup_); - var pupil = Blockly.utils.dom.createSvgElement('ellipse', - { - 'cx': 44.166, - 'cy': 3.403, - 'rx': 1.318, - 'ry': 1.62 - }, this.turtleGroup_); - var shell = Blockly.utils.dom.createSvgElement('path', - { - 'class': 'turtleBody', - 'd': 'M33.4,27.5H7.193c0-6,5.866-13.021,13.1-13.021S33.4,21.5,33.4,27.5Z', - 'transform': 'translate(0.312 -12.994)' - }, this.turtleGroup_); - this.shellPattern_ = Blockly.utils.dom.createSvgElement('path', - { - 'd': 'M33.4,27.5H7.193c0-6,5.866-13.021,13.1-13.021S33.4,21.5,33.4,27.5Z', - 'transform': 'translate(0.312 -12.994)' - }, this.turtleGroup_); - - this.stovepipe_ = Blockly.utils.dom.createSvgElement('image', - { - 'width': '50', - 'height': '18' - }, scaleGroup); - this.stovepipe_.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - 'media/stovepipe.svg'); - this.crown_ = Blockly.utils.dom.createSvgElement('image', - { - 'width': '50', - 'height': '15' - }, scaleGroup); - this.crown_.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - 'media/crown.svg'); - this.mask_ = Blockly.utils.dom.createSvgElement('image', - { - 'width': '50', - 'height': '14' - }, scaleGroup); - this.mask_.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - 'media/mask.svg'); - this.propeller_ = Blockly.utils.dom.createSvgElement('image', - { - 'width': '50', - 'height': '11' - }, scaleGroup); - this.propeller_.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - 'media/propeller.svg'); - this.fedora_ = Blockly.utils.dom.createSvgElement('image', - { - 'width': '50', - 'height': '12' - }, scaleGroup); - this.fedora_.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - 'media/fedora.svg'); - - // Even if we're not going to display it right away, we want to create all - // of our DOM elements inside this function. - this.crown_.style.display = 'none'; - this.mask_.style.display = 'none'; - this.propeller_.style.display = 'none'; - this.fedora_.style.display = 'none'; - - this.movableGroup_.appendChild(this.textElement_); - this.textElement_.setAttribute( - 'transform', 'translate(' + this.TEXT_OFFSET_X + ',20)'); - - this.defs_ = Blockly.utils.dom.createSvgElement('defs', {}, this.fieldGroup_); - this.polkadotPattern_ = Blockly.utils.dom.createSvgElement('pattern', - { - 'id': 'polkadots', - 'patternUnits': 'userSpaceOnUse', - 'width': 10, - 'height': 10 - }, this.defs_); - this.polkadotGroup_ = Blockly.utils.dom.createSvgElement( - 'g', {}, this.polkadotPattern_); - Blockly.utils.dom.createSvgElement('circle', - { - 'cx': 2.5, - 'cy': 2.5, - 'r': 2.5, - 'fill': '#000', - 'fill-opacity': .3 - }, this.polkadotGroup_); - Blockly.utils.dom.createSvgElement('circle', - { - 'cx': 7.5, - 'cy': 7.5, - 'r': 2.5, - 'fill': '#000', - 'fill-opacity': .3 - }, this.polkadotGroup_); - - this.hexagonPattern_ = Blockly.utils.dom.createSvgElement('pattern', - { - 'id': 'hexagons', - 'patternUnits': 'userSpaceOnUse', - 'width': 10, - 'height': 8.68, - 'patternTransform': 'translate(2) rotate(45)' - }, this.defs_); - Blockly.utils.dom.createSvgElement('polygon', - { - 'id': 'hex', - 'points': '4.96,4.4 7.46,5.84 7.46,8.74 4.96,10.18 2.46,8.74 2.46,5.84', - 'stroke': '#000', - 'stroke-opacity': .3, - 'fill-opacity': 0 - }, this.hexagonPattern_); - var use = Blockly.utils.dom.createSvgElement('use', - { - 'x': 5, - }, this.hexagonPattern_); - use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#hex'); - use = Blockly.utils.dom.createSvgElement('use', - { - 'x': -5, - }, this.hexagonPattern_); - use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#hex'); - use = Blockly.utils.dom.createSvgElement('use', - { - 'x': 2.5, - 'y': -4.34 - }, this.hexagonPattern_); - use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#hex'); - use = Blockly.utils.dom.createSvgElement('use', - { - 'x': -2.5, - 'y': -4.34 - }, this.hexagonPattern_); - use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#hex'); - - this.stripesPattern_ = Blockly.utils.dom.createSvgElement('pattern', - { - 'id': 'stripes', - 'patternUnits': 'userSpaceOnUse', - 'width': 5, - 'height': 10, - 'patternTransform': 'rotate(45)' - }, this.defs_); - Blockly.utils.dom.createSvgElement('line', - { - 'x1': 0, - 'y1': 0, - 'x2': 0, - 'y2': 10, - 'stroke-width': 4, - 'stroke': '#000', - 'stroke-opacity': .3 - }, this.stripesPattern_); -}; diff --git a/lib/blockly/demos/custom-fields/turtle/icon.png b/lib/blockly/demos/custom-fields/turtle/icon.png deleted file mode 100644 index 3a7314a..0000000 Binary files a/lib/blockly/demos/custom-fields/turtle/icon.png and /dev/null differ diff --git a/lib/blockly/demos/custom-fields/turtle/index.html b/lib/blockly/demos/custom-fields/turtle/index.html deleted file mode 100644 index 682eb8a..0000000 --- a/lib/blockly/demos/custom-fields/turtle/index.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - Blockly Demo: Custom Turtle Field - - - - - - - - -

    - Blockly > - Demos > - Custom Fields > Turtle Field

    - - -

    This is a demo of creating custom block fields. In this case the field - is used to define a turtle. -

    - -

    All of the custom field implementation is in - demos/custom-fields/turtle/field_turtle.js, including comments on each required - function. -

    - -

    Click on the blocks' comment icons to learn what they are demonstrating. - Use the buttons below to see how the fields react to changes. -

    - -

    - - - - - -

    - -

    - - -

    - - - - - - -
    - - -
    -
    - - - - - - diff --git a/lib/blockly/demos/custom-fields/turtle/media/crown.svg b/lib/blockly/demos/custom-fields/turtle/media/crown.svg deleted file mode 100644 index 473d4a4..0000000 --- a/lib/blockly/demos/custom-fields/turtle/media/crown.svg +++ /dev/null @@ -1 +0,0 @@ -crown \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/media/fedora.svg b/lib/blockly/demos/custom-fields/turtle/media/fedora.svg deleted file mode 100644 index d088b02..0000000 --- a/lib/blockly/demos/custom-fields/turtle/media/fedora.svg +++ /dev/null @@ -1 +0,0 @@ -fedora \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/media/mask.svg b/lib/blockly/demos/custom-fields/turtle/media/mask.svg deleted file mode 100644 index 20adbcd..0000000 --- a/lib/blockly/demos/custom-fields/turtle/media/mask.svg +++ /dev/null @@ -1 +0,0 @@ -mask \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/media/propeller.svg b/lib/blockly/demos/custom-fields/turtle/media/propeller.svg deleted file mode 100644 index 289ea9a..0000000 --- a/lib/blockly/demos/custom-fields/turtle/media/propeller.svg +++ /dev/null @@ -1 +0,0 @@ -propeller \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/media/stovepipe.svg b/lib/blockly/demos/custom-fields/turtle/media/stovepipe.svg deleted file mode 100644 index 854d03e..0000000 --- a/lib/blockly/demos/custom-fields/turtle/media/stovepipe.svg +++ /dev/null @@ -1 +0,0 @@ -stovepipe \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/media/warning.svg b/lib/blockly/demos/custom-fields/turtle/media/warning.svg deleted file mode 100644 index 4a62083..0000000 --- a/lib/blockly/demos/custom-fields/turtle/media/warning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/lib/blockly/demos/custom-fields/turtle/turtle.css b/lib/blockly/demos/custom-fields/turtle/turtle.css deleted file mode 100644 index c5e5e58..0000000 --- a/lib/blockly/demos/custom-fields/turtle/turtle.css +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.customFieldsTurtleWidget { - width: 150px; -} - -.customFieldsTurtleWidget button { - border-radius: 4px; - border: none; - background-color: #fff; - opacity: .6; - color: #000; -} - -.customFieldsTurtleWidget .table { - width: 100%; -} - -.customFieldsTurtleWidget .row { - width: 100%; - display: flex; -} - -.customFieldsTurtleWidget .arrow { - text-align: center; - padding: 0; - flex-grow: 0; -} - -.customFieldsTurtleWidget .text { - height: 20px; - color: #fff; - flex-grow: 1; - text-align: center; -} - -.customFieldsTurtleWidget .randomize { - width: 100%; -} - -.blocklyNonEditableText text, -.blocklyEditableText text { - fill: #000; -} diff --git a/lib/blockly/demos/fixed/icon.png b/lib/blockly/demos/fixed/icon.png deleted file mode 100644 index 0a80ef9..0000000 Binary files a/lib/blockly/demos/fixed/icon.png and /dev/null differ diff --git a/lib/blockly/demos/fixed/index.html b/lib/blockly/demos/fixed/index.html deleted file mode 100644 index 85d6346..0000000 --- a/lib/blockly/demos/fixed/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - Blockly Demo: Fixed Blockly - - - - - - -

    Blockly > - Demos > Fixed Blockly

    - -

    This is a simple demo of injecting Blockly into a fixed-sized 'div' element.

    - -

    → More info on injecting fixed-sized Blockly

    - -
    - - - - - - - diff --git a/lib/blockly/demos/generator/icon.png b/lib/blockly/demos/generator/icon.png deleted file mode 100644 index c1a84f0..0000000 Binary files a/lib/blockly/demos/generator/icon.png and /dev/null differ diff --git a/lib/blockly/demos/generator/index.html b/lib/blockly/demos/generator/index.html deleted file mode 100644 index 6f87443..0000000 --- a/lib/blockly/demos/generator/index.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Blockly Demo: Generating JavaScript - - - - - - - -

    Blockly > - Demos > Generating JavaScript

    - -

    This is a simple demo of generating code from blocks and running - the code in a sandboxed JavaScript interpreter.

    - -

    → More info on Code Generators and Running JavaScript.

    - -

    - - -

    - -
    - - - - - - - - - diff --git a/lib/blockly/demos/graph/icon.png b/lib/blockly/demos/graph/icon.png deleted file mode 100644 index 7828463..0000000 Binary files a/lib/blockly/demos/graph/icon.png and /dev/null differ diff --git a/lib/blockly/demos/graph/index.html b/lib/blockly/demos/graph/index.html deleted file mode 100644 index 2e68c84..0000000 --- a/lib/blockly/demos/graph/index.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - Blockly Demo: Graph - - - - - - - - -

    Blockly > - Demos > Graph

    - -

    This is a demo of giving instant feedback as blocks are changed.

    - -

    → More info on Realtime generation

    - - - - - - -
    -
    -
    -
    -
    - -
    - - ... -
    - - - - - - - - - diff --git a/lib/blockly/demos/headless/icon.png b/lib/blockly/demos/headless/icon.png deleted file mode 100644 index f431dc4..0000000 Binary files a/lib/blockly/demos/headless/icon.png and /dev/null differ diff --git a/lib/blockly/demos/headless/index.html b/lib/blockly/demos/headless/index.html deleted file mode 100644 index 174537c..0000000 --- a/lib/blockly/demos/headless/index.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Blockly Demo: Headless - - - - - - - -

    Blockly > - Demos > Headless

    - -

    This is a simple demo of generating Python code from XML with no graphics. - This might be useful for server-side code generation.

    - - - - - - - -
    - - - - -
    - -
    - -
    - - - - - diff --git a/lib/blockly/demos/index.html b/lib/blockly/demos/index.html deleted file mode 100644 index 1b22326..0000000 --- a/lib/blockly/demos/index.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - Blockly Demos - - - -

    Blockly > Demos

    - -

    These demos are intended for developers who want to integrate Blockly with - their own applications.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
    Inject Blockly into a page as a fixed element.
    -
    - - - - - -
    Inject Blockly into a page as a resizable element.
    -
    - - - - - -
    Organize blocks into categories for the user.
    -
    - - - - - -
    Limit the total number of blocks allowed (for academic exercises).
    -
    - - - - - -
    Turn blocks into code and execute it.
    -
    - - - - - -
    Generate code from XML without graphics.
    -
    - - - - -
    JS Interpreter
    - - -
    - - - - - -
    Instant updates when blocks are changed.
    -
    - - - - - -
    See what Blockly looks like in right-to-left mode (for Arabic and Hebrew).
    -
    - - - - - -
    Override Blockly browser dialogs with custom implementations.
    -
    - - - - - -
    Implement a custom field.
    -
    - - - - - -
    Save and load blocks with App Engine.
    -
    - - - - - -
    Two Blockly instances connected as master-slave.
    -
    - - - - - -
    Version of Blockly accessible to screen readers.
    -
    - - - - - -
    Using Closure Templates to support 35 languages.
    -
    - - - - - -
    Export a Blockly program into JavaScript, Python, PHP, Lua, Dart, or XML.
    -
    - - - - - -
    Build custom blocks and setup a toolbox using Blockly.
    -
    - - - - - -
    Demos keyboard navigation.
    -
    - - diff --git a/lib/blockly/demos/interpreter/acorn_interpreter.js b/lib/blockly/demos/interpreter/acorn_interpreter.js deleted file mode 100644 index 81e521b..0000000 --- a/lib/blockly/demos/interpreter/acorn_interpreter.js +++ /dev/null @@ -1,169 +0,0 @@ -// Acorn: Copyright 2012 Marijn Haverbeke, MIT License -var mod$$inline_58=function(a){function b(a){n=a||{};for(var b in Ua)Object.prototype.hasOwnProperty.call(n,b)||(n[b]=Ua[b]);wa=n.sourceFile||null}function c(a,b){var c=Ab(k,a);b+=" ("+c.line+":"+c.column+")";var d=new SyntaxError(b);d.pos=a;d.loc=c;d.raisedAt=f;throw d;}function d(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var va=0;vaa)++f;else if(47===a)if(a=k.charCodeAt(f+1),42===a){var a=n.onComment&&n.locations&&new e,b=f,d=k.indexOf("*/",f+=2);-1===d&&c(f-2,"Unterminated comment"); -f=d+2;if(n.locations){Y.lastIndex=b;for(var g=void 0;(g=Y.exec(k))&&g.index=a?a=P(!0):(++f,a=g(xa)),a;case 40:return++f,g(I);case 41:return++f,g(E);case 59:return++f,g(J);case 44:return++f,g(L);case 91:return++f,g(ja); -case 93:return++f,g(ka);case 123:return++f,g(Z);case 125:return++f,g(T);case 58:return++f,g(aa);case 63:return++f,g(ya);case 48:if(a=k.charCodeAt(f+1),120===a||88===a)return f+=2,a=B(16),null==a&&c(x+2,"Expected hexadecimal number"),la(k.charCodeAt(f))&&c(f,"Identifier directly after number"),a=g(ba,a);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return P(!1);case 34:case 39:a:{f++;for(var b="";;){f>=S&&c(x,"Unterminated string constant");var d=k.charCodeAt(f);if(d===a){++f; -a=g(da,b);break a}if(92===d){var d=k.charCodeAt(++f),e=/^[0-7]+/.exec(k.slice(f,f+3));for(e&&(e=e[0]);e&&255=S)return g(pa);var b=k.charCodeAt(f);if(la(b)||92===b)return Ya();a=m(b);if(!1===a){b=String.fromCharCode(b);if("\\"===b||Za.test(b))return Ya();c(f,"Unexpected character '"+b+"'")}return a}function t(a,b){var c=k.slice(f,f+b);f+=b;g(a,c)}function K(){for(var a,b,d=f;;){f>=S&&c(d, -"Unterminated regular expression");var e=k.charAt(f);na.test(e)&&c(d,"Unterminated regular expression");if(a)a=!1;else{if("["===e)b=!0;else if("]"===e&&b)b=!1;else if("/"===e&&!b)break;a="\\"===e}++f}a=k.slice(d,f);++f;(b=$a())&&!/^[gmsiy]*$/.test(b)&&c(d,"Invalid regexp flag");return g(Ba,new RegExp(a,b))}function B(a,b){for(var c=f,d=0,e=0,g=null==b?Infinity:b;e=h?h-48:Infinity;if(h>=a)break;++f;d=d*a+h}return f===c||null!=b&& -f-c!==b?null:d}function P(a){var b=f,d=!1,e=48===k.charCodeAt(f);a||null!==B(10)||c(b,"Invalid number");46===k.charCodeAt(f)&&(++f,B(10),d=!0);a=k.charCodeAt(f);if(69===a||101===a)a=k.charCodeAt(++f),43!==a&&45!==a||++f,null===B(10)&&c(b,"Invalid number"),d=!0;la(k.charCodeAt(f))&&c(f,"Identifier directly after number");a=k.slice(b,f);var h;d?h=parseFloat(a):e&&1!==a.length?/[89]/.test(a)||C?c(b,"Invalid number"):h=parseInt(a,8):h=parseInt(a,10);return g(ba,h)}function ma(a){a=B(16,a);null===a&&c(x, -"Bad character escape sequence");return a}function $a(){ca=!1;for(var a,b=!0,d=f;;){var e=k.charCodeAt(f);if(ab(e))ca&&(a+=k.charAt(f)),++f;else if(92===e){ca||(a=k.slice(d,f));ca=!0;117!=k.charCodeAt(++f)&&c(f,"Expecting Unicode escape sequence \\uXXXX");++f;var e=ma(4),g=String.fromCharCode(e);g||c(f-1,"Invalid Unicode escape");(b?la(e):ab(e))||c(f-4,"Invalid Unicode escape");a+=g}else break;b=!1}return ca?a:k.slice(d,f)}function Ya(){var a=$a(),b=V;ca||(Lb(a)?b=Ca[a]:(n.forbidReserved&&(3===n.ecmaVersion? -Mb:Nb)(a)||C&&bb(a))&&c(x,"The keyword '"+a+"' is reserved"));return g(b,a)}function r(){Da=x;M=X;Ea=ia;z()}function Fa(a){C=a;f=M;if(n.locations)for(;fb){var e=Q(a);e.left=a;e.operator=H;a=p;r();e.right=Ra(Sa(),d,c);d=q(e,a===Va||a===Wa?"LogicalExpression":"BinaryExpression");return Ra(d,b,c)}return a}function Sa(){if(p.prefix){var a=y(),b=p.isUpdate;a.operator=H;R=a.prefix=!0;r();a.argument= -Sa();b?ra(a.argument):C&&"delete"===a.operator&&"Identifier"===a.argument.type&&c(a.start,"Deleting local variable in strict mode");return q(a,b?"UpdateExpression":"UnaryExpression")}for(b=ha(ua());p.postfix&&!qa();)a=Q(b),a.operator=H,a.prefix=!1,a.argument=b,ra(b),r(),b=q(a,"UpdateExpression");return b}function ha(a,b){if(u(xa)){var c=Q(a);c.object=a;c.property=O(!0);c.computed=!1;return ha(q(c,"MemberExpression"),b)}return u(ja)?(c=Q(a),c.object=a,c.property=A(),c.computed=!0,v(ka),ha(q(c,"MemberExpression"), -b)):!b&&u(I)?(c=Q(a),c.callee=a,c.arguments=Ta(E,!1),ha(q(c,"CallExpression"),b)):a}function ua(){switch(p){case ub:var a=y();r();return q(a,"ThisExpression");case V:return O();case ba:case da:case Ba:return a=y(),a.value=H,a.raw=k.slice(x,X),r(),q(a,"Literal");case vb:case wb:case xb:return a=y(),a.value=p.atomValue,a.raw=p.keyword,r(),q(a,"Literal");case I:var a=oa,b=x;r();var d=A();d.start=b;d.end=X;n.locations&&(d.loc.start=a,d.loc.end=ia);n.ranges&&(d.range=[b,X]);v(E);return d;case ja:return a= -y(),r(),a.elements=Ta(ka,!0,!0),q(a,"ArrayExpression");case Z:a=y();b=!0;d=!1;a.properties=[];for(r();!u(T);){if(b)b=!1;else if(v(L),n.allowTrailingCommas&&u(T))break;var e={key:p===ba||p===da?ua():O(!0)},g=!1,h;u(aa)?(e.value=A(!0),h=e.kind="init"):5<=n.ecmaVersion&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)?(g=d=!0,h=e.kind=e.key.name,e.key=p===ba||p===da?ua():O(!0),p!==I&&N(),e.value=Na(y(),!1)):N();if("Identifier"===e.key.type&&(C||d))for(var f=0;fd?a.id:a.params[d],(bb(e.name)||sa(e.name))&&c(e.start,"Defining '"+e.name+"' in strict mode"),0<=d)for(var g=0;ga?36===a:91>a?!0:97>a?95===a:123>a?!0:170<=a&&Za.test(String.fromCharCode(a))},ab=a.isIdentifierChar=function(a){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:170<=a&&Pb.test(String.fromCharCode(a))},ca,Ia={kind:"loop"},Ob={kind:"switch"}}; -"object"==typeof exports&&"object"==typeof module?mod$$inline_58(exports):"function"==typeof define&&define.amd?define(["exports"],mod$$inline_58):mod$$inline_58(this.acorn||(this.acorn={})); -// JS-Interpreter: Copyright 2013 Google LLC, Apache 2.0 -var Interpreter=function(a,b){"string"==typeof a&&(a=acorn.parse(a,Interpreter.PARSE_OPTIONS));this.ast=a;this.initFunc_=b;this.paused_=!1;this.polyfills_=[];this.UNDEFINED=new Interpreter.Primitive(void 0,this);this.NULL=new Interpreter.Primitive(null,this);this.NAN=new Interpreter.Primitive(NaN,this);this.TRUE=new Interpreter.Primitive(!0,this);this.FALSE=new Interpreter.Primitive(!1,this);this.NUMBER_ZERO=new Interpreter.Primitive(0,this);this.NUMBER_ONE=new Interpreter.Primitive(1,this);this.STRING_EMPTY= -new Interpreter.Primitive("",this);b=this.createScope(this.ast,null);this.NAN.parent=this.NUMBER;this.TRUE.parent=this.BOOLEAN;this.FALSE.parent=this.BOOLEAN;this.NUMBER_ZERO.parent=this.NUMBER;this.NUMBER_ONE.parent=this.NUMBER;this.STRING_EMPTY.parent=this.STRING;this.ast=acorn.parse(this.polyfills_.join("\n"),Interpreter.PARSE_OPTIONS);this.polyfills_=void 0;this.stripLocations_(this.ast);this.stateStack=[{node:this.ast,scope:b,thisExpression:b,done:!1}];this.run();this.value=this.UNDEFINED;this.ast= -a;this.stateStack=[{node:this.ast,scope:b,thisExpression:b,done:!1}]};Interpreter.PARSE_OPTIONS={ecmaVersion:5};Interpreter.READONLY_DESCRIPTOR={configurable:!0,enumerable:!0,writable:!1};Interpreter.NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!0};Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!1}; -Interpreter.prototype.appendCode=function(a){var b=this.stateStack[this.stateStack.length-1];if(!b||"Program"!=b.node.type)throw Error("Expecting original AST to start with a Program node.");"string"==typeof a&&(a=acorn.parse(a,Interpreter.PARSE_OPTIONS));if(!a||"Program"!=a.type)throw Error("Expecting new AST to start with a Program node.");this.populateScope_(a,b.scope);for(var c=0,d;d=a.body[c];c++)b.node.body.push(d);b.done=!1}; -Interpreter.prototype.step=function(){var a=this.stateStack[0];if(!a||"Program"==a.node.type&&a.done)return!1;if(this.paused_)return!0;this["step"+a.node.type]();return a.node.end?!0:this.step()};Interpreter.prototype.run=function(){for(;!this.paused_&&this.step(););return this.paused_}; -Interpreter.prototype.initGlobalScope=function(a){this.setProperty(a,"Infinity",this.createPrimitive(Infinity),Interpreter.READONLY_DESCRIPTOR);this.setProperty(a,"NaN",this.NAN,Interpreter.READONLY_DESCRIPTOR);this.setProperty(a,"undefined",this.UNDEFINED,Interpreter.READONLY_DESCRIPTOR);this.setProperty(a,"window",a,Interpreter.READONLY_DESCRIPTOR);this.setProperty(a,"self",a);this.initFunction(a);this.initObject(a);a.parent=this.OBJECT;this.initArray(a);this.initNumber(a);this.initString(a);this.initBoolean(a); -this.initDate(a);this.initMath(a);this.initRegExp(a);this.initJSON(a);this.initError(a);var b=this,c;c=function(a){a=a||b.UNDEFINED;return b.createPrimitive(isNaN(a.toNumber()))};this.setProperty(a,"isNaN",this.createNativeFunction(c));c=function(a){a=a||b.UNDEFINED;return b.createPrimitive(isFinite(a.toNumber()))};this.setProperty(a,"isFinite",this.createNativeFunction(c));this.setProperty(a,"parseFloat",this.getProperty(this.NUMBER,"parseFloat"));this.setProperty(a,"parseInt",this.getProperty(this.NUMBER, -"parseInt"));c=this.createObject(this.FUNCTION);c.eval=!0;this.setProperty(c,"length",this.NUMBER_ONE,Interpreter.READONLY_DESCRIPTOR);this.setProperty(a,"eval",c);for(var d=[[escape,"escape"],[unescape,"unescape"],[decodeURI,"decodeURI"],[decodeURIComponent,"decodeURIComponent"],[encodeURI,"encodeURI"],[encodeURIComponent,"encodeURIComponent"]],h=0;ha?Math.max(this.length+a,0):Math.min(a,this.length);d=c(d,Infinity);d=Math.min(d,this.length-a);for(var g=b.createObject(b.ARRAY),h=a;h=a;h--)this.properties[h+arguments.length-2]=this.properties[h];this.length+=arguments.length-2;for(h=2;hh&&(h=this.length+h);h=Math.max(0,Math.min(h,this.length)); -d=c(d,this.length);0>d&&(d=this.length+d);d=Math.max(0,Math.min(d,this.length));for(a=0;hd&&(d=this.length+d);for(d=Math.max(0,d);dd&&(d=this.length+d);for(d=Math.min(d,this.length-1);0<=d;d--){var h=b.getProperty(this,d);if(h.isPrimitive&&a.isPrimitive?h.data===a.data:h===a)return b.createPrimitive(d)}return b.createPrimitive(-1)};this.setNativeFunctionPrototype(this.ARRAY,"lastIndexOf",d);this.polyfills_.push("Object.defineProperty(Array.prototype, 'every', {configurable: true, value:","function(callbackfn, thisArg) {", -"if (this == null || typeof callbackfn !== 'function') throw new TypeError;","var T, k;","var O = Object(this);","var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","k = 0;","while (k < len) {","if (k in O && !callbackfn.call(T, O[k], k, O)) return false;","k++;","}","return true;","}","});","Object.defineProperty(Array.prototype, 'filter', {configurable: true, value:","function(fun/*, thisArg*/) {","if (this === void 0 || this === null || typeof fun !== 'function') throw new TypeError;", -"var t = Object(this);","var len = t.length >>> 0;","var res = [];","var thisArg = arguments.length >= 2 ? arguments[1] : void 0;","for (var i = 0; i < len; i++) {","if (i in t) {","var val = t[i];","if (fun.call(thisArg, val, i, t)) res.push(val);","}","}","return res;","}","});","Object.defineProperty(Array.prototype, 'forEach', {configurable: true, value:","function(callback, thisArg) {","if (this == null || typeof callback !== 'function') throw new TypeError;","var T, k;","var O = Object(this);", -"var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","k = 0;","while (k < len) {","if (k in O) callback.call(T, O[k], k, O);","k++;","}","}","});","Object.defineProperty(Array.prototype, 'map', {configurable: true, value:","function(callback, thisArg) {","if (this == null || typeof callback !== 'function') new TypeError;","var T, A, k;","var O = Object(this);","var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","A = new Array(len);","k = 0;","while (k < len) {","if (k in O) A[k] = callback.call(T, O[k], k, O);", -"k++;","}","return A;","}","});","Object.defineProperty(Array.prototype, 'reduce', {configurable: true, value:","function(callback /*, initialValue*/) {","if (this == null || typeof callback !== 'function') throw new TypeError;","var t = Object(this), len = t.length >>> 0, k = 0, value;","if (arguments.length == 2) {","value = arguments[1];","} else {","while (k < len && !(k in t)) k++;","if (k >= len) {","throw new TypeError('Reduce of empty array with no initial value');","}","value = t[k++];", -"}","for (; k < len; k++) {","if (k in t) value = callback(value, t[k], k, t);","}","return value;","}","});","Object.defineProperty(Array.prototype, 'reduceRight', {configurable: true, value:","function(callback /*, initialValue*/) {","if (null === this || 'undefined' === typeof this || 'function' !== typeof callback) throw new TypeError;","var t = Object(this), len = t.length >>> 0, k = len - 1, value;","if (arguments.length >= 2) {","value = arguments[1];","} else {","while (k >= 0 && !(k in t)) k--;", -"if (k < 0) {","throw new TypeError('Reduce of empty array with no initial value');","}","value = t[k--];","}","for (; k >= 0; k--) {","if (k in t) value = callback(value, t[k], k, t);","}","return value;","}","});","Object.defineProperty(Array.prototype, 'some', {configurable: true, value:","function(fun/*, thisArg*/) {","if (this == null || typeof fun !== 'function') throw new TypeError;","var t = Object(this);","var len = t.length >>> 0;","var thisArg = arguments.length >= 2 ? arguments[1] : void 0;", -"for (var i = 0; i < len; i++) {","if (i in t && fun.call(thisArg, t[i], i, t)) {","return true;","}","}","return false;","}","});","Object.defineProperty(Array.prototype, 'sort', {configurable: true, value:","function(opt_comp) {","for (var i = 0; i < this.length; i++) {","var changes = 0;","for (var j = 0; j < this.length - i - 1; j++) {","if (opt_comp ?opt_comp(this[j], this[j + 1]) > 0 : this[j] > this[j + 1]) {","var swap = this[j];","this[j] = this[j + 1];","this[j + 1] = swap;","changes++;", -"}","}","if (changes <= 1) break;","}","return this;","}","});","Object.defineProperty(Array.prototype, 'toLocaleString', {configurable: true, value:","function() {","var out = [];","for (var i = 0; i < this.length; i++) {","out[i] = (this[i] === null || this[i] === undefined) ? '' : this[i].toLocaleString();","}","return out.join(',');","}","});","")}; -Interpreter.prototype.initNumber=function(a){var b=this,c;c=function(a){a=a?a.toNumber():0;if(this.parent!=b.NUMBER)return b.createPrimitive(a);this.data=a;return this};this.NUMBER=this.createNativeFunction(c);this.setProperty(a,"Number",this.NUMBER);a=["MAX_VALUE","MIN_VALUE","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY"];for(c=0;cb?1:0};Interpreter.prototype.arrayIndex=function(a){a=Number(a);return!isFinite(a)||a!=Math.floor(a)||0>a?NaN:a}; -Interpreter.Primitive=function(a,b){var c=typeof a;this.data=a;this.type=c;"number"==c?this.parent=b.NUMBER:"string"==c?this.parent=b.STRING:"boolean"==c&&(this.parent=b.BOOLEAN)};Interpreter.Primitive.prototype.data=void 0;Interpreter.Primitive.prototype.type="undefined";Interpreter.Primitive.prototype.parent=null;Interpreter.Primitive.prototype.isPrimitive=!0;Interpreter.Primitive.prototype.toBoolean=function(){return!!this.data};Interpreter.Primitive.prototype.toNumber=function(){return Number(this.data)}; -Interpreter.Primitive.prototype.toString=function(){return String(this.data)};Interpreter.Primitive.prototype.valueOf=function(){return this.data};Interpreter.prototype.createPrimitive=function(a){return void 0===a?this.UNDEFINED:null===a?this.NULL:!0===a?this.TRUE:!1===a?this.FALSE:0===a?this.NUMBER_ZERO:1===a?this.NUMBER_ONE:""===a?this.STRING_EMPTY:a instanceof RegExp?this.populateRegExp_(this.createObject(this.REGEXP),a):new Interpreter.Primitive(a,this)}; -Interpreter.Object=function(a){this.notConfigurable=Object.create(null);this.notEnumerable=Object.create(null);this.notWritable=Object.create(null);this.getter=Object.create(null);this.setter=Object.create(null);this.properties=Object.create(null);this.parent=a};Interpreter.Object.prototype.type="object";Interpreter.Object.prototype.parent=null;Interpreter.Object.prototype.isPrimitive=!1;Interpreter.Object.prototype.data=void 0;Interpreter.Object.prototype.toBoolean=function(){return!0}; -Interpreter.Object.prototype.toNumber=function(){return Number(void 0===this.data?this.toString():this.data)};Interpreter.Object.prototype.toString=function(){return void 0===this.data?"["+this.type+"]":String(this.data)};Interpreter.Object.prototype.valueOf=function(){return void 0===this.data?this:this.data}; -Interpreter.prototype.createObject=function(a){a=new Interpreter.Object(a);this.isa(a,this.FUNCTION)&&(a.type="function",this.setProperty(a,"prototype",this.createObject(this.OBJECT||null)));this.isa(a,this.ARRAY)&&(a.length=0,a.toString=function(){for(var a=[],c=0;c>="==b.operator)b=d>>h;else if(">>>="==b.operator)b=d>>>h;else if("&="==b.operator)b=d&h;else if("^="==b.operator)b=d^h;else if("|="==b.operator)b=d|h;else throw SyntaxError("Unknown assignment expression: "+b.operator);b=this.createPrimitive(b)}(c=this.setValue(a.leftSide,b))?(a.doneSetter_=b,this.stateStack.unshift({node:{type:"CallExpression"},doneCallee_:!0,funcThis_:a.leftSide[0],func_:c,doneArgs_:!0,arguments:[b]})): -(this.stateStack.shift(),this.stateStack[0].value=b)}else{a.leftSide||(a.leftSide=a.value);a.doneGetter_&&(a.leftValue=a.value);if(!a.doneGetter_&&"="!=b.operator&&(a.leftValue=this.getValue(a.leftSide),a.leftValue.isGetter)){a.leftValue.isGetter=!1;a.doneGetter_=!0;this.stateStack.unshift({node:{type:"CallExpression"},doneCallee_:!0,funcThis_:a.leftSide[0],func_:a.leftValue,doneArgs_:!0,arguments:[]});return}a.doneRight=!0;this.stateStack.unshift({node:b.right})}else a.doneLeft=!0,this.stateStack.unshift({node:b.left, -components:!0})}; -Interpreter.prototype.stepBinaryExpression=function(){var a=this.stateStack[0],b=a.node;if(a.doneLeft)if(a.doneRight){this.stateStack.shift();var c=a.leftValue,a=a.value,d=this.comp(c,a);if("=="==b.operator||"!="==b.operator)c=c.isPrimitive&&a.isPrimitive?c.data==a.data:0===d,"!="==b.operator&&(c=!c);else if("==="==b.operator||"!=="==b.operator)c=c.isPrimitive&&a.isPrimitive?c.data===a.data:c===a,"!=="==b.operator&&(c=!c);else if(">"==b.operator)c=1==d;else if(">="==b.operator)c=1==d||0===d;else if("<"== -b.operator)c=-1==d;else if("<="==b.operator)c=-1==d||0===d;else if("+"==b.operator)c=c.isPrimitive?c.data:c.toString(),a=a.isPrimitive?a.data:a.toString(),c+=a;else if("in"==b.operator)c=this.hasProperty(a,c);else if("instanceof"==b.operator)this.isa(a,this.FUNCTION)||this.throwException(this.TYPE_ERROR,"Expecting a function in instanceof check"),c=this.isa(c,a);else if(c=c.toNumber(),a=a.toNumber(),"-"==b.operator)c-=a;else if("*"==b.operator)c*=a;else if("/"==b.operator)c/=a;else if("%"==b.operator)c%= -a;else if("&"==b.operator)c&=a;else if("|"==b.operator)c|=a;else if("^"==b.operator)c^=a;else if("<<"==b.operator)c<<=a;else if(">>"==b.operator)c>>=a;else if(">>>"==b.operator)c>>>=a;else throw SyntaxError("Unknown binary operator: "+b.operator);this.stateStack[0].value=this.createPrimitive(c)}else a.doneRight=!0,a.leftValue=a.value,this.stateStack.unshift({node:b.right});else a.doneLeft=!0,this.stateStack.unshift({node:b.left})}; -Interpreter.prototype.stepBlockStatement=function(){var a=this.stateStack[0],b=a.node,c=a.n_||0;b.body[c]?(a.done=!1,a.n_=c+1,this.stateStack.unshift({node:b.body[c]})):(a.done=!0,"Program"!=a.node.type&&this.stateStack.shift())}; -Interpreter.prototype.stepBreakStatement=function(){var a=this.stateStack.shift(),a=a.node,b=null;a.label&&(b=a.label.name);for(a=this.stateStack.shift();a&&"CallExpression"!=a.node.type&&"NewExpression"!=a.node.type;){if(b?b==a.label:a.isLoop||a.isSwitch)return;a=this.stateStack.shift()}throw SyntaxError("Illegal break statement");}; -Interpreter.prototype.stepCallExpression=function(){var a=this.stateStack[0],b=a.node;if(a.doneCallee_){if(!a.func_){if("function"==a.value.type)a.func_=a.value;else{a.value.length&&(a.member_=a.value[0]);a.func_=this.getValue(a.value);if(!a.func_)return;if("function"!=a.func_.type){this.throwException(this.TYPE_ERROR,(a.value&&a.value.type)+" is not a function");return}}"NewExpression"==a.node.type?(a.funcThis_=this.createObject(a.func_),a.isConstructor_=!0):a.funcThis_=a.func_.boundThis_?a.func_.boundThis_: -a.value.length?a.value[0]:this.stateStack[this.stateStack.length-1].thisExpression;a.arguments=a.func_.boundArgs_?a.func_.boundArgs_.concat():[];a.n_=0}if(!a.doneArgs_){0!=a.n_&&a.arguments.push(a.value);if(b.arguments[a.n_]){this.stateStack.unshift({node:b.arguments[a.n_]});a.n_++;return}a.doneArgs_=!0}if(a.doneExec_)this.stateStack.shift(),this.stateStack[0].value=a.isConstructor_&&"object"!==a.value.type?a.funcThis_:a.value;else if(a.doneExec_=!0,a.func_.node){for(var b=this.createScope(a.func_.node.body, -a.func_.parentScope),c=0;cc?a.arguments[c]:this.UNDEFINED;this.setProperty(b,d,h)}d=this.createObject(this.ARRAY);for(c=0;c - - - - Blockly Demo: Asynchronous Execution with JS Interpreter - - - - - - - - - -

    Blockly > - Demos > Asynchronous Execution with JS Interpreter

    - -

    This is a demo of executing code asychronously (e.g., waiting for delays or user input) using the JavaScript interpreter.

    - -

    More info on running code with JS Interpreter

    - -

    - -

    - -
    -
    - -
    - - - - - - - - diff --git a/lib/blockly/demos/interpreter/icon.png b/lib/blockly/demos/interpreter/icon.png deleted file mode 100644 index b70d1b0..0000000 Binary files a/lib/blockly/demos/interpreter/icon.png and /dev/null differ diff --git a/lib/blockly/demos/interpreter/index.html b/lib/blockly/demos/interpreter/index.html deleted file mode 100644 index 2245057..0000000 --- a/lib/blockly/demos/interpreter/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirecting... - - - -Redirecting to step execution jsinterpreter demo. - - diff --git a/lib/blockly/demos/interpreter/step-execution.html b/lib/blockly/demos/interpreter/step-execution.html deleted file mode 100644 index 42ae503..0000000 --- a/lib/blockly/demos/interpreter/step-execution.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - Blockly Demo: Step Execution with JS Interpreter - - - - - - - - -

    Blockly > - Demos > Step Execution with JS Interpreter

    - -

    This is a demo of executing code step-by-step with a sandboxed JavaScript interpreter.

    - -

    The generator's Blockly.JavaScript.STATEMENT_PREFIX is assigned 'highlightBlock(%1);\n', - where %1 is the block id. The call to highlightBlock() will highlight the identified block - and set the variable highlightPause to true.

    - -

    "Parse JavaScript" will generate the code and load it into the interpreter. Then, each press of the - "Step JavaScript" button will run the interpreter one step until the highlightPause is true. - That is, until highlightBlock() has highlighted the block that will be executed on the next step.

    - -

    More info on running code with JS Interpreter

    - -

    - -

    - -
    -
    - -
    - - - - - - - - diff --git a/lib/blockly/demos/interpreter/wait_block.js b/lib/blockly/demos/interpreter/wait_block.js deleted file mode 100644 index 4f49d8a..0000000 --- a/lib/blockly/demos/interpreter/wait_block.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Example "wait" block that will pause the interpreter for a - * number of seconds. Because wait is a blocking behavior, such blocks will - * only work in interpreted environments. - * - * See https://neil.fraser.name/software/JS-Interpreter/docs.html - */ -Blockly.defineBlocksWithJsonArray([{ - "type": "wait_seconds", - "message0": " wait %1 seconds", - "args0": [{ - "type": "field_number", - "name": "SECONDS", - "min": 0, - "max": 600, - "value": 1 - }], - "previousStatement": null, - "nextStatement": null, - "colour": "%{BKY_LOOPS_HUE}" -}]); - -/** - * Generator for wait block creates call to new method - * waitForSeconds(). - */ -Blockly.JavaScript['wait_seconds'] = function(block) { - var seconds = Number(block.getFieldValue('SECONDS')); - var code = 'waitForSeconds(' + seconds + ');\n'; - return code; -}; - -/** - * Register the interpreter asynchronous function - * waitForSeconds(). - */ -function initInterpreterWaitForSeconds(interpreter, scope) { - // Ensure function name does not conflict with variable names. - Blockly.JavaScript.addReservedWords('waitForSeconds'); - - var wrapper = interpreter.createAsyncFunction( - function(timeInSeconds, callback) { - // Delay the call to the callback. - setTimeout(callback, timeInSeconds * 1000); - }); - interpreter.setProperty(scope, 'waitForSeconds', wrapper); -} \ No newline at end of file diff --git a/lib/blockly/demos/keyboard_nav/basic_cursor.js b/lib/blockly/demos/keyboard_nav/basic_cursor.js deleted file mode 100644 index feaa53e..0000000 --- a/lib/blockly/demos/keyboard_nav/basic_cursor.js +++ /dev/null @@ -1,209 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview The class representing a basic cursor. - * Used to demo switching between different cursors. - * @author aschmiedt@google.com (Abby Schmiedt) - */ -'use strict'; - - -/** - * Class for a basic cursor. - * This will allow the user to get to all nodes in the AST by hitting next or - * previous. - * @constructor - * @extends {Blockly.Cursor} - */ -Blockly.BasicCursor = function() { - Blockly.BasicCursor.superClass_.constructor.call(this); -}; -Blockly.utils.object.inherits(Blockly.BasicCursor, Blockly.Cursor); - -/** - * Decides what nodes to traverse and which ones to skip. Currently, it - * skips output, stack and workspace nodes. - * @param {Blockly.ASTNode} node The AST node to check whether it is valid. - * @return {boolean} True if the node should be visited, false otherwise. - * @private - */ -Blockly.BasicCursor.prototype.validNode_ = function(node) { - var isValid = false; - var type = node && node.getType(); - if (type == Blockly.ASTNode.types.OUTPUT || - type == Blockly.ASTNode.types.INPUT || - type == Blockly.ASTNode.types.FIELD || - type == Blockly.ASTNode.types.NEXT || - type == Blockly.ASTNode.types.PREVIOUS || - type == Blockly.ASTNode.types.WORKSPACE) { - isValid = true; - } - return isValid; -}; - -/** - * From the given node find either the next valid sibling or parent. - * @param {Blockly.ASTNode} node The current position in the AST. - * @return {Blockly.ASTNode} The parent AST node or null if there are no - * valid parents. - * @private - */ -Blockly.BasicCursor.prototype.findSiblingOrParent_ = function(node) { - if (!node) { - return null; - } - var nextNode = node.next(); - if (nextNode) { - return nextNode; - } - return this.findSiblingOrParent_(node.out()); -}; - -/** - * Uses pre order traversal to navigate the Blockly AST. This will allow - * a user to easily navigate the entire Blockly AST without having to go in - * and out levels on the tree. - * @param {Blockly.ASTNode} node The current position in the AST. - * @return {Blockly.ASTNode} The next node in the traversal. - * @private - */ -Blockly.BasicCursor.prototype.getNextNode_ = function(node) { - if (!node) { - return null; - } - var newNode = node.in() || node.next(); - if (this.validNode_(newNode)) { - return newNode; - } else if (newNode) { - return this.getNextNode_(newNode); - } - var siblingOrParent = this.findSiblingOrParent_(node.out()); - if (this.validNode_(siblingOrParent)) { - return siblingOrParent; - } else if (siblingOrParent) { - return this.getNextNode_(siblingOrParent); - } - return null; -}; - -/** - * Get the right most child of a node. - * @param {Blockly.ASTNode} node The node to find the right most child of. - * @return {Blockly.ASTNode} The right most child of the given node, or the node - * if no child exists. - * @private - */ -Blockly.BasicCursor.prototype.getRightMostChild_ = function(node) { - if (!node.in()) { - return node; - } - var newNode = node.in(); - while (newNode.next()) { - newNode = newNode.next(); - } - return this.getRightMostChild_(newNode); - -}; - -/** - * Reverses the pre order traversal in order to find the previous node. This will - * allow a user to easily navigate the entire Blockly AST without having to go in - * and out levels on the tree. - * @param {Blockly.ASTNode} node The current position in the AST. - * @return {Blockly.ASTNode} The previous node in the traversal or null if no - * previous node exists. - * @private - */ -Blockly.BasicCursor.prototype.getPreviousNode_ = function(node) { - if (!node) { - return null; - } - var newNode = node.prev(); - - if (newNode) { - newNode = this.getRightMostChild_(newNode); - } else { - newNode = node.out(); - } - if (this.validNode_(newNode)) { - return newNode; - } else if (newNode) { - return this.getPreviousNode_(newNode); - } - return null; -}; - -/** - * Find the next node in the pre order traversal. - * @return {Blockly.ASTNode} The next node, or null if the current node is - * not set or there is no next value. - * @override - */ -Blockly.BasicCursor.prototype.next = function() { - var curNode = this.getCurNode(); - if (!curNode) { - return null; - } - var newNode = this.getNextNode_(curNode); - - if (newNode) { - this.setCurNode(newNode); - } - return newNode; -}; - -/** - * For a basic cursor we only have the ability to go next and previous, so - * in will also allow the user to get to the next node in the pre order traversal. - * @return {Blockly.ASTNode} The next node, or null if the current node is - * not set or there is no next value. - * @override - */ -Blockly.BasicCursor.prototype.in = function() { - return this.next(); -}; - -/** - * Find the previous node in the pre order traversal. - * @return {Blockly.ASTNode} The previous node, or null if the current node - * is not set or there is no previous value. - * @override - */ -Blockly.BasicCursor.prototype.prev = function() { - var curNode = this.getCurNode(); - if (!curNode) { - return null; - } - var newNode = this.getPreviousNode_(curNode); - - if (newNode) { - this.setCurNode(newNode); - } - return newNode; -}; - -/** - * For a basic cursor we only have the ability to go next and previou, so - * out will allow the user to get to the previous node in the pre order traversal. - * @return {Blockly.ASTNode} The previous node, or null if the current node is - * not set or there is no previous value. - * @override - */ -Blockly.BasicCursor.prototype.out = function() { - return this.prev(); -}; diff --git a/lib/blockly/demos/keyboard_nav/icon.png b/lib/blockly/demos/keyboard_nav/icon.png deleted file mode 100644 index 081866e..0000000 Binary files a/lib/blockly/demos/keyboard_nav/icon.png and /dev/null differ diff --git a/lib/blockly/demos/keyboard_nav/index.html b/lib/blockly/demos/keyboard_nav/index.html deleted file mode 100644 index 4be13c5..0000000 --- a/lib/blockly/demos/keyboard_nav/index.html +++ /dev/null @@ -1,566 +0,0 @@ - - - - - Blockly Demo: Keyboard Navigation - - - - - - - - -

    Blockly > - Demos > Keyboard Navigation

    - -

    Keyboard Navigation is our first step towards an accessible Blockly.
    - You can enter accessibility mode by shift clicking anywhere on the - workspace or on a block.
    Some basic commands for moving around are below. - More complete documentation is still in progress.

    - Workspace Navigation
    - W: Previous block/field/input at the same level
    - A: Up one level (Field (or input) -> Block -> Input (or field) -> Block -> - Stack -> Workspace)
    - S: Next block/field/input at the same level
    - D: Down one level (Workspace -> Stack -> Block -> Input (or field) -> Block - -> Field (or input))
    - T: Will open the toolbox. Once in there you can moving around using the WASD keys. And insert a block by hitting Enter
    - X: While on a connection hit X to disconnect the block after the cursor

    - - Pre Order Traversal
    - Feel free to just play around in accessibility mode or hit the button below to see the demo. - The demo uses preorder tree traversal - as an alternative way to navigate the blocks, - connections, and fields on the workspace.

    - - - - - Cursor
    - The cursor controls how the user navigates the blocks, inputs, fields and connections on a workspace. - This demo shows two different cursors:
    - Default Cursor: Allow the user to go to the previous, next, in or out location.
    - Basic Cursor: Using the pre order traversal allows the user to go to the next and previous location. -

    - -

    - - - - - - - - -

    - -
    -
    - -
    - - - - - - - - - diff --git a/lib/blockly/demos/maxBlocks/icon.png b/lib/blockly/demos/maxBlocks/icon.png deleted file mode 100644 index b90c796..0000000 Binary files a/lib/blockly/demos/maxBlocks/icon.png and /dev/null differ diff --git a/lib/blockly/demos/maxBlocks/index.html b/lib/blockly/demos/maxBlocks/index.html deleted file mode 100644 index dc94f2f..0000000 --- a/lib/blockly/demos/maxBlocks/index.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Blockly Demo: Maximum Block Limit - - - - - - -

    Blockly > - Demos > Maximum Block Limit

    - -

    This is a demo of Blockly which has been restricted to a maximum of - five blocks.

    - -

    You have block(s) left.

    - -
    - - - - - - - diff --git a/lib/blockly/demos/minimap/icon.png b/lib/blockly/demos/minimap/icon.png deleted file mode 100644 index 870caa0..0000000 Binary files a/lib/blockly/demos/minimap/icon.png and /dev/null differ diff --git a/lib/blockly/demos/minimap/index.html b/lib/blockly/demos/minimap/index.html deleted file mode 100644 index 2f4e163..0000000 --- a/lib/blockly/demos/minimap/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - Blockly Demo: Minimap - - - - - - - -

    Blockly > - Demos > Minimap

    - -

    This is a simple demo showing how a minimap can be implemented.

    - - - - - - -
    -
    -
    -
    -
    - - - - - - - - diff --git a/lib/blockly/demos/minimap/minimap.js b/lib/blockly/demos/minimap/minimap.js deleted file mode 100644 index 05e00bb..0000000 --- a/lib/blockly/demos/minimap/minimap.js +++ /dev/null @@ -1,312 +0,0 @@ -/** - - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview JavaScript for Blockly's Minimap demo. - * @author karnpurohit@gmail.com (Karan Purohit) - */ -'use strict'; - -/** - * Creating a separate namespace for minimap. - */ -var Minimap = {}; - -/** - * Initialize the workspace and minimap. - * @param {!Workspace} workspace The main workspace of the user. - * @param {!Workspace} minimap The workspace that will be used as a minimap. - */ -Minimap.init = function(workspace, minimap) { - this.workspace = workspace; - this.minimap = minimap; - - // Adding scroll callback functionality to vScroll and hScroll just for this demo. - // IMPORTANT: This should be changed when there is proper UI event handling - // API available and should be handled by workspace's event listeners. - this.workspace.scrollbar.vScroll.setHandlePosition = function(newPosition) { - this.handlePosition_ = newPosition; - this.svgHandle_.setAttribute(this.positionAttribute_, this.handlePosition_); - - // Code above is same as the original setHandlePosition function in core/scrollbar.js. - // New code starts from here. - - // Get the absolutePosition. - var absolutePosition = (this.handlePosition_ / this.ratio_); - - // Firing the scroll change listener. - Minimap.onScrollChange(absolutePosition, this.horizontal_); - }; - - // Adding call back for horizontal scroll. - this.workspace.scrollbar.hScroll.setHandlePosition = function(newPosition) { - this.handlePosition_ = newPosition; - this.svgHandle_.setAttribute(this.positionAttribute_, this.handlePosition_); - - // Code above is same as the original setHandlePosition function in core/scrollbar.js. - // New code starts from here. - - // Get the absolutePosition. - var absolutePosition = (this.handlePosition_ / this.ratio_); - - // Firing the scroll change listener. - Minimap.onScrollChange(absolutePosition, this.horizontal_); - }; - - - // Required to stop a positive feedback loop when user clicks minimap - // and the scroll changes, which in turn may change minimap. - this.disableScrollChange = false; - - // Listen to events on the main workspace. - this.workspace.addChangeListener(Minimap.mirrorEvent); - - //Get rectangle bounding the minimap div. - this.rect = document.getElementById('mapDiv').getBoundingClientRect(); - - // Create a svg overlay on the top of mapDiv for the minimap. - this.svg = Blockly.utils.dom.createSvgElement('svg', { - 'xmlns': Blockly.utils.dom.SVG_NS, - 'xmlns:html': Blockly.utils.dom.HTML_NS, - 'xmlns:xlink': Blockly.utils.dom.XLINK_NS, - 'version': '1.1', - 'height': this.rect.bottom-this.rect.top, - 'width': this.rect.right-this.rect.left, - 'class': 'minimap', - }, document.getElementById('mapDiv')); - this.svg.style.top = this.rect.top + 'px'; - this.svg.style.left = this.rect.left + 'px'; - - // Creating a rectangle in the minimap that represents current view. - Blockly.utils.dom.createSvgElement('rect', { - 'width': 100, - 'height': 100, - 'class': 'mapDragger' - }, this.svg); - - // Rectangle in the minimap that represents current view. - this.mapDragger = this.svg.childNodes[0]; - - // Adding mouse events to the rectangle, to make it Draggable. - // Using Blockly.bindEvent_ to attach mouse/touch listeners. - Blockly.bindEvent_(this.mapDragger, 'mousedown', null, Minimap.mousedown); - - //When the window change, we need to resize the minimap window. - window.addEventListener('resize', Minimap.repositionMinimap); - - // Mouse up event for the minimap. - this.svg.addEventListener('mouseup', Minimap.updateMapDragger); - - //Boolean to check whether I am dragging the surface or not. - this.isDragging = false; -}; - -Minimap.mousedown = function(e) { - // Using Blockly.bindEvent_ to attach mouse/touch listeners. - Minimap.mouseMoveBindData = - Blockly.bindEvent_(document, 'mousemove', null, Minimap.mousemove); - Minimap.mouseUpBindData = - Blockly.bindEvent_(document, 'mouseup', null, Minimap.mouseup); - - Minimap.isDragging = true; - e.stopPropagation(); -}; - -Minimap.mouseup = function(e) { - Minimap.isDragging = false; - // Removing listeners. - Blockly.unbindEvent_(Minimap.mouseUpBindData); - Blockly.unbindEvent_(Minimap.mouseMoveBindData); - Minimap.updateMapDragger(e); - e.stopPropagation(); -}; - -Minimap.mousemove = function(e) { - if (Minimap.isDragging) { - Minimap.updateMapDragger(e); - e.stopPropagation(); - } -}; - -/** - * Run non-UI events from the main workspace on the minimap. - * @param {!Event} event Event that triggered in the main workspace. - */ -Minimap.mirrorEvent = function(event) { - if (event.type == Blockly.Events.UI) { - return; // Don't mirror UI events. - } - // Convert event to JSON. This could then be transmitted across the net. - var json = event.toJson(); - // Convert JSON back into an event, then execute it. - var minimapEvent = Blockly.Events.fromJson(json, Minimap.minimap); - minimapEvent.run(true); - Minimap.scaleMinimap(); - Minimap.setDraggerHeight(); - Minimap.setDraggerWidth(); -}; - -/** - * Called when window is resized. Repositions the minimap overlay. - */ -Minimap.repositionMinimap = function() { - Minimap.rect = document.getElementById('mapDiv').getBoundingClientRect(); - Minimap.svg.style.top = Minimap.rect.top + 'px'; - Minimap.svg.style.left = Minimap.rect.left + 'px'; -}; - -/** - * Updates the rectangle's height. - */ -Minimap.setDraggerHeight = function() { - var workspaceMetrics = Minimap.workspace.getMetrics(); - var draggerHeight = (workspaceMetrics.viewHeight / Minimap.workspace.scale) * - Minimap.minimap.scale; - // It's zero when first block is placed. - if (draggerHeight == 0) { - return; - } - Minimap.mapDragger.setAttribute('height', draggerHeight); -}; - -/** - * Updates the rectangle's width. - */ -Minimap.setDraggerWidth = function() { - var workspaceMetrics = Minimap.workspace.getMetrics(); - var draggerWidth = (workspaceMetrics.viewWidth / Minimap.workspace.scale) * - Minimap.minimap.scale; - // It's zero when first block is placed. - if (draggerWidth == 0) { - return; - } - Minimap.mapDragger.setAttribute('width', draggerWidth); -}; - - -/** - * Updates the overall position of the viewport of the minimap by appropriately - * using translate functions. - */ -Minimap.scaleMinimap = function() { - var minimapBoundingBox = Minimap.minimap.getBlocksBoundingBox(); - var workspaceBoundingBox = Minimap.workspace.getBlocksBoundingBox(); - var workspaceMetrics = Minimap.workspace.getMetrics(); - var minimapMetrics = Minimap.minimap.getMetrics(); - - // Scaling the mimimap such that all the blocks can be seen in the viewport. - // This padding is default because this is how to scrollbar(in main workspace) - // is implemented. - var topPadding = (workspaceMetrics.viewHeight) * Minimap.minimap.scale / - (2 * Minimap.workspace.scale); - var sidePadding = (workspaceMetrics.viewWidth) * Minimap.minimap.scale / - (2 * Minimap.workspace.scale); - - // If actual padding is more than half view ports height, - // change it to actual padding. - if ((workspaceBoundingBox.y * Minimap.workspace.scale - - workspaceMetrics.contentTop) * - Minimap.minimap.scale / Minimap.workspace.scale > topPadding) { - topPadding = (workspaceBoundingBox.y * Minimap.workspace.scale - - workspaceMetrics.contentTop) * - Minimap.minimap.scale / Minimap.workspace.scale; - } - - // If actual padding is more than half view ports height, - // change it to actual padding. - if ((workspaceBoundingBox.x * Minimap.workspace.scale - - workspaceMetrics.contentLeft) * - Minimap.minimap.scale / Minimap.workspace.scale > sidePadding) { - sidePadding = (workspaceBoundingBox.x * Minimap.workspace.scale - - workspaceMetrics.contentLeft) * - Minimap.minimap.scale / Minimap.workspace.scale; - } - - var scalex = (minimapMetrics.viewWidth - 2 * sidePadding) / - minimapBoundingBox.width; - var scaley = (minimapMetrics.viewHeight - 2 * topPadding) / - minimapBoundingBox.height; - Minimap.minimap.setScale(Math.min(scalex, scaley)); - - // Translating the minimap. - Minimap.minimap.translate( - -minimapMetrics.contentLeft * Minimap.minimap.scale + sidePadding, - -minimapMetrics.contentTop * Minimap.minimap.scale + topPadding); -}; - -/** - * Handles the onclick event on the minimapBoundingBox. - * Changes mapDraggers position. - * @param {!Event} e Event from the mouse click. - */ -Minimap.updateMapDragger = function(e) { - var y = e.clientY; - var x = e.clientX; - var draggerHeight = Minimap.mapDragger.getAttribute('height'); - var draggerWidth = Minimap.mapDragger.getAttribute('width'); - - var finalY = y - Minimap.rect.top - draggerHeight / 2; - var finalX = x - Minimap.rect.left - draggerWidth / 2; - - var maxValidY = (Minimap.workspace.getMetrics().contentHeight - - Minimap.workspace.getMetrics().viewHeight) * Minimap.minimap.scale; - var maxValidX = (Minimap.workspace.getMetrics().contentWidth - - Minimap.workspace.getMetrics().viewWidth) * Minimap.minimap.scale; - - if (y + draggerHeight / 2 > Minimap.rect.bottom) { - finalY = Minimap.rect.bottom - Minimap.rect.top - draggerHeight; - } else if (y < Minimap.rect.top + draggerHeight / 2) { - finalY = 0; - } - - if (x + draggerWidth / 2 > Minimap.rect.right) { - finalX = Minimap.rect.right - Minimap.rect.left - draggerWidth; - } else if (x < Minimap.rect.left + draggerWidth / 2) { - finalX = 0; - } - - // Do not go below lower bound of scrollbar. - if (finalY > maxValidY) { - finalY = maxValidY; - } - if (finalX > maxValidX) { - finalX = maxValidX; - } - Minimap.mapDragger.setAttribute('y', finalY); - Minimap.mapDragger.setAttribute('x', finalX); - // Required, otherwise creates a feedback loop. - Minimap.disableScrollChange = true; - Minimap.workspace.scrollbar.vScroll.set((finalY * Minimap.workspace.scale) / - Minimap.minimap.scale); - Minimap.workspace.scrollbar.hScroll.set((finalX * Minimap.workspace.scale) / - Minimap.minimap.scale); - Minimap.disableScrollChange = false; -}; - -/** - * Handles the onclick event on the minimapBoundingBox, parameters are passed by - * the event handler. - * @param {number} position This is the absolute position of the scrollbar. - * @param {boolean} horizontal Informs if the change event if for - * horizontal (true) or vertical (false) scrollbar. - */ -Minimap.onScrollChange = function(position, horizontal) { - if (!Minimap.disableScrollChange) { - Minimap.mapDragger.setAttribute(horizontal ? 'x' : 'y', - position * Minimap.minimap.scale / Minimap.workspace.scale); - } -}; diff --git a/lib/blockly/demos/mirror/icon.png b/lib/blockly/demos/mirror/icon.png deleted file mode 100644 index 45e2a9a..0000000 Binary files a/lib/blockly/demos/mirror/icon.png and /dev/null differ diff --git a/lib/blockly/demos/mirror/index.html b/lib/blockly/demos/mirror/index.html deleted file mode 100644 index 10c23df..0000000 --- a/lib/blockly/demos/mirror/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - Blockly Demo: Mirrored Blockly - - - - - - -

    Blockly > - Demos > Mirrored Blockly

    - -

    This is a simple demo of a primary Blockly instance that controls a secondary Blockly instance with events. - Open the JavaScript console to see the event passing.

    - -

    → More info on events

    - - - - - - -
    -
    -
    -
    -
    - - - - - - - diff --git a/lib/blockly/demos/mobile/README.md b/lib/blockly/demos/mobile/README.md deleted file mode 100644 index bab0960..0000000 --- a/lib/blockly/demos/mobile/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Blockly on Mobile Devices - -This directory contains three examples of running the Blockly library on mobile -devices. The `html/` directory is a example of configuring a webpage for touch -devices, with a Blockly workspace that fills the screen. - -The `mobile/html/` is also the basis for the Android and iOS demos. Each native -app copies this demo into the app's local resources, and required Blockly -library files, and hosts them in an embedded WebView. - -Thus, developers can quickly iterate within the `mobile/html/` directory, and -see changes in both the Android and iOS native apps. - -## Running the Mobile HTML Demo - -Before running the mobile HTML demo, you need to create some symbolic links -in your local file system. Run the `mobile/html/ln_resources.sh` file from -the `mobile/html/` directory. This mimicks the relative locations of the -Blockly files seen when loading the page in a native app's embedded WebView. - -After doing this, opening `mobile/html/index.html` should open normally, -filling the page with one large Blockly workspace. - -## The Android App - -### Build and Run - -Open the `demos/mobile/android/` directory in Android Studio. The project -files in the directory should be ready to build and run the demo in an emulator -or connected device. - -### Android Copy Tasks - -If you edit the `mobile/html/` demo to include new files, you will need to -update the native app project files to also copy those files. - -In the Android project, two Gradle tasks are responsible for the copies. -In `mobile/android/app/build.gradle`, the tasks `copyBlocklyHtmlFile` and -`copyBlocklyMoreFiles` configure the copy actions. - -## The iOS App - -### Build and Run - -Open the `demos/mobile/iOS/` directory in XCode. The project files in the -directory should be ready to build and run the demo in a simulator or connected -device. - -### iOS Copy Script - -The XCode project call out to `mobile/ios/cp_resources.sh` to copy the required -HTML and related files. If you've edited the `mobile/html/` demo to require new -files, update this script to copy these files, too. diff --git a/lib/blockly/demos/mobile/android/.gitignore b/lib/blockly/demos/mobile/android/.gitignore deleted file mode 100644 index 3ba2b2b..0000000 --- a/lib/blockly/demos/mobile/android/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -/build -/captures -/app/src/main/assets/blockly -.settings -.project - -# Local Settings -local.properties - -# Project files -*.komodoproject -.gradle -*.iml -.idea - -# Build files -*.pyc -*.apk -*.ap_ -*.class -*.dex - -# OSX Files -.DS_Store - -# Windows Files -Thumb.db diff --git a/lib/blockly/demos/mobile/android/README.md b/lib/blockly/demos/mobile/android/README.md deleted file mode 100644 index 31f968f..0000000 --- a/lib/blockly/demos/mobile/android/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Blockly in an Android WebView - -This code demonstrates how to get Blockly running in an Android app by -embedding it in a WebView. - -### BlocklyWebViewFragment - -Most of the work is done within the fragment class `BlocklyWebViewFragment`. -This fragment instantiates the WebView, loads the HTML -(`assets/blockly/webview.html`, copied from `demos/mobile/html/index.html`), -and provides a few helper methods. - -### Copying web assets with gradle - -This android project copies the necessary files from the main Blockly -repository (i.e., parent directory). In `app/build.gradle`, note the -`copyBlocklyHtmlFile` and `copyBlocklyMoreFiles` tasks. - -In your own project, the HTML and related files can be placed directly in the -`assets/blockly` directory without the copy step. However, using the copy tasks -simplifies the synchronization with an iOS app using the same files. - -### Loading Block Definitions and Generator functions - -The `webview.html` loads the block definitions and generator functions directly -into the page, without support or coordination with the Android classes. This -assumes the app will always utilize the same blocks. This does not mean all -blocks are visible to the user all the time; that is controlled by the toolbox -and workspace files. This should accommodate almost all applications. - -This does mean loading your own block definitions and generators will involve -editing the HTML, adding you own ` - - - - - - -
    - - - \ No newline at end of file diff --git a/lib/blockly/demos/mobile/html/ln_resources.sh b/lib/blockly/demos/mobile/html/ln_resources.sh deleted file mode 100644 index c4c3b60..0000000 --- a/lib/blockly/demos/mobile/html/ln_resources.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -e -# -# Create symbolic links in this directory for the -# Blockly library files used by this demo's index.html. - -if [[ ! -e ../../../blockly_compressed.js ]]; then - echo "ERROR: Could not locate blockly_compressed.js. Run from demos/mobile/html/" 1>&2 - exit 1 # terminate and indicate error -fi - -if [ ! -L blockly_compressed.js ]; then - ln -s ../../../blockly_compressed.js blockly_compressed.js -fi -if [ ! -L blocks_compressed.js ]; then - ln -s ../../../blocks_compressed.js blocks_compressed.js -fi -if [ ! -L media ]; then - ln -s ../../../media media -fi -if [ ! -L msg ]; then - ln -s ../../../msg msg -fi diff --git a/lib/blockly/demos/mobile/html/toolbox_standard.js b/lib/blockly/demos/mobile/html/toolbox_standard.js deleted file mode 100644 index 2032688..0000000 --- a/lib/blockly/demos/mobile/html/toolbox_standard.js +++ /dev/null @@ -1,333 +0,0 @@ - -var BLOCKLY_TOOLBOX_XML = BLOCKLY_TOOLBOX_XML || Object.create(null); - -/* BEGINNING BLOCKLY_TOOLBOX_XML ASSIGNMENT. DO NOT EDIT. USE BLOCKLY DEVTOOLS. */ -BLOCKLY_TOOLBOX_XML['standard'] = -// From XML string/file, replace ^\s?(\s*)?(<.*>)$ with \+$1'$2' -// Tweak first and last line. -'' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '10' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '1' -+ '' -+ '' -+ '' -+ '' -+ '10' -+ '' -+ '' -+ '' -+ '' -+ '1' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '123' -+ '' -+ '' -+ '' -+ '' -+ '1' -+ '' -+ '' -+ '' -+ '' -+ '1' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '9' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '45' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '0' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '3.1' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '64' -+ '' -+ '' -+ '' -+ '' -+ '10' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '50' -+ '' -+ '' -+ '' -+ '' -+ '1' -+ '' -+ '' -+ '' -+ '' -+ '100' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '1' -+ '' -+ '' -+ '' -+ '' -+ '100' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'abc' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'text' -+ '' -+ '' -+ '' -+ '' -+ 'abc' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'text' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'text' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'abc' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'abc' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'abc' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'abc' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '5' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'list' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'list' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'list' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ 'list' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ ',' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '100' -+ '' -+ '' -+ '' -+ '' -+ '50' -+ '' -+ '' -+ '' -+ '' -+ '0' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '#ff0000' -+ '' -+ '' -+ '' -+ '' -+ '#3333ff' -+ '' -+ '' -+ '' -+ '' -+ '0.5' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ '' -+ ''; -/* END BLOCKLY_TOOLBOX_XML ASSIGNMENT. DO NOT EDIT. */ diff --git a/lib/blockly/demos/mobile/ios/.gitignore b/lib/blockly/demos/mobile/ios/.gitignore deleted file mode 100644 index 6c1f837..0000000 --- a/lib/blockly/demos/mobile/ios/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Files copied by cp_resources.sh -/Resources/Non-Localized/Blockly - - -# Xcode.gitignore - -## User settings -xcuserdata/ - -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) -*.xcscmblueprint -*.xccheckout - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) -build/ -DerivedData/ -*.moved-aside -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.pbxproj b/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.pbxproj deleted file mode 100644 index a3f72fc..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.pbxproj +++ /dev/null @@ -1,390 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - AB036C55211B89D600CCC9D8 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB036C54211B89D600CCC9D8 /* WebKit.framework */; }; - AB980111211A37B50025AFF2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB980110211A37B50025AFF2 /* AppDelegate.swift */; }; - AB980113211A37B50025AFF2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB980112211A37B50025AFF2 /* ViewController.swift */; }; - AB980116211A37B50025AFF2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB980114211A37B50025AFF2 /* Main.storyboard */; }; - AB980118211A37B70025AFF2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB980117211A37B70025AFF2 /* Assets.xcassets */; }; - AB98011B211A37B70025AFF2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB980119211A37B70025AFF2 /* LaunchScreen.storyboard */; }; - ABA1B7FC212214E7000D3CC5 /* Blockly in Resources */ = {isa = PBXBuildFile; fileRef = ABA1B7FB212214E7000D3CC5 /* Blockly */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - AB036C54211B89D600CCC9D8 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - AB98010D211A37B50025AFF2 /* Blockly WebView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Blockly WebView.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - AB980110211A37B50025AFF2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - AB980112211A37B50025AFF2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - AB980115211A37B50025AFF2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - AB980117211A37B70025AFF2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - AB98011A211A37B70025AFF2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - AB98011C211A37B70025AFF2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - ABA1B7FB212214E7000D3CC5 /* Blockly */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Blockly; path = "Resources/Non-Localized/Blockly"; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - AB98010A211A37B50025AFF2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB036C55211B89D600CCC9D8 /* WebKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - AB036C53211B89D500CCC9D8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - AB036C54211B89D600CCC9D8 /* WebKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - AB980104211A37B50025AFF2 = { - isa = PBXGroup; - children = ( - AB98010F211A37B50025AFF2 /* Blockly WebView */, - AB98010E211A37B50025AFF2 /* Products */, - AB036C53211B89D500CCC9D8 /* Frameworks */, - ); - sourceTree = ""; - }; - AB98010E211A37B50025AFF2 /* Products */ = { - isa = PBXGroup; - children = ( - AB98010D211A37B50025AFF2 /* Blockly WebView.app */, - ); - name = Products; - sourceTree = ""; - }; - AB98010F211A37B50025AFF2 /* Blockly WebView */ = { - isa = PBXGroup; - children = ( - ABA1B7F9212214B9000D3CC5 /* Resources */, - AB980110211A37B50025AFF2 /* AppDelegate.swift */, - AB980112211A37B50025AFF2 /* ViewController.swift */, - AB980114211A37B50025AFF2 /* Main.storyboard */, - AB980117211A37B70025AFF2 /* Assets.xcassets */, - AB980119211A37B70025AFF2 /* LaunchScreen.storyboard */, - AB98011C211A37B70025AFF2 /* Info.plist */, - ); - path = "Blockly WebView"; - sourceTree = ""; - }; - ABA1B7F9212214B9000D3CC5 /* Resources */ = { - isa = PBXGroup; - children = ( - ABA1B7FA212214C6000D3CC5 /* Non-Localized */, - ); - path = Resources; - sourceTree = ""; - }; - ABA1B7FA212214C6000D3CC5 /* Non-Localized */ = { - isa = PBXGroup; - children = ( - ABA1B7FB212214E7000D3CC5 /* Blockly */, - ); - path = "Non-Localized"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - AB98010C211A37B50025AFF2 /* Blockly WebView */ = { - isa = PBXNativeTarget; - buildConfigurationList = AB98011F211A37B70025AFF2 /* Build configuration list for PBXNativeTarget "Blockly WebView" */; - buildPhases = ( - AB980109211A37B50025AFF2 /* Sources */, - AB98010A211A37B50025AFF2 /* Frameworks */, - ABEDABD1212372E700A66667 /* ShellScript */, - AB98010B211A37B50025AFF2 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Blockly WebView"; - productName = "Blockly WebView"; - productReference = AB98010D211A37B50025AFF2 /* Blockly WebView.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - AB980105211A37B50025AFF2 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0940; - LastUpgradeCheck = 0940; - ORGANIZATIONNAME = Google; - TargetAttributes = { - AB98010C211A37B50025AFF2 = { - CreatedOnToolsVersion = 9.4.1; - }; - }; - }; - buildConfigurationList = AB980108211A37B50025AFF2 /* Build configuration list for PBXProject "Blockly WebView" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = AB980104211A37B50025AFF2; - productRefGroup = AB98010E211A37B50025AFF2 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - AB98010C211A37B50025AFF2 /* Blockly WebView */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - AB98010B211A37B50025AFF2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AB98011B211A37B70025AFF2 /* LaunchScreen.storyboard in Resources */, - AB980118211A37B70025AFF2 /* Assets.xcassets in Resources */, - AB980116211A37B50025AFF2 /* Main.storyboard in Resources */, - ABA1B7FC212214E7000D3CC5 /* Blockly in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - ABEDABD1212372E700A66667 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = ./cp_resources.sh; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - AB980109211A37B50025AFF2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - AB980113211A37B50025AFF2 /* ViewController.swift in Sources */, - AB980111211A37B50025AFF2 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - AB980114211A37B50025AFF2 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - AB980115211A37B50025AFF2 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - AB980119211A37B70025AFF2 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - AB98011A211A37B70025AFF2 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - AB98011D211A37B70025AFF2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.4; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - AB98011E211A37B70025AFF2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.4; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - AB980120211A37B70025AFF2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 3KZF7Q7Q49; - INFOPLIST_FILE = "Blockly WebView/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.google.kidscoding.Blockly-WebView"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - AB980121211A37B70025AFF2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 3KZF7Q7Q49; - INFOPLIST_FILE = "Blockly WebView/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.google.kidscoding.Blockly-WebView"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - AB980108211A37B50025AFF2 /* Build configuration list for PBXProject "Blockly WebView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AB98011D211A37B70025AFF2 /* Debug */, - AB98011E211A37B70025AFF2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - AB98011F211A37B70025AFF2 /* Build configuration list for PBXNativeTarget "Blockly WebView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AB980120211A37B70025AFF2 /* Debug */, - AB980121211A37B70025AFF2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = AB980105211A37B50025AFF2 /* Project object */; -} diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 2a4f4ae..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/AppDelegate.swift b/lib/blockly/demos/mobile/ios/Blockly WebView/AppDelegate.swift deleted file mode 100644 index 1f2bf6e..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/AppDelegate.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// AppDelegate.swift -// Blockly WebView -// -// Created by Andrew Marshall on 8/7/18. -// Copyright © 2018 Google. All rights reserved. -// - -import UIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - func applicationWillResignActive(_ application: UIApplication) { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. - } - - func applicationDidEnterBackground(_ application: UIApplication) { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. - } - - func applicationWillEnterForeground(_ application: UIApplication) { - // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. - } - - func applicationDidBecomeActive(_ application: UIApplication) { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. - } - - func applicationWillTerminate(_ application: UIApplication) { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. - } - - -} - diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/Assets.xcassets/AppIcon.appiconset/Contents.json b/lib/blockly/demos/mobile/ios/Blockly WebView/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d8db8d6..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/Assets.xcassets/Contents.json b/lib/blockly/demos/mobile/ios/Blockly WebView/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/Base.lproj/LaunchScreen.storyboard b/lib/blockly/demos/mobile/ios/Blockly WebView/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f83f6fd..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/Base.lproj/Main.storyboard b/lib/blockly/demos/mobile/ios/Blockly WebView/Base.lproj/Main.storyboard deleted file mode 100644 index 35c8fdd..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/Base.lproj/Main.storyboard +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/Info.plist b/lib/blockly/demos/mobile/ios/Blockly WebView/Info.plist deleted file mode 100644 index 16be3b6..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/lib/blockly/demos/mobile/ios/Blockly WebView/ViewController.swift b/lib/blockly/demos/mobile/ios/Blockly WebView/ViewController.swift deleted file mode 100644 index f8ad801..0000000 --- a/lib/blockly/demos/mobile/ios/Blockly WebView/ViewController.swift +++ /dev/null @@ -1,111 +0,0 @@ -// ViewController.swift -// Blockly WebView UI controller. -// -// Created by Andrew Marshall on 8/7/18. -// Copyright © 2018 Google. All rights reserved. -// - -import UIKit -import WebKit - - -/// A basic ViewController for a WebView. -/// It handles the initial page load, and functions like window.prompt(). -class ViewController: UIViewController, WKUIDelegate { - /// The name used to reference this iOS object when executing callbacks from the JS code. - /// If this value is changed, it should also be changed in the `CODE_GENERATOR_BRIDGE_JS` file. - fileprivate static let HOST_HTML = "Blockly/webview.html" - - @IBOutlet weak var webView: WKWebView! - - /// Additional setup after loading the UI NIB. - override func viewDidLoad() { - super.viewDidLoad() - webView.uiDelegate = self - // Do any additional setup after loading the view, typically from a nib. - loadWebContent() - } - - /// Load the root HTML page into the webview. - func loadWebContent() { - if let htmlUrl = Bundle.main.url(forResource: "webview", withExtension: "html", - subdirectory: "Blockly") { - webView.load(URLRequest.init(url: htmlUrl)) - } else { - NSLog("Failed to load HTML. Could not find resource.") - } - } - - /// Handle window.alert() with a native dialog. - func webView(_ webView: WKWebView, - runJavaScriptAlertPanelWithMessage message: String, - initiatedByFrame frame: WKFrameInfo, - completionHandler: @escaping () -> Void) { - - let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert) - let title = NSLocalizedString("OK", comment: "OK Button") - let ok = UIAlertAction(title: title, style: .default) { (action: UIAlertAction) -> Void in - alert.dismiss(animated: true, completion: nil) - } - alert.addAction(ok) - present(alert, animated: true) - completionHandler() - } - - /// Handle window.confirm() with a native dialog. - func webView(_ webView: WKWebView, - runJavaScriptConfirmPanelWithMessage message: String, - initiatedByFrame frame: WKFrameInfo, - completionHandler: @escaping (Bool) -> Void) { - - let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert) - let closeAndHandle = { (okayed: Bool) in - alert.dismiss(animated: true, completion: nil) - completionHandler(okayed) - } - - let okTitle = NSLocalizedString("OK", comment: "OK button title") - let ok = UIAlertAction(title: okTitle, style: .default) { (action: UIAlertAction) -> Void in - closeAndHandle(true) - } - alert.addAction(ok) - - let cancelTitle = NSLocalizedString("Cancel", comment: "Cancel button title") - let cancel = UIAlertAction(title: cancelTitle, style: .default) { - (action: UIAlertAction) -> Void in - closeAndHandle(false) - } - alert.addAction(cancel) - present(alert, animated: true) - } - - /// Handle window.prompt() with a native dialog. - func webView(_ webView: WKWebView, - runJavaScriptTextInputPanelWithPrompt prompt: String, - defaultText: String?, - initiatedByFrame frame: WKFrameInfo, - completionHandler: @escaping (String?) -> Void) { - - let alert = UIAlertController(title: prompt, message: nil, preferredStyle: .alert) - - alert.addTextField { (textField) in - textField.text = defaultText - } - - let okTitle = NSLocalizedString("OK", comment: "OK button title") - let okAction = UIAlertAction(title: okTitle, style: .default) { (_) in - let textInput = alert.textFields![0] as UITextField - completionHandler(textInput.text) - } - alert.addAction(okAction) - - let cancelTitle = NSLocalizedString("Cancel", comment: "Cancel button title") - let cancelAction = UIAlertAction(title: cancelTitle, style: .cancel) { (_) in - completionHandler(nil) - } - alert.addAction(cancelAction) - - present(alert, animated: true) - } -} - diff --git a/lib/blockly/demos/mobile/ios/cp_resources.sh b/lib/blockly/demos/mobile/ios/cp_resources.sh deleted file mode 100644 index 050ee90..0000000 --- a/lib/blockly/demos/mobile/ios/cp_resources.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -set -eux - -BLOCKLY_ROOT=../../.. -IOS_RESOURCES=Resources/Non-Localized/Blockly - -MORE_FILES_TO_COPY=( - "blockly_compressed.js" - "blocks_compressed.js" - "media" - "msg/js" - ) - -mkdir -p $IOS_RESOURCES/media -mkdir -p $IOS_RESOURCES/msg/js -rsync -rp ../html/index.html $IOS_RESOURCES/webview.html -rsync -rp ../html/toolbox_standard.js $IOS_RESOURCES/toolbox_standard.js -for i in "${MORE_FILES_TO_COPY[@]}"; do # The quotes are necessary here - TARGET_DIR=$(dirname $IOS_RESOURCES/$i) - rsync -rp $BLOCKLY_ROOT/$i $TARGET_DIR -done diff --git a/lib/blockly/demos/plane/README.txt b/lib/blockly/demos/plane/README.txt deleted file mode 100644 index 944448f..0000000 --- a/lib/blockly/demos/plane/README.txt +++ /dev/null @@ -1,26 +0,0 @@ -This Blockly demo uses Closure Templates to create a multilingual application. -Any changes to the template.soy file require a recompile. Here is the command -to generate a quick English version for debugging: - -java -jar soy/SoyToJsSrcCompiler.jar --outputPathFormat generated/en.js --srcs template.soy - -To generate a full set of language translations, first extract all the strings -from template.soy using this command: - -java -jar soy/SoyMsgExtractor.jar --outputFile xlf/extracted_msgs.xlf template.soy - -This generates xlf/extracted_msgs.xlf, which may then be used by any -XLIFF-compatible translation console to generate a set of files with the -translated strings. These should be placed in the xlf directory. - -Finally, generate all the language versions with this command: - -java -jar soy/SoyToJsSrcCompiler.jar --locales ar,be-tarask,br,ca,da,de,el,en,es,fa,fr,he,hrx,hu,ia,is,it,ja,ko,ms,nb,nl,pl,pms,pt-br,ro,ru,sc,sv,th,tr,uk,vi,zh-hans,zh-hant --messageFilePathFormat xlf/translated_msgs_{LOCALE}.xlf --outputPathFormat "generated/{LOCALE}.js" template.soy - -This is the process that Google uses for maintaining Blockly Games in 50+ -languages. The XLIFF format is simple enough that it is trivial to write a -Python script to reformat it into some other format (such as JSON) for -compatibility with other translation consoles. - -For more information, see message translation for Closure Templates: -https://developers.google.com/closure/templates/docs/translation diff --git a/lib/blockly/demos/plane/blocks.js b/lib/blockly/demos/plane/blocks.js deleted file mode 100644 index 33c66c7..0000000 --- a/lib/blockly/demos/plane/blocks.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * @license - * Copyright 2013 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blocks for Blockly's Plane Seat Calculator application. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -Blockly.Blocks['plane_set_seats'] = { - // Block seat variable setter. - init: function() { - this.setHelpUrl(Blockly.Msg['VARIABLES_SET_HELPURL']); - this.setColour(330); - this.appendValueInput('VALUE') - .appendField(Plane.getMsg('Plane_setSeats')); - this.setTooltip(Blockly.Msg['VARIABLES_SET_TOOLTIP']); - this.setDeletable(false); - } -}; - -Blockly.JavaScript['plane_set_seats'] = function(block) { - // Generate JavaScript for seat variable setter. - var argument0 = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_ASSIGNMENT) || 'NaN'; - return argument0 + ';'; -}; - -Blockly.Blocks['plane_get_rows'] = { - // Block for row variable getter. - init: function() { - this.setHelpUrl(Blockly.Msg['VARIABLES_GET_HELPURL']); - this.setColour(330); - this.appendDummyInput() - .appendField(Plane.getMsg('Plane_getRows'), 'title'); - this.setOutput(true, 'Number'); - }, - customUpdate: function() { - this.setFieldValue( - Plane.getMsg('Plane_getRows').replace('%1', Plane.rows1st), 'title'); - } -}; - -Blockly.JavaScript['plane_get_rows'] = function(block) { - // Generate JavaScript for row variable getter. - return ['Plane.rows1st', Blockly.JavaScript.ORDER_MEMBER]; -}; - -Blockly.Blocks['plane_get_rows1st'] = { - // Block for first class row variable getter. - init: function() { - this.setHelpUrl(Blockly.Msg['VARIABLES_GET_HELPURL']); - this.setColour(330); - this.appendDummyInput() - .appendField(Plane.getMsg('Plane_getRows1'), 'title'); - this.setOutput(true, 'Number'); - }, - customUpdate: function() { - this.setFieldValue( - Plane.getMsg('Plane_getRows1').replace('%1', Plane.rows1st), 'title'); - } -}; - -Blockly.JavaScript['plane_get_rows1st'] = function(block) { - // Generate JavaScript for first class row variable getter. - return ['Plane.rows1st', Blockly.JavaScript.ORDER_MEMBER]; -}; - -Blockly.Blocks['plane_get_rows2nd'] = { - // Block for second class row variable getter. - init: function() { - this.setHelpUrl(Blockly.Msg['VARIABLES_GET_HELPURL']); - this.setColour(330); - this.appendDummyInput() - .appendField(Plane.getMsg('Plane_getRows2'), 'title'); - this.setOutput(true, 'Number'); - }, - customUpdate: function() { - this.setFieldValue( - Plane.getMsg('Plane_getRows2').replace('%1', Plane.rows2nd), 'title'); - } -}; - -Blockly.JavaScript['plane_get_rows2nd'] = function(block) { - // Generate JavaScript for second class row variable getter. - return ['Plane.rows2nd', Blockly.JavaScript.ORDER_MEMBER]; -}; diff --git a/lib/blockly/demos/plane/generated/ar.js b/lib/blockly/demos/plane/generated/ar.js deleted file mode 100644 index ac760fb..0000000 --- a/lib/blockly/demos/plane/generated/ar.js +++ /dev/null @@ -1,50 +0,0 @@ -// This file was automatically generated from template.soy. -// Please don't edit this file by hand. - -/** - * @fileoverview Templates in namespace planepage. - */ - -if (typeof planepage == 'undefined') { var planepage = {}; } - - -planepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
    \u0627\u0644\u0635\u0641\u0648\u0641: %1\u0627\u0644\u0635\u0641\u0648\u0641 (%1)\u0635\u0641\u0648\u0641 \u0627\u0644\u0637\u0628\u0642\u0629 \u0627\u0644\u0623\u0648\u0644\u0649: %1\u0635\u0641\u0648\u0641 \u0627\u0644\u0637\u0628\u0642\u0629 \u0627\u0644\u0623\u0648\u0644\u0649 (%1)\u0635\u0641\u0648\u0641 \u0627\u0644\u0641\u0626\u0629 \u0627\u0644\u062B\u0627\u0646\u064A\u0629: %1\u0635\u0641\u0648\u0641 \u0627\u0644\u0641\u0626\u0629 \u0627\u0644\u062B\u0627\u0646\u064A\u0629: (%1)\u0627\u0644\u0645\u0642\u0627\u0639\u062F: %1\u061F\u0627\u0644\u0645\u0642\u0627\u0639\u062F =
    '; -}; -if (goog.DEBUG) { - planepage.messages.soyTemplateName = 'planepage.messages'; -} - - -planepage.start = function(opt_data, opt_ignored, opt_ijData) { - var output = planepage.messages(null, null, opt_ijData) + '

    Blockly‏ > Demos‏ > \u0622\u0644\u0629 \u062D\u0627\u0633\u0628\u0629 \u0644\u0645\u0642\u0639\u062F \u0627\u0644\u0637\u0627\u0626\u0631\u0629   '; - var iLimit47 = opt_ijData.maxLevel + 1; - for (var i47 = 1; i47 < iLimit47; i47++) { - output += ' ' + ((i47 == opt_ijData.level) ? '' + soy.$$escapeHtml(i47) + '' : (i47 < opt_ijData.level) ? '' : '' + soy.$$escapeHtml(i47) + ''); - } - output += '

    - - - - - - diff --git a/lib/blockly/demos/plane/plane.js b/lib/blockly/demos/plane/plane.js deleted file mode 100644 index 182de9e..0000000 --- a/lib/blockly/demos/plane/plane.js +++ /dev/null @@ -1,442 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview JavaScript for Blockly's Plane Seat Calculator demo. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -/** - * Create a namespace for the application. - */ -var Plane = {}; - -/** - * Lookup for names of supported languages. Keys should be in ISO 639 format. - */ -Plane.LANGUAGE_NAME = { - 'ar': 'العربية', - 'be-tarask': 'Taraškievica', - 'br': 'Brezhoneg', - 'ca': 'Català', - 'da': 'Dansk', - 'de': 'Deutsch', - 'el': 'Ελληνικά', - 'en': 'English', - 'es': 'Español', - 'fa': 'فارسی', - 'fr': 'Français', - 'he': 'עברית', - 'hrx': 'Hunsrik', - 'hu': 'Magyar', - 'ia': 'Interlingua', - 'is': 'Íslenska', - 'it': 'Italiano', - 'ja': '日本語', - 'ko': '한국어', - 'ms': 'Bahasa Melayu', - 'nb': 'Norsk Bokmål', - 'nl': 'Nederlands, Vlaams', - 'pl': 'Polski', - 'pms': 'Piemontèis', - 'pt-br': 'Português Brasileiro', - 'ro': 'Română', - 'ru': 'Русский', - 'sc': 'Sardu', - 'sv': 'Svenska', - 'th': 'ภาษาไทย', - 'tr': 'Türkçe', - 'uk': 'Українська', - 'vi': 'Tiếng Việt', - 'zh-hans': '简体中文', - 'zh-hant': '正體中文' -}; - -/** - * List of RTL languages. - */ -Plane.LANGUAGE_RTL = ['ar', 'fa', 'he']; - -/** - * Main Blockly workspace. - * @type {Blockly.WorkspaceSvg} - */ -Plane.workspace = null; - -/** - * Extracts a parameter from the URL. - * If the parameter is absent default_value is returned. - * @param {string} name The name of the parameter. - * @param {string} defaultValue Value to return if paramater not found. - * @return {string} The parameter value or the default value if not found. - */ -Plane.getStringParamFromUrl = function(name, defaultValue) { - var val = location.search.match(new RegExp('[?&]' + name + '=([^&]+)')); - return val ? decodeURIComponent(val[1].replace(/\+/g, '%20')) : defaultValue; -}; - -/** - * Extracts a numeric parameter from the URL. - * If the parameter is absent or less than min_value, min_value is - * returned. If it is greater than max_value, max_value is returned. - * @param {string} name The name of the parameter. - * @param {number} minValue The minimum legal value. - * @param {number} maxValue The maximum legal value. - * @return {number} A number in the range [min_value, max_value]. - */ -Plane.getNumberParamFromUrl = function(name, minValue, maxValue) { - var val = Number(Plane.getStringParamFromUrl(name, 'NaN')); - return isNaN(val) ? minValue : Math.min(Math.max(minValue, val), maxValue); -}; - -/** - * Get the language of this user from the URL. - * @return {string} User's language. - */ -Plane.getLang = function() { - var lang = Plane.getStringParamFromUrl('lang', ''); - if (Plane.LANGUAGE_NAME[lang] === undefined) { - // Default to English. - lang = 'en'; - } - return lang; -}; - -/** - * Is the current language (Plane.LANG) an RTL language? - * @return {boolean} True if RTL, false if LTR. - */ -Plane.isRtl = function() { - return Plane.LANGUAGE_RTL.indexOf(Plane.LANG) != -1; -}; - -/** - * Load blocks saved in session/local storage. - * @param {string} defaultXml Text representation of default blocks. - */ -Plane.loadBlocks = function(defaultXml) { - try { - var loadOnce = window.sessionStorage.loadOnceBlocks; - } catch(e) { - // Firefox sometimes throws a SecurityError when accessing sessionStorage. - // Restarting Firefox fixes this, so it looks like a bug. - var loadOnce = null; - } - if (loadOnce) { - // Language switching stores the blocks during the reload. - delete window.sessionStorage.loadOnceBlocks; - var xml = Blockly.Xml.textToDom(loadOnce); - Blockly.Xml.domToWorkspace(xml, Plane.workspace); - } else if (defaultXml) { - // Load the editor with default starting blocks. - var xml = Blockly.Xml.textToDom(defaultXml); - Blockly.Xml.domToWorkspace(xml, Plane.workspace); - } - Plane.workspace.clearUndo(); -}; - -/** - * Save the blocks and reload with a different language. - */ -Plane.changeLanguage = function() { - // Store the blocks for the duration of the reload. - // This should be skipped for the index page, which has no blocks and does - // not load Blockly. - // MSIE 11 does not support sessionStorage on file:// URLs. - if (typeof Blockly != 'undefined' && window.sessionStorage) { - var xml = Blockly.Xml.workspaceToDom(Plane.workspace); - var text = Blockly.Xml.domToText(xml); - window.sessionStorage.loadOnceBlocks = text; - } - - var languageMenu = document.getElementById('languageMenu'); - var newLang = encodeURIComponent( - languageMenu.options[languageMenu.selectedIndex].value); - var search = window.location.search; - if (search.length <= 1) { - search = '?lang=' + newLang; - } else if (search.match(/[?&]lang=[^&]*/)) { - search = search.replace(/([?&]lang=)[^&]*/, '$1' + newLang); - } else { - search = search.replace(/\?/, '?lang=' + newLang + '&'); - } - - window.location = window.location.protocol + '//' + - window.location.host + window.location.pathname + search; -}; - -/** - * Gets the message with the given key from the document. - * @param {string} key The key of the document element. - * @return {string} The textContent of the specified element, - * or an error message if the element was not found. - */ -Plane.getMsg = function(key) { - var element = document.getElementById(key); - if (element) { - var text = element.textContent; - // Convert newline sequences. - text = text.replace(/\\n/g, '\n'); - return text; - } else { - return '[Unknown message: ' + key + ']'; - } -}; - -/** - * User's language (e.g. "en"). - * @type {string} - */ -Plane.LANG = Plane.getLang(); - -Plane.MAX_LEVEL = 3; -Plane.LEVEL = Plane.getNumberParamFromUrl('level', 1, Plane.MAX_LEVEL); - -Plane.rows1st = 0; -Plane.rows2nd = 0; - -/** - * Redraw the rows when the slider has moved. - * @param {number} value New slider position. - */ -Plane.sliderChange = function(value) { - var newRows = Math.round(value * 410 / 20); - Plane.redraw(newRows); -}; - -/** - * Change the text of a label. - * @param {string} id ID of element to change. - * @param {string} text New text. - */ -Plane.setText = function(id, text) { - var el = document.getElementById(id); - while (el.firstChild) { - el.removeChild(el.firstChild); - } - el.appendChild(document.createTextNode(text)); -}; - -/** - * Display a checkmark or cross next to the answer. - * @param {?boolean} ok True for checkmark, false for cross, null for nothing. - */ -Plane.setCorrect = function(ok) { - var yes = document.getElementById('seatYes'); - var no = document.getElementById('seatNo'); - yes.style.display = 'none'; - no.style.display = 'none'; - if (ok === true) { - yes.style.display = 'block'; - } else if (ok === false) { - no.style.display = 'block'; - } -}; - -/** - * Initialize Blockly and the SVG plane. - */ -Plane.init = function() { - Plane.initLanguage(); - - // Fixes viewport for small screens. - var viewport = document.querySelector('meta[name="viewport"]'); - if (viewport && screen.availWidth < 725) { - viewport.setAttribute('content', - 'width=725, initial-scale=.35, user-scalable=no'); - } - - Plane.workspace = Blockly.inject('blockly', - {media: '../../media/', - rtl: Plane.isRtl(), - toolbox: document.getElementById('toolbox')}); - - var defaultXml = - '' + - ' ' + - ' ' + - ''; - Plane.loadBlocks(defaultXml); - - Plane.workspace.addChangeListener(Plane.recalculate); - Plane.workspace.addChangeListener(Blockly.Events.disableOrphans); - - // Initialize the slider. - var svg = document.getElementById('plane'); - Plane.rowSlider = new Slider(60, 330, 425, svg, Plane.sliderChange); - Plane.rowSlider.setValue(0.225); - - // Draw five 1st class rows. - Plane.redraw(5); -}; - -/** - * Initialize the page language. - */ -Plane.initLanguage = function() { - // Set the page title with the content of the H1 title. - document.title += ' ' + document.getElementById('title').textContent; - - // Set the HTML's language and direction. - // document.dir fails in Mozilla, use document.body.parentNode.dir instead. - // https://bugzilla.mozilla.org/show_bug.cgi?id=151407 - var rtl = Plane.isRtl(); - document.head.parentElement.setAttribute('dir', rtl ? 'rtl' : 'ltr'); - document.head.parentElement.setAttribute('lang', Plane.LANG); - - // Sort languages alphabetically. - var languages = []; - for (var lang in Plane.LANGUAGE_NAME) { - languages.push([Plane.LANGUAGE_NAME[lang], lang]); - } - var comp = function(a, b) { - // Sort based on first argument ('English', 'Русский', '简体字', etc). - if (a[0] > b[0]) return 1; - if (a[0] < b[0]) return -1; - return 0; - }; - languages.sort(comp); - // Populate the language selection menu. - var languageMenu = document.getElementById('languageMenu'); - languageMenu.options.length = 0; - for (var i = 0; i < languages.length; i++) { - var tuple = languages[i]; - var lang = tuple[tuple.length - 1]; - var option = new Option(tuple[0], lang); - if (lang == Plane.LANG) { - option.selected = true; - } - languageMenu.options.add(option); - } - languageMenu.addEventListener('change', Plane.changeLanguage, true); -}; - -/** - * Use the blocks to calculate the number of seats. - * Display the calculated number. - */ -Plane.recalculate = function() { - // Find the 'set' block and use it as the formula root. - var rootBlock = null; - var blocks = Plane.workspace.getTopBlocks(false); - for (var i = 0, block; block = blocks[i]; i++) { - if (block.type == 'plane_set_seats') { - rootBlock = block; - } - } - var seats = NaN; - Blockly.JavaScript.init(Plane.workspace); - var code = Blockly.JavaScript.blockToCode(rootBlock); - try { - seats = eval(code); - } catch (e) { - // Allow seats to remain NaN. - } - Plane.setText('seatText', - Plane.getMsg('Plane_seats').replace( - '%1', isNaN(seats) ? '?' : seats)); - Plane.setCorrect(isNaN(seats) ? null : (Plane.answer() == seats)); - - // Update blocks to show values. - function updateBlocks(blocks) { - for (var i = 0, block; block = blocks[i]; i++) { - block.customUpdate && block.customUpdate(); - } - } - updateBlocks(Plane.workspace.getAllBlocks(false)); - updateBlocks(Plane.workspace.flyout_.workspace_.getAllBlocks(false)); -}; - -/** - * Calculate the correct answer. - * @return {number} Number of seats. - */ -Plane.answer = function() { - if (Plane.LEVEL == 1) { - return Plane.rows1st * 4; - } else if (Plane.LEVEL == 2) { - return 2 + (Plane.rows1st * 4); - } else if (Plane.LEVEL == 3) { - return 2 + (Plane.rows1st * 4) + (Plane.rows2nd * 5); - } - throw 'Unknown level.'; -}; - -/** - * Redraw the SVG to show a new number of rows. - * @param {number} newRows - */ -Plane.redraw = function(newRows) { - var rows1st = Plane.rows1st; - var rows2nd = Plane.rows2nd; - var svg = document.getElementById('plane'); - if (newRows != rows1st) { - while (newRows < rows1st) { - var row = document.getElementById('row1st' + rows1st); - row.parentNode.removeChild(row); - rows1st--; - } - while (newRows > rows1st) { - rows1st++; - var row = document.createElementNS('http://www.w3.org/2000/svg', 'use'); - row.id = 'row1st' + rows1st; - // Row of 4 seats. - row.setAttribute('x', (rows1st - 1) * 20); - row.setAttributeNS('http://www.w3.org/1999/xlink', - 'xlink:href', '#row1st'); - svg.appendChild(row); - } - - if (Plane.LEVEL == 3) { - newRows = Math.floor((21 - newRows) * 1.11); - while (newRows < rows2nd) { - var row = document.getElementById('row2nd' + rows2nd); - row.parentNode.removeChild(row); - rows2nd--; - } - while (newRows > rows2nd) { - rows2nd++; - var row = document.createElementNS('http://www.w3.org/2000/svg', 'use'); - row.id = 'row2nd' + rows2nd; - row.setAttribute('x', 400 - (rows2nd - 1) * 18); - row.setAttributeNS('http://www.w3.org/1999/xlink', - 'xlink:href', '#row2nd'); - svg.appendChild(row); - } - } - - if (Plane.LEVEL < 3) { - Plane.setText('row1stText', - Plane.getMsg('Plane_rows').replace('%1', rows1st)); - } else { - Plane.setText('row1stText', - Plane.getMsg('Plane_rows1').replace('%1', rows1st)); - Plane.setText('row2ndText', - Plane.getMsg('Plane_rows2').replace('%1', rows2nd)); - } - - Plane.rows1st = rows1st; - Plane.rows2nd = rows2nd; - Plane.recalculate(); - } -}; - -window.addEventListener('load', Plane.init); - -// Load the user's language pack. -document.write('\n'); diff --git a/lib/blockly/demos/plane/slider.js b/lib/blockly/demos/plane/slider.js deleted file mode 100644 index a219653..0000000 --- a/lib/blockly/demos/plane/slider.js +++ /dev/null @@ -1,285 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview A slider control in SVG. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - - -/** - * Object representing a horizontal slider widget. - * @param {number} x The horizontal offset of the slider. - * @param {number} y The vertical offset of the slider. - * @param {number} width The total width of the slider. - * @param {!Element} svgParent The SVG element to append the slider to. - * @param {Function=} opt_changeFunc Optional callback function that will be - * called when the slider is moved. The current value is passed. - * @constructor - */ -var Slider = function(x, y, width, svgParent, opt_changeFunc) { - this.KNOB_Y_ = y - 12; - this.KNOB_MIN_X_ = x + 8; - this.KNOB_MAX_X_ = x + width - 8; - this.TARGET_OVERHANG_ = 20; - this.value_ = 0.5; - this.changeFunc_ = opt_changeFunc; - this.animationTasks_ = []; - - // Draw the slider. - /* - - - - - */ - var track = document.createElementNS(Slider.SVG_NS_, 'line'); - track.setAttribute('class', 'sliderTrack'); - track.setAttribute('x1', x); - track.setAttribute('y1', y); - track.setAttribute('x2', x + width); - track.setAttribute('y2', y); - svgParent.appendChild(track); - this.track_ = track; - var rect = document.createElementNS(Slider.SVG_NS_, 'rect'); - rect.setAttribute('style', 'opacity: 0'); - rect.setAttribute('x', x - this.TARGET_OVERHANG_); - rect.setAttribute('y', y - this.TARGET_OVERHANG_); - rect.setAttribute('width', width + 2 * this.TARGET_OVERHANG_); - rect.setAttribute('height', 2 * this.TARGET_OVERHANG_); - rect.setAttribute('rx', this.TARGET_OVERHANG_); - rect.setAttribute('ry', this.TARGET_OVERHANG_); - svgParent.appendChild(rect); - this.trackTarget_ = rect; - var knob = document.createElementNS(Slider.SVG_NS_, 'path'); - knob.setAttribute('class', 'sliderKnob'); - knob.setAttribute('d', 'm 0,0 l -8,8 v 12 h 16 v -12 z'); - svgParent.appendChild(knob); - this.knob_ = knob; - var circle = document.createElementNS(Slider.SVG_NS_, 'circle'); - circle.setAttribute('style', 'opacity: 0'); - circle.setAttribute('r', this.TARGET_OVERHANG_); - circle.setAttribute('cy', y); - svgParent.appendChild(circle); - this.knobTarget_ = circle; - this.setValue(0.5); - - // Find the root SVG object. - while (svgParent && svgParent.nodeName.toLowerCase() != 'svg') { - svgParent = svgParent.parentNode; - } - this.SVG_ = svgParent; - - // Bind the events to this slider. - Slider.bindEvent_(this.knobTarget_, 'mousedown', this, this.knobMouseDown_); - Slider.bindEvent_(this.knobTarget_, 'touchstart', this, this.knobMouseDown_); - Slider.bindEvent_(this.trackTarget_, 'mousedown', this, this.rectMouseDown_); - Slider.bindEvent_(this.SVG_, 'mouseup', null, Slider.knobMouseUp_); - Slider.bindEvent_(this.SVG_, 'touchend', null, Slider.knobMouseUp_); - Slider.bindEvent_(this.SVG_, 'mousemove', null, Slider.knobMouseMove_); - Slider.bindEvent_(this.SVG_, 'touchmove', null, Slider.knobMouseMove_); - Slider.bindEvent_(document, 'mouseover', null, Slider.mouseOver_); -}; - - -Slider.SVG_NS_ = 'http://www.w3.org/2000/svg'; - -Slider.activeSlider_ = null; -Slider.startMouseX_ = 0; -Slider.startKnobX_ = 0; - -/** - * Start a drag when clicking down on the knob. - * @param {!Event} e Mouse-down event. - * @private - */ -Slider.prototype.knobMouseDown_ = function(e) { - if (e.type == 'touchstart') { - if (e.changedTouches.length != 1) { - return; - } - Slider.touchToMouse_(e) - } - Slider.activeSlider_ = this; - Slider.startMouseX_ = this.mouseToSvg_(e).x; - Slider.startKnobX_ = 0; - var transform = this.knob_.getAttribute('transform'); - if (transform) { - var r = transform.match(/translate\(\s*([-\d.]+)/); - if (r) { - Slider.startKnobX_ = Number(r[1]); - } - } - // Stop browser from attempting to drag the knob or - // from scrolling/zooming the page. - e.preventDefault(); -}; - -/** - * Stop a drag when clicking up anywhere. - * @param {Event} e Mouse-up event. - * @private - */ -Slider.knobMouseUp_ = function(e) { - Slider.activeSlider_ = null; -}; - -/** - * Stop a drag when the mouse enters a node not part of the SVG. - * @param {Event} e Mouse-up event. - * @private - */ -Slider.mouseOver_ = function(e) { - if (!Slider.activeSlider_) { - return; - } - var node = e.target; - // Find the root SVG object. - do { - if (node == Slider.activeSlider_.SVG_) { - return; - } - } while (node = node.parentNode); - Slider.knobMouseUp_(e); -}; - -/** - * Drag the knob to follow the mouse. - * @param {!Event} e Mouse-move event. - * @private - */ -Slider.knobMouseMove_ = function(e) { - var thisSlider = Slider.activeSlider_; - if (!thisSlider) { - return; - } - if (e.type == 'touchmove') { - if (e.changedTouches.length != 1) { - return; - } - Slider.touchToMouse_(e) - } - var x = thisSlider.mouseToSvg_(e).x - Slider.startMouseX_ + - Slider.startKnobX_; - thisSlider.setValue((x - thisSlider.KNOB_MIN_X_) / - (thisSlider.KNOB_MAX_X_ - thisSlider.KNOB_MIN_X_)); -}; - -/** - * Jump to a new value when the track is clicked. - * @param {!Event} e Mouse-down event. - * @private - */ -Slider.prototype.rectMouseDown_ = function(e) { - if (e.type == 'touchstart') { - if (e.changedTouches.length != 1) { - return; - } - Slider.touchToMouse_(e) - } - var x = this.mouseToSvg_(e).x; - this.animateValue((x - this.KNOB_MIN_X_) / - (this.KNOB_MAX_X_ - this.KNOB_MIN_X_)); -}; - -/** - * Returns the slider's value (0.0 - 1.0). - * @return {number} Current value. - */ -Slider.prototype.getValue = function() { - return this.value_; -}; - -/** - * Animates the slider's value (0.0 - 1.0). - * @param {number} value New value. - */ -Slider.prototype.animateValue = function(value) { - // Clear any ongoing animations. - while (this.animationTasks_.length) { - clearTimeout(this.animationTasks_.pop()); - } - var duration = 200; // Milliseconds to animate for. - var steps = 10; // Number of steps to animate. - var oldValue = this.getValue(); - var thisSlider = this; - var stepFunc = function(i) { - return function() { - var newVal = i * (value - oldValue) / (steps - 1) + oldValue; - thisSlider.setValue(newVal); - }; - } - for (var i = 0; i < steps; i++) { - this.animationTasks_.push(setTimeout(stepFunc(i), i * duration / steps)); - } -}; - -/** - * Sets the slider's value (0.0 - 1.0). - * @param {number} value New value. - */ -Slider.prototype.setValue = function(value) { - this.value_ = Math.min(Math.max(value, 0), 1); - var x = this.KNOB_MIN_X_ + - (this.KNOB_MAX_X_ - this.KNOB_MIN_X_) * this.value_; - this.knob_.setAttribute('transform', - 'translate(' + x + ',' + this.KNOB_Y_ + ')'); - this.knobTarget_.setAttribute('cx', x); - this.changeFunc_ && this.changeFunc_(this.value_); -}; - -/** - * Convert the mouse coordinates into SVG coordinates. - * @param {!Object} e Object with x and y mouse coordinates. - * @return {!Object} Object with x and y properties in SVG coordinates. - * @private - */ -Slider.prototype.mouseToSvg_ = function(e) { - var svgPoint = this.SVG_.createSVGPoint(); - svgPoint.x = e.clientX; - svgPoint.y = e.clientY; - var matrix = this.SVG_.getScreenCTM().inverse(); - return svgPoint.matrixTransform(matrix); -}; - -/** - * Bind an event to a function call. - * @param {!Node} node Node upon which to listen. - * @param {string} name Event name to listen to (e.g. 'mousedown'). - * @param {Object} thisObject The value of 'this' in the function. - * @param {!Function} func Function to call when event is triggered. - * @private - */ -Slider.bindEvent_ = function(node, name, thisObject, func) { - var wrapFunc = function(e) { - func.apply(thisObject, arguments); - }; - node.addEventListener(name, wrapFunc, false); -}; - -/** - * Map the touch event's properties to be compatible with a mouse event. - * @param {TouchEvent} e Event to modify. - */ -Slider.touchToMouse_ = function(e) { - var touchPoint = e.changedTouches[0]; - e.clientX = touchPoint.clientX; - e.clientY = touchPoint.clientY; -}; diff --git a/lib/blockly/demos/plane/soy/COPYING b/lib/blockly/demos/plane/soy/COPYING deleted file mode 100644 index d645695..0000000 --- a/lib/blockly/demos/plane/soy/COPYING +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/lib/blockly/demos/plane/soy/README b/lib/blockly/demos/plane/soy/README deleted file mode 100644 index 51aa75c..0000000 --- a/lib/blockly/demos/plane/soy/README +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2009 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - - -Contents: - -+ SoyToJsSrcCompiler.jar - Executable jar that compiles template files into JavaScript files. - -+ SoyMsgExtractor.jar - Executable jar that extracts messages from template files into XLF files. - -+ soyutils.js - Helper utilities required by all JavaScript code that SoyToJsSrcCompiler - generates. Equivalent functionality to soyutils_usegoog.js, but this - version does not need Closure Library. - - -Instructions: - -+ A simple Hello World for JavaScript: - http://code.google.com/closure/templates/docs/helloworld_js.html - -+ Complete documentation: - http://code.google.com/closure/templates/ - -+ Closure Templates project on Google Code: - http://code.google.com/p/closure-templates/ - - -Notes: - -+ Closure Templates requires Java 6 or higher: - http://www.java.com/ diff --git a/lib/blockly/demos/plane/soy/SoyMsgExtractor.jar b/lib/blockly/demos/plane/soy/SoyMsgExtractor.jar deleted file mode 100644 index d5c112f..0000000 Binary files a/lib/blockly/demos/plane/soy/SoyMsgExtractor.jar and /dev/null differ diff --git a/lib/blockly/demos/plane/soy/SoyToJsSrcCompiler.jar b/lib/blockly/demos/plane/soy/SoyToJsSrcCompiler.jar deleted file mode 100644 index bb3b7a9..0000000 Binary files a/lib/blockly/demos/plane/soy/SoyToJsSrcCompiler.jar and /dev/null differ diff --git a/lib/blockly/demos/plane/soy/soyutils.js b/lib/blockly/demos/plane/soy/soyutils.js deleted file mode 100644 index 861c81f..0000000 --- a/lib/blockly/demos/plane/soy/soyutils.js +++ /dev/null @@ -1,3299 +0,0 @@ -/** - * @license - * Copyright 2008 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview - * Utility functions and classes for Soy. - * - *

    - * The top portion of this file contains utilities for Soy users:

      - *
    • soy.StringBuilder: Compatible with the 'stringbuilder' code style. - *
    • soy.renderElement: Render template and set as innerHTML of an element. - *
    • soy.renderAsFragment: Render template and return as HTML fragment. - *
    - * - *

    - * The bottom portion of this file contains utilities that should only be called - * by Soy-generated JS code. Please do not use these functions directly from - * your hand-writen code. Their names all start with '$$'. - * - * @author Garrett Boyer - * @author Mike Samuel - * @author Kai Huang - * @author Aharon Lanin - */ - - -// COPIED FROM nogoog_shim.js - -// Create closure namespaces. -var goog = goog || {}; - - -goog.DEBUG = false; - - -goog.inherits = function(childCtor, parentCtor) { - /** @constructor */ - function tempCtor() {}; - tempCtor.prototype = parentCtor.prototype; - childCtor.superClass_ = parentCtor.prototype; - childCtor.prototype = new tempCtor(); - childCtor.prototype.constructor = childCtor; - - /** - * Calls superclass constructor/method. - * @param {!Object} me Should always be "this". - * @param {string} methodName - * @param {...*} var_args - * @return {?} The return value of the superclass method/constructor. - */ - childCtor.base = function(me, methodName, var_args) { - var args = Array.prototype.slice.call(arguments, 2); - return parentCtor.prototype[methodName].apply(me, args); - }; -}; - - -// Just enough browser detection for this file. -if (!goog.userAgent) { - goog.userAgent = (function() { - var userAgent = ""; - if ("undefined" !== typeof navigator && navigator - && "string" == typeof navigator.userAgent) { - userAgent = navigator.userAgent; - } - var isOpera = userAgent.indexOf('Opera') == 0; - return { - jscript: { - /** - * @type {boolean} - */ - HAS_JSCRIPT: 'ScriptEngine' in this - }, - /** - * @type {boolean} - */ - OPERA: isOpera, - /** - * @type {boolean} - */ - IE: !isOpera && userAgent.indexOf('MSIE') != -1, - /** - * @type {boolean} - */ - WEBKIT: !isOpera && userAgent.indexOf('WebKit') != -1 - }; - })(); -} - -if (!goog.asserts) { - goog.asserts = { - /** - * @param {*} condition Condition to check. - */ - assert: function (condition) { - if (!condition) { - throw Error('Assertion error'); - } - }, - /** - * @param {...*} var_args - */ - fail: function (var_args) {} - }; -} - - -// Stub out the document wrapper used by renderAs*. -if (!goog.dom) { - goog.dom = {}; - /** - * @param {Document=} d - * @constructor - */ - goog.dom.DomHelper = function(d) { - this.document_ = d || document; - }; - /** - * @return {!Document} - */ - goog.dom.DomHelper.prototype.getDocument = function() { - return this.document_; - }; - /** - * Creates a new element. - * @param {string} name Tag name. - * @return {!Element} - */ - goog.dom.DomHelper.prototype.createElement = function(name) { - return this.document_.createElement(name); - }; - /** - * Creates a new document fragment. - * @return {!DocumentFragment} - */ - goog.dom.DomHelper.prototype.createDocumentFragment = function() { - return this.document_.createDocumentFragment(); - }; -} - - -if (!goog.format) { - goog.format = { - insertWordBreaks: function(str, maxCharsBetweenWordBreaks) { - str = String(str); - - var resultArr = []; - var resultArrLen = 0; - - // These variables keep track of important state inside str. - var isInTag = false; // whether we're inside an HTML tag - var isMaybeInEntity = false; // whether we might be inside an HTML entity - var numCharsWithoutBreak = 0; // number of chars since last word break - var flushIndex = 0; // index of first char not yet flushed to resultArr - - for (var i = 0, n = str.length; i < n; ++i) { - var charCode = str.charCodeAt(i); - - // If hit maxCharsBetweenWordBreaks, and not space next, then add . - if (numCharsWithoutBreak >= maxCharsBetweenWordBreaks && - // space - charCode != 32) { - resultArr[resultArrLen++] = str.substring(flushIndex, i); - flushIndex = i; - resultArr[resultArrLen++] = goog.format.WORD_BREAK; - numCharsWithoutBreak = 0; - } - - if (isInTag) { - // If inside an HTML tag and we see '>', it's the end of the tag. - if (charCode == 62) { - isInTag = false; - } - - } else if (isMaybeInEntity) { - switch (charCode) { - // Inside an entity, a ';' is the end of the entity. - // The entity that just ended counts as one char, so increment - // numCharsWithoutBreak. - case 59: // ';' - isMaybeInEntity = false; - ++numCharsWithoutBreak; - break; - // If maybe inside an entity and we see '<', we weren't actually in - // an entity. But now we're inside and HTML tag. - case 60: // '<' - isMaybeInEntity = false; - isInTag = true; - break; - // If maybe inside an entity and we see ' ', we weren't actually in - // an entity. Just correct the state and reset the - // numCharsWithoutBreak since we just saw a space. - case 32: // ' ' - isMaybeInEntity = false; - numCharsWithoutBreak = 0; - break; - } - - } else { // !isInTag && !isInEntity - switch (charCode) { - // When not within a tag or an entity and we see '<', we're now - // inside an HTML tag. - case 60: // '<' - isInTag = true; - break; - // When not within a tag or an entity and we see '&', we might be - // inside an entity. - case 38: // '&' - isMaybeInEntity = true; - break; - // When we see a space, reset the numCharsWithoutBreak count. - case 32: // ' ' - numCharsWithoutBreak = 0; - break; - // When we see a non-space, increment the numCharsWithoutBreak. - default: - ++numCharsWithoutBreak; - break; - } - } - } - - // Flush the remaining chars at the end of the string. - resultArr[resultArrLen++] = str.substring(flushIndex); - - return resultArr.join(''); - }, - /** - * String inserted as a word break by insertWordBreaks(). Safari requires - * , Opera needs the ­ entity, though this will give a - * visible hyphen at breaks. IE8+ use a zero width space. Other browsers - * just use . - * @type {string} - * @private - */ - WORD_BREAK: - goog.userAgent.WEBKIT ? '' : - goog.userAgent.OPERA ? '­' : - goog.userAgent.IE ? '​' : - '' - }; -} - - -if (!goog.i18n) { - goog.i18n = { - bidi: {} - }; -} - - -/** - * Constant that defines whether or not the current locale is an RTL locale. - * - * @type {boolean} - */ -goog.i18n.bidi.IS_RTL = false; - - -/** - * Directionality enum. - * @enum {number} - */ -goog.i18n.bidi.Dir = { - /** - * Left-to-right. - */ - LTR: 1, - - /** - * Right-to-left. - */ - RTL: -1, - - /** - * Neither left-to-right nor right-to-left. - */ - NEUTRAL: 0, - - /** - * A historical misnomer for NEUTRAL. - * @deprecated For "neutral", use NEUTRAL; for "unknown", use null. - */ - UNKNOWN: 0 -}; - - -/** - * Convert a directionality given in various formats to a goog.i18n.bidi.Dir - * constant. Useful for interaction with different standards of directionality - * representation. - * - * @param {goog.i18n.bidi.Dir|number|boolean|null} givenDir Directionality given - * in one of the following formats: - * 1. A goog.i18n.bidi.Dir constant. - * 2. A number (positive = LTR, negative = RTL, 0 = neutral). - * 3. A boolean (true = RTL, false = LTR). - * 4. A null for unknown directionality. - * @param {boolean=} opt_noNeutral Whether a givenDir of zero or - * goog.i18n.bidi.Dir.NEUTRAL should be treated as null, i.e. unknown, in - * order to preserve legacy behavior. - * @return {?goog.i18n.bidi.Dir} A goog.i18n.bidi.Dir constant matching the - * given directionality. If given null, returns null (i.e. unknown). - */ -goog.i18n.bidi.toDir = function(givenDir, opt_noNeutral) { - if (typeof givenDir == 'number') { - // This includes the non-null goog.i18n.bidi.Dir case. - return givenDir > 0 ? goog.i18n.bidi.Dir.LTR : - givenDir < 0 ? goog.i18n.bidi.Dir.RTL : - opt_noNeutral ? null : goog.i18n.bidi.Dir.NEUTRAL; - } else if (givenDir == null) { - return null; - } else { - // Must be typeof givenDir == 'boolean'. - return givenDir ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR; - } -}; - - -/** - * Estimates the directionality of a string based on relative word counts. - * If the number of RTL words is above a certain percentage of the total number - * of strongly directional words, returns RTL. - * Otherwise, if any words are strongly or weakly LTR, returns LTR. - * Otherwise, returns NEUTRAL. - * Numbers are counted as weakly LTR. - * @param {string} str The string to be checked. - * @param {boolean=} opt_isHtml Whether str is HTML / HTML-escaped. - * Default: false. - * @return {goog.i18n.bidi.Dir} Estimated overall directionality of {@code str}. - */ -goog.i18n.bidi.estimateDirection = function(str, opt_isHtml) { - var rtlCount = 0; - var totalCount = 0; - var hasWeaklyLtr = false; - var tokens = soyshim.$$bidiStripHtmlIfNecessary_(str, opt_isHtml). - split(soyshim.$$bidiWordSeparatorRe_); - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - if (soyshim.$$bidiRtlDirCheckRe_.test(token)) { - rtlCount++; - totalCount++; - } else if (soyshim.$$bidiIsRequiredLtrRe_.test(token)) { - hasWeaklyLtr = true; - } else if (soyshim.$$bidiLtrCharRe_.test(token)) { - totalCount++; - } else if (soyshim.$$bidiHasNumeralsRe_.test(token)) { - hasWeaklyLtr = true; - } - } - - return totalCount == 0 ? - (hasWeaklyLtr ? goog.i18n.bidi.Dir.LTR : goog.i18n.bidi.Dir.NEUTRAL) : - (rtlCount / totalCount > soyshim.$$bidiRtlDetectionThreshold_ ? - goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR); -}; - - -/** - * Utility class for formatting text for display in a potentially - * opposite-directionality context without garbling. Provides the following - * functionality: - * - * @param {goog.i18n.bidi.Dir|number|boolean|null} dir The context - * directionality, in one of the following formats: - * 1. A goog.i18n.bidi.Dir constant. NEUTRAL is treated the same as null, - * i.e. unknown, for backward compatibility with legacy calls. - * 2. A number (positive = LTR, negative = RTL, 0 = unknown). - * 3. A boolean (true = RTL, false = LTR). - * 4. A null for unknown directionality. - * @constructor - */ -goog.i18n.BidiFormatter = function(dir) { - /** - * The overall directionality of the context in which the formatter is being - * used. - * @type {?goog.i18n.bidi.Dir} - * @private - */ - this.dir_ = goog.i18n.bidi.toDir(dir, true /* opt_noNeutral */); -}; - -/** - * @return {?goog.i18n.bidi.Dir} The context directionality. - */ -goog.i18n.BidiFormatter.prototype.getContextDir = function() { - return this.dir_; -}; - -/** - * Returns 'dir="ltr"' or 'dir="rtl"', depending on the given directionality, if - * it is not the same as the context directionality. Otherwise, returns the - * empty string. - * - * @param {goog.i18n.bidi.Dir} dir A directionality. - * @return {string} 'dir="rtl"' for RTL text in non-RTL context; 'dir="ltr"' for - * LTR text in non-LTR context; else, the empty string. - */ -goog.i18n.BidiFormatter.prototype.knownDirAttr = function(dir) { - return !dir || dir == this.dir_ ? '' : dir < 0 ? 'dir="rtl"' : 'dir="ltr"'; -}; - -/** - * Returns the trailing horizontal edge, i.e. "right" or "left", depending on - * the global bidi directionality. - * @return {string} "left" for RTL context and "right" otherwise. - */ -goog.i18n.BidiFormatter.prototype.endEdge = function () { - return this.dir_ < 0 ? 'left' : 'right'; -}; - -/** - * Returns the Unicode BiDi mark matching the context directionality (LRM for - * LTR context directionality, RLM for RTL context directionality), or the - * empty string for unknown context directionality. - * - * @return {string} LRM for LTR context directionality and RLM for RTL context - * directionality. - */ -goog.i18n.BidiFormatter.prototype.mark = function () { - return ( - (this.dir_ > 0) ? '\u200E' /*LRM*/ : - (this.dir_ < 0) ? '\u200F' /*RLM*/ : - ''); -}; - -/** - * Returns a Unicode bidi mark matching the context directionality (LRM or RLM) - * if the directionality or the exit directionality of {@code text} are opposite - * to the context directionality. Otherwise returns the empty string. - * If opt_isHtml, makes sure to ignore the LTR nature of the mark-up and escapes - * in text, making the logic suitable for HTML and HTML-escaped text. - * @param {?goog.i18n.bidi.Dir} textDir {@code text}'s overall directionality, - * or null if unknown and needs to be estimated. - * @param {string} text The text whose directionality is to be estimated. - * @param {boolean=} opt_isHtml Whether text is HTML/HTML-escaped. - * Default: false. - * @return {string} A Unicode bidi mark matching the context directionality, or - * the empty string when either the context directionality is unknown or - * neither the text's overall nor its exit directionality is opposite to it. - */ -goog.i18n.BidiFormatter.prototype.markAfterKnownDir = function ( - textDir, text, opt_isHtml) { - if (textDir == null) { - textDir = goog.i18n.bidi.estimateDirection(text, opt_isHtml); - } - return ( - this.dir_ > 0 && (textDir < 0 || - soyshim.$$bidiIsRtlExitText_(text, opt_isHtml)) ? '\u200E' : // LRM - this.dir_ < 0 && (textDir > 0 || - soyshim.$$bidiIsLtrExitText_(text, opt_isHtml)) ? '\u200F' : // RLM - ''); -}; - -/** - * Formats an HTML string for use in HTML output of the context directionality, - * so an opposite-directionality string is neither garbled nor garbles what - * follows it. - * - * @param {?goog.i18n.bidi.Dir} textDir {@code str}'s overall directionality, or - * null if unknown and needs to be estimated. - * @param {string} str The input text (HTML or HTML-escaped). - * @param {boolean=} placeholder This argument exists for consistency with the - * Closure Library. Specifying it has no effect. - * @return {string} The input text after applying the above processing. - */ -goog.i18n.BidiFormatter.prototype.spanWrapWithKnownDir = function( - textDir, str, placeholder) { - if (textDir == null) { - textDir = goog.i18n.bidi.estimateDirection(str, true); - } - var reset = this.markAfterKnownDir(textDir, str, true); - if (textDir > 0 && this.dir_ <= 0) { - str = '' + str + ''; - } else if (textDir < 0 && this.dir_ >= 0) { - str = '' + str + ''; - } - return str + reset; -}; - -/** - * Returns the leading horizontal edge, i.e. "left" or "right", depending on - * the global bidi directionality. - * @return {string} "right" for RTL context and "left" otherwise. - */ -goog.i18n.BidiFormatter.prototype.startEdge = function () { - return this.dir_ < 0 ? 'right' : 'left'; -}; - -/** - * Formats an HTML-escaped string for use in HTML output of the context - * directionality, so an opposite-directionality string is neither garbled nor - * garbles what follows it. - * As opposed to {@link #spanWrapWithKnownDir}, this makes use of unicode bidi - * formatting characters. In HTML, it should only be used inside attribute - * values and elements that do not allow markup, e.g. an 'option' tag. - * - * @param {?goog.i18n.bidi.Dir} textDir {@code str}'s overall directionality, or - * null if unknown and needs to be estimated. - * @param {string} str The input text (HTML-escaped). - * @param {boolean=} opt_isHtml Whether {@code str} is HTML / HTML-escaped. - * Default: false. - * @return {string} The input text after applying the above processing. - */ -goog.i18n.BidiFormatter.prototype.unicodeWrapWithKnownDir = function( - textDir, str, opt_isHtml) { - if (textDir == null) { - textDir = goog.i18n.bidi.estimateDirection(str, opt_isHtml); - } - var reset = this.markAfterKnownDir(textDir, str, opt_isHtml); - if (textDir > 0 && this.dir_ <= 0) { - str = '\u202A' + str + '\u202C'; - } else if (textDir < 0 && this.dir_ >= 0) { - str = '\u202B' + str + '\u202C'; - } - return str + reset; -}; - - -if (!goog.string) { - goog.string = { - /** - * Converts \r\n, \r, and \n to
    s - * @param {*} str The string in which to convert newlines. - * @param {boolean=} opt_xml Whether to use XML compatible tags. - * @return {string} A copy of {@code str} with converted newlines. - */ - newLineToBr: function(str, opt_xml) { - - str = String(str); - - // This quick test helps in the case when there are no chars to replace, - // in the worst case this makes barely a difference to the time taken. - if (!goog.string.NEWLINE_TO_BR_RE_.test(str)) { - return str; - } - - return str.replace(/(\r\n|\r|\n)/g, opt_xml ? '
    ' : '
    '); - }, - urlEncode: encodeURIComponent, - /** - * Regular expression used within newlineToBr(). - * @type {RegExp} - * @private - */ - NEWLINE_TO_BR_RE_: /[\r\n]/ - }; -} - -/** - * Utility class to facilitate much faster string concatenation in IE, - * using Array.join() rather than the '+' operator. For other browsers - * we simply use the '+' operator. - * - * @param {Object|number|string|boolean=} opt_a1 Optional first initial item - * to append. - * @param {...Object|number|string|boolean} var_args Other initial items to - * append, e.g., new goog.string.StringBuffer('foo', 'bar'). - * @constructor - */ -goog.string.StringBuffer = function(opt_a1, var_args) { - /** - * Internal buffer for the string to be concatenated. - * @type {string|Array} - * @private - */ - this.buffer_ = goog.userAgent.jscript.HAS_JSCRIPT ? [] : ''; - - if (opt_a1 != null) { - this.append.apply(this, arguments); - } -}; - - -/** - * Length of internal buffer (faster than calling buffer_.length). - * Only used for IE. - * @type {number} - * @private - */ -goog.string.StringBuffer.prototype.bufferLength_ = 0; - -/** - * Appends one or more items to the string. - * - * Calling this with null, undefined, or empty arguments is an error. - * - * @param {Object|number|string|boolean} a1 Required first string. - * @param {Object|number|string|boolean=} opt_a2 Optional second string. - * @param {...Object|number|string|boolean} var_args Other items to append, - * e.g., sb.append('foo', 'bar', 'baz'). - * @return {goog.string.StringBuffer} This same StringBuilder object. - */ -goog.string.StringBuffer.prototype.append = function(a1, opt_a2, var_args) { - - if (goog.userAgent.jscript.HAS_JSCRIPT) { - if (opt_a2 == null) { // no second argument (note: undefined == null) - // Array assignment is 2x faster than Array push. Also, use a1 - // directly to avoid arguments instantiation, another 2x improvement. - this.buffer_[this.bufferLength_++] = a1; - } else { - var arr = /**@type {Array.}*/(this.buffer_); - arr.push.apply(arr, arguments); - this.bufferLength_ = this.buffer_.length; - } - - } else { - - // Use a1 directly to avoid arguments instantiation for single-arg case. - this.buffer_ += a1; - if (opt_a2 != null) { // no second argument (note: undefined == null) - for (var i = 1; i < arguments.length; i++) { - this.buffer_ += arguments[i]; - } - } - } - - return this; -}; - - -/** - * Clears the string. - */ -goog.string.StringBuffer.prototype.clear = function() { - - if (goog.userAgent.jscript.HAS_JSCRIPT) { - this.buffer_.length = 0; // reuse array to avoid creating new object - this.bufferLength_ = 0; - - } else { - this.buffer_ = ''; - } -}; - - -/** - * Returns the concatenated string. - * - * @return {string} The concatenated string. - */ -goog.string.StringBuffer.prototype.toString = function() { - - if (goog.userAgent.jscript.HAS_JSCRIPT) { - var str = this.buffer_.join(''); - // Given a string with the entire contents, simplify the StringBuilder by - // setting its contents to only be this string, rather than many fragments. - this.clear(); - if (str) { - this.append(str); - } - return str; - - } else { - return /** @type {string} */ (this.buffer_); - } -}; - - -if (!goog.soy) goog.soy = { - /** - * Helper function to render a Soy template and then set the - * output string as the innerHTML of an element. It is recommended - * to use this helper function instead of directly setting - * innerHTML in your hand-written code, so that it will be easier - * to audit the code for cross-site scripting vulnerabilities. - * - * @param {Function} template The Soy template defining element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {Object=} opt_injectedData The injected data for the template. - * @param {(goog.dom.DomHelper|Document)=} opt_dom The context in which DOM - * nodes will be created. - */ - renderAsElement: function( - template, opt_templateData, opt_injectedData, opt_dom) { - return /** @type {!Element} */ (soyshim.$$renderWithWrapper_( - template, opt_templateData, opt_dom, true /* asElement */, - opt_injectedData)); - }, - /** - * Helper function to render a Soy template into a single node or - * a document fragment. If the rendered HTML string represents a - * single node, then that node is returned (note that this is - * *not* a fragment, despite them name of the method). Otherwise a - * document fragment is returned containing the rendered nodes. - * - * @param {Function} template The Soy template defining element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {Object=} opt_injectedData The injected data for the template. - * @param {(goog.dom.DomHelper|Document)=} opt_dom The context in which DOM - * nodes will be created. - * @return {!Node} The resulting node or document fragment. - */ - renderAsFragment: function( - template, opt_templateData, opt_injectedData, opt_dom) { - return soyshim.$$renderWithWrapper_( - template, opt_templateData, opt_dom, false /* asElement */, - opt_injectedData); - }, - /** - * Helper function to render a Soy template and then set the output string as - * the innerHTML of an element. It is recommended to use this helper function - * instead of directly setting innerHTML in your hand-written code, so that it - * will be easier to audit the code for cross-site scripting vulnerabilities. - * - * NOTE: New code should consider using goog.soy.renderElement instead. - * - * @param {Element} element The element whose content we are rendering. - * @param {Function} template The Soy template defining the element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {Object=} opt_injectedData The injected data for the template. - */ - renderElement: function( - element, template, opt_templateData, opt_injectedData) { - element.innerHTML = template(opt_templateData, null, opt_injectedData); - }, - data: {} -}; - - -/** - * A type of textual content. - * - * This is an enum of type Object so that these values are unforgeable. - * - * @enum {!Object} - */ -goog.soy.data.SanitizedContentKind = { - - /** - * A snippet of HTML that does not start or end inside a tag, comment, entity, - * or DOCTYPE; and that does not contain any executable code - * (JS, {@code }s, etc.) from a different trust domain. - */ - HTML: goog.DEBUG ? {sanitizedContentKindHtml: true} : {}, - - /** - * Executable Javascript code or expression, safe for insertion in a - * script-tag or event handler context, known to be free of any - * attacker-controlled scripts. This can either be side-effect-free - * Javascript (such as JSON) or Javascript that's entirely under Google's - * control. - */ - JS: goog.DEBUG ? {sanitizedContentJsChars: true} : {}, - - /** - * A sequence of code units that can appear between quotes (either kind) in a - * JS program without causing a parse error, and without causing any side - * effects. - *

    - * The content should not contain unescaped quotes, newlines, or anything else - * that would cause parsing to fail or to cause a JS parser to finish the - * string its parsing inside the content. - *

    - * The content must also not end inside an escape sequence ; no partial octal - * escape sequences or odd number of '{@code \}'s at the end. - */ - JS_STR_CHARS: goog.DEBUG ? {sanitizedContentJsStrChars: true} : {}, - - /** A properly encoded portion of a URI. */ - URI: goog.DEBUG ? {sanitizedContentUri: true} : {}, - - /** - * Repeated attribute names and values. For example, - * {@code dir="ltr" foo="bar" onclick="trustedFunction()" checked}. - */ - ATTRIBUTES: goog.DEBUG ? {sanitizedContentHtmlAttribute: true} : {}, - - // TODO: Consider separating rules, declarations, and values into - // separate types, but for simplicity, we'll treat explicitly blessed - // SanitizedContent as allowed in all of these contexts. - /** - * A CSS3 declaration, property, value or group of semicolon separated - * declarations. - */ - CSS: goog.DEBUG ? {sanitizedContentCss: true} : {}, - - /** - * Unsanitized plain-text content. - * - * This is effectively the "null" entry of this enum, and is sometimes used - * to explicitly mark content that should never be used unescaped. Since any - * string is safe to use as text, being of ContentKind.TEXT makes no - * guarantees about its safety in any other context such as HTML. - */ - TEXT: goog.DEBUG ? {sanitizedContentKindText: true} : {} -}; - - - -/** - * A string-like object that carries a content-type and a content direction. - * - * IMPORTANT! Do not create these directly, nor instantiate the subclasses. - * Instead, use a trusted, centrally reviewed library as endorsed by your team - * to generate these objects. Otherwise, you risk accidentally creating - * SanitizedContent that is attacker-controlled and gets evaluated unescaped in - * templates. - * - * @constructor - */ -goog.soy.data.SanitizedContent = function() { - throw Error('Do not instantiate directly'); -}; - - -/** - * The context in which this content is safe from XSS attacks. - * @type {goog.soy.data.SanitizedContentKind} - */ -goog.soy.data.SanitizedContent.prototype.contentKind; - - -/** - * The content's direction; null if unknown and thus to be estimated when - * necessary. - * @type {?goog.i18n.bidi.Dir} - */ -goog.soy.data.SanitizedContent.prototype.contentDir = null; - - -/** - * The already-safe content. - * @type {string} - */ -goog.soy.data.SanitizedContent.prototype.content; - - -/** @override */ -goog.soy.data.SanitizedContent.prototype.toString = function() { - return this.content; -}; - - -var soy = { esc: {} }; -var soydata = {}; -soydata.VERY_UNSAFE = {}; -var soyshim = { $$DEFAULT_TEMPLATE_DATA_: {} }; -/** - * Helper function to render a Soy template into a single node or a document - * fragment. If the rendered HTML string represents a single node, then that - * node is returned. Otherwise a document fragment is created and returned - * (wrapped in a DIV element if #opt_singleNode is true). - * - * @param {Function} template The Soy template defining the element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {(goog.dom.DomHelper|Document)=} opt_dom The context in which DOM - * nodes will be created. - * @param {boolean=} opt_asElement Whether to wrap the fragment in an - * element if the template does not render a single element. If true, - * result is always an Element. - * @param {Object=} opt_injectedData The injected data for the template. - * @return {!Node} The resulting node or document fragment. - * @private - */ -soyshim.$$renderWithWrapper_ = function( - template, opt_templateData, opt_dom, opt_asElement, opt_injectedData) { - - var dom = opt_dom || document; - var wrapper = dom.createElement('div'); - wrapper.innerHTML = template( - opt_templateData || soyshim.$$DEFAULT_TEMPLATE_DATA_, undefined, - opt_injectedData); - - // If the template renders as a single element, return it. - if (wrapper.childNodes.length == 1) { - var firstChild = wrapper.firstChild; - if (!opt_asElement || firstChild.nodeType == 1 /* Element */) { - return /** @type {!Node} */ (firstChild); - } - } - - // If we're forcing it to be a single element, return the wrapper DIV. - if (opt_asElement) { - return wrapper; - } - - // Otherwise, create and return a fragment. - var fragment = dom.createDocumentFragment(); - while (wrapper.firstChild) { - fragment.appendChild(wrapper.firstChild); - } - return fragment; -}; - - -/** - * Strips str of any HTML mark-up and escapes. Imprecise in several ways, but - * precision is not very important, since the result is only meant to be used - * for directionality detection. - * Based on goog.i18n.bidi.stripHtmlIfNeeded_(). - * @param {string} str The string to be stripped. - * @param {boolean=} opt_isHtml Whether str is HTML / HTML-escaped. - * Default: false. - * @return {string} The stripped string. - * @private - */ -soyshim.$$bidiStripHtmlIfNecessary_ = function(str, opt_isHtml) { - return opt_isHtml ? str.replace(soyshim.$$BIDI_HTML_SKIP_RE_, '') : str; -}; - - -/** - * Simplified regular expression for am HTML tag (opening or closing) or an HTML - * escape - the things we want to skip over in order to ignore their ltr - * characters. - * Copied from goog.i18n.bidi.htmlSkipReg_. - * @type {RegExp} - * @private - */ -soyshim.$$BIDI_HTML_SKIP_RE_ = /<[^>]*>|&[^;]+;/g; - - -/** - * A practical pattern to identify strong LTR character. This pattern is not - * theoretically correct according to unicode standard. It is simplified for - * performance and small code size. - * Copied from goog.i18n.bidi.ltrChars_. - * @type {string} - * @private - */ -soyshim.$$bidiLtrChars_ = - 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + - '\u200E\u2C00-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF'; - - -/** - * A practical pattern to identify strong RTL character. This pattern is not - * theoretically correct according to unicode standard. It is simplified for - * performance and small code size. - * Copied from goog.i18n.bidi.rtlChars_. - * @type {string} - * @private - */ -soyshim.$$bidiRtlChars_ = '\u0591-\u07FF\u200F\uFB1D-\uFDFF\uFE70-\uFEFC'; - - -/** - * Regular expressions to check if a piece of text is of RTL directionality - * on first character with strong directionality. - * Based on goog.i18n.bidi.rtlDirCheckRe_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiRtlDirCheckRe_ = new RegExp( - '^[^' + soyshim.$$bidiLtrChars_ + ']*[' + soyshim.$$bidiRtlChars_ + ']'); - - -/** - * Regular expression to check for LTR characters. - * Based on goog.i18n.bidi.ltrCharReg_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiLtrCharRe_ = new RegExp('[' + soyshim.$$bidiLtrChars_ + ']'); - - -/** - * Regular expression to check if a string looks like something that must - * always be LTR even in RTL text, e.g. a URL. When estimating the - * directionality of text containing these, we treat these as weakly LTR, - * like numbers. - * Copied from goog.i18n.bidi.isRequiredLtrRe_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiIsRequiredLtrRe_ = /^http:\/\/.*/; - - -/** - * Regular expression to check if a string contains any numerals. Used to - * differentiate between completely neutral strings and those containing - * numbers, which are weakly LTR. - * Copied from goog.i18n.bidi.hasNumeralsRe_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiHasNumeralsRe_ = /\d/; - - -/** - * Regular expression to split a string into "words" for directionality - * estimation based on relative word counts. - * Copied from goog.i18n.bidi.wordSeparatorRe_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiWordSeparatorRe_ = /\s+/; - - -/** - * This constant controls threshold of rtl directionality. - * Copied from goog.i18n.bidi.rtlDetectionThreshold_. - * @type {number} - * @private - */ -soyshim.$$bidiRtlDetectionThreshold_ = 0.40; - -/** - * Regular expressions to check if the last strongly-directional character in a - * piece of text is LTR. - * Based on goog.i18n.bidi.ltrExitDirCheckRe_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiLtrExitDirCheckRe_ = new RegExp( - '[' + soyshim.$$bidiLtrChars_ + '][^' + soyshim.$$bidiRtlChars_ + ']*$'); - - -/** - * Regular expressions to check if the last strongly-directional character in a - * piece of text is RTL. - * Based on goog.i18n.bidi.rtlExitDirCheckRe_. - * @type {RegExp} - * @private - */ -soyshim.$$bidiRtlExitDirCheckRe_ = new RegExp( - '[' + soyshim.$$bidiRtlChars_ + '][^' + soyshim.$$bidiLtrChars_ + ']*$'); - - -/** - * Check if the exit directionality a piece of text is LTR, i.e. if the last - * strongly-directional character in the string is LTR. - * Based on goog.i18n.bidi.endsWithLtr(). - * @param {string} str string being checked. - * @param {boolean=} opt_isHtml Whether str is HTML / HTML-escaped. - * Default: false. - * @return {boolean} Whether LTR exit directionality was detected. - * @private - */ -soyshim.$$bidiIsLtrExitText_ = function(str, opt_isHtml) { - str = soyshim.$$bidiStripHtmlIfNecessary_(str, opt_isHtml); - return soyshim.$$bidiLtrExitDirCheckRe_.test(str); -}; - - -/** - * Check if the exit directionality a piece of text is RTL, i.e. if the last - * strongly-directional character in the string is RTL. - * Based on goog.i18n.bidi.endsWithRtl(). - * @param {string} str string being checked. - * @param {boolean=} opt_isHtml Whether str is HTML / HTML-escaped. - * Default: false. - * @return {boolean} Whether RTL exit directionality was detected. - * @private - */ -soyshim.$$bidiIsRtlExitText_ = function(str, opt_isHtml) { - str = soyshim.$$bidiStripHtmlIfNecessary_(str, opt_isHtml); - return soyshim.$$bidiRtlExitDirCheckRe_.test(str); -}; - - -// ============================================================================= -// COPIED FROM soyutils_usegoog.js - - -// ----------------------------------------------------------------------------- -// StringBuilder (compatible with the 'stringbuilder' code style). - - -/** - * Utility class to facilitate much faster string concatenation in IE, - * using Array.join() rather than the '+' operator. For other browsers - * we simply use the '+' operator. - * - * @param {Object} var_args Initial items to append, - * e.g., new soy.StringBuilder('foo', 'bar'). - * @constructor - */ -soy.StringBuilder = goog.string.StringBuffer; - - -// ----------------------------------------------------------------------------- -// soydata: Defines typed strings, e.g. an HTML string {@code "ac"} is -// semantically distinct from the plain text string {@code "ac"} and smart -// templates can take that distinction into account. - -/** - * A type of textual content. - * - * This is an enum of type Object so that these values are unforgeable. - * - * @enum {!Object} - */ -soydata.SanitizedContentKind = goog.soy.data.SanitizedContentKind; - - -/** - * Checks whether a given value is of a given content kind. - * - * @param {*} value The value to be examined. - * @param {soydata.SanitizedContentKind} contentKind The desired content - * kind. - * @return {boolean} Whether the given value is of the given kind. - * @private - */ -soydata.isContentKind = function(value, contentKind) { - // TODO(user): This function should really include the assert on - // value.constructor that is currently sprinkled at most of the call sites. - // Unfortunately, that would require a (debug-mode-only) switch statement. - // TODO(user): Perhaps we should get rid of the contentKind property - // altogether and only at the constructor. - return value != null && value.contentKind === contentKind; -}; - - -/** - * Returns a given value's contentDir property, constrained to a - * goog.i18n.bidi.Dir value or null. Returns null if the value is null, - * undefined, a primitive or does not have a contentDir property, or the - * property's value is not 1 (for LTR), -1 (for RTL), or 0 (for neutral). - * - * @param {*} value The value whose contentDir property, if any, is to - * be returned. - * @return {?goog.i18n.bidi.Dir} The contentDir property. - */ -soydata.getContentDir = function(value) { - if (value != null) { - switch (value.contentDir) { - case goog.i18n.bidi.Dir.LTR: - return goog.i18n.bidi.Dir.LTR; - case goog.i18n.bidi.Dir.RTL: - return goog.i18n.bidi.Dir.RTL; - case goog.i18n.bidi.Dir.NEUTRAL: - return goog.i18n.bidi.Dir.NEUTRAL; - } - } - return null; -}; - - -/** - * Content of type {@link soydata.SanitizedContentKind.HTML}. - * - * The content is a string of HTML that can safely be embedded in a PCDATA - * context in your app. If you would be surprised to find that an HTML - * sanitizer produced {@code s} (e.g. it runs code or fetches bad URLs) and - * you wouldn't write a template that produces {@code s} on security or privacy - * grounds, then don't pass {@code s} here. The default content direction is - * unknown, i.e. to be estimated when necessary. - * - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.SanitizedHtml = function() { - goog.soy.data.SanitizedContent.call(this); // Throws an exception. -}; -goog.inherits(soydata.SanitizedHtml, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.SanitizedHtml.prototype.contentKind = soydata.SanitizedContentKind.HTML; - -/** - * Returns a SanitizedHtml object for a particular value. The content direction - * is preserved. - * - * This HTML-escapes the value unless it is already SanitizedHtml. - * - * @param {*} value The value to convert. If it is already a SanitizedHtml - * object, it is left alone. - * @return {!soydata.SanitizedHtml} A SanitizedHtml object derived from the - * stringified value. It is escaped unless the input is SanitizedHtml. - */ -soydata.SanitizedHtml.from = function(value) { - // The check is soydata.isContentKind() inlined for performance. - if (value != null && - value.contentKind === soydata.SanitizedContentKind.HTML) { - goog.asserts.assert(value.constructor === soydata.SanitizedHtml); - return /** @type {!soydata.SanitizedHtml} */ (value); - } - return soydata.VERY_UNSAFE.ordainSanitizedHtml( - soy.esc.$$escapeHtmlHelper(String(value)), soydata.getContentDir(value)); -}; - - -/** - * Content of type {@link soydata.SanitizedContentKind.JS}. - * - * The content is Javascript source that when evaluated does not execute any - * attacker-controlled scripts. The content direction is LTR. - * - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.SanitizedJs = function() { - goog.soy.data.SanitizedContent.call(this); // Throws an exception. -}; -goog.inherits(soydata.SanitizedJs, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.SanitizedJs.prototype.contentKind = - soydata.SanitizedContentKind.JS; - -/** @override */ -soydata.SanitizedJs.prototype.contentDir = goog.i18n.bidi.Dir.LTR; - - -/** - * Content of type {@link soydata.SanitizedContentKind.JS_STR_CHARS}. - * - * The content can be safely inserted as part of a single- or double-quoted - * string without terminating the string. The default content direction is - * unknown, i.e. to be estimated when necessary. - * - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.SanitizedJsStrChars = function() { - goog.soy.data.SanitizedContent.call(this); // Throws an exception. -}; -goog.inherits(soydata.SanitizedJsStrChars, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.SanitizedJsStrChars.prototype.contentKind = - soydata.SanitizedContentKind.JS_STR_CHARS; - -/** - * Content of type {@link soydata.SanitizedContentKind.URI}. - * - * The content is a URI chunk that the caller knows is safe to emit in a - * template. The content direction is LTR. - * - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.SanitizedUri = function() { - goog.soy.data.SanitizedContent.call(this); // Throws an exception. -}; -goog.inherits(soydata.SanitizedUri, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.SanitizedUri.prototype.contentKind = soydata.SanitizedContentKind.URI; - -/** @override */ -soydata.SanitizedUri.prototype.contentDir = goog.i18n.bidi.Dir.LTR; - - -/** - * Content of type {@link soydata.SanitizedContentKind.ATTRIBUTES}. - * - * The content should be safely embeddable within an open tag, such as a - * key="value" pair. The content direction is LTR. - * - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.SanitizedHtmlAttribute = function() { - goog.soy.data.SanitizedContent.call(this); // Throws an exception. -}; -goog.inherits(soydata.SanitizedHtmlAttribute, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.SanitizedHtmlAttribute.prototype.contentKind = - soydata.SanitizedContentKind.ATTRIBUTES; - -/** @override */ -soydata.SanitizedHtmlAttribute.prototype.contentDir = goog.i18n.bidi.Dir.LTR; - - -/** - * Content of type {@link soydata.SanitizedContentKind.CSS}. - * - * The content is non-attacker-exploitable CSS, such as {@code color:#c3d9ff}. - * The content direction is LTR. - * - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.SanitizedCss = function() { - goog.soy.data.SanitizedContent.call(this); // Throws an exception. -}; -goog.inherits(soydata.SanitizedCss, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.SanitizedCss.prototype.contentKind = - soydata.SanitizedContentKind.CSS; - -/** @override */ -soydata.SanitizedCss.prototype.contentDir = goog.i18n.bidi.Dir.LTR; - - -/** - * Unsanitized plain text string. - * - * While all strings are effectively safe to use as a plain text, there are no - * guarantees about safety in any other context such as HTML. This is - * sometimes used to mark that should never be used unescaped. - * - * @param {*} content Plain text with no guarantees. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction; null if - * unknown and thus to be estimated when necessary. Default: null. - * @constructor - * @extends {goog.soy.data.SanitizedContent} - */ -soydata.UnsanitizedText = function(content, opt_contentDir) { - /** @override */ - this.content = String(content); - this.contentDir = opt_contentDir != null ? opt_contentDir : null; -}; -goog.inherits(soydata.UnsanitizedText, goog.soy.data.SanitizedContent); - -/** @override */ -soydata.UnsanitizedText.prototype.contentKind = - soydata.SanitizedContentKind.TEXT; - - -/** - * Empty string, used as a type in Soy templates. - * @enum {string} - * @private - */ -soydata.$$EMPTY_STRING_ = { - VALUE: '' -}; - - -/** - * Creates a factory for SanitizedContent types. - * - * This is a hack so that the soydata.VERY_UNSAFE.ordainSanitized* can - * instantiate Sanitized* classes, without making the Sanitized* constructors - * publicly usable. Requiring all construction to use the VERY_UNSAFE names - * helps callers and their reviewers easily tell that creating SanitizedContent - * is not always safe and calls for careful review. - * - * @param {function(new: T)} ctor A constructor. - * @return {!function(*, ?goog.i18n.bidi.Dir=): T} A factory that takes - * content and an optional content direction and returns a new instance. If - * the content direction is undefined, ctor.prototype.contentDir is used. - * @template T - * @private - */ -soydata.$$makeSanitizedContentFactory_ = function(ctor) { - /** @type {function(new: goog.soy.data.SanitizedContent)} */ - function InstantiableCtor() {} - InstantiableCtor.prototype = ctor.prototype; - /** - * Creates a ctor-type SanitizedContent instance. - * - * @param {*} content The content to put in the instance. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction. If - * undefined, ctor.prototype.contentDir is used. - * @return {goog.soy.data.SanitizedContent} The new instance. It is actually - * of type T above (ctor's type, a descendant of SanitizedContent), but - * there is no way to express that here. - */ - function sanitizedContentFactory(content, opt_contentDir) { - var result = new InstantiableCtor(); - result.content = String(content); - if (opt_contentDir !== undefined) { - result.contentDir = opt_contentDir; - } - return result; - } - return sanitizedContentFactory; -}; - - -/** - * Creates a factory for SanitizedContent types that should always have their - * default directionality. - * - * This is a hack so that the soydata.VERY_UNSAFE.ordainSanitized* can - * instantiate Sanitized* classes, without making the Sanitized* constructors - * publicly usable. Requiring all construction to use the VERY_UNSAFE names - * helps callers and their reviewers easily tell that creating SanitizedContent - * is not always safe and calls for careful review. - * - * @param {function(new: T, string)} ctor A constructor. - * @return {!function(*): T} A factory that takes content and returns a new - * instance (with default directionality, i.e. ctor.prototype.contentDir). - * @template T - * @private - */ -soydata.$$makeSanitizedContentFactoryWithDefaultDirOnly_ = function(ctor) { - /** @type {function(new: goog.soy.data.SanitizedContent)} */ - function InstantiableCtor() {} - InstantiableCtor.prototype = ctor.prototype; - /** - * Creates a ctor-type SanitizedContent instance. - * - * @param {*} content The content to put in the instance. - * @return {goog.soy.data.SanitizedContent} The new instance. It is actually - * of type T above (ctor's type, a descendant of SanitizedContent), but - * there is no way to express that here. - */ - function sanitizedContentFactory(content) { - var result = new InstantiableCtor(); - result.content = String(content); - return result; - } - return sanitizedContentFactory; -}; - - -// ----------------------------------------------------------------------------- -// Sanitized content ordainers. Please use these with extreme caution (with the -// exception of markUnsanitizedText). A good recommendation is to limit usage -// of these to just a handful of files in your source tree where usages can be -// carefully audited. - - -/** - * Protects a string from being used in an noAutoescaped context. - * - * This is useful for content where there is significant risk of accidental - * unescaped usage in a Soy template. A great case is for user-controlled - * data that has historically been a source of vulernabilities. - * - * @param {*} content Text to protect. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction; null if - * unknown and thus to be estimated when necessary. Default: null. - * @return {!soydata.UnsanitizedText} A wrapper that is rejected by the - * Soy noAutoescape print directive. - */ -soydata.markUnsanitizedText = function(content, opt_contentDir) { - return new soydata.UnsanitizedText(content, opt_contentDir); -}; - - -/** - * Takes a leap of faith that the provided content is "safe" HTML. - * - * @param {*} content A string of HTML that can safely be embedded in - * a PCDATA context in your app. If you would be surprised to find that an - * HTML sanitizer produced {@code s} (e.g. it runs code or fetches bad URLs) - * and you wouldn't write a template that produces {@code s} on security or - * privacy grounds, then don't pass {@code s} here. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction; null if - * unknown and thus to be estimated when necessary. Default: null. - * @return {!soydata.SanitizedHtml} Sanitized content wrapper that - * indicates to Soy not to escape when printed as HTML. - */ -soydata.VERY_UNSAFE.ordainSanitizedHtml = - soydata.$$makeSanitizedContentFactory_(soydata.SanitizedHtml); - - -/** - * Takes a leap of faith that the provided content is "safe" (non-attacker- - * controlled, XSS-free) Javascript. - * - * @param {*} content Javascript source that when evaluated does not - * execute any attacker-controlled scripts. - * @return {!soydata.SanitizedJs} Sanitized content wrapper that indicates to - * Soy not to escape when printed as Javascript source. - */ -soydata.VERY_UNSAFE.ordainSanitizedJs = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnly_( - soydata.SanitizedJs); - - -// TODO: This function is probably necessary, either externally or internally -// as an implementation detail. Generally, plain text will always work here, -// as there's no harm to unescaping the string and then re-escaping when -// finally printed. -/** - * Takes a leap of faith that the provided content can be safely embedded in - * a Javascript string without re-esacping. - * - * @param {*} content Content that can be safely inserted as part of a - * single- or double-quoted string without terminating the string. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction; null if - * unknown and thus to be estimated when necessary. Default: null. - * @return {!soydata.SanitizedJsStrChars} Sanitized content wrapper that - * indicates to Soy not to escape when printed in a JS string. - */ -soydata.VERY_UNSAFE.ordainSanitizedJsStrChars = - soydata.$$makeSanitizedContentFactory_(soydata.SanitizedJsStrChars); - - -/** - * Takes a leap of faith that the provided content is "safe" to use as a URI - * in a Soy template. - * - * This creates a Soy SanitizedContent object which indicates to Soy there is - * no need to escape it when printed as a URI (e.g. in an href or src - * attribute), such as if it's already been encoded or if it's a Javascript: - * URI. - * - * @param {*} content A chunk of URI that the caller knows is safe to - * emit in a template. - * @return {!soydata.SanitizedUri} Sanitized content wrapper that indicates to - * Soy not to escape or filter when printed in URI context. - */ -soydata.VERY_UNSAFE.ordainSanitizedUri = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnly_( - soydata.SanitizedUri); - - -/** - * Takes a leap of faith that the provided content is "safe" to use as an - * HTML attribute. - * - * @param {*} content An attribute name and value, such as - * {@code dir="ltr"}. - * @return {!soydata.SanitizedHtmlAttribute} Sanitized content wrapper that - * indicates to Soy not to escape when printed as an HTML attribute. - */ -soydata.VERY_UNSAFE.ordainSanitizedHtmlAttribute = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnly_( - soydata.SanitizedHtmlAttribute); - - -/** - * Takes a leap of faith that the provided content is "safe" to use as CSS - * in a style attribute or block. - * - * @param {*} content CSS, such as {@code color:#c3d9ff}. - * @return {!soydata.SanitizedCss} Sanitized CSS wrapper that indicates to - * Soy there is no need to escape or filter when printed in CSS context. - */ -soydata.VERY_UNSAFE.ordainSanitizedCss = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnly_( - soydata.SanitizedCss); - - -// ----------------------------------------------------------------------------- -// Public utilities. - - -/** - * Helper function to render a Soy template and then set the output string as - * the innerHTML of an element. It is recommended to use this helper function - * instead of directly setting innerHTML in your hand-written code, so that it - * will be easier to audit the code for cross-site scripting vulnerabilities. - * - * NOTE: New code should consider using goog.soy.renderElement instead. - * - * @param {Element} element The element whose content we are rendering. - * @param {Function} template The Soy template defining the element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {Object=} opt_injectedData The injected data for the template. - */ -soy.renderElement = goog.soy.renderElement; - - -/** - * Helper function to render a Soy template into a single node or a document - * fragment. If the rendered HTML string represents a single node, then that - * node is returned (note that this is *not* a fragment, despite them name of - * the method). Otherwise a document fragment is returned containing the - * rendered nodes. - * - * NOTE: New code should consider using goog.soy.renderAsFragment - * instead (note that the arguments are different). - * - * @param {Function} template The Soy template defining the element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {Document=} opt_document The document used to create DOM nodes. If not - * specified, global document object is used. - * @param {Object=} opt_injectedData The injected data for the template. - * @return {!Node} The resulting node or document fragment. - */ -soy.renderAsFragment = function( - template, opt_templateData, opt_document, opt_injectedData) { - return goog.soy.renderAsFragment( - template, opt_templateData, opt_injectedData, - new goog.dom.DomHelper(opt_document)); -}; - - -/** - * Helper function to render a Soy template into a single node. If the rendered - * HTML string represents a single node, then that node is returned. Otherwise, - * a DIV element is returned containing the rendered nodes. - * - * NOTE: New code should consider using goog.soy.renderAsElement - * instead (note that the arguments are different). - * - * @param {Function} template The Soy template defining the element's content. - * @param {Object=} opt_templateData The data for the template. - * @param {Document=} opt_document The document used to create DOM nodes. If not - * specified, global document object is used. - * @param {Object=} opt_injectedData The injected data for the template. - * @return {!Element} Rendered template contents, wrapped in a parent DIV - * element if necessary. - */ -soy.renderAsElement = function( - template, opt_templateData, opt_document, opt_injectedData) { - return goog.soy.renderAsElement( - template, opt_templateData, opt_injectedData, - new goog.dom.DomHelper(opt_document)); -}; - - -// ----------------------------------------------------------------------------- -// Below are private utilities to be used by Soy-generated code only. - - -/** - * Whether the locale is right-to-left. - * - * @type {boolean} - */ -soy.$$IS_LOCALE_RTL = goog.i18n.bidi.IS_RTL; - - -/** - * Builds an augmented map. The returned map will contain mappings from both - * the base map and the additional map. If the same key appears in both, then - * the value from the additional map will be visible, while the value from the - * base map will be hidden. The base map will be used, but not modified. - * - * @param {!Object} baseMap The original map to augment. - * @param {!Object} additionalMap A map containing the additional mappings. - * @return {!Object} An augmented map containing both the original and - * additional mappings. - */ -soy.$$augmentMap = function(baseMap, additionalMap) { - - // Create a new map whose '__proto__' field is set to baseMap. - /** @constructor */ - function TempCtor() {} - TempCtor.prototype = baseMap; - var augmentedMap = new TempCtor(); - - // Add the additional mappings to the new map. - for (var key in additionalMap) { - augmentedMap[key] = additionalMap[key]; - } - - return augmentedMap; -}; - - -/** - * Checks that the given map key is a string. - * @param {*} key Key to check. - * @return {string} The given key. - */ -soy.$$checkMapKey = function(key) { - // TODO: Support map literal with nonstring key. - if ((typeof key) != 'string') { - throw Error( - 'Map literal\'s key expression must evaluate to string' + - ' (encountered type "' + (typeof key) + '").'); - } - return key; -}; - - -/** - * Gets the keys in a map as an array. There are no guarantees on the order. - * @param {Object} map The map to get the keys of. - * @return {Array.} The array of keys in the given map. - */ -soy.$$getMapKeys = function(map) { - var mapKeys = []; - for (var key in map) { - mapKeys.push(key); - } - return mapKeys; -}; - - -/** - * Gets a consistent unique id for the given delegate template name. Two calls - * to this function will return the same id if and only if the input names are - * the same. - * - *

    Important: This function must always be called with a string constant. - * - *

    If Closure Compiler is not being used, then this is just this identity - * function. If Closure Compiler is being used, then each call to this function - * will be replaced with a short string constant, which will be consistent per - * input name. - * - * @param {string} delTemplateName The delegate template name for which to get a - * consistent unique id. - * @return {string} A unique id that is consistent per input name. - * - * @consistentIdGenerator - */ -soy.$$getDelTemplateId = function(delTemplateName) { - return delTemplateName; -}; - - -/** - * Map from registered delegate template key to the priority of the - * implementation. - * @type {Object} - * @private - */ -soy.$$DELEGATE_REGISTRY_PRIORITIES_ = {}; - -/** - * Map from registered delegate template key to the implementation function. - * @type {Object} - * @private - */ -soy.$$DELEGATE_REGISTRY_FUNCTIONS_ = {}; - - -/** - * Registers a delegate implementation. If the same delegate template key (id - * and variant) has been registered previously, then priority values are - * compared and only the higher priority implementation is stored (if - * priorities are equal, an error is thrown). - * - * @param {string} delTemplateId The delegate template id. - * @param {string} delTemplateVariant The delegate template variant (can be - * empty string). - * @param {number} delPriority The implementation's priority value. - * @param {Function} delFn The implementation function. - */ -soy.$$registerDelegateFn = function( - delTemplateId, delTemplateVariant, delPriority, delFn) { - - var mapKey = 'key_' + delTemplateId + ':' + delTemplateVariant; - var currPriority = soy.$$DELEGATE_REGISTRY_PRIORITIES_[mapKey]; - if (currPriority === undefined || delPriority > currPriority) { - // Registering new or higher-priority function: replace registry entry. - soy.$$DELEGATE_REGISTRY_PRIORITIES_[mapKey] = delPriority; - soy.$$DELEGATE_REGISTRY_FUNCTIONS_[mapKey] = delFn; - } else if (delPriority == currPriority) { - // Registering same-priority function: error. - throw Error( - 'Encountered two active delegates with the same priority ("' + - delTemplateId + ':' + delTemplateVariant + '").'); - } else { - // Registering lower-priority function: do nothing. - } -}; - - -/** - * Retrieves the (highest-priority) implementation that has been registered for - * a given delegate template key (id and variant). If no implementation has - * been registered for the key, then the fallback is the same id with empty - * variant. If the fallback is also not registered, and allowsEmptyDefault is - * true, then returns an implementation that is equivalent to an empty template - * (i.e. rendered output would be empty string). - * - * @param {string} delTemplateId The delegate template id. - * @param {string|number} delTemplateVariant The delegate template variant (can - * be an empty string, or a number when a global is used). - * @param {boolean} allowsEmptyDefault Whether to default to the empty template - * function if there's no active implementation. - * @return {Function} The retrieved implementation function. - */ -soy.$$getDelegateFn = function( - delTemplateId, delTemplateVariant, allowsEmptyDefault) { - - var delFn = soy.$$DELEGATE_REGISTRY_FUNCTIONS_[ - 'key_' + delTemplateId + ':' + delTemplateVariant]; - if (! delFn && delTemplateVariant != '') { - // Fallback to empty variant. - delFn = soy.$$DELEGATE_REGISTRY_FUNCTIONS_['key_' + delTemplateId + ':']; - } - - if (delFn) { - return delFn; - } else if (allowsEmptyDefault) { - return soy.$$EMPTY_TEMPLATE_FN_; - } else { - throw Error( - 'Found no active impl for delegate call to "' + delTemplateId + ':' + - delTemplateVariant + '" (and not allowemptydefault="true").'); - } -}; - - -/** - * Private helper soy.$$getDelegateFn(). This is the empty template function - * that is returned whenever there's no delegate implementation found. - * - * @param {Object.=} opt_data - * @param {soy.StringBuilder=} opt_sb - * @param {Object.=} opt_ijData - * @return {string} - * @private - */ -soy.$$EMPTY_TEMPLATE_FN_ = function(opt_data, opt_sb, opt_ijData) { - return ''; -}; - - -// ----------------------------------------------------------------------------- -// Internal sanitized content wrappers. - - -/** - * Creates a SanitizedContent factory for SanitizedContent types for internal - * Soy let and param blocks. - * - * This is a hack within Soy so that SanitizedContent objects created via let - * and param blocks will truth-test as false if they are empty string. - * Tricking the Javascript runtime to treat empty SanitizedContent as falsey is - * not possible, and changing the Soy compiler to wrap every boolean statement - * for just this purpose is impractical. Instead, we just avoid wrapping empty - * string as SanitizedContent, since it's a no-op for empty strings anyways. - * - * @param {function(new: T)} ctor A constructor. - * @return {!function(*, ?goog.i18n.bidi.Dir=): (T|soydata.$$EMPTY_STRING_)} - * A factory that takes content and an optional content direction and - * returns a new instance, or an empty string. If the content direction is - * undefined, ctor.prototype.contentDir is used. - * @template T - * @private - */ -soydata.$$makeSanitizedContentFactoryForInternalBlocks_ = function(ctor) { - /** @type {function(new: goog.soy.data.SanitizedContent)} */ - function InstantiableCtor() {} - InstantiableCtor.prototype = ctor.prototype; - /** - * Creates a ctor-type SanitizedContent instance. - * - * @param {*} content The content to put in the instance. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction. If - * undefined, ctor.prototype.contentDir is used. - * @return {goog.soy.data.SanitizedContent|soydata.$$EMPTY_STRING_} The new - * instance, or an empty string. A new instance is actually of type T - * above (ctor's type, a descendant of SanitizedContent), but there's no - * way to express that here. - */ - function sanitizedContentFactory(content, opt_contentDir) { - var contentString = String(content); - if (!contentString) { - return soydata.$$EMPTY_STRING_.VALUE; - } - var result = new InstantiableCtor(); - result.content = String(content); - if (opt_contentDir !== undefined) { - result.contentDir = opt_contentDir; - } - return result; - } - return sanitizedContentFactory; -}; - - -/** - * Creates a SanitizedContent factory for SanitizedContent types that should - * always have their default directionality for internal Soy let and param - * blocks. - * - * This is a hack within Soy so that SanitizedContent objects created via let - * and param blocks will truth-test as false if they are empty string. - * Tricking the Javascript runtime to treat empty SanitizedContent as falsey is - * not possible, and changing the Soy compiler to wrap every boolean statement - * for just this purpose is impractical. Instead, we just avoid wrapping empty - * string as SanitizedContent, since it's a no-op for empty strings anyways. - * - * @param {function(new: T)} ctor A constructor. - * @return {!function(*): (T|soydata.$$EMPTY_STRING_)} A - * factory that takes content and returns a - * new instance (with default directionality, i.e. - * ctor.prototype.contentDir), or an empty string. - * @template T - * @private - */ -soydata.$$makeSanitizedContentFactoryWithDefaultDirOnlyForInternalBlocks_ = - function(ctor) { - /** @type {function(new: goog.soy.data.SanitizedContent)} */ - function InstantiableCtor() {} - InstantiableCtor.prototype = ctor.prototype; - /** - * Creates a ctor-type SanitizedContent instance. - * - * @param {*} content The content to put in the instance. - * @return {goog.soy.data.SanitizedContent|soydata.$$EMPTY_STRING_} The new - * instance, or an empty string. A new instance is actually of type T - * above (ctor's type, a descendant of SanitizedContent), but there's no - * way to express that here. - */ - function sanitizedContentFactory(content) { - var contentString = String(content); - if (!contentString) { - return soydata.$$EMPTY_STRING_.VALUE; - } - var result = new InstantiableCtor(); - result.content = String(content); - return result; - } - return sanitizedContentFactory; -}; - - -/** - * Creates kind="text" block contents (internal use only). - * - * @param {*} content Text. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction; null if - * unknown and thus to be estimated when necessary. Default: null. - * @return {!soydata.UnsanitizedText|soydata.$$EMPTY_STRING_} Wrapped result. - */ -soydata.$$markUnsanitizedTextForInternalBlocks = function( - content, opt_contentDir) { - var contentString = String(content); - if (!contentString) { - return soydata.$$EMPTY_STRING_.VALUE; - } - return new soydata.UnsanitizedText(contentString, opt_contentDir); -}; - - -/** - * Creates kind="html" block contents (internal use only). - * - * @param {*} content Text. - * @param {?goog.i18n.bidi.Dir=} opt_contentDir The content direction; null if - * unknown and thus to be estimated when necessary. Default: null. - * @return {soydata.SanitizedHtml|soydata.$$EMPTY_STRING_} Wrapped result. - */ -soydata.VERY_UNSAFE.$$ordainSanitizedHtmlForInternalBlocks = - soydata.$$makeSanitizedContentFactoryForInternalBlocks_( - soydata.SanitizedHtml); - - -/** - * Creates kind="js" block contents (internal use only). - * - * @param {*} content Text. - * @return {soydata.SanitizedJs|soydata.$$EMPTY_STRING_} Wrapped result. - */ -soydata.VERY_UNSAFE.$$ordainSanitizedJsForInternalBlocks = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnlyForInternalBlocks_( - soydata.SanitizedJs); - - -/** - * Creates kind="uri" block contents (internal use only). - * - * @param {*} content Text. - * @return {soydata.SanitizedUri|soydata.$$EMPTY_STRING_} Wrapped result. - */ -soydata.VERY_UNSAFE.$$ordainSanitizedUriForInternalBlocks = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnlyForInternalBlocks_( - soydata.SanitizedUri); - - -/** - * Creates kind="attributes" block contents (internal use only). - * - * @param {*} content Text. - * @return {soydata.SanitizedHtmlAttribute|soydata.$$EMPTY_STRING_} Wrapped - * result. - */ -soydata.VERY_UNSAFE.$$ordainSanitizedAttributesForInternalBlocks = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnlyForInternalBlocks_( - soydata.SanitizedHtmlAttribute); - - -/** - * Creates kind="css" block contents (internal use only). - * - * @param {*} content Text. - * @return {soydata.SanitizedCss|soydata.$$EMPTY_STRING_} Wrapped result. - */ -soydata.VERY_UNSAFE.$$ordainSanitizedCssForInternalBlocks = - soydata.$$makeSanitizedContentFactoryWithDefaultDirOnlyForInternalBlocks_( - soydata.SanitizedCss); - - -// ----------------------------------------------------------------------------- -// Escape/filter/normalize. - - -/** - * Returns a SanitizedHtml object for a particular value. The content direction - * is preserved. - * - * This HTML-escapes the value unless it is already SanitizedHtml. Escapes - * double quote '"' in addition to '&', '<', and '>' so that a string can be - * included in an HTML tag attribute value within double quotes. - * - * @param {*} value The value to convert. If it is already a SanitizedHtml - * object, it is left alone. - * @return {!soydata.SanitizedHtml} An escaped version of value. - */ -soy.$$escapeHtml = function(value) { - return soydata.SanitizedHtml.from(value); -}; - - -/** - * Strips unsafe tags to convert a string of untrusted HTML into HTML that - * is safe to embed. The content direction is preserved. - * - * @param {*} value The string-like value to be escaped. May not be a string, - * but the value will be coerced to a string. - * @return {!soydata.SanitizedHtml} A sanitized and normalized version of value. - */ -soy.$$cleanHtml = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.HTML)) { - goog.asserts.assert(value.constructor === soydata.SanitizedHtml); - return /** @type {!soydata.SanitizedHtml} */ (value); - } - return soydata.VERY_UNSAFE.ordainSanitizedHtml( - soy.$$stripHtmlTags(value, soy.esc.$$SAFE_TAG_WHITELIST_), - soydata.getContentDir(value)); -}; - - -/** - * Escapes HTML special characters in a string so that it can be embedded in - * RCDATA. - *

    - * Escapes HTML special characters so that the value will not prematurely end - * the body of a tag like {@code }. - *

    - * Will normalize known safe HTML to make sure that sanitized HTML (which could - * contain an innocuous {@code } don't prematurely end an RCDATA - * element. - * - * @param {*} value The string-like value to be escaped. May not be a string, - * but the value will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$escapeHtmlRcdata = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.HTML)) { - goog.asserts.assert(value.constructor === soydata.SanitizedHtml); - return soy.esc.$$normalizeHtmlHelper(value.content); - } - return soy.esc.$$escapeHtmlHelper(value); -}; - - -/** - * Matches any/only HTML5 void elements' start tags. - * See http://www.w3.org/TR/html-markup/syntax.html#syntax-elements - * @type {RegExp} - * @private - */ -soy.$$HTML5_VOID_ELEMENTS_ = new RegExp( - '^<(?:area|base|br|col|command|embed|hr|img|input' + - '|keygen|link|meta|param|source|track|wbr)\\b'); - - -/** - * Removes HTML tags from a string of known safe HTML. - * If opt_tagWhitelist is not specified or is empty, then - * the result can be used as an attribute value. - * - * @param {*} value The HTML to be escaped. May not be a string, but the - * value will be coerced to a string. - * @param {Object.=} opt_tagWhitelist Has an own property whose - * name is a lower-case tag name and whose value is {@code 1} for - * each element that is allowed in the output. - * @return {string} A representation of value without disallowed tags, - * HTML comments, or other non-text content. - */ -soy.$$stripHtmlTags = function(value, opt_tagWhitelist) { - if (!opt_tagWhitelist) { - // If we have no white-list, then use a fast track which elides all tags. - return String(value).replace(soy.esc.$$HTML_TAG_REGEX_, '') - // This is just paranoia since callers should normalize the result - // anyway, but if they didn't, it would be necessary to ensure that - // after the first replace non-tag uses of < do not recombine into - // tags as in "<script>alert(1337)script>". - .replace(soy.esc.$$LT_REGEX_, '<'); - } - - // Escapes '[' so that we can use [123] below to mark places where tags - // have been removed. - var html = String(value).replace(/\[/g, '['); - - // Consider all uses of '<' and replace whitelisted tags with markers like - // [1] which are indices into a list of approved tag names. - // Replace all other uses of < and > with entities. - var tags = []; - html = html.replace( - soy.esc.$$HTML_TAG_REGEX_, - function(tok, tagName) { - if (tagName) { - tagName = tagName.toLowerCase(); - if (opt_tagWhitelist.hasOwnProperty(tagName) && - opt_tagWhitelist[tagName]) { - var start = tok.charAt(1) === '/' ? ''; - return '[' + index + ']'; - } - } - return ''; - }); - - // Escape HTML special characters. Now there are no '<' in html that could - // start a tag. - html = soy.esc.$$normalizeHtmlHelper(html); - - var finalCloseTags = soy.$$balanceTags_(tags); - - // Now html contains no tags or less-than characters that could become - // part of a tag via a replacement operation and tags only contains - // approved tags. - // Reinsert the white-listed tags. - html = html.replace( - /\[(\d+)\]/g, function(_, index) { return tags[index]; }); - - // Close any still open tags. - // This prevents unclosed formatting elements like

      and from - // breaking the layout of containing HTML. - return html + finalCloseTags; -}; - - -/** - * Throw out any close tags that don't correspond to start tags. - * If {@code
      } is used for formatting, embedded HTML shouldn't be able - * to use a mismatched {@code
      } to break page layout. - * - * @param {Array.} tags an array of tags that will be modified in place - * include tags, the empty string, or concatenations of empty tags. - * @return {string} zero or more closed tags that close all elements that are - * opened in tags but not closed. - * @private - */ -soy.$$balanceTags_ = function(tags) { - var open = []; - for (var i = 0, n = tags.length; i < n; ++i) { - var tag = tags[i]; - if (tag.charAt(1) === '/') { - var openTagIndex = open.length - 1; - // NOTE: This is essentially lastIndexOf, but it's not supported in IE. - while (openTagIndex >= 0 && open[openTagIndex] != tag) { - openTagIndex--; - } - if (openTagIndex < 0) { - tags[i] = ''; // Drop close tag. - } else { - tags[i] = open.slice(openTagIndex).reverse().join(''); - open.length = openTagIndex; - } - } else if (!soy.$$HTML5_VOID_ELEMENTS_.test(tag)) { - open.push('Hello World - return soy.esc.$$filterHtmlElementNameHelper(value); -}; - - -/** - * Escapes characters in the value to make it valid content for a JS string - * literal. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - * @deprecated - */ -soy.$$escapeJs = function(value) { - return soy.$$escapeJsString(value); -}; - - -/** - * Escapes characters in the value to make it valid content for a JS string - * literal. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$escapeJsString = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.JS_STR_CHARS)) { - // TODO: It might still be worthwhile to normalize it to remove - // unescaped quotes, null, etc: replace(/(?:^|[^\])['"]/g, '\\$ - goog.asserts.assert(value.constructor === soydata.SanitizedJsStrChars); - return value.content; - } - return soy.esc.$$escapeJsStringHelper(value); -}; - - -/** - * Encodes a value as a JavaScript literal. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} A JavaScript code representation of the input. - */ -soy.$$escapeJsValue = function(value) { - // We surround values with spaces so that they can't be interpolated into - // identifiers by accident. - // We could use parentheses but those might be interpreted as a function call. - if (value == null) { // Intentionally matches undefined. - // Java returns null from maps where there is no corresponding key while - // JS returns undefined. - // We always output null for compatibility with Java which does not have a - // distinct undefined value. - return ' null '; - } - if (soydata.isContentKind(value, soydata.SanitizedContentKind.JS)) { - goog.asserts.assert(value.constructor === soydata.SanitizedJs); - return value.content; - } - switch (typeof value) { - case 'boolean': case 'number': - return ' ' + value + ' '; - default: - return "'" + soy.esc.$$escapeJsStringHelper(String(value)) + "'"; - } -}; - - -/** - * Escapes characters in the string to make it valid content for a JS regular - * expression literal. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$escapeJsRegex = function(value) { - return soy.esc.$$escapeJsRegexHelper(value); -}; - - -/** - * Matches all URI mark characters that conflict with HTML attribute delimiters - * or that cannot appear in a CSS uri. - * From G.2: CSS grammar - *
      - *     url        ([!#$%&*-~]|{nonascii}|{escape})*
      - * 
      - * - * @type {RegExp} - * @private - */ -soy.$$problematicUriMarks_ = /['()]/g; - -/** - * @param {string} ch A single character in {@link soy.$$problematicUriMarks_}. - * @return {string} - * @private - */ -soy.$$pctEncode_ = function(ch) { - return '%' + ch.charCodeAt(0).toString(16); -}; - -/** - * Escapes a string so that it can be safely included in a URI. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$escapeUri = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.URI)) { - goog.asserts.assert(value.constructor === soydata.SanitizedUri); - return soy.$$normalizeUri(value); - } - // Apostophes and parentheses are not matched by encodeURIComponent. - // They are technically special in URIs, but only appear in the obsolete mark - // production in Appendix D.2 of RFC 3986, so can be encoded without changing - // semantics. - var encoded = soy.esc.$$escapeUriHelper(value); - soy.$$problematicUriMarks_.lastIndex = 0; - if (soy.$$problematicUriMarks_.test(encoded)) { - return encoded.replace(soy.$$problematicUriMarks_, soy.$$pctEncode_); - } - return encoded; -}; - - -/** - * Removes rough edges from a URI by escaping any raw HTML/JS string delimiters. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$normalizeUri = function(value) { - return soy.esc.$$normalizeUriHelper(value); -}; - - -/** - * Vets a URI's protocol and removes rough edges from a URI by escaping - * any raw HTML/JS string delimiters. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$filterNormalizeUri = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.URI)) { - goog.asserts.assert(value.constructor === soydata.SanitizedUri); - return soy.$$normalizeUri(value); - } - return soy.esc.$$filterNormalizeUriHelper(value); -}; - - -/** - * Allows only data-protocol image URI's. - * - * @param {*} value The value to process. May not be a string, but the value - * will be coerced to a string. - * @return {!soydata.SanitizedUri} An escaped version of value. - */ -soy.$$filterImageDataUri = function(value) { - // NOTE: Even if it's a SanitizedUri, we will still filter it. - return soydata.VERY_UNSAFE.ordainSanitizedUri( - soy.esc.$$filterImageDataUriHelper(value)); -}; - - -/** - * Escapes a string so it can safely be included inside a quoted CSS string. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} An escaped version of value. - */ -soy.$$escapeCssString = function(value) { - return soy.esc.$$escapeCssStringHelper(value); -}; - - -/** - * Encodes a value as a CSS identifier part, keyword, or quantity. - * - * @param {*} value The value to escape. May not be a string, but the value - * will be coerced to a string. - * @return {string} A safe CSS identifier part, keyword, or quanitity. - */ -soy.$$filterCssValue = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.CSS)) { - goog.asserts.assert(value.constructor === soydata.SanitizedCss); - return value.content; - } - // Uses == to intentionally match null and undefined for Java compatibility. - if (value == null) { - return ''; - } - return soy.esc.$$filterCssValueHelper(value); -}; - - -/** - * Sanity-checks noAutoescape input for explicitly tainted content. - * - * SanitizedContentKind.TEXT is used to explicitly mark input that was never - * meant to be used unescaped. - * - * @param {*} value The value to filter. - * @return {*} The value, that we dearly hope will not cause an attack. - */ -soy.$$filterNoAutoescape = function(value) { - if (soydata.isContentKind(value, soydata.SanitizedContentKind.TEXT)) { - // Fail in development mode. - goog.asserts.fail( - 'Tainted SanitizedContentKind.TEXT for |noAutoescape: `%s`', - [value.content]); - // Return innocuous data in production. - return 'zSoyz'; - } - - return value; -}; - - -// ----------------------------------------------------------------------------- -// Basic directives/functions. - - -/** - * Converts \r\n, \r, and \n to
      s - * @param {*} value The string in which to convert newlines. - * @return {string|!soydata.SanitizedHtml} A copy of {@code value} with - * converted newlines. If {@code value} is SanitizedHtml, the return value - * is also SanitizedHtml, of the same known directionality. - */ -soy.$$changeNewlineToBr = function(value) { - var result = goog.string.newLineToBr(String(value), false); - if (soydata.isContentKind(value, soydata.SanitizedContentKind.HTML)) { - return soydata.VERY_UNSAFE.ordainSanitizedHtml( - result, soydata.getContentDir(value)); - } - return result; -}; - - -/** - * Inserts word breaks ('wbr' tags) into a HTML string at a given interval. The - * counter is reset if a space is encountered. Word breaks aren't inserted into - * HTML tags or entities. Entites count towards the character count; HTML tags - * do not. - * - * @param {*} value The HTML string to insert word breaks into. Can be other - * types, but the value will be coerced to a string. - * @param {number} maxCharsBetweenWordBreaks Maximum number of non-space - * characters to allow before adding a word break. - * @return {string|!soydata.SanitizedHtml} The string including word - * breaks. If {@code value} is SanitizedHtml, the return value - * is also SanitizedHtml, of the same known directionality. - */ -soy.$$insertWordBreaks = function(value, maxCharsBetweenWordBreaks) { - var result = goog.format.insertWordBreaks( - String(value), maxCharsBetweenWordBreaks); - if (soydata.isContentKind(value, soydata.SanitizedContentKind.HTML)) { - return soydata.VERY_UNSAFE.ordainSanitizedHtml( - result, soydata.getContentDir(value)); - } - return result; -}; - - -/** - * Truncates a string to a given max length (if it's currently longer), - * optionally adding ellipsis at the end. - * - * @param {*} str The string to truncate. Can be other types, but the value will - * be coerced to a string. - * @param {number} maxLen The maximum length of the string after truncation - * (including ellipsis, if applicable). - * @param {boolean} doAddEllipsis Whether to add ellipsis if the string needs - * truncation. - * @return {string} The string after truncation. - */ -soy.$$truncate = function(str, maxLen, doAddEllipsis) { - - str = String(str); - if (str.length <= maxLen) { - return str; // no need to truncate - } - - // If doAddEllipsis, either reduce maxLen to compensate, or else if maxLen is - // too small, just turn off doAddEllipsis. - if (doAddEllipsis) { - if (maxLen > 3) { - maxLen -= 3; - } else { - doAddEllipsis = false; - } - } - - // Make sure truncating at maxLen doesn't cut up a unicode surrogate pair. - if (soy.$$isHighSurrogate_(str.charAt(maxLen - 1)) && - soy.$$isLowSurrogate_(str.charAt(maxLen))) { - maxLen -= 1; - } - - // Truncate. - str = str.substring(0, maxLen); - - // Add ellipsis. - if (doAddEllipsis) { - str += '...'; - } - - return str; -}; - -/** - * Private helper for $$truncate() to check whether a char is a high surrogate. - * @param {string} ch The char to check. - * @return {boolean} Whether the given char is a unicode high surrogate. - * @private - */ -soy.$$isHighSurrogate_ = function(ch) { - return 0xD800 <= ch && ch <= 0xDBFF; -}; - -/** - * Private helper for $$truncate() to check whether a char is a low surrogate. - * @param {string} ch The char to check. - * @return {boolean} Whether the given char is a unicode low surrogate. - * @private - */ -soy.$$isLowSurrogate_ = function(ch) { - return 0xDC00 <= ch && ch <= 0xDFFF; -}; - - -// ----------------------------------------------------------------------------- -// Bidi directives/functions. - - -/** - * Cache of bidi formatter by context directionality, so we don't keep on - * creating new objects. - * @type {!Object.} - * @private - */ -soy.$$bidiFormatterCache_ = {}; - - -/** - * Returns cached bidi formatter for bidiGlobalDir, or creates a new one. - * @param {number} bidiGlobalDir The global directionality context: 1 if ltr, -1 - * if rtl, 0 if unknown. - * @return {goog.i18n.BidiFormatter} A formatter for bidiGlobalDir. - * @private - */ -soy.$$getBidiFormatterInstance_ = function(bidiGlobalDir) { - return soy.$$bidiFormatterCache_[bidiGlobalDir] || - (soy.$$bidiFormatterCache_[bidiGlobalDir] = - new goog.i18n.BidiFormatter(bidiGlobalDir)); -}; - - -/** - * Estimate the overall directionality of text. If opt_isHtml, makes sure to - * ignore the LTR nature of the mark-up and escapes in text, making the logic - * suitable for HTML and HTML-escaped text. - * If text has a goog.i18n.bidi.Dir-valued contentDir, this is used instead of - * estimating the directionality. - * - * @param {*} text The content whose directionality is to be estimated. - * @param {boolean=} opt_isHtml Whether text is HTML/HTML-escaped. - * Default: false. - * @return {number} 1 if text is LTR, -1 if it is RTL, and 0 if it is neutral. - */ -soy.$$bidiTextDir = function(text, opt_isHtml) { - var contentDir = soydata.getContentDir(text); - if (contentDir != null) { - return contentDir; - } - var isHtml = opt_isHtml || - soydata.isContentKind(text, soydata.SanitizedContentKind.HTML); - return goog.i18n.bidi.estimateDirection(text + '', isHtml); -}; - - -/** - * Returns 'dir="ltr"' or 'dir="rtl"', depending on text's estimated - * directionality, if it is not the same as bidiGlobalDir. - * Otherwise, returns the empty string. - * If opt_isHtml, makes sure to ignore the LTR nature of the mark-up and escapes - * in text, making the logic suitable for HTML and HTML-escaped text. - * If text has a goog.i18n.bidi.Dir-valued contentDir, this is used instead of - * estimating the directionality. - * - * @param {number} bidiGlobalDir The global directionality context: 1 if ltr, -1 - * if rtl, 0 if unknown. - * @param {*} text The content whose directionality is to be estimated. - * @param {boolean=} opt_isHtml Whether text is HTML/HTML-escaped. - * Default: false. - * @return {soydata.SanitizedHtmlAttribute} 'dir="rtl"' for RTL text in non-RTL - * context; 'dir="ltr"' for LTR text in non-LTR context; - * else, the empty string. - */ -soy.$$bidiDirAttr = function(bidiGlobalDir, text, opt_isHtml) { - var formatter = soy.$$getBidiFormatterInstance_(bidiGlobalDir); - var contentDir = soydata.getContentDir(text); - if (contentDir == null) { - var isHtml = opt_isHtml || - soydata.isContentKind(text, soydata.SanitizedContentKind.HTML); - contentDir = goog.i18n.bidi.estimateDirection(text + '', isHtml); - } - return soydata.VERY_UNSAFE.ordainSanitizedHtmlAttribute( - formatter.knownDirAttr(contentDir)); -}; - - -/** - * Returns a Unicode BiDi mark matching bidiGlobalDir (LRM or RLM) if the - * directionality or the exit directionality of text are opposite to - * bidiGlobalDir. Otherwise returns the empty string. - * If opt_isHtml, makes sure to ignore the LTR nature of the mark-up and escapes - * in text, making the logic suitable for HTML and HTML-escaped text. - * If text has a goog.i18n.bidi.Dir-valued contentDir, this is used instead of - * estimating the directionality. - * - * @param {number} bidiGlobalDir The global directionality context: 1 if ltr, -1 - * if rtl, 0 if unknown. - * @param {*} text The content whose directionality is to be estimated. - * @param {boolean=} opt_isHtml Whether text is HTML/HTML-escaped. - * Default: false. - * @return {string} A Unicode bidi mark matching bidiGlobalDir, or the empty - * string when text's overall and exit directionalities both match - * bidiGlobalDir, or bidiGlobalDir is 0 (unknown). - */ -soy.$$bidiMarkAfter = function(bidiGlobalDir, text, opt_isHtml) { - var formatter = soy.$$getBidiFormatterInstance_(bidiGlobalDir); - var isHtml = opt_isHtml || - soydata.isContentKind(text, soydata.SanitizedContentKind.HTML); - return formatter.markAfterKnownDir(soydata.getContentDir(text), text + '', - isHtml); -}; - - -/** - * Returns text wrapped in a according to its - * directionality - but only if that is neither neutral nor the same as the - * global context. Otherwise, returns text unchanged. - * Always treats text as HTML/HTML-escaped, i.e. ignores mark-up and escapes - * when estimating text's directionality. - * If text has a goog.i18n.bidi.Dir-valued contentDir, this is used instead of - * estimating the directionality. - * - * @param {number} bidiGlobalDir The global directionality context: 1 if ltr, -1 - * if rtl, 0 if unknown. - * @param {*} text The string to be wrapped. Can be other types, but the value - * will be coerced to a string. - * @return {!goog.soy.data.SanitizedContent|string} The wrapped text. - */ -soy.$$bidiSpanWrap = function(bidiGlobalDir, text) { - var formatter = soy.$$getBidiFormatterInstance_(bidiGlobalDir); - - // We always treat the value as HTML, because span-wrapping is only useful - // when its output will be treated as HTML (without escaping), and because - // |bidiSpanWrap is not itself specified to do HTML escaping in Soy. (Both - // explicit and automatic HTML escaping, if any, is done before calling - // |bidiSpanWrap because the BidiSpanWrapDirective Java class implements - // SanitizedContentOperator, but this does not mean that the input has to be - // HTML SanitizedContent. In legacy usage, a string that is not - // SanitizedContent is often printed in an autoescape="false" template or by - // a print with a |noAutoescape, in which case our input is just SoyData.) If - // the output will be treated as HTML, the input had better be safe - // HTML/HTML-escaped (even if it isn't HTML SanitizedData), or we have an XSS - // opportunity and a much bigger problem than bidi garbling. - var wrappedText = formatter.spanWrapWithKnownDir( - soydata.getContentDir(text), text + '', true /* opt_isHtml */); - - // Like other directives whose Java class implements SanitizedContentOperator, - // |bidiSpanWrap is called after the escaping (if any) has already been done, - // and thus there is no need for it to produce actual SanitizedContent. - return wrappedText; -}; - - -/** - * Returns text wrapped in Unicode BiDi formatting characters according to its - * directionality, i.e. either LRE or RLE at the beginning and PDF at the end - - * but only if text's directionality is neither neutral nor the same as the - * global context. Otherwise, returns text unchanged. - * Only treats soydata.SanitizedHtml as HTML/HTML-escaped, i.e. ignores mark-up - * and escapes when estimating text's directionality. - * If text has a goog.i18n.bidi.Dir-valued contentDir, this is used instead of - * estimating the directionality. - * - * @param {number} bidiGlobalDir The global directionality context: 1 if ltr, -1 - * if rtl, 0 if unknown. - * @param {*} text The string to be wrapped. Can be other types, but the value - * will be coerced to a string. - * @return {!goog.soy.data.SanitizedContent|string} The wrapped string. - */ -soy.$$bidiUnicodeWrap = function(bidiGlobalDir, text) { - var formatter = soy.$$getBidiFormatterInstance_(bidiGlobalDir); - - // We treat the value as HTML if and only if it says it's HTML, even though in - // legacy usage, we sometimes have an HTML string (not SanitizedContent) that - // is passed to an autoescape="false" template or a {print $foo|noAutoescape}, - // with the output going into an HTML context without escaping. We simply have - // no way of knowing if this is what is happening when we get - // non-SanitizedContent input, and most of the time it isn't. - var isHtml = soydata.isContentKind(text, soydata.SanitizedContentKind.HTML); - var wrappedText = formatter.unicodeWrapWithKnownDir( - soydata.getContentDir(text), text + '', isHtml); - - // Bidi-wrapping a value converts it to the context directionality. Since it - // does not cost us anything, we will indicate this known direction in the - // output SanitizedContent, even though the intended consumer of that - // information - a bidi wrapping directive - has already been run. - var wrappedTextDir = formatter.getContextDir(); - - // Unicode-wrapping UnsanitizedText gives UnsanitizedText. - // Unicode-wrapping safe HTML or JS string data gives valid, safe HTML or JS - // string data. - // ATTENTION: Do these need to be ...ForInternalBlocks()? - if (soydata.isContentKind(text, soydata.SanitizedContentKind.TEXT)) { - return new soydata.UnsanitizedText(wrappedText, wrappedTextDir); - } - if (isHtml) { - return soydata.VERY_UNSAFE.ordainSanitizedHtml(wrappedText, wrappedTextDir); - } - if (soydata.isContentKind(text, soydata.SanitizedContentKind.JS_STR_CHARS)) { - return soydata.VERY_UNSAFE.ordainSanitizedJsStrChars( - wrappedText, wrappedTextDir); - } - - // Unicode-wrapping does not conform to the syntax of the other types of - // content. For lack of anything better to do, we we do not declare a content - // kind at all by falling through to the non-SanitizedContent case below. - // TODO(user): Consider throwing a runtime error on receipt of - // SanitizedContent other than TEXT, HTML, or JS_STR_CHARS. - - // The input was not SanitizedContent, so our output isn't SanitizedContent - // either. - return wrappedText; -}; - - -// ----------------------------------------------------------------------------- -// Generated code. - - - - - - - - -// START GENERATED CODE FOR ESCAPERS. - -/** - * @type {function (*) : string} - */ -soy.esc.$$escapeUriHelper = function(v) { - return encodeURIComponent(String(v)); -}; - -/** - * Maps characters to the escaped versions for the named escape directives. - * @type {Object.} - * @private - */ -soy.esc.$$ESCAPE_MAP_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_ = { - '\x00': '\x26#0;', - '\x22': '\x26quot;', - '\x26': '\x26amp;', - '\x27': '\x26#39;', - '\x3c': '\x26lt;', - '\x3e': '\x26gt;', - '\x09': '\x26#9;', - '\x0a': '\x26#10;', - '\x0b': '\x26#11;', - '\x0c': '\x26#12;', - '\x0d': '\x26#13;', - ' ': '\x26#32;', - '-': '\x26#45;', - '\/': '\x26#47;', - '\x3d': '\x26#61;', - '`': '\x26#96;', - '\x85': '\x26#133;', - '\xa0': '\x26#160;', - '\u2028': '\x26#8232;', - '\u2029': '\x26#8233;' -}; - -/** - * A function that can be used with String.replace. - * @param {string} ch A single character matched by a compatible matcher. - * @return {string} A token in the output language. - * @private - */ -soy.esc.$$REPLACER_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_ = function(ch) { - return soy.esc.$$ESCAPE_MAP_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_[ch]; -}; - -/** - * Maps characters to the escaped versions for the named escape directives. - * @type {Object.} - * @private - */ -soy.esc.$$ESCAPE_MAP_FOR_ESCAPE_JS_STRING__AND__ESCAPE_JS_REGEX_ = { - '\x00': '\\x00', - '\x08': '\\x08', - '\x09': '\\t', - '\x0a': '\\n', - '\x0b': '\\x0b', - '\x0c': '\\f', - '\x0d': '\\r', - '\x22': '\\x22', - '\x26': '\\x26', - '\x27': '\\x27', - '\/': '\\\/', - '\x3c': '\\x3c', - '\x3d': '\\x3d', - '\x3e': '\\x3e', - '\\': '\\\\', - '\x85': '\\x85', - '\u2028': '\\u2028', - '\u2029': '\\u2029', - '$': '\\x24', - '(': '\\x28', - ')': '\\x29', - '*': '\\x2a', - '+': '\\x2b', - ',': '\\x2c', - '-': '\\x2d', - '.': '\\x2e', - ':': '\\x3a', - '?': '\\x3f', - '[': '\\x5b', - ']': '\\x5d', - '^': '\\x5e', - '{': '\\x7b', - '|': '\\x7c', - '}': '\\x7d' -}; - -/** - * A function that can be used with String.replace. - * @param {string} ch A single character matched by a compatible matcher. - * @return {string} A token in the output language. - * @private - */ -soy.esc.$$REPLACER_FOR_ESCAPE_JS_STRING__AND__ESCAPE_JS_REGEX_ = function(ch) { - return soy.esc.$$ESCAPE_MAP_FOR_ESCAPE_JS_STRING__AND__ESCAPE_JS_REGEX_[ch]; -}; - -/** - * Maps characters to the escaped versions for the named escape directives. - * @type {Object.} - * @private - */ -soy.esc.$$ESCAPE_MAP_FOR_ESCAPE_CSS_STRING_ = { - '\x00': '\\0 ', - '\x08': '\\8 ', - '\x09': '\\9 ', - '\x0a': '\\a ', - '\x0b': '\\b ', - '\x0c': '\\c ', - '\x0d': '\\d ', - '\x22': '\\22 ', - '\x26': '\\26 ', - '\x27': '\\27 ', - '(': '\\28 ', - ')': '\\29 ', - '*': '\\2a ', - '\/': '\\2f ', - ':': '\\3a ', - ';': '\\3b ', - '\x3c': '\\3c ', - '\x3d': '\\3d ', - '\x3e': '\\3e ', - '@': '\\40 ', - '\\': '\\5c ', - '{': '\\7b ', - '}': '\\7d ', - '\x85': '\\85 ', - '\xa0': '\\a0 ', - '\u2028': '\\2028 ', - '\u2029': '\\2029 ' -}; - -/** - * A function that can be used with String.replace. - * @param {string} ch A single character matched by a compatible matcher. - * @return {string} A token in the output language. - * @private - */ -soy.esc.$$REPLACER_FOR_ESCAPE_CSS_STRING_ = function(ch) { - return soy.esc.$$ESCAPE_MAP_FOR_ESCAPE_CSS_STRING_[ch]; -}; - -/** - * Maps characters to the escaped versions for the named escape directives. - * @type {Object.} - * @private - */ -soy.esc.$$ESCAPE_MAP_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_ = { - '\x00': '%00', - '\x01': '%01', - '\x02': '%02', - '\x03': '%03', - '\x04': '%04', - '\x05': '%05', - '\x06': '%06', - '\x07': '%07', - '\x08': '%08', - '\x09': '%09', - '\x0a': '%0A', - '\x0b': '%0B', - '\x0c': '%0C', - '\x0d': '%0D', - '\x0e': '%0E', - '\x0f': '%0F', - '\x10': '%10', - '\x11': '%11', - '\x12': '%12', - '\x13': '%13', - '\x14': '%14', - '\x15': '%15', - '\x16': '%16', - '\x17': '%17', - '\x18': '%18', - '\x19': '%19', - '\x1a': '%1A', - '\x1b': '%1B', - '\x1c': '%1C', - '\x1d': '%1D', - '\x1e': '%1E', - '\x1f': '%1F', - ' ': '%20', - '\x22': '%22', - '\x27': '%27', - '(': '%28', - ')': '%29', - '\x3c': '%3C', - '\x3e': '%3E', - '\\': '%5C', - '{': '%7B', - '}': '%7D', - '\x7f': '%7F', - '\x85': '%C2%85', - '\xa0': '%C2%A0', - '\u2028': '%E2%80%A8', - '\u2029': '%E2%80%A9', - '\uff01': '%EF%BC%81', - '\uff03': '%EF%BC%83', - '\uff04': '%EF%BC%84', - '\uff06': '%EF%BC%86', - '\uff07': '%EF%BC%87', - '\uff08': '%EF%BC%88', - '\uff09': '%EF%BC%89', - '\uff0a': '%EF%BC%8A', - '\uff0b': '%EF%BC%8B', - '\uff0c': '%EF%BC%8C', - '\uff0f': '%EF%BC%8F', - '\uff1a': '%EF%BC%9A', - '\uff1b': '%EF%BC%9B', - '\uff1d': '%EF%BC%9D', - '\uff1f': '%EF%BC%9F', - '\uff20': '%EF%BC%A0', - '\uff3b': '%EF%BC%BB', - '\uff3d': '%EF%BC%BD' -}; - -/** - * A function that can be used with String.replace. - * @param {string} ch A single character matched by a compatible matcher. - * @return {string} A token in the output language. - * @private - */ -soy.esc.$$REPLACER_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_ = function(ch) { - return soy.esc.$$ESCAPE_MAP_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_[ch]; -}; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_ESCAPE_HTML_ = /[\x00\x22\x26\x27\x3c\x3e]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_NORMALIZE_HTML_ = /[\x00\x22\x27\x3c\x3e]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_ESCAPE_HTML_NOSPACE_ = /[\x00\x09-\x0d \x22\x26\x27\x2d\/\x3c-\x3e`\x85\xa0\u2028\u2029]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_NORMALIZE_HTML_NOSPACE_ = /[\x00\x09-\x0d \x22\x27\x2d\/\x3c-\x3e`\x85\xa0\u2028\u2029]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_ESCAPE_JS_STRING_ = /[\x00\x08-\x0d\x22\x26\x27\/\x3c-\x3e\\\x85\u2028\u2029]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_ESCAPE_JS_REGEX_ = /[\x00\x08-\x0d\x22\x24\x26-\/\x3a\x3c-\x3f\x5b-\x5e\x7b-\x7d\x85\u2028\u2029]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_ESCAPE_CSS_STRING_ = /[\x00\x08-\x0d\x22\x26-\x2a\/\x3a-\x3e@\\\x7b\x7d\x85\xa0\u2028\u2029]/g; - -/** - * Matches characters that need to be escaped for the named directives. - * @type RegExp - * @private - */ -soy.esc.$$MATCHER_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_ = /[\x00- \x22\x27-\x29\x3c\x3e\\\x7b\x7d\x7f\x85\xa0\u2028\u2029\uff01\uff03\uff04\uff06-\uff0c\uff0f\uff1a\uff1b\uff1d\uff1f\uff20\uff3b\uff3d]/g; - -/** - * A pattern that vets values produced by the named directives. - * @type RegExp - * @private - */ -soy.esc.$$FILTER_FOR_FILTER_CSS_VALUE_ = /^(?!-*(?:expression|(?:moz-)?binding))(?:[.#]?-?(?:[_a-z0-9-]+)(?:-[_a-z0-9-]+)*-?|-?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)(?:[a-z]{1,2}|%)?|!important|)$/i; - -/** - * A pattern that vets values produced by the named directives. - * @type RegExp - * @private - */ -soy.esc.$$FILTER_FOR_FILTER_NORMALIZE_URI_ = /^(?:(?:https?|mailto):|[^&:\/?#]*(?:[\/?#]|$))/i; - -/** - * A pattern that vets values produced by the named directives. - * @type RegExp - * @private - */ -soy.esc.$$FILTER_FOR_FILTER_IMAGE_DATA_URI_ = /^data:image\/(?:bmp|gif|jpe?g|png|tiff|webp);base64,[a-z0-9+\/]+=*$/i; - -/** - * A pattern that vets values produced by the named directives. - * @type RegExp - * @private - */ -soy.esc.$$FILTER_FOR_FILTER_HTML_ATTRIBUTES_ = /^(?!style|on|action|archive|background|cite|classid|codebase|data|dsync|href|longdesc|src|usemap)(?:[a-z0-9_$:-]*)$/i; - -/** - * A pattern that vets values produced by the named directives. - * @type RegExp - * @private - */ -soy.esc.$$FILTER_FOR_FILTER_HTML_ELEMENT_NAME_ = /^(?!script|style|title|textarea|xmp|no)[a-z0-9_$:-]*$/i; - -/** - * A helper for the Soy directive |escapeHtml - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$escapeHtmlHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_ESCAPE_HTML_, - soy.esc.$$REPLACER_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_); -}; - -/** - * A helper for the Soy directive |normalizeHtml - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$normalizeHtmlHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_NORMALIZE_HTML_, - soy.esc.$$REPLACER_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_); -}; - -/** - * A helper for the Soy directive |escapeHtmlNospace - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$escapeHtmlNospaceHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_ESCAPE_HTML_NOSPACE_, - soy.esc.$$REPLACER_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_); -}; - -/** - * A helper for the Soy directive |normalizeHtmlNospace - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$normalizeHtmlNospaceHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_NORMALIZE_HTML_NOSPACE_, - soy.esc.$$REPLACER_FOR_ESCAPE_HTML__AND__NORMALIZE_HTML__AND__ESCAPE_HTML_NOSPACE__AND__NORMALIZE_HTML_NOSPACE_); -}; - -/** - * A helper for the Soy directive |escapeJsString - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$escapeJsStringHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_ESCAPE_JS_STRING_, - soy.esc.$$REPLACER_FOR_ESCAPE_JS_STRING__AND__ESCAPE_JS_REGEX_); -}; - -/** - * A helper for the Soy directive |escapeJsRegex - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$escapeJsRegexHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_ESCAPE_JS_REGEX_, - soy.esc.$$REPLACER_FOR_ESCAPE_JS_STRING__AND__ESCAPE_JS_REGEX_); -}; - -/** - * A helper for the Soy directive |escapeCssString - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$escapeCssStringHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_ESCAPE_CSS_STRING_, - soy.esc.$$REPLACER_FOR_ESCAPE_CSS_STRING_); -}; - -/** - * A helper for the Soy directive |filterCssValue - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$filterCssValueHelper = function(value) { - var str = String(value); - if (!soy.esc.$$FILTER_FOR_FILTER_CSS_VALUE_.test(str)) { - return 'zSoyz'; - } - return str; -}; - -/** - * A helper for the Soy directive |normalizeUri - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$normalizeUriHelper = function(value) { - var str = String(value); - return str.replace( - soy.esc.$$MATCHER_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_, - soy.esc.$$REPLACER_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_); -}; - -/** - * A helper for the Soy directive |filterNormalizeUri - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$filterNormalizeUriHelper = function(value) { - var str = String(value); - if (!soy.esc.$$FILTER_FOR_FILTER_NORMALIZE_URI_.test(str)) { - return '#zSoyz'; - } - return str.replace( - soy.esc.$$MATCHER_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_, - soy.esc.$$REPLACER_FOR_NORMALIZE_URI__AND__FILTER_NORMALIZE_URI_); -}; - -/** - * A helper for the Soy directive |filterImageDataUri - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$filterImageDataUriHelper = function(value) { - var str = String(value); - if (!soy.esc.$$FILTER_FOR_FILTER_IMAGE_DATA_URI_.test(str)) { - return 'data:image/gif;base64,zSoyz'; - } - return str; -}; - -/** - * A helper for the Soy directive |filterHtmlAttributes - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$filterHtmlAttributesHelper = function(value) { - var str = String(value); - if (!soy.esc.$$FILTER_FOR_FILTER_HTML_ATTRIBUTES_.test(str)) { - return 'zSoyz'; - } - return str; -}; - -/** - * A helper for the Soy directive |filterHtmlElementName - * @param {*} value Can be of any type but will be coerced to a string. - * @return {string} The escaped text. - */ -soy.esc.$$filterHtmlElementNameHelper = function(value) { - var str = String(value); - if (!soy.esc.$$FILTER_FOR_FILTER_HTML_ELEMENT_NAME_.test(str)) { - return 'zSoyz'; - } - return str; -}; - -/** - * Matches all tags, HTML comments, and DOCTYPEs in tag soup HTML. - * By removing these, and replacing any '<' or '>' characters with - * entities we guarantee that the result can be embedded into a - * an attribute without introducing a tag boundary. - * - * @type {RegExp} - * @private - */ -soy.esc.$$HTML_TAG_REGEX_ = /<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g; - -/** - * Matches all occurrences of '<'. - * - * @type {RegExp} - * @private - */ -soy.esc.$$LT_REGEX_ = /} - * @private - */ -soy.esc.$$SAFE_TAG_WHITELIST_ = {'b': 1, 'br': 1, 'em': 1, 'i': 1, 's': 1, 'sub': 1, 'sup': 1, 'u': 1}; - -// END GENERATED CODE diff --git a/lib/blockly/demos/plane/style.css b/lib/blockly/demos/plane/style.css deleted file mode 100644 index 16e2c6f..0000000 --- a/lib/blockly/demos/plane/style.css +++ /dev/null @@ -1,97 +0,0 @@ -body { - background-color: #fff; - font-family: sans-serif; - margin-top: 0; -} -h1 { - font-weight: normal; - font-size: 140%; -} -.farSide { - text-align: right; -} -html[dir="RTL"] .farSide { - text-align: left; -} -.tab { - padding: 6px 12px; - text-decoration: none; - color: #000; -} -#selected { - font-weight: bold; - background-color: #ddd; - border-radius: 20px; -} - -/* Pulse the language menu once to draw attention to it. */ -#languageBorder { - border-radius: 4px; - animation: pulse 2s ease-in-out forwards; - animation-delay: 2s; -} -@keyframes pulse { - 0% { background-color: #fff } - 50% { background-color: #f00 } - 100% { background-color: #fff } -} - -#blockly { - height: 300px; - width: 100%; - border-style: solid; - border-color: #ddd; - border-width: 0 1px 1px 0; -} - -/* SVG Plane. */ -#plane { - overflow: hidden; -} -#fuselage { - fill: #fff; - stroke: #000; -} -#wing, #tail { - fill: #ddd; - stroke: #444; -} -.crew { - fill: #f44; - stroke: #000; -} -.seat1st { - fill: #88f; - stroke: #000; -} -.seat2nd { - fill: #8b8; - stroke: #000; -} -#seatYes, #seatNo { - font-size: 40pt; -} -text { - font-family: sans-serif; - font-size: 20pt; - fill: #444; -} -html[dir="RTL"] #plane text { - text-anchor: end; -} - -/* Slider. */ -.sliderTrack { - stroke: #aaa; - stroke-width: 6px; - stroke-linecap: round; -} -.sliderKnob { - fill: #ddd; - stroke: #bbc; - stroke-width: 1px; - stroke-linejoin: round; -} -.sliderKnob:hover { - fill: #eee; -} diff --git a/lib/blockly/demos/plane/template.soy b/lib/blockly/demos/plane/template.soy deleted file mode 100644 index cbccc9a..0000000 --- a/lib/blockly/demos/plane/template.soy +++ /dev/null @@ -1,225 +0,0 @@ -{namespace planepage} - -/** - * This is a Closure Template. - * - * See the README.txt for details. - */ - -/** - * Translated messages for use in JavaScript. - */ -{template .messages} -
      - {msg meaning="Plane.rows" desc="page text - Total number of rows of seats on an airplane.\n\nParameters:\n* %1 - number of rows of seats on an airplane. It is always an integer greater than or equal to zero."}Rows: %1{/msg} - {msg meaning="Plane.getRows" desc="block text - The number of rows on the airplane, to be used in a mathematical equation, such as: 'seats = 4 x '''rows (5)''''.\n\nParameters:\n* %1 - number of rows of seats on an airplane. It is always an integer greater than or equal to zero."}rows (%1){/msg} - {msg meaning="Plane.rows1" desc="page text - The number of rows of first-class seats on the airplane. You can see the block at [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3].\n\nParameters:\n* %1 - number of rows of first-class seats on an airplane. It is always an integer greater than or equal to zero."}1st class rows: %1{/msg} - {msg meaning="Plane.getRows1" desc="block text - The number of rows of first-class seats on the, to be used in a mathematical equation. See [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3].\n\nParameters:\n* %1 - number of rows of first-class seats on an airplane. It is always an integer greater than or equal to zero."}1st class rows (%1){/msg} - {msg meaning="Plane.rows2" desc="page text - The number of rows of second-class seats on the airplane. %1 is an integer greater or equal to zero. See [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3].\n\nParameters:\n* %1 - number of rows of second-class seats on an airplane. It is always an integer greater than or equal to zero."}2nd class rows: %1{/msg} - {msg meaning="Plane.getRows2" desc="block text - The number of rows of second-class (also called 'economy class') seats on the airplane, to be used in a mathematical expression.\n\nParameters:\n* %1 - number of rows of second-class seats on an airplane. It is always an integer greater than or equal to zero."}2nd class rows (%1){/msg} - {msg meaning="Plane.seats" desc="page text - The total number of seats on the airplane.\n\nParameters:\n* %1 - number of seats on an airplane. It is always either the next message or an integer greater than or equal to zero."}Seats: %1{/msg} - {msg meaning="Plane.placeholder" desc="page text - A word or symbol indicating that this numeric value has not yet been determined."}?{/msg} - {msg meaning="Plane.setSeats" desc="block text - The first half of a mathematical equation determining the number of seats in an airplane, such as: ''''seats =''' 4 x rows'."}seats ={/msg} -
      -{/template} - -/** - * Web page structure. - */ -{template .start} - {call .messages /} - - - - - -
      -

      Blockly‏ >{sp} - Demos‏ >{sp} - - {msg meaning="Plane.plane" desc="title - Specifies that this is Blockly's '''Plane''' (airplane) tutorial. The word 'plane' was chosen over 'airplane' in English because it is shorter and less formal."} - Plane Seat Calculator - {/msg} - - {sp} {sp} - {for $i in range(1, $ij.maxLevel + 1)} - {sp} - {if $i == $ij.level} - {$i} - {else} - {if $i < $ij.level} - - {else} - {$i} - {/if} - {/if} - {/for} -

      -
      - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {if $ij.level > 1} - - - {/if} - - -

      - {switch $ij.level} - {case 1} - {msg meaning="Plane.description1" desc="instructions - Note that in [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=1 this level], there is only one type of seat on the plane."}An airplane has a number of rows of passenger seats. Each row contains four seats.{/msg} - {case 2} - {msg meaning="Plane.description2" desc="instructions - Note that in [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=2 this level], there are two types of seats on this plane."}An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats.{/msg} - {case 3} - {msg meaning="Plane.description3" desc="instructions - Note that in [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3 this level], there are three types of seats on this plane. Be sure to use the same terms for '1st class' and '2nd class' as you did for the earlier messages."}An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats.{/msg} - {/switch} -

      -

      - {msg meaning="Plane.instructions" desc="page text - This text appears below the airplane graphic and above the space for the user to create the formula. The number of rows an the graphic may be changed by the user with a slider. See [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=1] for a picture."}Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above).{/msg} -

      - - - - - - - {call .toolbox /} -
      -{/template} - -/** - * Toolboxes for each level. - */ -{template .toolbox} - -{/template} diff --git a/lib/blockly/demos/plane/xlf/extracted_msgs.xlf b/lib/blockly/demos/plane/xlf/extracted_msgs.xlf deleted file mode 100644 index 6a4fd44..0000000 --- a/lib/blockly/demos/plane/xlf/extracted_msgs.xlf +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Rows: %1 - page text - Total number of rows of seats on an airplane.\n\nParameters:\n* %1 - number of rows of seats on an airplane. It is always an integer greater than or equal to zero. - Plane.rows - - - seats = - block text - The first half of a mathematical equation determining the number of seats in an airplane, such as: ''''seats =''' 4 x rows'. - Plane.setSeats - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - instructions - Note that in [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3 this level], there are three types of seats on this plane. Be sure to use the same terms for '1st class' and '2nd class' as you did for the earlier messages. - Plane.description3 - - - ? - page text - A word or symbol indicating that this numeric value has not yet been determined. - Plane.placeholder - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - page text - This text appears below the airplane graphic and above the space for the user to create the formula. The number of rows an the graphic may be changed by the user with a slider. See [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=1] for a picture. - Plane.instructions - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - instructions - Note that in [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=2 this level], there are two types of seats on this plane. - Plane.description2 - - - 1st class rows (%1) - block text - The number of rows of first-class seats on the, to be used in a mathematical equation. See [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3].\n\nParameters:\n* %1 - number of rows of first-class seats on an airplane. It is always an integer greater than or equal to zero. - Plane.getRows1 - - - 2nd class rows: %1 - page text - The number of rows of second-class seats on the airplane. %1 is an integer greater or equal to zero. See [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3].\n\nParameters:\n* %1 - number of rows of second-class seats on an airplane. It is always an integer greater than or equal to zero. - Plane.rows2 - - - Seats: %1 - page text - The total number of seats on the airplane.\n\nParameters:\n* %1 - number of seats on an airplane. It is always either the next message or an integer greater than or equal to zero. - Plane.seats - - - Plane Seat Calculator - title - Specifies that this is Blockly's '''Plane''' (airplane) tutorial. The word 'plane' was chosen over 'airplane' in English because it is shorter and less formal. - Plane.plane - - - rows (%1) - block text - The number of rows on the airplane, to be used in a mathematical equation, such as: 'seats = 4 x '''rows (5)''''.\n\nParameters:\n* %1 - number of rows of seats on an airplane. It is always an integer greater than or equal to zero. - Plane.getRows - - - 1st class rows: %1 - page text - The number of rows of first-class seats on the airplane. You can see the block at [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=3].\n\nParameters:\n* %1 - number of rows of first-class seats on an airplane. It is always an integer greater than or equal to zero. - Plane.rows1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - instructions - Note that in [http://blockly-share.appspot.com/static/apps/plane/plane.html?lang=en&level=1 this level], there is only one type of seat on the plane. - Plane.description1 - - - 2nd class rows (%1) - block text - The number of rows of second-class (also called 'economy class') seats on the airplane, to be used in a mathematical expression.\n\nParameters:\n* %1 - number of rows of second-class seats on an airplane. It is always an integer greater than or equal to zero. - Plane.getRows2 - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ar.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ar.xlf deleted file mode 100644 index c9b8e16..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ar.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - الصفوف: %1 - - - seats = - المقاعد = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - طائرة بمقعدين في مقطورة الطيّار (للطيار ومساعده) وعدد من المقاعد في صفوف الدرجة الأولى والثانية. كل صف من صفوف الدرجة الأولى يحتوي على أربعة مقاعد. ويحتوي كل صف في الدرجة الثانية على خمسة مقاعد. - - - ? - ؟ - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - لبناء صيغة (أدناه) تقوم بحساب إجمالي عدد المقاعد في الطائرة عند تغيير الصفوف (أعلاه). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - طائرة بمقعدين في مقطورة الطيّار (للطيار ومساعده) وعدد من الصفوف يحتوي كل صف على أربعة مقاعد. - - - 1st class rows (%1) - صفوف الطبقة الأولى (%1) - - - 2nd class rows: %1 - صفوف الفئة الثانية: %1 - - - Seats: %1 - المقاعد: %1 - - - Plane Seat Calculator - آلة حاسبة لمقعد الطائرة - - - rows (%1) - الصفوف (%1) - - - 1st class rows: %1 - صفوف الطبقة الأولى: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - هنالك طائرة تحتوي على عدد من صفوف مقاعد الركاب. كل صف يحتوي على أربعة مقاعد. - - - 2nd class rows (%1) - صفوف الفئة الثانية: (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_be-tarask.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_be-tarask.xlf deleted file mode 100644 index 4580b5f..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_be-tarask.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Радкоў: %1 - - - seats = - месцаў = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Самалёт мае два месцы ў кабіне экіпажа (пілот і другі пілот), і некалькі пасажырскіх шэрагаў месцаў 1-га кляса і 2-га кляса. Кожны шэраг 1-га кляса утрымлівае чатыры месцы. Кожны шэраг 2-га кляса ўтрымлівае пяць месцаў. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Пабудаваць формулу (ніжэй), якая падлічвае агульную колькасьць месцаў у самалёце пры зьмене радоў (гл. вышэй). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Самалёт мае два месцы ў кабіне экіпажа (пілот і другі пілот), і некалькі шэрагаў пасажырскіх сядзеньняў. Кожны шэраг утрымлівае чатыры месцы. - - - 1st class rows (%1) - радкі першага клясу (%1) - - - 2nd class rows: %1 - Радкі другога клясу: %1 - - - Seats: %1 - Месцаў: %1 - - - Plane Seat Calculator - Калькулятар месцаў у самалёце - - - rows (%1) - радкоў (%1) - - - 1st class rows: %1 - Радкі першага клясу: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Самалёт мае некалькі шэрагаў пасажырскіх сядзеньняў. Кожная шэраг утрымлівае чатыры месцы. - - - 2nd class rows (%1) - радкі другога клясу (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_br.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_br.xlf deleted file mode 100644 index 4a7fc0c..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_br.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Renkennadoù : %1 - - - seats = - azezennoù = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - En un nijerez ez eus div azezenn el logell leviañ(evit al loman hag an eil loman), hag un toullad renkennadoù azezennoù tremenidi kentañ hag eil klas. Peder azezenn zo e pep renkennad kentañ klas. Pemp azezenn zo e pemp renkennad eil klas. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Sevel ur formulenn (amañ dindan) evit jediñ an niver a azezennoù en holl en nijerez pa vez kemmet an niver a renkennadoù (amañ a-us). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - En un nijerez ez eus div azezenn el logell leviañ(evit al loman hag an eil loman), hag ur toullad renkennadoù azezennoù evit an dremenidi. Peder azezenn zo e pep renkennad. - - - 1st class rows (%1) - Renkennadoù kentañ klas (%1) - - - 2nd class rows: %1 - Renkennadoù eil klas : %1 - - - Seats: %1 - Azezennoù : %1 - - - Plane Seat Calculator - Jederez azezenn nijerez - - - rows (%1) - renkennadoù (%1) - - - 1st class rows: %1 - Renkennadoù kentañ klas : %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un nijerez he deus un toullad renkennadoù azezennoù evit ar veajourien. Peder azezenn a zo e pep renkennad. - - - 2nd class rows (%1) - Renkennadoù eil klas (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ca.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ca.xlf deleted file mode 100644 index 17dfe65..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ca.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Files: %1 - - - seats = - seients = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Un avió té dos seients en la cabina de vol (pel pilot i copilot) i un nombre de files per seients de passatgers de primera classe i de segona classe. Cada fila de primera classe conté quatre seients. Cada fila de segona classe conté cinc seients. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Construïu una fórmula (a sota) que calculi el nombre total de seients de l'avió a mida que canviïn les files (a dalt). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Un avió té dos seients en la cabina de vol (pel pilot i pel copilot) i un nombre de files de seients de passatgers. Cada fila conté quatre seients. - - - 1st class rows (%1) - files de primera classe (%1) - - - 2nd class rows: %1 - files de segona classe: %1 - - - Seats: %1 - Seients: %1 - - - Plane Seat Calculator - Calculadora de seients d'avió - - - rows (%1) - files (%1) - - - 1st class rows: %1 - files de primera classe: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un avió té un nombre de files de seients de passatgers. Cada fila conté quatre seients. - - - 2nd class rows (%1) - files de segona classe (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_da.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_da.xlf deleted file mode 100644 index 752fe24..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_da.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rækker: %1 - - - seats = - sæder = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Et fly har to pladser i cockpittet (til pilot og med-pilot), og et antal rækker af 1. klasses og 2. klasses passagersæder. Hver 1. klasses række indeholder fire sæder. Hver 2. klasses række indeholder fem sæder. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Opbyg en formel (nedenfor), der beregner det samlede antal pladser på flyet, hvis antal rækker ændres (ovenfor). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Et fly har to pladser i cockpittet (til pilot og med-pilot), og et antal rækker af passagersæder. Hver række indeholder fire sæder. - - - 1st class rows (%1) - 1. klasse rækker (%1) - - - 2nd class rows: %1 - 2. klasse rækker: %1 - - - Seats: %1 - Sæder: %1 - - - Plane Seat Calculator - Flysædelommeregner - - - rows (%1) - rækker (%1) - - - 1st class rows: %1 - 1. klasse rækker: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Et fly har et antal rækker af passagersæder. Hver række indeholder fire sæder. - - - 2nd class rows (%1) - 2. klasse rækker (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_de.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_de.xlf deleted file mode 100644 index f06bc77..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_de.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Reihen: %1 - - - seats = - Sitze = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Ein Flugzeug hat zwei Sitze im Pilotenstand (für den Piloten und Co-Piloten) und eine Anzahl an Reihen mit Passagiersitzen der 1. und 2. Klasse. Jede 1.-Klasse-Reihe enthält vier Sitze. Jede 2.-Klasse-Reihe enthält fünf Sitze. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Erstelle eine Formel (unten), die die gesamte Anzahl an Sitzen im Flugzeug berechnet, wenn die Reihen (oben) geändert werden. - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Ein Flugzeug hat zwei Sitze im Pilotenstand (für den Piloten und Co-Piloten) und eine Anzahl an Reihen mit Passagiersitzen. Jede Reihe enthält vier Sitze. - - - 1st class rows (%1) - Reihen der 1. Klasse (%1) - - - 2nd class rows: %1 - Reihen der 2. Klasse: %1 - - - Seats: %1 - Sitze: %1 - - - Plane Seat Calculator - Flugzeugsitzrechner - - - rows (%1) - Reihen (%1) - - - 1st class rows: %1 - Reihen der 1. Klasse: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Ein Flugzeug hat eine Anzahl an Reihen mit Passagiersitzen. Jede Reihe enthält vier Sitze. - - - 2nd class rows (%1) - Reihen der 2. Klasse (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_el.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_el.xlf deleted file mode 100644 index 5acb291..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_el.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Σειρές: %1 - - - seats = - καθίσματα = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Ένα αεροπλάνο έχει δύο καθίσματα στον θάλαμο διακυβέρνησης (για τον κυβερνήτη και τον συγκυβερνήτη), καθώς και έναν αριθμό σειρών καθισμάτων για την 1η και 2η θέση. Κάθε σειρά της 1ης θέσης έχει τέσσερα καθίσματα και κάθε σειρά της 2ης θέσης έχει πέντε καθίσματα. - - - ? - ; - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Φτιάξε έναν τύπο (κάτω) που θα υπολογίζει τον συνολικό αριθμό καθισμάτων του αεροπλάνου καθώς αλλάζουν οι σειρές (πάνω). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Ένα αεροπλάνο έχει δύο καθίσματα στον θάλαμο διακυβέρνησης (για τον κυβερνήτη και τον συγκυβερνήτη), καθώς και έναν αριθμό από σειρές καθισμάτων επιβατών. Κάθε σειρά έχει τέσσερα καθίσματα. - - - 1st class rows (%1) - Σειρές 1ης θέσης (%1) - - - 2nd class rows: %1 - Σειρές 2ης θέσης: %1 - - - Seats: %1 - Καθίσματα: %1 - - - Plane Seat Calculator - Υπολογισμός Θέσεων Σε Αεροπλάνο - - - rows (%1) - σειρές (%1) - - - 1st class rows: %1 - Σειρές 1ης θέσης: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Ένα αεροπλάνο έχει έναν συγκεκριμένο αριθμό σειρών καθισμάτων επιβατών. Κάθε σειρά έχει τέσσερα καθίσματα. - - - 2nd class rows (%1) - Σειρές 2ης θέσης (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_en.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_en.xlf deleted file mode 100644 index e471a00..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_en.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rows: %1 - - - seats = - seats = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - - - 1st class rows (%1) - 1st class rows (%1) - - - 2nd class rows: %1 - 2nd class rows: %1 - - - Seats: %1 - Seats: %1 - - - Plane Seat Calculator - Plane Seat Calculator - - - rows (%1) - rows (%1) - - - 1st class rows: %1 - 1st class rows: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - An airplane has a number of rows of passenger seats. Each row contains four seats. - - - 2nd class rows (%1) - 2nd class rows (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_es.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_es.xlf deleted file mode 100644 index e2022b5..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_es.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Filas: %1 - - - seats = - asientos = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Un avión tiene dos asientos en la cabina de vuelo (para el piloto y co-piloto), y un número de filas de asientos para pasajeros de primera y segunda clase. Cada fila de la primera clase contiene cuatro asientos. Cada fila de la segunda clase contiene cinco asientos. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Construir una fórmula (abajo) que calcule el número total de asientos en el avión cuando las filas sean cambiadas (arriba). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Un avión tiene dos asientos en la cabina de vuelo (para el piloto y co-piloto), y un número de filas de asientos de pasajeros. Cada fila contiene cuatro asientos. - - - 1st class rows (%1) - Filas de primera clase: (%1) - - - 2nd class rows: %1 - Filas de segunda clase: %1 - - - Seats: %1 - Asientos: %1 - - - Plane Seat Calculator - Calculadora de asientos de avión - - - rows (%1) - filas (%1) - - - 1st class rows: %1 - Filas de primera clase: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un avión  tiene un número de filas de asientos de pasajeros. Cada fila contiene cuatro asientos. - - - 2nd class rows (%1) - Filas de segunda clase: (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_et.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_et.xlf deleted file mode 100644 index d88be0a..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_et.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Ridu: %1 - - - seats = - istmete arv = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Lennuki kokpitis on kaks istet (üks kummalegi piloodile), mingi arv ridu 1. klassi reisijatele ja mingi arv ridu 2. klassi reisijatele. Igas 1. klassi reas on neli istet, igas 2. klassi reas viis istet. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Ehita plokkidest valem, mis arvutab istmete arvu lennukis õigesti sõltumata ridade arvust (seda saad muuta lennuki juures oleva liuguriga). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Lennuki kokpitis on kaks istet (üks kummalegi piloodile) ja mingi arv istemridu reisijatele. Igas reas on neli istet. - - - 1st class rows (%1) - 1. klassi ridu (%1) - - - 2nd class rows: %1 - 2. klassi ridu: %1 - - - Seats: %1 - Istmeid: %1 - - - Plane Seat Calculator - Lennukiistmete kalkulaator - - - rows (%1) - rows (%1) - - - 1st class rows: %1 - 1. klassi ridu: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Lennukis on reisijate istmed mitmes reas. Igas reas on neli istet. - - - 2nd class rows (%1) - 2. klassi ridu (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_fa.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_fa.xlf deleted file mode 100644 index 264ec31..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_fa.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - ردیف: %1 - - - seats = - صندلی‌ها = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - یک هواپیما دو صندلی در کابین خلبان دارد (برای خلبان و کمک خلبان) و تهداد از صندلی‌ها مسافرین درجه یک و درجه دو. هر ردیف درجه یک شامل چهار صندلی است. هر ردیف درجه دو شامل پنج صندلی است. - - - ? - ؟ - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - یک فرمول بسازید (پایین) که تعداد کل صندلی‌های هواپیما با تغییر ردیف را حساب کند (بالا). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - یک هواپیما دو صندلی در عرشهٔ پرواز دارد (برای خلبان و کمک خلبان) و تعدادی صندلی مسافرین. هر ردیف شامل چهار صندلی است. - - - 1st class rows (%1) - اولین کلاس ردیف‌ها (%1) - - - 2nd class rows: %1 - دومین کلاس ردیف: %1 - - - Seats: %1 - صندلی‌ها: %1 - - - Plane Seat Calculator - محاسبه‌گر صندلی‌های هواپیما - - - rows (%1) - ردیف‌ها (%1) - - - 1st class rows: %1 - اولین ردیف کلاس: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - یک هواپیما تعداد از صندلی‌های مسافرین را دارد. هر ردیف شمال چهار صندلی است. - - - 2nd class rows (%1) - دومین کلاس ردیف‌ها (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_fr.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_fr.xlf deleted file mode 100644 index 9485da2..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_fr.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rangées : %1 - - - seats = - sièges = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Un avion a deux sièges dans la cabine de pilotage (pour le pilote et le copilote), et un certain nombre de rangées de sièges passager de première et seconde classes. Chaque rangée de première classe contient quatre sièges. Chaque rangée de seconde classe contient cinq sièges. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Construire une formule (ci-dessous) qui calcule le nombre total de sièges dans l’avion quand le nombre de rangées est modifié (ci-dessus). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Un avion a deux sièges dans le poste de pilotage (pour le pilote et le copilote), et un certain nombre de rangées de sièges passager. Chaque rangée contient quatre sièges. - - - 1st class rows (%1) - rangées de première classe (%1) - - - 2nd class rows: %1 - rangées de seconde classe : %1 - - - Seats: %1 - Sièges : %1 - - - Plane Seat Calculator - Calculateur de sièges d’avion - - - rows (%1) - rangées (%1) - - - 1st class rows: %1 - rangées de première classe : %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un avion a un nombre de rangées de sièges passager. Chaque rangée contient quatre sièges. - - - 2nd class rows (%1) - rangées de seconde classe (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_he.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_he.xlf deleted file mode 100644 index 55ac148..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_he.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - שורות: %1 - - - seats = - מושבים = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - במטוס יש שני מושבים עבור הצוות (בשביל הטייס וטייס המשנה), ומספר שורות מושבים במחלקת הנוסעים הראשונה ובמחלקת הנוסעים השנייה. כל שורה במחלקה הראשונה מכילה ארבעה מושבים. כל שורה במחלקה השנייה מכילה חמישה מושבים. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - בנה נוסחה (למטה) אשר תחשב את סך כל המושבים במטוס בהתאם לשינוי מספר השורות (למעלה). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - במטוס יש שני מושבים עבור הצוות (בשביל הטייס וטייס המשנה), ומספר שורות עם מושבי נוסעים. בכל שורה יש ארבעה מושבים. - - - 1st class rows (%1) - שורות במחלקה ראשונה (%1) - - - 2nd class rows: %1 - שורות במחלקה שנייה: %1 - - - Seats: %1 - מושבים: %1 - - - Plane Seat Calculator - מחשבון מושב במטוס - - - rows (%1) - שורות (%1) - - - 1st class rows: %1 - שורות במחלקה ראשונה: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - במטוס יש מספר שורות עם מושבי נוסעים. בכל שורה יש ארבעה מושבים. - - - 2nd class rows (%1) - שורות במחלקה שנייה: (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_hrx.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_hrx.xlf deleted file mode 100644 index 263d305..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_hrx.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Reihe: %1 - - - seats = - Sitze = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - En Fluchzeich hot zwooi Sitze im Pilotstand (für den Pilot und Co-Pilot) und en Oonzohl an Reihe mit Passagiersitze der 1. und 2. Klasse. Jede 1.-Klasse-Reih enthält vier Sitze. Jede 2.-Klasse-Reih enthält fünf Sitze. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Erstell en Formel (unne), die die gesamte Oonzohl an Sitze im Fluchzeich berechnet, wenn die Reihe (uwe) geännert sin. - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - En Fluchzeich hot zwooi Sitze im Pilotestand (für den Pilot und Co-Pilot) und en Oonzohl an Reihe mit Passagiersitze. Jede Reih enthält vier Sitze. - - - 1st class rows (%1) - Reihe von der 1. Klasse (%1) - - - 2nd class rows: %1 - Reihe von der 2. Klasse: %1 - - - Seats: %1 - Sitz: %1 - - - Plane Seat Calculator - Fluchzeichsitzrechner - - - rows (%1) - Reihe (%1) - - - 1st class rows: %1 - Reihe von der 1. Klasse: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - En Fluchzeich hot en Oonzohl an Reihe mit Passagiersitze. Jede Reih enthält vier Sitze. - - - 2nd class rows (%1) - Reihe von der 2. Klasse (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_hu.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_hu.xlf deleted file mode 100644 index c44d1aa..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_hu.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Sorok száma: %1 - - - seats = - Ülések száma = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Egy repülőgépnek 2 ülése van a pilótafülkében (a pilótának és a másodpilótának), az utasok 1. és 2. osztályon utazhatnak. Az 1. osztályon négy szék van egy sorban. A 2. osztályon öt szék van egy sorban. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Készítsd el a képletet (lent) amivel kiszámolható, hogy hány ülés van összesen a repülőgépen annak függvényében, ahogy (fent) állítod a sorok számát. - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Egy repülőgépnek 2 ülése van a pilótafülkében (a pilótának és a másodpilótának), az utasok több sorban ülnek az utastérben. Az utastér minden sorában négy szék van. - - - 1st class rows (%1) - 1. osztály sorai (%1) - - - 2nd class rows: %1 - 2. osztály: %1 sor - - - Seats: %1 - Ülések száma összesen: %1 - - - Plane Seat Calculator - Repülőgép alkalmazás - - - rows (%1) - Sorok száma (%1) - - - 1st class rows: %1 - 1. osztály: %1 sor - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Egy repülőgépen az utasok több sorban ülnek az utastérben. Az utastér minden sorában négy szék van. - - - 2nd class rows (%1) - 2. osztály sorai (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ia.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ia.xlf deleted file mode 100644 index 83ae2c6..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ia.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Filas: %1 - - - seats = - sedes = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Un avion ha duo sedes in le cabina (pro le pilota e le copilota) e un numero de filas de sedes pro passageros del prime classe e del secunde classes. Cata fila del prime classe contine quatro sedes. Cata fila del secunde classe contine cinque sedes. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Construe un formula (ci infra) que calcula le numero total de sedes in le avion quando le numero de filas es cambiate (ci supra). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Un avion ha duo sedes in le cabina (pro le pilota e le copilota) e un numero de filas de sedes pro passageros. Cata fila contine quatro sedes. - - - 1st class rows (%1) - filas de prime classe (%1) - - - 2nd class rows: %1 - Filas de secunde classe: %1 - - - Seats: %1 - Sedes: %1 - - - Plane Seat Calculator - Calculator de sedias de avion - - - rows (%1) - filas (%1) - - - 1st class rows: %1 - Filas de prime classe: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un avion ha un numero de filas de sedes pro passageros. Cata fila contine quatro sedes. - - - 2nd class rows (%1) - filas de secunde classe (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_is.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_is.xlf deleted file mode 100644 index 3810f4b..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_is.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Raðir: %1 - - - seats = - sæti = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Flugvél er með tvö sæti í stjórnklefa (fyrir flugmanninn og aðstoðarflugmanninn) og einhvern fjölda sætaraða fyrir farþega á 1. og 2. farrými. Hver sætaröð á 1. farrými hefur fjögur sæti. Hver sætaröð á 2. farrými hefur fimm sæti. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Búðu til formúlu (hér fyrir neðan) sem reiknar heildarfjölda sæta í flugvélinni eftir því sem röðunum er breytt (hér fyrir ofan). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Flugvél er með tvö sæti í stjórnklefa (fyrir flugmanninn og aðstoðarflugmanninn) og einhvern fjölda sætaraða fyrir farþega. Hver sætaröð hefur fjögur sæti. - - - 1st class rows (%1) - raðir 1. farrými (%1) - - - 2nd class rows: %1 - Raðir 2. farrými: %1 - - - Seats: %1 - Sæti: %1 - - - Plane Seat Calculator - Flugsætareiknir - - - rows (%1) - raðir (%1) - - - 1st class rows: %1 - Raðir 1. farrými: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Flugvél er með einhvern fjölda sætaraða fyrir farþega. Í hverri röð eru fjögur sæti. - - - 2nd class rows (%1) - raðir 2. farrými (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_it.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_it.xlf deleted file mode 100644 index 27bad0d..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_it.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - File: %1 - - - seats = - sedili = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Un aereo ha due posti nella cabina di pilotaggio (per il pilota e il co-pilota), e un numero di file in prima e seconda classe, con i posti a sedere dei passeggeri. Ogni fila della prima classe contiene quattro posti. Quelle invece della seconda classe, ne contengono cinque. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Costruisci una formula (sotto) che calcola il numero totale di posti a sedere su un aeroplano, così come cambiano le file di posti (sopra). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Un aeroplano ha due posti a sedere nella cabina di pilotaggio (per il pilota e co-pilota), e un numero di file con i posti a sedere dei passeggeri. Ogni fila contiene quattro posti. - - - 1st class rows (%1) - file 1ª classe (%1) - - - 2nd class rows: %1 - File 2ª classe: %1 - - - Seats: %1 - Sedili: %1 - - - Plane Seat Calculator - Calcolo posti aereo - - - rows (%1) - file (%1) - - - 1st class rows: %1 - File 1ª classe: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un aeroplano ha un numero di file contenenti i posti a sedere dei passeggeri. Ogni fila, contiene quattro posti a sedere. - - - 2nd class rows (%1) - File 2ª classe (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ja.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ja.xlf deleted file mode 100644 index b04624a..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ja.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - 列の数: %1 - - - seats = - 座席の数 = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - 飛行機には、操縦室の 2 つの座席 (操縦士と副操縦士) と、ファーストクラスとセカンドクラスの乗客の座席の列があります。それぞれの列に、ファーストクラスでは 4 つの座席、セカンドクラスでは 5 つの座席があります。 - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - 飛行機の座席の数を計算する式を、上で列の数を変更しても正しくなるように、下に入力してください。 - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - 飛行機には、操縦室の 2 つの座席 (操縦士と副操縦士) と、乗客の座席の列があります。それぞれの列に 4 つの座席があります。 - - - 1st class rows (%1) - ファーストクラスの列数 (%1) - - - 2nd class rows: %1 - セカンドクラスの列数: %1 - - - Seats: %1 - 座席の数: %1 - - - Plane Seat Calculator - 飛行機座席計算機 - - - rows (%1) - 列の数 (%1) - - - 1st class rows: %1 - ファーストクラスの列数: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - 飛行機に乗客の座席の列があります。それぞれの列に 4 つの座席があります。 - - - 2nd class rows (%1) - セカンドクラスの列数 (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ko.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ko.xlf deleted file mode 100644 index 07e2328..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ko.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - 행 수: %1 - - - seats = - 좌석수 = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - 비행기는 비행 갑판(조종사와 부조종사용)에서 좌석 두 개가 있고, 1등석과 2등석 승객 좌석의 행 수가 있습니다. 각 1등석 행에는 시트 네 개가 포함되어 있습니다. 각 2등석 행에는 시트 다섯 개가 포함되어 있습니다. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - 행이 바뀐(위) 비행기에 좌석의 총 수를 계산하는 공식(아래)을 구축하세요. - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - 비행기는 비행 갑판(조종사와 부조종사용)에서 좌석 두 개가 있고, 승객 좌석의 행 수가 있습니다. 각 행에는 시트 네 개가 포함되어 있습니다. - - - 1st class rows (%1) - 1등석 행 수 (%1) - - - 2nd class rows: %1 - 2등석 행 수: %1 - - - Seats: %1 - 좌석 수: %1 - - - Plane Seat Calculator - 비행기 좌석 계산기 - - - rows (%1) - 행 수 (%1) - - - 1st class rows: %1 - 1등석 행 수: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - 비행기는 승객 좌석의 행 수가 있습니다. 각 행에는 시트 네 개가 포함되어 있습니다. - - - 2nd class rows (%1) - 2등석 행 수 (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ms.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ms.xlf deleted file mode 100644 index c34f084..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ms.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Baris: %1 - - - seats = - tempat duduk = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Sebuah kapal terbang mempunyai tempat duduk di kokpit (untuk juruterbang dan pembantunya) dan sebilangan baris tempat duduk penumpang kelas pertama dan kelas kedua. Setiap baris kelas pertama mengandungi empat tempat duduk. Setiap baris kelas pertama mengandungi lima tempat duduk. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Wujudkan formula (di bawah) yang mengira jumlah tempat duduk di dalam kapal terbang sedangkan baris-barisnya diubah (di atas). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Sebuah kapal terbang mempunyai tempat duduk di kokpit (untuk juruterbang dan pembantunya) dan sebilangan baris tempat duduk penumpang. Setiap baris mengandungi empat tempat duduk. - - - 1st class rows (%1) - baris kelas pertama (%1) - - - 2nd class rows: %1 - Baris kelas kedua: %1 - - - Seats: %1 - Tempat duduk: %1 - - - Plane Seat Calculator - Pengira Tempat Duduk Kapal Terbang - - - rows (%1) - baris (%1) - - - 1st class rows: %1 - Baris kelas pertama: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Sebuah kapal terbang mempunyai sebilangan baris tempat duduk penumpang. Setiap baris mengandungi empat tempat duduk. - - - 2nd class rows (%1) - baris kelas kedua (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_nb.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_nb.xlf deleted file mode 100644 index 99c9c6a..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_nb.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rader: %1 - - - seats = - seter = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Et fly har to seter i cockpit (for piloten og andrepiloten), og et antall rader med passasjerseter på første og andre klasse. Hver av radene på første klasse har fire seter. Hver av radene på andre klasse har fem seter. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Bygg en formel (under) som beregner det totale antall seter på flyet etter hvert som radene endres (over). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Et fly har to seter i cockpit (for piloten og andrepiloten), og et antall rader med passasjerseter. Hver rad inneholder fire seter. - - - 1st class rows (%1) - Rader i første klasse (%1) - - - 2nd class rows: %1 - Rader i andre klasse: %1 - - - Seats: %1 - Seter: %1 - - - Plane Seat Calculator - Flysetekalkulator - - - rows (%1) - rader (%1) - - - 1st class rows: %1 - Rader i første klasse: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Et fly har et antall rader med passasjerseter. Hver rad inneholder fire seter. - - - 2nd class rows (%1) - Rader i andre klasse (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_nl.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_nl.xlf deleted file mode 100644 index 6f36fa0..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_nl.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rijen: %1 - - - seats = - stoelen= - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Een vliegtuig heeft twee stoelen in de cockpit (voor de piloot en de copiloot) en een aantal rijen voor 1e klasse en 2e klasse passagiers. Iedere rij in de 1e klasse heeft vier stoelen. Iedere rij in de 2e klasse heeft vijf stoelen. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Maak hieronder een formule die het totale aantal stoelen in het vliegtuig berekent als het aantal rijen hierboven wordt aangepast. - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Een vliegtuig heeft twee stoelen in de cockpit (voor de piloot en de copiloot) en een aantal rijen met stoelen voor passagiers. Iedere rij bevat vier stoelen. - - - 1st class rows (%1) - Rijen 1e klas (%1) - - - 2nd class rows: %1 - Rijen 2e klas: %1 - - - Seats: %1 - Zitplaatsen: %1 - - - Plane Seat Calculator - Vliegtuigstoelencalculator - - - rows (%1) - rijen (%1) - - - 1st class rows: %1 - Rijen 1e klas: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Een vliegtuig heeft een aantal rijen met stoelen. Iedere rij heeft vier stoelen. - - - 2nd class rows (%1) - Rijen 2e klas (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_pl.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_pl.xlf deleted file mode 100644 index 4c8b044..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_pl.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rzędów: %1 - - - seats = - siedzeń = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Samolot ma dwa miejsca w kabinie pilotów (dla pierwszego i drugiego pilota) oraz rzędy siedzeń dla pasażerów pierwszej i drugiej klasy. Każdy rząd pierwszej klasy składa się z czterech siedzeń. Każdy rząd drugiej klasy składa się z pięciu siedzeń. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Zbuduj wzór (poniżej), który pozwala obliczyć łączną liczbę siedzeń w samolocie w funkcji zmieniającej się liczby rzędów (powyżej). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Samolot ma dwa miejsca w kabinie pilotów (dla pierwszego i drugiego pilota) oraz rzędy siedzeń dla pasażerów. Każdy taki rząd składa się z czterech siedzeń. - - - 1st class rows (%1) - Rzędów w pierwszej klasie (%1) - - - 2nd class rows: %1 - Rzędów w drugiej klasie: %1 - - - Seats: %1 - Siedzeń: %1 - - - Plane Seat Calculator - Kalkulator miejsc w samolocie. - - - rows (%1) - rzędów (%1) - - - 1st class rows: %1 - Rzędów w pierwszej klasie: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Samolot ma kilka rzędów siedzeń pasażerów. Każdy rząd zawiera cztery miejsca. - - - 2nd class rows (%1) - Rzędów w drugiej klasie (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_pms.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_pms.xlf deleted file mode 100644 index 0fef912..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_pms.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Linie: %1 - - - seats = - sedij = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - N'avion a l'ha doi sedij ant la cabin-a ëd pilotage (për ël pilòta e ël cò-pilòta) e un chèich nùmer ëd file ëd sedij pr'ij passagé ëd prima e sconda classa. Minca fila ëd prima classa a conten quatr sedij. Minca fila ëd seconda classa a conten sinch sedij. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Fabriché na fórmola (sì-sota) ch'a fa 'l cont dël nùmer total ëd sedij ant l'avion cand che ël nùmer dle file a cangia (sì-dzora). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - N'avion a l'ha doi sedij ant la cabin-a ëd pilotage (për ël pilòta e ël cò-pilòta), e un chèich nùmer ëd file ëd sedij pr'ij passagé. Minca fila a conten quatr sedij. - - - 1st class rows (%1) - linie ëd prima classa (%1) - - - 2nd class rows: %1 - linie ëd seconda classa: %1 - - - Seats: %1 - Sedij: %1 - - - Plane Seat Calculator - Calcolator ëd sedij d'avion - - - rows (%1) - linie (%1) - - - 1st class rows: %1 - linie ëd prima classa: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - N'avion a l'ha un nùmer ëd file ëd sedij da passëgé. Minca fila a l'ha quatr sedij. - - - 2nd class rows (%1) - linie ëd seconda classa (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_pt-br.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_pt-br.xlf deleted file mode 100644 index 7bdd9cc..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_pt-br.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Filas: %1 - - - seats = - assentos = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Um avião tem dois assentos na cabine de comando (para o piloto e o copiloto) e um número de filas de assentos na primeira e na segunda classe. Cada fila da primeira classe contém quatro assentos. Cada fila da segunda classe contém cinco assentos. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Elabore uma fórmula (abaixo) que calcule o número total de assentos no avião a medida que as filas são alteradas (acima). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Um avião tem dois assentos na cabine de comando (para o piloto e o copiloto) e um número de filas de assentos para os passageiros. Cada fila contém quatro assentos. - - - 1st class rows (%1) - filas na primeira classe (%1) - - - 2nd class rows: %1 - filas na segunda classe: %1 - - - Seats: %1 - Assentos: %1 - - - Plane Seat Calculator - Calculadora de Assentos em Avião - - - rows (%1) - filas (%1) - - - 1st class rows: %1 - filas na primeira classe: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Um avião tem um número de filas de assentos para os passageiros. Cada fila contém quatro assentos. - - - 2nd class rows (%1) - filas na segunda classe (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ro.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ro.xlf deleted file mode 100644 index 614a3bd..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ro.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rânduri: %1 - - - seats = - scaune = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Un avion are două scaune în carlingă (pentru pilot și copilot) și un număr de rânduri cu scaune de clasa I și clasa a II-a pentru pasageri. Fiecare rând de clasa I conține patru scaune. Fiecare rând de clasa a II-a conține cinci scaune. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Construiește o formulă (mai jos) care calculează numărul total de locuri dintr-un avion în timp ce rândurile se schimbă (mai sus). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Un avion are două scaune în carlingă (pentru pilot și copilot) și un număr de rânduri cu scaune pentru pasageri. Fiecare rând conține patru scaune. - - - 1st class rows (%1) - rânduri de clasa I (%1) - - - 2nd class rows: %1 - rânduri de clasa a II-a: %1 - - - Seats: %1 - Scaune: %1 - - - Plane Seat Calculator - Calculator pentru locurile dintr-un avion - - - rows (%1) - rânduri (%1) - - - 1st class rows: %1 - rânduri de clasa I: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Un avion are un număr de rânduri cu scaune pentru pasageri. Fiecare rând conține patru scaune. - - - 2nd class rows (%1) - rânduri de clasa a II-a (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_ru.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_ru.xlf deleted file mode 100644 index d25b254..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_ru.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Рядов: %1 - - - seats = - места = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - В самолёте 2 места для пилота и его помощника, несколько рядов с пассажирскими местами первого класса, а также несколько рядов с пассажирскими местами второго класса. В каждом ряду первого класса 4 места. В каждом ряду второго класса 5 мест. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Постройте формулу в области ниже, которая поможет рассчитать общее количество мест в самолёте (как на рисунке выше). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - В самолёте 2 места для пилота и его помощника, а также несколько рядов с пассажирскими местами. В каждом ряду 4 места. - - - 1st class rows (%1) - ряды 1-го класса (%1) - - - 2nd class rows: %1 - Рядов 2-го класса: %1 - - - Seats: %1 - Мест: %1 - - - Plane Seat Calculator - Калькулятор посадочных мест в самолёте - - - rows (%1) - ряды (%1) - - - 1st class rows: %1 - Рядов 1-го класса: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - В самолёте несколько рядов с пассажирскими местами. В каждом ряду 4 места. - - - 2nd class rows (%1) - ряды 2-го класса (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_sc.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_sc.xlf deleted file mode 100644 index 6328123..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_sc.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Fileras: %1 - - - seats = - cadironis = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Unu aparèchiu tenit duus cadironis in sa cabina de cumandu (po su pilota e su co-pilota), e unas cantu fileras de cadironis po passigeris de prima classi e de segunda classi. Dònnia filera de prima classi tenit cuatru cadironis. Dònnia filera de segunda classi tenit cincu cadironis. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Cuncorda una formula (innoi asuta) chi cumpudit su numeru totali de postus a setzi in s'aparechiu, a segunda de comenti mudant is fileras de postus (innoi in susu) - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Unu aparèchiu tenit duus cadironis in sa cabina de cumandu (po su pilota e su co-pilota), e unas cantu fileras de cadironis po passigeris. Dònnia filera tenit cuatru cadironis. - - - 1st class rows (%1) - fileras de primu classi (%1) - - - 2nd class rows: %1 - fileras de segunda classi: %1 - - - Seats: %1 - Cadironis: %1 - - - Plane Seat Calculator - Fai su contu de is cadironis de unu aparèchiu - - - rows (%1) - fileras (%1) - - - 1st class rows: %1 - fileras de primu classi: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Unu aparèchiu tenit unas cantu fileras de cadironis po passigeris. Dònnia filera tenit cuatru cadironis. - - - 2nd class rows (%1) - fileras de segunda classi (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_sv.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_sv.xlf deleted file mode 100644 index f3d836f..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_sv.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Rader: %1 - - - seats = - säten = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Ett flygplan har två säten i cockpiten (ett för piloten och ett för andrepiloten) och ett antal rader med passagerarsäten i första och andra klass. Varje rad i första klass innehåller fyra säten. Varje rad i andra klass innehåller fem säten. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Bygg en formel (nedan) som beräknar det totala antalet säten på flygplanet när raderna ändras (ovan). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Ett flygplan har två säten i cockpiten (ett för piloten och ett för andrepiloten) och ett antal rader med passagerarsäten. Varje rad innehåller fyra säten. - - - 1st class rows (%1) - Rader i första klass (%1) - - - 2nd class rows: %1 - Rader i andra klass: %1 - - - Seats: %1 - Säten: %1 - - - Plane Seat Calculator - Plansäteskalkylator - - - rows (%1) - rader (%1) - - - 1st class rows: %1 - Rader i första klass: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Ett flygplan har ett antal rader med passagerarsäten. Varje rad innehåller fyra säten. - - - 2nd class rows (%1) - Rader i andra klass (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_th.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_th.xlf deleted file mode 100644 index 0967d4d..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_th.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - %1 แถว - - - seats = - จำนวนที่นั่ง = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - ภายในเครื่องบินจะมีที่นั่งนักบินอยู่ 2 ที่ (สำหรับนักบิน และผู้ช่วยนักบิน) และจะมีแถวที่นั่งสำหรับผู้โดยสาร "ชั้นเฟิร์สคลาส" และ "ชั้นธุรกิจ" อยู่จำนวนหนึ่ง โดยในชั้นเฟิร์สคลาสจะมีแถวละ 4 ที่นั่ง ส่วนในชั้นธุรกิจจะมีแถวละ 5 ที่นั่ง - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - สร้างสูตรคำนวณ (ด้านล่าง) เพื่อคำนวณหาจำนวนที่นั่งทั้งหมดบนเครื่องบิน ตามจำนวนแถวที่เปลี่ยนไป (ด้านบน) - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - ภายในเครื่องบินจะมีที่นั่งนักบินอยู่ 2 ที่ (สำหรับนักบิน และผู้ช่วยนักบิน) และมีแถวที่นั่งผู้โดยสารอยู่จำนวนหนึ่ง ในแต่ละแถวจะมี 4 ที่นั่ง - - - 1st class rows (%1) - จำนวนแถวชั้นเฟิร์สคลาส (%1) - - - 2nd class rows: %1 - ชั้นธุรกิจ %1 แถว - - - Seats: %1 - คำนวณได้ทั้งหมด %1 ที่นั่ง - - - Plane Seat Calculator - ระบบคำนวณที่นั่งบนเครื่องบิน - - - rows (%1) - จำนวนแถว (%1) - - - 1st class rows: %1 - ชั้นเฟิร์สคลาส %1 แถว - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - ภายในเครื่องบินประกอบไปด้วยแถวของที่นั่งผู้โดยสาร ในแต่ละแถวจะมี 4 ที่นั่ง - - - 2nd class rows (%1) - จำนวนแถวชั้นธุรกิจ (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_tr.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_tr.xlf deleted file mode 100644 index 678541a..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_tr.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Sıralar: %1 - - - seats = - koltuklar = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Bir uçağın uçuş güvertesinde iki koltuğu (pilot ve yardımcı pilot için), ve belirli sayıda birinci sınıf ve ikinci sınıf yolcu koltuğu sırası vardır. Her birinci sınıf sıra dört koltuk içerir. Her ikinci sınıf sıra beş koltuk içerir. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Sıralar(üstte) değiştikçe uçaktaki toplam koltuk sayısını hesaplayan bir formül(altta) oluşturun. - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Bir uçağın uçuş güvertesinde iki koltuğu (pilot ve yardımcı pilot için), ve belirli sayıda koltuk sırası vardır. Her sıra dört koltuk içerir. - - - 1st class rows (%1) - Birinci sınıf sıralar (%1) - - - 2nd class rows: %1 - İkinci sınıf sıralar: %1 - - - Seats: %1 - Koltuklar: %1 - - - Plane Seat Calculator - Uçak Koltuğu Hesaplayıcı - - - rows (%1) - sıralar (%1) - - - 1st class rows: %1 - Birinci sınıf sıralar: (%1) - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Bir uçağın belirli sayıda koltuk sırası vardır. Her sıra dört koltuk içerir. - - - 2nd class rows (%1) - İkinci sınıf sıralar (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_uk.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_uk.xlf deleted file mode 100644 index d5e7682..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_uk.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Рядки: %1 - - - seats = - місць= - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Літак має два місця в кабіні екіпажу (пілот і другий пілот), і кілька рядів 1-го класу 2-го класу пасажирських місць. Кожний ряд 1-го класу містить чотири місця. Кожен ряд 2-го класу містить п'ять місць. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Побудувати формулу (нижче), яка обчислює кількість місць на літаку при зміні рядків (див. вище). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Літак має два місця в кабіні екіпажу (пілот і другий пілот), і кілька рядів пасажирських сидінь. Кожен рядок містить чотири місця. - - - 1st class rows (%1) - рядів 1-го класу (%1) - - - 2nd class rows: %1 - рядів 2-го класу: %1 - - - Seats: %1 - Місць: %1 - - - Plane Seat Calculator - Калькулятор місць у літаку - - - rows (%1) - рядки (%1) - - - 1st class rows: %1 - рядів 1-го класу: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Літак має кілька рядів пасажирських сидінь. Кожен ряд містить чотири місця. - - - 2nd class rows (%1) - рядів 2-го класу (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_vi.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_vi.xlf deleted file mode 100644 index 1f4ef6f..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_vi.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - Số hàng ghế: %1 - - - seats = - Tính số chỗ ngồi = - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - Một chiếc máy bay này có hai chỗ ngồi ở sàn (cho phi công trưởng và phi công phó), và một số hàng ghế hạng 1 và hạng 2. Mỗi hàng hạng 1 có bốn chỗ ngồi. Mỗi hàng hạng 2 có năm chỗ ngồi. - - - ? - ? - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - Dưới đây hãy tạo công thức tính số chỗ ngồi trên máy bay để nó thay đổi tùy theo số lượng hàng ghế (hình trên). - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - Một máy bay có hai ghế trong buồng lái (dành cho phi công trưởng và phi công phụ), và một loạt hàng ghế cho hành khách. Mỗi hàng có bốn ghế (bốn chỗ ngồi). - - - 1st class rows (%1) - số hàng hạng nhất (%1) - - - 2nd class rows: %1 - Hàng hạng hai: %1 - - - Seats: %1 - Số chỗ ngồi: %1 - - - Plane Seat Calculator - Máy bay ghế máy tính - - - rows (%1) - đếm số hàng ghế (%1) - - - 1st class rows: %1 - Hàng hạng nhất: %1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - Máy bay có một số hàng ghế hành khách. Mỗi hàng có bốn chỗ ngồi. - - - 2nd class rows (%1) - số hàng hạng hai (%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_zh-hans.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_zh-hans.xlf deleted file mode 100644 index 2cbb7e8..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_zh-hans.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - 行:%1 - - - seats = - 座位= - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - 一架飞机除了有两个座位供正副驾驶员,还有一定量行数的头等及经济乘客座位。头等每行共四座,经济每行共五座。 - - - ? - - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - 于下方写出一条公式以计算飞机上的座位总数。 - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - 一架飞机除了有两个座位供正副驾驶员,还有一定量行数的乘客座位。每行共四座。 - - - 1st class rows (%1) - 头等行(%1) - - - 2nd class rows: %1 - 经济等行:%1 - - - Seats: %1 - 座位:%1 - - - Plane Seat Calculator - 飞机座位计算器 - - - rows (%1) - 行 (%1) - - - 1st class rows: %1 - 头等行:%1 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - 一架飞机有一定量行数的乘客座位,每行共四座。 - - - 2nd class rows (%1) - 经济等行(%1) - - - - diff --git a/lib/blockly/demos/plane/xlf/translated_msgs_zh-hant.xlf b/lib/blockly/demos/plane/xlf/translated_msgs_zh-hant.xlf deleted file mode 100644 index 2dadf6d..0000000 --- a/lib/blockly/demos/plane/xlf/translated_msgs_zh-hant.xlf +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Rows: %1 - 排:%1 - - - seats = - 座位= - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of 1st class and 2nd class passenger seats. Each 1st class row contains four seats. Each 2nd class row contains five seats. - 一架飛機除了有兩個座位供正副機師,還有一定量行數的頭等及經濟乘客座位。頭等艙每排都包含四個席位,經濟艙每排都包含五個席位。。 - - - ? - - - - Build a formula (below) that calculates the total number of seats on the airplane as the rows are changed (above). - 於下方寫出一條公式以計算飛機上的座位總數。 - - - An airplane has two seats in the flight deck (for the pilot and co-pilot), and a number of rows of passenger seats. Each row contains four seats. - 一架飛機除了有兩個座位供正副機師,還有一定量行數的乘客座位。每排都包含四個席位。 - - - 1st class rows (%1) - 頭等艙(%1) - - - 2nd class rows: %1 - 經濟艙:%1 排 - - - Seats: %1 - 座位:%1 - - - Plane Seat Calculator - 飛機座位計算器 - - - rows (%1) - 排(%1) - - - 1st class rows: %1 - 頭等艙:%1 排 - - - An airplane has a number of rows of passenger seats. Each row contains four seats. - 一架飛機有一定量行數的乘客座位,每排都包含四個席位。 - - - 2nd class rows (%1) - 經濟艙(%1) - - - - diff --git a/lib/blockly/demos/resizable/icon.png b/lib/blockly/demos/resizable/icon.png deleted file mode 100644 index c4eaf81..0000000 Binary files a/lib/blockly/demos/resizable/icon.png and /dev/null differ diff --git a/lib/blockly/demos/resizable/index.html b/lib/blockly/demos/resizable/index.html deleted file mode 100644 index e2ee1e0..0000000 --- a/lib/blockly/demos/resizable/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - Blockly Demo: Resizable Blockly (Part 1) - - - - - - - - - - -
      -

      Blockly > - Demos > Resizable Blockly (Part 1)

      - -

      The first step in creating a resizable Blockly workspace is to use - CSS or tables to create an area for it. - Next, inject Blockly over that area.

      - -

      → More info on injecting resizable Blockly

      -
      - Blockly will be positioned here. -
      - - diff --git a/lib/blockly/demos/resizable/overlay.html b/lib/blockly/demos/resizable/overlay.html deleted file mode 100644 index 826a667..0000000 --- a/lib/blockly/demos/resizable/overlay.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Blockly Demo: Resizable Blockly (Part 2) - - - - - - - - - - - - - -
      -

      Blockly > - Demos > Resizable Blockly (Part 2)

      - -

      - Once an area is defined, Blockly can be - injected and positioned over the area. - A resize handler keeps it in position as the page changes. -

      - -

      → More info on injecting resizable Blockly

      -
      -
      - -
      - - - - - - diff --git a/lib/blockly/demos/rtl/icon.png b/lib/blockly/demos/rtl/icon.png deleted file mode 100644 index 284c1ef..0000000 Binary files a/lib/blockly/demos/rtl/icon.png and /dev/null differ diff --git a/lib/blockly/demos/rtl/index.html b/lib/blockly/demos/rtl/index.html deleted file mode 100644 index ff2b630..0000000 --- a/lib/blockly/demos/rtl/index.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - Blockly Demo: RTL - - - - - - - -

      Blockly > - Demos > Right-to-Left

      - -
      - - - - - - diff --git a/lib/blockly/demos/storage/icon.png b/lib/blockly/demos/storage/icon.png deleted file mode 100644 index a766b5d..0000000 Binary files a/lib/blockly/demos/storage/icon.png and /dev/null differ diff --git a/lib/blockly/demos/storage/index.html b/lib/blockly/demos/storage/index.html deleted file mode 100644 index 759dc2b..0000000 --- a/lib/blockly/demos/storage/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Blockly Demo: Cloud Storage - - - - - - - -

      Blockly > - Demos > Cloud Storage

      - -

      This is a simple demo of cloud storage using App Engine.

      - - - -

      → More info on Cloud Storage

      - -

      - -

      - -
      - - - - - - - diff --git a/lib/blockly/demos/toolbox/icon.png b/lib/blockly/demos/toolbox/icon.png deleted file mode 100644 index fe54fe4..0000000 Binary files a/lib/blockly/demos/toolbox/icon.png and /dev/null differ diff --git a/lib/blockly/demos/toolbox/index.html b/lib/blockly/demos/toolbox/index.html deleted file mode 100644 index 007b8ee..0000000 --- a/lib/blockly/demos/toolbox/index.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - Blockly Demo: Toolbox - - - - - - -

      Blockly > - Demos > Toolbox

      - -

      This is a demo of a complex category structure for the toolbox.

      - -

      → More info on the Toolbox

      - -
      - - - - - - - diff --git a/lib/blockly/externs/svg-externs.js b/lib/blockly/externs/svg-externs.js deleted file mode 100644 index 68cd997..0000000 --- a/lib/blockly/externs/svg-externs.js +++ /dev/null @@ -1,10243 +0,0 @@ -/* - * Copyright 2017 The Closure Compiler Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generated by closureidl 0.2dev closureidl-parser-webkit 0.2dev dart-idl 7592. - * Parser: type=webkit dir=${WEBKIT}/Source/WebCore/_/_.idl dir=${WEBKIT}/Source/WebCore/_/_/_.idl dir=${WEBKIT}/Source/WebCore/Modules/_/_.idl - * Context0: id=webkit - * Filter0: annotate-platform platform=webkit - * Filter1: merge-supplemental - * Filter2: fix-nulls - * Filter3: fix-constructors - * Filter4: rename-interfaces - * Filter5: check-consistency - * Context1: id=closure - * Filter0: import context=webkit - * Filter1: closure:merge-overloaded-methods - * Filter2: closure:fix-callbacks remove=false - * Filter3: closure:fix-arrays remove=simple - * Filter4: closure:fix-optionals - * Filter5: closure:rename-reserved-params - * Filter6: closure:guess-interfaces - * Filter7: closure:expand-interfaces - * Output: format=js - * - * @externs - */ - - - -/** - * @constructor - */ -function SVGAnimatedNumberList(){} - - -/** - * @type {!SVGNumberList} - */ -SVGAnimatedNumberList.prototype.baseVal; - - -/** - * @type {!SVGNumberList} - */ -SVGAnimatedNumberList.prototype.animVal; - - - -/** - * @constructor - */ -function SVGLengthList(){} - - -/** - * @type {number} - */ -SVGLengthList.prototype.numberOfItems; - - -/** */ -SVGLengthList.prototype.clear = function(){}; - - -/** - * @param {!SVGLength} item - * @return {!SVGLength} - */ -SVGLengthList.prototype.initialize = function(item){}; - - -/** - * @param {number} index - * @return {!SVGLength} - */ -SVGLengthList.prototype.getItem = function(index){}; - - -/** - * @param {!SVGLength} item - * @param {number} index - * @return {!SVGLength} - */ -SVGLengthList.prototype.insertItemBefore = function(item, index){}; - - -/** - * @param {!SVGLength} item - * @param {number} index - * @return {!SVGLength} - */ -SVGLengthList.prototype.replaceItem = function(item, index){}; - - -/** - * @param {number} index - * @return {!SVGLength} - */ -SVGLengthList.prototype.removeItem = function(index){}; - - -/** - * @param {!SVGLength} item - * @return {!SVGLength} - */ -SVGLengthList.prototype.appendItem = function(item){}; - - - -/** - * @constructor - * @implements {EventTarget} - */ -function SVGElementInstance(){} - - -/** - * @type {!SVGElement} - */ -SVGElementInstance.prototype.correspondingElement; - - -/** - * @type {!SVGUseElement} - */ -SVGElementInstance.prototype.correspondingUseElement; - - -/** - * @type {!SVGElementInstance} - */ -SVGElementInstance.prototype.parentNode; - - -/** - * @type {!Array|!SVGElementInstanceList} - */ -SVGElementInstance.prototype.childNodes; - - -/** - * @type {!SVGElementInstance} - */ -SVGElementInstance.prototype.firstChild; - - -/** - * @type {!SVGElementInstance} - */ -SVGElementInstance.prototype.lastChild; - - -/** - * @type {!SVGElementInstance} - */ -SVGElementInstance.prototype.previousSibling; - - -/** - * @type {!SVGElementInstance} - */ -SVGElementInstance.prototype.nextSibling; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onabort; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onblur; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onchange; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onclick; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.oncontextmenu; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondblclick; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onerror; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onfocus; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.oninput; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onkeydown; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onkeypress; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onkeyup; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onload; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onmousedown; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onmousemove; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onmouseout; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onmouseover; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onmouseup; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onmousewheel; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onbeforecut; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.oncut; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onbeforecopy; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.oncopy; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onbeforepaste; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onpaste; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondragenter; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondragover; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondragleave; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondrop; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondragstart; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondrag; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.ondragend; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onreset; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onresize; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onscroll; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onsearch; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onselect; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onselectstart; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onsubmit; - - -/** - * @type {!EventListener|function(!Event)} - */ -SVGElementInstance.prototype.onunload; - - -/** - * @override - */ -SVGElementInstance.prototype.addEventListener = function(type, listener, opt_useCapture){}; - - -/** - * @override - */ -SVGElementInstance.prototype.removeEventListener = function(type, listener, opt_useCapture){}; - - -/** - * @param {!Event} event - * @return {boolean} - * @override - */ -SVGElementInstance.prototype.dispatchEvent = function(event){}; - - - -/** - * @constructor - */ -function SVGAnimatedRect(){} - - -/** - * @type {!SVGRect} - */ -SVGAnimatedRect.prototype.baseVal; - - -/** - * @type {!SVGRect} - */ -SVGAnimatedRect.prototype.animVal; - - - -/** - * @constructor - */ -function SVGAnimatedString(){} - - -/** - * @type {string} - */ -SVGAnimatedString.prototype.baseVal; - - -/** - * @type {string} - */ -SVGAnimatedString.prototype.animVal; - - - -/** - * @interface - */ -function SVGStylable(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGStylable.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - */ -SVGStylable.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @interface - */ -function SVGExternalResourcesRequired(){} - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGExternalResourcesRequired.prototype.externalResourcesRequired; - - - -/** - * @constructor - */ -function SVGPoint(){} - - -/** - * @type {number} - */ -SVGPoint.prototype.x; - - -/** - * @type {number} - */ -SVGPoint.prototype.y; - - -/** - * @param {!SVGMatrix} matrix - * @return {!SVGPoint} - */ -SVGPoint.prototype.matrixTransform = function(matrix){}; - - - -/** - * @constructor - */ -function SVGMatrix(){} - - -/** - * @type {number} - */ -SVGMatrix.prototype.a; - - -/** - * @type {number} - */ -SVGMatrix.prototype.b; - - -/** - * @type {number} - */ -SVGMatrix.prototype.c; - - -/** - * @type {number} - */ -SVGMatrix.prototype.d; - - -/** - * @type {number} - */ -SVGMatrix.prototype.e; - - -/** - * @type {number} - */ -SVGMatrix.prototype.f; - - -/** - * @param {!SVGMatrix} secondMatrix - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.multiply = function(secondMatrix){}; - - -/** - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.inverse = function(){}; - - -/** - * @param {number} x - * @param {number} y - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.translate = function(x, y){}; - - -/** - * @param {number} scaleFactor - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.scale = function(scaleFactor){}; - - -/** - * @param {number} scaleFactorX - * @param {number} scaleFactorY - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.scaleNonUniform = function(scaleFactorX, scaleFactorY){}; - - -/** - * @param {number} angle - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.rotate = function(angle){}; - - -/** - * @param {number} x - * @param {number} y - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.rotateFromVector = function(x, y){}; - - -/** - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.flipX = function(){}; - - -/** - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.flipY = function(){}; - - -/** - * @param {number} angle - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.skewX = function(angle){}; - - -/** - * @param {number} angle - * @return {!SVGMatrix} - */ -SVGMatrix.prototype.skewY = function(angle){}; - - - -/** - * @constructor - */ -function SVGNumberList(){} - - -/** - * @type {number} - */ -SVGNumberList.prototype.numberOfItems; - - -/** */ -SVGNumberList.prototype.clear = function(){}; - - -/** - * @param {!SVGNumber} item - * @return {!SVGNumber} - */ -SVGNumberList.prototype.initialize = function(item){}; - - -/** - * @param {number} index - * @return {!SVGNumber} - */ -SVGNumberList.prototype.getItem = function(index){}; - - -/** - * @param {!SVGNumber} item - * @param {number} index - * @return {!SVGNumber} - */ -SVGNumberList.prototype.insertItemBefore = function(item, index){}; - - -/** - * @param {!SVGNumber} item - * @param {number} index - * @return {!SVGNumber} - */ -SVGNumberList.prototype.replaceItem = function(item, index){}; - - -/** - * @param {number} index - * @return {!SVGNumber} - */ -SVGNumberList.prototype.removeItem = function(index){}; - - -/** - * @param {!SVGNumber} item - * @return {!SVGNumber} - */ -SVGNumberList.prototype.appendItem = function(item){}; - - - -/** - * @interface - */ -function SVGLangSpace(){} - - -/** - * @type {string} - */ -SVGLangSpace.prototype.xmllang; - - -/** - * @type {string} - */ -SVGLangSpace.prototype.xmlspace; - - - -/** - * @constructor - */ -function SVGAnimatedLengthList(){} - - -/** - * @type {!SVGLengthList} - */ -SVGAnimatedLengthList.prototype.baseVal; - - -/** - * @type {!SVGLengthList} - */ -SVGAnimatedLengthList.prototype.animVal; - - - -/** - * @constructor - */ -function SVGAnimatedTransformList(){} - - -/** - * @type {!SVGTransformList} - */ -SVGAnimatedTransformList.prototype.baseVal; - - -/** - * @type {!SVGTransformList} - */ -SVGAnimatedTransformList.prototype.animVal; - - - -/** - * @constructor - */ -function SVGUnitTypes(){} - - -/** - * @const - * @type {number} - */ -SVGUnitTypes.SVG_UNIT_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGUnitTypes.prototype.SVG_UNIT_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE; - - -/** - * @const - * @type {number} - */ -SVGUnitTypes.prototype.SVG_UNIT_TYPE_USERSPACEONUSE; - - -/** - * @const - * @type {number} - */ -SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX; - - -/** - * @const - * @type {number} - */ -SVGUnitTypes.prototype.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX; - - - -/** - * @constructor - */ -function SVGLength(){} - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_NUMBER; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_NUMBER; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_PERCENTAGE; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_PERCENTAGE; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_EMS; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_EMS; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_EXS; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_EXS; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_PX; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_PX; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_CM; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_CM; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_MM; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_MM; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_IN; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_IN; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_PT; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_PT; - - -/** - * @const - * @type {number} - */ -SVGLength.SVG_LENGTHTYPE_PC; - - -/** - * @const - * @type {number} - */ -SVGLength.prototype.SVG_LENGTHTYPE_PC; - - -/** - * @type {number} - */ -SVGLength.prototype.unitType; - - -/** - * @type {number} - */ -SVGLength.prototype.value; - - -/** - * @type {number} - */ -SVGLength.prototype.valueInSpecifiedUnits; - - -/** - * @type {string} - */ -SVGLength.prototype.valueAsString; - - -/** - * @param {number} unitType - * @param {number} valueInSpecifiedUnits - * @return {undefined} - */ -SVGLength.prototype.newValueSpecifiedUnits = function(unitType, valueInSpecifiedUnits){}; - - -/** - * @param {number} unitType - * @return {undefined} - */ -SVGLength.prototype.convertToSpecifiedUnits = function(unitType){}; - - - -/** - * @constructor - */ -function SVGAnimatedNumber(){} - - -/** - * @type {number} - */ -SVGAnimatedNumber.prototype.baseVal; - - -/** - * @type {number} - */ -SVGAnimatedNumber.prototype.animVal; - - - -/** - * @constructor - */ -function SVGAnimatedAngle(){} - - -/** - * @type {!SVGAngle} - */ -SVGAnimatedAngle.prototype.baseVal; - - -/** - * @type {!SVGAngle} - */ -SVGAnimatedAngle.prototype.animVal; - - - -/** - * @interface - * @extends {SVGStylable} - */ -function SVGFilterPrimitiveStandardAttributes(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterPrimitiveStandardAttributes.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterPrimitiveStandardAttributes.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterPrimitiveStandardAttributes.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterPrimitiveStandardAttributes.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFilterPrimitiveStandardAttributes.prototype.result; - - - -/** - * @constructor - * @extends {SVGGradientElement} - */ -function SVGLinearGradientElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLinearGradientElement.prototype.x1; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLinearGradientElement.prototype.y1; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLinearGradientElement.prototype.x2; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLinearGradientElement.prototype.y2; - - - -/** - * @constructor - * @extends {SVGGradientElement} - */ -function SVGRadialGradientElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRadialGradientElement.prototype.cx; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRadialGradientElement.prototype.cy; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRadialGradientElement.prototype.r; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRadialGradientElement.prototype.fx; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRadialGradientElement.prototype.fy; - - - -/** - * @constructor - */ -function SVGTransform(){} - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_MATRIX; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_MATRIX; - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_TRANSLATE; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_TRANSLATE; - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_SCALE; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_SCALE; - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_ROTATE; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_ROTATE; - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_SKEWX; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_SKEWX; - - -/** - * @const - * @type {number} - */ -SVGTransform.SVG_TRANSFORM_SKEWY; - - -/** - * @const - * @type {number} - */ -SVGTransform.prototype.SVG_TRANSFORM_SKEWY; - - -/** - * @type {number} - */ -SVGTransform.prototype.type; - - -/** - * @type {!SVGMatrix} - */ -SVGTransform.prototype.matrix; - - -/** - * @type {number} - */ -SVGTransform.prototype.angle; - - -/** - * @param {!SVGMatrix} matrix - * @return {undefined} - */ -SVGTransform.prototype.setMatrix = function(matrix){}; - - -/** - * @param {number} tx - * @param {number} ty - * @return {undefined} - */ -SVGTransform.prototype.setTranslate = function(tx, ty){}; - - -/** - * @param {number} sx - * @param {number} sy - * @return {undefined} - */ -SVGTransform.prototype.setScale = function(sx, sy){}; - - -/** - * @param {number} angle - * @param {number} cx - * @param {number} cy - * @return {undefined} - */ -SVGTransform.prototype.setRotate = function(angle, cx, cy){}; - - -/** - * @param {number} angle - * @return {undefined} - */ -SVGTransform.prototype.setSkewX = function(angle){}; - - -/** - * @param {number} angle - * @return {undefined} - */ -SVGTransform.prototype.setSkewY = function(angle){}; - - - -/** - * @interface - */ -function SVGZoomAndPan(){} - -/** - * @type {number} - */ -SVGZoomAndPan.prototype.zoomAndPan; - - - -/** - * @constructor - */ -function SVGPreserveAspectRatio(){} - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_NONE; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMINYMIN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMIDYMIN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMAXYMIN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMINYMID; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMIDYMID; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMAXYMID; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMINYMAX; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMIDYMAX; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_PRESERVEASPECTRATIO_XMAXYMAX; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_MEETORSLICE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_MEETORSLICE_MEET; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE; - - -/** - * @const - * @type {number} - */ -SVGPreserveAspectRatio.prototype.SVG_MEETORSLICE_SLICE; - - -/** - * @type {number} - */ -SVGPreserveAspectRatio.prototype.align; - - -/** - * @type {number} - */ -SVGPreserveAspectRatio.prototype.meetOrSlice; - - - -/** - * @constructor - */ -function SVGRect(){} - - -/** - * @type {number} - */ -SVGRect.prototype.x; - - -/** - * @type {number} - */ -SVGRect.prototype.y; - - -/** - * @type {number} - */ -SVGRect.prototype.width; - - -/** - * @type {number} - */ -SVGRect.prototype.height; - - - -/** - * @constructor - */ -function SVGException(){} - - -/** - * @const - * @type {number} - */ -SVGException.SVG_WRONG_TYPE_ERR; - - -/** - * @const - * @type {number} - */ -SVGException.prototype.SVG_WRONG_TYPE_ERR; - - -/** - * @const - * @type {number} - */ -SVGException.SVG_INVALID_VALUE_ERR; - - -/** - * @const - * @type {number} - */ -SVGException.prototype.SVG_INVALID_VALUE_ERR; - - -/** - * @const - * @type {number} - */ -SVGException.SVG_MATRIX_NOT_INVERTABLE; - - -/** - * @const - * @type {number} - */ -SVGException.prototype.SVG_MATRIX_NOT_INVERTABLE; - - -/** - * @type {number} - */ -SVGException.prototype.code; - - -/** - * @type {string} - */ -SVGException.prototype.name; - - -/** - * @type {string} - */ -SVGException.prototype.message; - - -/** - * @return {string} - * @override - */ -SVGException.prototype.toString = function(){}; - - - -/** - * @constructor - * @extends {CSSValue} - */ -function SVGColor(){} - - -/** - * @const - * @type {number} - */ -SVGColor.SVG_COLORTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGColor.prototype.SVG_COLORTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGColor.SVG_COLORTYPE_RGBCOLOR; - - -/** - * @const - * @type {number} - */ -SVGColor.prototype.SVG_COLORTYPE_RGBCOLOR; - - -/** - * @const - * @type {number} - */ -SVGColor.SVG_COLORTYPE_RGBCOLOR_ICCCOLOR; - - -/** - * @const - * @type {number} - */ -SVGColor.prototype.SVG_COLORTYPE_RGBCOLOR_ICCCOLOR; - - -/** - * @const - * @type {number} - */ -SVGColor.SVG_COLORTYPE_CURRENTCOLOR; - - -/** - * @const - * @type {number} - */ -SVGColor.prototype.SVG_COLORTYPE_CURRENTCOLOR; - - -/** - * @type {number} - */ -SVGColor.prototype.colorType; - - -/** - * @type {!RGBColor} - */ -SVGColor.prototype.rgbColor; - - -/** - * @param {string} rgbColor - * @return {undefined} - */ -SVGColor.prototype.setRGBColor = function(rgbColor){}; - - -/** - * @param {string} rgbColor - * @param {string} iccColor - * @return {undefined} - */ -SVGColor.prototype.setRGBColorICCColor = function(rgbColor, iccColor){}; - - -/** - * @param {number} colorType - * @param {string} rgbColor - * @param {string} iccColor - * @return {undefined} - */ -SVGColor.prototype.setColor = function(colorType, rgbColor, iccColor){}; - - - -/** - * @constructor - * @extends {SVGColor} - */ -function SVGPaint(){} - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_RGBCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_RGBCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_NONE; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_NONE; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_CURRENTCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_URI_NONE; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_URI_NONE; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_URI_CURRENTCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_URI_CURRENTCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_URI_RGBCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_URI_RGBCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR; - - -/** - * @const - * @type {number} - */ -SVGPaint.SVG_PAINTTYPE_URI; - - -/** - * @const - * @type {number} - */ -SVGPaint.prototype.SVG_PAINTTYPE_URI; - - -/** - * @type {number} - */ -SVGPaint.prototype.paintType; - - -/** - * @type {string} - */ -SVGPaint.prototype.uri; - - -/** - * @param {string} uri - * @return {undefined} - */ -SVGPaint.prototype.setUri = function(uri){}; - - -/** - * @param {number} paintType - * @param {string} uri - * @param {string} rgbColor - * @param {string} iccColor - * @return {undefined} - */ -SVGPaint.prototype.setPaint = function(paintType, uri, rgbColor, iccColor){}; - - - -/** - * @constructor - */ -function SVGPointList(){} - - -/** - * @type {number} - */ -SVGPointList.prototype.numberOfItems; - - -/** */ -SVGPointList.prototype.clear = function(){}; - - -/** - * @param {!SVGPoint} item - * @return {!SVGPoint} - */ -SVGPointList.prototype.initialize = function(item){}; - - -/** - * @param {number} index - * @return {!SVGPoint} - */ -SVGPointList.prototype.getItem = function(index){}; - - -/** - * @param {!SVGPoint} item - * @param {number} index - * @return {!SVGPoint} - */ -SVGPointList.prototype.insertItemBefore = function(item, index){}; - - -/** - * @param {!SVGPoint} item - * @param {number} index - * @return {!SVGPoint} - */ -SVGPointList.prototype.replaceItem = function(item, index){}; - - -/** - * @param {number} index - * @return {!SVGPoint} - */ -SVGPointList.prototype.removeItem = function(index){}; - - -/** - * @param {!SVGPoint} item - * @return {!SVGPoint} - */ -SVGPointList.prototype.appendItem = function(item){}; - - - -/** - * @constructor - */ -function SVGTransformList(){} - - -/** - * @type {number} - */ -SVGTransformList.prototype.numberOfItems; - - -/** */ -SVGTransformList.prototype.clear = function(){}; - - -/** - * @param {!SVGTransform} item - * @return {!SVGTransform} - */ -SVGTransformList.prototype.initialize = function(item){}; - - -/** - * @param {number} index - * @return {!SVGTransform} - */ -SVGTransformList.prototype.getItem = function(index){}; - - -/** - * @param {!SVGTransform} item - * @param {number} index - * @return {!SVGTransform} - */ -SVGTransformList.prototype.insertItemBefore = function(item, index){}; - - -/** - * @param {!SVGTransform} item - * @param {number} index - * @return {!SVGTransform} - */ -SVGTransformList.prototype.replaceItem = function(item, index){}; - - -/** - * @param {number} index - * @return {!SVGTransform} - */ -SVGTransformList.prototype.removeItem = function(index){}; - - -/** - * @param {!SVGTransform} item - * @return {!SVGTransform} - */ -SVGTransformList.prototype.appendItem = function(item){}; - - -/** - * @param {!SVGMatrix} matrix - * @return {!SVGTransform} - */ -SVGTransformList.prototype.createSVGTransformFromMatrix = function(matrix){}; - - -/** - * @return {!SVGTransform} - */ -SVGTransformList.prototype.consolidate = function(){}; - - - -/** - * @constructor - * @extends {UIEvent} - */ -function SVGZoomEvent(){} - - -/** - * @type {!SVGRect} - */ -SVGZoomEvent.prototype.zoomRectScreen; - - -/** - * @type {number} - */ -SVGZoomEvent.prototype.previousScale; - - -/** - * @type {!SVGPoint} - */ -SVGZoomEvent.prototype.previousTranslate; - - -/** - * @type {number} - */ -SVGZoomEvent.prototype.newScale; - - -/** - * @type {!SVGPoint} - */ -SVGZoomEvent.prototype.newTranslate; - - - -/** - * @constructor - * @extends {SVGTextContentElement} - */ -function SVGTextPositioningElement(){} - - -/** - * @type {!SVGAnimatedLengthList} - */ -SVGTextPositioningElement.prototype.x; - - -/** - * @type {!SVGAnimatedLengthList} - */ -SVGTextPositioningElement.prototype.y; - - -/** - * @type {!SVGAnimatedLengthList} - */ -SVGTextPositioningElement.prototype.dx; - - -/** - * @type {!SVGAnimatedLengthList} - */ -SVGTextPositioningElement.prototype.dy; - - -/** - * @type {!SVGAnimatedNumberList} - */ -SVGTextPositioningElement.prototype.rotate; - - - -/** - * @constructor - * @extends {SVGTextPositioningElement} - */ -function SVGTSpanElement(){} - - - -/** - * @constructor - */ -function SVGStringList(){} - - -/** - * @type {number} - */ -SVGStringList.prototype.numberOfItems; - - -/** */ -SVGStringList.prototype.clear = function(){}; - - -/** - * @param {string} item - * @return {string} - */ -SVGStringList.prototype.initialize = function(item){}; - - -/** - * @param {number} index - * @return {string} - */ -SVGStringList.prototype.getItem = function(index){}; - - -/** - * @param {string} item - * @param {number} index - * @return {string} - */ -SVGStringList.prototype.insertItemBefore = function(item, index){}; - - -/** - * @param {string} item - * @param {number} index - * @return {string} - */ -SVGStringList.prototype.replaceItem = function(item, index){}; - - -/** - * @param {number} index - * @return {string} - */ -SVGStringList.prototype.removeItem = function(index){}; - - -/** - * @param {string} item - * @return {string} - */ -SVGStringList.prototype.appendItem = function(item){}; - - - -/** - * @interface - */ -function SVGURIReference(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGURIReference.prototype.href; - - - -/** - * @constructor - * @extends {SVGTextPositioningElement} - * @implements {SVGURIReference} - */ -function SVGTRefElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGTRefElement.prototype.href; - - - -/** - * @constructor - * @extends {SVGTextContentElement} - * @implements {SVGURIReference} - */ -function SVGTextPathElement(){} - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.TEXTPATH_METHODTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.prototype.TEXTPATH_METHODTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.prototype.TEXTPATH_METHODTYPE_ALIGN; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.prototype.TEXTPATH_METHODTYPE_STRETCH; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.prototype.TEXTPATH_SPACINGTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.prototype.TEXTPATH_SPACINGTYPE_AUTO; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT; - - -/** - * @const - * @type {number} - */ -SVGTextPathElement.prototype.TEXTPATH_SPACINGTYPE_EXACT; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGTextPathElement.prototype.startOffset; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGTextPathElement.prototype.method; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGTextPathElement.prototype.spacing; - - -/** - * @type {!SVGAnimatedString} - */ -SVGTextPathElement.prototype.href; - - - -/** - * @constructor - * @extends {SVGTextPositioningElement} - * @implements {SVGURIReference} - */ -function SVGAltGlyphElement(){} - - -/** - * @type {string} - */ -SVGAltGlyphElement.prototype.glyphRef; - - -/** - * @type {string} - */ -SVGAltGlyphElement.prototype.format; - - -/** - * @type {!SVGAnimatedString} - */ -SVGAltGlyphElement.prototype.href; - - - -/** - * @constructor - * @extends {SVGComponentTransferFunctionElement} - */ -function SVGFEFuncGElement(){} - - - -/** - * @constructor - * @extends {SVGComponentTransferFunctionElement} - */ -function SVGFEFuncAElement(){} - - - -/** - * @constructor - * @extends {SVGComponentTransferFunctionElement} - */ -function SVGFEFuncRElement(){} - - - -/** - * @constructor - */ -function SVGNumber(){} - - -/** - * @type {number} - */ -SVGNumber.prototype.value; - - - -/** - * @interface - */ -function SVGTests(){} - - -/** - * @type {!SVGStringList} - */ -SVGTests.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGTests.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGTests.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - */ -SVGTests.prototype.hasExtension = function(opt_extension){}; - - - -/** - * @constructor - */ -function SVGPathSeg(){} - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CLOSEPATH; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CLOSEPATH; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_MOVETO_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_MOVETO_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_MOVETO_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_MOVETO_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_LINETO_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_LINETO_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_LINETO_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_LINETO_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_CUBIC_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_CUBIC_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_QUADRATIC_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_QUADRATIC_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_ARC_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_ARC_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_ARC_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_ARC_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_LINETO_HORIZONTAL_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_LINETO_HORIZONTAL_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_LINETO_VERTICAL_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_LINETO_VERTICAL_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_CUBIC_SMOOTH_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL; - - -/** - * @const - * @type {number} - */ -SVGPathSeg.prototype.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL; - - -/** - * @type {number} - */ -SVGPathSeg.prototype.pathSegType; - - -/** - * @type {string} - */ -SVGPathSeg.prototype.pathSegTypeAsLetter; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoQuadraticSmoothAbs(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticSmoothAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticSmoothAbs.prototype.y; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegArcRel(){} - - -/** - * @type {number} - */ -SVGPathSegArcRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegArcRel.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegArcRel.prototype.r1; - - -/** - * @type {number} - */ -SVGPathSegArcRel.prototype.r2; - - -/** - * @type {number} - */ -SVGPathSegArcRel.prototype.angle; - - -/** - * @type {boolean} - */ -SVGPathSegArcRel.prototype.largeArcFlag; - - -/** - * @type {boolean} - */ -SVGPathSegArcRel.prototype.sweepFlag; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoQuadraticAbs(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticAbs.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticAbs.prototype.x1; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticAbs.prototype.y1; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegLinetoHorizontalRel(){} - - -/** - * @type {number} - */ -SVGPathSegLinetoHorizontalRel.prototype.x; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegLinetoRel(){} - - -/** - * @type {number} - */ -SVGPathSegLinetoRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegLinetoRel.prototype.y; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoCubicRel(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicRel.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicRel.prototype.x1; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicRel.prototype.y1; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicRel.prototype.x2; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicRel.prototype.y2; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegMovetoAbs(){} - - -/** - * @type {number} - */ -SVGPathSegMovetoAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegMovetoAbs.prototype.y; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoQuadraticSmoothRel(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticSmoothRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticSmoothRel.prototype.y; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegLinetoVerticalRel(){} - - -/** - * @type {number} - */ -SVGPathSegLinetoVerticalRel.prototype.y; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegLinetoAbs(){} - - -/** - * @type {number} - */ -SVGPathSegLinetoAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegLinetoAbs.prototype.y; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoCubicSmoothRel(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothRel.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothRel.prototype.x2; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothRel.prototype.y2; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegLinetoHorizontalAbs(){} - - -/** - * @type {number} - */ -SVGPathSegLinetoHorizontalAbs.prototype.x; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoQuadraticRel(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticRel.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticRel.prototype.x1; - - -/** - * @type {number} - */ -SVGPathSegCurvetoQuadraticRel.prototype.y1; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoCubicSmoothAbs(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothAbs.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothAbs.prototype.x2; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicSmoothAbs.prototype.y2; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegCurvetoCubicAbs(){} - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicAbs.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicAbs.prototype.x1; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicAbs.prototype.y1; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicAbs.prototype.x2; - - -/** - * @type {number} - */ -SVGPathSegCurvetoCubicAbs.prototype.y2; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegClosePath(){} - - - -/** - * @interface - */ -function SVGFitToViewBox(){} - - -/** - * @type {!SVGAnimatedRect} - */ -SVGFitToViewBox.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGFitToViewBox.prototype.preserveAspectRatio; - - - -/** - * @constructor - * @implements {SVGZoomAndPan} - * @implements {SVGFitToViewBox} - */ -function SVGViewSpec(){} - - -/** - * @type {!SVGTransformList} - */ -SVGViewSpec.prototype.transform; - - -/** - * @type {!SVGElement} - */ -SVGViewSpec.prototype.viewTarget; - - -/** - * @type {string} - */ -SVGViewSpec.prototype.viewBoxString; - - -/** - * @type {string} - */ -SVGViewSpec.prototype.preserveAspectRatioString; - - -/** - * @type {string} - */ -SVGViewSpec.prototype.transformString; - - -/** - * @type {string} - */ -SVGViewSpec.prototype.viewTargetString; - - -/** - * @const - * @type {number} - */ -SVGViewSpec.SVG_ZOOMANDPAN_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGViewSpec.prototype.SVG_ZOOMANDPAN_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGViewSpec.SVG_ZOOMANDPAN_DISABLE; - - -/** - * @const - * @type {number} - */ -SVGViewSpec.prototype.SVG_ZOOMANDPAN_DISABLE; - - -/** - * @const - * @type {number} - */ -SVGViewSpec.SVG_ZOOMANDPAN_MAGNIFY; - - -/** - * @const - * @type {number} - */ -SVGViewSpec.prototype.SVG_ZOOMANDPAN_MAGNIFY; - - -/** - * @type {number} - */ -SVGViewSpec.prototype.zoomAndPan; - - -/** - * @type {!SVGAnimatedRect} - */ -SVGViewSpec.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGViewSpec.prototype.preserveAspectRatio; - - - -/** - * @constructor - */ -function SVGRenderingIntent(){} - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.RENDERING_INTENT_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.prototype.RENDERING_INTENT_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.RENDERING_INTENT_AUTO; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.prototype.RENDERING_INTENT_AUTO; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.RENDERING_INTENT_PERCEPTUAL; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.prototype.RENDERING_INTENT_PERCEPTUAL; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.RENDERING_INTENT_RELATIVE_COLORIMETRIC; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.prototype.RENDERING_INTENT_RELATIVE_COLORIMETRIC; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.RENDERING_INTENT_SATURATION; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.prototype.RENDERING_INTENT_SATURATION; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.RENDERING_INTENT_ABSOLUTE_COLORIMETRIC; - - -/** - * @const - * @type {number} - */ -SVGRenderingIntent.prototype.RENDERING_INTENT_ABSOLUTE_COLORIMETRIC; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegLinetoVerticalAbs(){} - - -/** - * @type {number} - */ -SVGPathSegLinetoVerticalAbs.prototype.y; - - - -/** - * @constructor - */ -function SVGPathSegList(){} - - -/** - * @type {number} - */ -SVGPathSegList.prototype.numberOfItems; - - -/** */ -SVGPathSegList.prototype.clear = function(){}; - - -/** - * @param {!SVGPathSeg} newItem - * @return {!SVGPathSeg} - */ -SVGPathSegList.prototype.initialize = function(newItem){}; - - -/** - * @param {number} index - * @return {!SVGPathSeg} - */ -SVGPathSegList.prototype.getItem = function(index){}; - - -/** - * @param {!SVGPathSeg} newItem - * @param {number} index - * @return {!SVGPathSeg} - */ -SVGPathSegList.prototype.insertItemBefore = function(newItem, index){}; - - -/** - * @param {!SVGPathSeg} newItem - * @param {number} index - * @return {!SVGPathSeg} - */ -SVGPathSegList.prototype.replaceItem = function(newItem, index){}; - - -/** - * @param {number} index - * @return {!SVGPathSeg} - */ -SVGPathSegList.prototype.removeItem = function(index){}; - - -/** - * @param {!SVGPathSeg} newItem - * @return {!SVGPathSeg} - */ -SVGPathSegList.prototype.appendItem = function(newItem){}; - - - -/** - * @constructor - * @extends {Document} - */ -function SVGDocument(){} - - -/** - * @type {!SVGSVGElement} - */ -SVGDocument.prototype.rootElement; - - -/** - * @param {string=} opt_eventType - * @return {!Event} - * @override - */ -SVGDocument.prototype.createEvent = function(opt_eventType){}; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGAltGlyphItemElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFontFaceFormatElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFECompositeElement(){} - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_OVER; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_IN; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_OUT; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_ATOP; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_XOR; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC; - - -/** - * @const - * @type {number} - */ -SVGFECompositeElement.prototype.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFECompositeElement.prototype.in1; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFECompositeElement.prototype.in2; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFECompositeElement.prototype.operator; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFECompositeElement.prototype.k1; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFECompositeElement.prototype.k2; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFECompositeElement.prototype.k3; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFECompositeElement.prototype.k4; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFECompositeElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFECompositeElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFECompositeElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFECompositeElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFECompositeElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFECompositeElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFECompositeElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGLangSpace} - * @implements {SVGStylable} - */ -function SVGDescElement(){} - - -/** - * @type {string} - */ -SVGDescElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGDescElement.prototype.xmlspace; - - -/** - * @type {!SVGAnimatedString} - */ -SVGDescElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGDescElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGEllipseElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGEllipseElement.prototype.cx; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGEllipseElement.prototype.cy; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGEllipseElement.prototype.rx; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGEllipseElement.prototype.ry; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGEllipseElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGEllipseElement.prototype.transform; - - -/** - * @type {string} - */ -SVGEllipseElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGEllipseElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGEllipseElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - * @override - */ -SVGEllipseElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGEllipseElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGEllipseElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGEllipseElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGEllipseElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGEllipseElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGEllipseElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGEllipseElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGEllipseElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGEllipseElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGEllipseElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFESpecularLightingElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFESpecularLightingElement.prototype.in1; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpecularLightingElement.prototype.surfaceScale; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpecularLightingElement.prototype.specularConstant; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpecularLightingElement.prototype.specularExponent; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFESpecularLightingElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFESpecularLightingElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFESpecularLightingElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFESpecularLightingElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFESpecularLightingElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFESpecularLightingElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFESpecularLightingElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEColorMatrixElement(){} - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.prototype.SVG_FECOLORMATRIX_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.prototype.SVG_FECOLORMATRIX_TYPE_MATRIX; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.prototype.SVG_FECOLORMATRIX_TYPE_SATURATE; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.prototype.SVG_FECOLORMATRIX_TYPE_HUEROTATE; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA; - - -/** - * @const - * @type {number} - */ -SVGFEColorMatrixElement.prototype.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEColorMatrixElement.prototype.in1; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFEColorMatrixElement.prototype.type; - - -/** - * @type {!SVGAnimatedNumberList} - */ -SVGFEColorMatrixElement.prototype.values; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEColorMatrixElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEColorMatrixElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEColorMatrixElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEColorMatrixElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEColorMatrixElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEColorMatrixElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEColorMatrixElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGFitToViewBox} - */ -function SVGSymbolElement(){} - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGSymbolElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedRect} - */ -SVGSymbolElement.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGSymbolElement.prototype.preserveAspectRatio; - - -/** - * @type {string} - */ -SVGSymbolElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGSymbolElement.prototype.xmlspace; - - -/** - * @type {!SVGAnimatedString} - */ -SVGSymbolElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGSymbolElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEConvolveMatrixElement(){} - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.prototype.SVG_EDGEMODE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.prototype.SVG_EDGEMODE_DUPLICATE; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.prototype.SVG_EDGEMODE_WRAP; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE; - - -/** - * @const - * @type {number} - */ -SVGFEConvolveMatrixElement.prototype.SVG_EDGEMODE_NONE; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEConvolveMatrixElement.prototype.in1; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFEConvolveMatrixElement.prototype.orderX; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFEConvolveMatrixElement.prototype.orderY; - - -/** - * @type {!SVGAnimatedNumberList} - */ -SVGFEConvolveMatrixElement.prototype.kernelMatrix; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEConvolveMatrixElement.prototype.divisor; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEConvolveMatrixElement.prototype.bias; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFEConvolveMatrixElement.prototype.targetX; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFEConvolveMatrixElement.prototype.targetY; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFEConvolveMatrixElement.prototype.edgeMode; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEConvolveMatrixElement.prototype.kernelUnitLengthX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEConvolveMatrixElement.prototype.kernelUnitLengthY; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGFEConvolveMatrixElement.prototype.preserveAlpha; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEConvolveMatrixElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEConvolveMatrixElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEConvolveMatrixElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEConvolveMatrixElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEConvolveMatrixElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEConvolveMatrixElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEConvolveMatrixElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEFloodElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEFloodElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEFloodElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEFloodElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEFloodElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEFloodElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEFloodElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEFloodElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGStylable} - */ -function SVGStopElement(){} - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGStopElement.prototype.offset; - - -/** - * @type {!SVGAnimatedString} - */ -SVGStopElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGStopElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGGlyphElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGHKernElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGVKernElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFontElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEOffsetElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEOffsetElement.prototype.in1; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEOffsetElement.prototype.dx; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEOffsetElement.prototype.dy; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEOffsetElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEOffsetElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEOffsetElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEOffsetElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEOffsetElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEOffsetElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEOffsetElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - */ -function SVGFilterElement(){} - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFilterElement.prototype.filterUnits; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFilterElement.prototype.primitiveUnits; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFilterElement.prototype.height; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFilterElement.prototype.filterResX; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFilterElement.prototype.filterResY; - - -/** - * @param {number=} opt_filterResX - * @param {number=} opt_filterResY - * @return {undefined} - */ -SVGFilterElement.prototype.setFilterRes = function(opt_filterResX, opt_filterResY){}; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGFilterElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFilterElement.prototype.href; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFilterElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFilterElement.prototype.getPresentationAttribute = function(opt_name){}; - - -/** - * @type {string} - */ -SVGFilterElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGFilterElement.prototype.xmlspace; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEGaussianBlurElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEGaussianBlurElement.prototype.in1; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEGaussianBlurElement.prototype.stdDeviationX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEGaussianBlurElement.prototype.stdDeviationY; - - -/** - * @param {number=} opt_stdDeviationX - * @param {number=} opt_stdDeviationY - * @return {undefined} - */ -SVGFEGaussianBlurElement.prototype.setStdDeviation = function(opt_stdDeviationX, opt_stdDeviationY){}; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEGaussianBlurElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEGaussianBlurElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEGaussianBlurElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEGaussianBlurElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEGaussianBlurElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEGaussianBlurElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEGaussianBlurElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGAltGlyphDefElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGComponentTransferFunctionElement(){} - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.prototype.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.prototype.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.prototype.SVG_FECOMPONENTTRANSFER_TYPE_TABLE; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.prototype.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.prototype.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA; - - -/** - * @const - * @type {number} - */ -SVGComponentTransferFunctionElement.prototype.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGComponentTransferFunctionElement.prototype.type; - - -/** - * @type {!SVGAnimatedNumberList} - */ -SVGComponentTransferFunctionElement.prototype.tableValues; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGComponentTransferFunctionElement.prototype.slope; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGComponentTransferFunctionElement.prototype.intercept; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGComponentTransferFunctionElement.prototype.amplitude; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGComponentTransferFunctionElement.prototype.exponent; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGComponentTransferFunctionElement.prototype.offset; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGMetadataElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGLangSpace} - * @implements {SVGStylable} - */ -function SVGTitleElement(){} - - -/** - * @type {string} - */ -SVGTitleElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGTitleElement.prototype.xmlspace; - - -/** - * @type {!SVGAnimatedString} - */ -SVGTitleElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGTitleElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGTests} - * @implements {SVGExternalResourcesRequired} - */ -function SVGCursorElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGCursorElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGCursorElement.prototype.y; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGCursorElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedString} - */ -SVGCursorElement.prototype.href; - - -/** - * @type {!SVGStringList} - */ -SVGCursorElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGCursorElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGCursorElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGCursorElement.prototype.hasExtension = function(opt_extension){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - */ -function SVGGradientElement(){} - - -/** - * @const - * @type {number} - */ -SVGGradientElement.SVG_SPREADMETHOD_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.prototype.SVG_SPREADMETHOD_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.SVG_SPREADMETHOD_PAD; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.prototype.SVG_SPREADMETHOD_PAD; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.SVG_SPREADMETHOD_REFLECT; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.prototype.SVG_SPREADMETHOD_REFLECT; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.SVG_SPREADMETHOD_REPEAT; - - -/** - * @const - * @type {number} - */ -SVGGradientElement.prototype.SVG_SPREADMETHOD_REPEAT; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGGradientElement.prototype.gradientUnits; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGGradientElement.prototype.gradientTransform; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGGradientElement.prototype.spreadMethod; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGGradientElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedString} - */ -SVGGradientElement.prototype.href; - - -/** - * @type {!SVGAnimatedString} - */ -SVGGradientElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGGradientElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGFitToViewBox} - */ -function SVGMarkerElement(){} - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.SVG_MARKERUNITS_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.prototype.SVG_MARKERUNITS_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.prototype.SVG_MARKERUNITS_USERSPACEONUSE; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.prototype.SVG_MARKERUNITS_STROKEWIDTH; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.prototype.SVG_MARKER_ORIENT_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.SVG_MARKER_ORIENT_AUTO; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.prototype.SVG_MARKER_ORIENT_AUTO; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE; - - -/** - * @const - * @type {number} - */ -SVGMarkerElement.prototype.SVG_MARKER_ORIENT_ANGLE; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMarkerElement.prototype.refX; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMarkerElement.prototype.refY; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGMarkerElement.prototype.markerUnits; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMarkerElement.prototype.markerWidth; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMarkerElement.prototype.markerHeight; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGMarkerElement.prototype.orientType; - - -/** - * @type {!SVGAnimatedAngle} - */ -SVGMarkerElement.prototype.orientAngle; - - -/** */ -SVGMarkerElement.prototype.setOrientToAuto = function(){}; - - -/** - * @param {!SVGAngle=} opt_angle - * @return {undefined} - */ -SVGMarkerElement.prototype.setOrientToAngle = function(opt_angle){}; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGMarkerElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedRect} - */ -SVGMarkerElement.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGMarkerElement.prototype.preserveAspectRatio; - - -/** - * @type {string} - */ -SVGMarkerElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGMarkerElement.prototype.xmlspace; - - -/** - * @type {!SVGAnimatedString} - */ -SVGMarkerElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGMarkerElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - */ -function SVGMaskElement(){} - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGMaskElement.prototype.maskUnits; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGMaskElement.prototype.maskContentUnits; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMaskElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMaskElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMaskElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGMaskElement.prototype.height; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGMaskElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGStringList} - */ -SVGMaskElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGMaskElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGMaskElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGMaskElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGMaskElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGMaskElement.prototype.getPresentationAttribute = function(opt_name){}; - - -/** - * @type {string} - */ -SVGMaskElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGMaskElement.prototype.xmlspace; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGFitToViewBox} - * @implements {SVGZoomAndPan} - */ -function SVGViewElement(){} - - -/** - * @type {!SVGStringList} - */ -SVGViewElement.prototype.viewTarget; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGViewElement.prototype.externalResourcesRequired; - - -/** - * @const - * @type {number} - */ -SVGViewElement.SVG_ZOOMANDPAN_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGViewElement.prototype.SVG_ZOOMANDPAN_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGViewElement.SVG_ZOOMANDPAN_DISABLE; - - -/** - * @const - * @type {number} - */ -SVGViewElement.prototype.SVG_ZOOMANDPAN_DISABLE; - - -/** - * @const - * @type {number} - */ -SVGViewElement.SVG_ZOOMANDPAN_MAGNIFY; - - -/** - * @const - * @type {number} - */ -SVGViewElement.prototype.SVG_ZOOMANDPAN_MAGNIFY; - - -/** - * @type {number} - */ -SVGViewElement.prototype.zoomAndPan; - - -/** - * @type {!SVGAnimatedRect} - */ -SVGViewElement.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGViewElement.prototype.preserveAspectRatio; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGExternalResourcesRequired} - */ -function SVGMPathElement(){} - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGMPathElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedString} - */ -SVGMPathElement.prototype.href; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFontFaceSrcElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEImageElement(){} - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGFEImageElement.prototype.preserveAspectRatio; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEImageElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEImageElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEImageElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEImageElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEImageElement.prototype.result; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGFEImageElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEImageElement.prototype.href; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEImageElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEImageElement.prototype.getPresentationAttribute = function(opt_name){}; - - -/** - * @type {string} - */ -SVGFEImageElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGFEImageElement.prototype.xmlspace; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFEDistantLightElement(){} - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDistantLightElement.prototype.azimuth; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDistantLightElement.prototype.elevation; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFontFaceUriElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEDiffuseLightingElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDiffuseLightingElement.prototype.in1; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDiffuseLightingElement.prototype.surfaceScale; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDiffuseLightingElement.prototype.diffuseConstant; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDiffuseLightingElement.prototype.kernelUnitLengthX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDiffuseLightingElement.prototype.kernelUnitLengthY; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDiffuseLightingElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDiffuseLightingElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDiffuseLightingElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDiffuseLightingElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDiffuseLightingElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDiffuseLightingElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEDiffuseLightingElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEMorphologyElement(){} - - -/** - * @const - * @type {number} - */ -SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEMorphologyElement.prototype.SVG_MORPHOLOGY_OPERATOR_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE; - - -/** - * @const - * @type {number} - */ -SVGFEMorphologyElement.prototype.SVG_MORPHOLOGY_OPERATOR_ERODE; - - -/** - * @const - * @type {number} - */ -SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE; - - -/** - * @const - * @type {number} - */ -SVGFEMorphologyElement.prototype.SVG_MORPHOLOGY_OPERATOR_DILATE; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEMorphologyElement.prototype.in1; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFEMorphologyElement.prototype.operator; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEMorphologyElement.prototype.radiusX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEMorphologyElement.prototype.radiusY; - - -/** - * @param {number=} opt_radiusX - * @param {number=} opt_radiusY - * @return {undefined} - */ -SVGFEMorphologyElement.prototype.setRadius = function(opt_radiusX, opt_radiusY){}; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMorphologyElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMorphologyElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMorphologyElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMorphologyElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEMorphologyElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEMorphologyElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEMorphologyElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGStylable} - */ -function SVGGlyphRefElement(){} - - -/** - * @type {string} - */ -SVGGlyphRefElement.prototype.glyphRef; - - -/** - * @type {string} - */ -SVGGlyphRefElement.prototype.format; - - -/** - * @type {number} - */ -SVGGlyphRefElement.prototype.x; - - -/** - * @type {number} - */ -SVGGlyphRefElement.prototype.y; - - -/** - * @type {number} - */ -SVGGlyphRefElement.prototype.dx; - - -/** - * @type {number} - */ -SVGGlyphRefElement.prototype.dy; - - -/** - * @type {!SVGAnimatedString} - */ -SVGGlyphRefElement.prototype.href; - - -/** - * @type {!SVGAnimatedString} - */ -SVGGlyphRefElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGGlyphRefElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - */ -function SVGTextContentElement(){} - - -/** - * @const - * @type {number} - */ -SVGTextContentElement.LENGTHADJUST_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTextContentElement.prototype.LENGTHADJUST_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGTextContentElement.LENGTHADJUST_SPACING; - - -/** - * @const - * @type {number} - */ -SVGTextContentElement.prototype.LENGTHADJUST_SPACING; - - -/** - * @const - * @type {number} - */ -SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS; - - -/** - * @const - * @type {number} - */ -SVGTextContentElement.prototype.LENGTHADJUST_SPACINGANDGLYPHS; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGTextContentElement.prototype.textLength; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGTextContentElement.prototype.lengthAdjust; - - -/** - * @return {number} - */ -SVGTextContentElement.prototype.getNumberOfChars = function(){}; - - -/** - * @return {number} - */ -SVGTextContentElement.prototype.getComputedTextLength = function(){}; - - -/** - * @param {number=} opt_offset - * @param {number=} opt_length - * @return {number} - */ -SVGTextContentElement.prototype.getSubStringLength = function(opt_offset, opt_length){}; - - -/** - * @param {number=} opt_offset - * @return {!SVGPoint} - */ -SVGTextContentElement.prototype.getStartPositionOfChar = function(opt_offset){}; - - -/** - * @param {number=} opt_offset - * @return {!SVGPoint} - */ -SVGTextContentElement.prototype.getEndPositionOfChar = function(opt_offset){}; - - -/** - * @param {number=} opt_offset - * @return {!SVGRect} - */ -SVGTextContentElement.prototype.getExtentOfChar = function(opt_offset){}; - - -/** - * @param {number=} opt_offset - * @return {number} - */ -SVGTextContentElement.prototype.getRotationOfChar = function(opt_offset){}; - - -/** - * @param {!SVGPoint=} opt_point - * @return {number} - */ -SVGTextContentElement.prototype.getCharNumAtPosition = function(opt_point){}; - - -/** - * @param {number=} opt_offset - * @param {number=} opt_length - * @return {undefined} - */ -SVGTextContentElement.prototype.selectSubString = function(opt_offset, opt_length){}; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGTextContentElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGStringList} - */ -SVGTextContentElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGTextContentElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGTextContentElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGTextContentElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGTextContentElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGTextContentElement.prototype.getPresentationAttribute = function(opt_name){}; - - -/** - * @type {string} - */ -SVGTextContentElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGTextContentElement.prototype.xmlspace; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFESpotLightElement(){} - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.x; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.y; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.z; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.pointsAtX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.pointsAtY; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.pointsAtZ; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.specularExponent; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFESpotLightElement.prototype.limitingConeAngle; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFontFaceNameElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFEPointLightElement(){} - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEPointLightElement.prototype.x; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEPointLightElement.prototype.y; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEPointLightElement.prototype.z; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEDropShadowElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDropShadowElement.prototype.in1; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDropShadowElement.prototype.dx; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDropShadowElement.prototype.dy; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDropShadowElement.prototype.stdDeviationX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDropShadowElement.prototype.stdDeviationY; - - -/** - * @param {number=} opt_stdDeviationX - * @param {number=} opt_stdDeviationY - * @return {undefined} - */ -SVGFEDropShadowElement.prototype.setStdDeviation = function(opt_stdDeviationX, opt_stdDeviationY){}; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDropShadowElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDropShadowElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDropShadowElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDropShadowElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDropShadowElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDropShadowElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEDropShadowElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFETileElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFETileElement.prototype.in1; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETileElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETileElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETileElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETileElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFETileElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFETileElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFETileElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGMissingGlyphElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEBlendElement(){} - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.SVG_FEBLEND_MODE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.prototype.SVG_FEBLEND_MODE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.prototype.SVG_FEBLEND_MODE_NORMAL; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.prototype.SVG_FEBLEND_MODE_MULTIPLY; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.prototype.SVG_FEBLEND_MODE_SCREEN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.prototype.SVG_FEBLEND_MODE_DARKEN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN; - - -/** - * @const - * @type {number} - */ -SVGFEBlendElement.prototype.SVG_FEBLEND_MODE_LIGHTEN; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEBlendElement.prototype.in1; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEBlendElement.prototype.in2; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFEBlendElement.prototype.mode; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEBlendElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEBlendElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEBlendElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEBlendElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEBlendElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEBlendElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEBlendElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGFitToViewBox} - */ -function SVGPatternElement(){} - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGPatternElement.prototype.patternUnits; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGPatternElement.prototype.patternContentUnits; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGPatternElement.prototype.patternTransform; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGPatternElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGPatternElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGPatternElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGPatternElement.prototype.height; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGPatternElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedRect} - */ -SVGPatternElement.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGPatternElement.prototype.preserveAspectRatio; - - -/** - * @type {!SVGAnimatedString} - */ -SVGPatternElement.prototype.href; - - -/** - * @type {string} - */ -SVGPatternElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGPatternElement.prototype.xmlspace; - - -/** - * @type {!SVGStringList} - */ -SVGPatternElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGPatternElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGPatternElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGPatternElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGPatternElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGPatternElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFEMergeNodeElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEMergeNodeElement.prototype.in1; - - - -/** - * @constructor - * @extends {SVGComponentTransferFunctionElement} - */ -function SVGFEFuncBElement(){} - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegMovetoRel(){} - - -/** - * @type {number} - */ -SVGPathSegMovetoRel.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegMovetoRel.prototype.y; - - - -/** - * @interface - */ -function SVGLocatable(){} - - -/** - * @type {!SVGElement} - */ -SVGLocatable.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGLocatable.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - */ -SVGLocatable.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - */ -SVGLocatable.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - */ -SVGLocatable.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - */ -SVGLocatable.prototype.getTransformToElement = function(opt_element){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGLocatable} - * @implements {SVGFitToViewBox} - * @implements {SVGZoomAndPan} - */ -function SVGSVGElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGSVGElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGSVGElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGSVGElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGSVGElement.prototype.height; - - -/** - * @type {string} - */ -SVGSVGElement.prototype.contentScriptType; - - -/** - * @type {string} - */ -SVGSVGElement.prototype.contentStyleType; - - -/** - * @type {!SVGRect} - */ -SVGSVGElement.prototype.viewport; - - -/** - * @type {number} - */ -SVGSVGElement.prototype.pixelUnitToMillimeterX; - - -/** - * @type {number} - */ -SVGSVGElement.prototype.pixelUnitToMillimeterY; - - -/** - * @type {number} - */ -SVGSVGElement.prototype.screenPixelToMillimeterX; - - -/** - * @type {number} - */ -SVGSVGElement.prototype.screenPixelToMillimeterY; - - -/** - * @type {boolean} - */ -SVGSVGElement.prototype.useCurrentView; - - -/** - * @type {number} - */ -SVGSVGElement.prototype.currentScale; - - -/** - * @type {!SVGPoint} - */ -SVGSVGElement.prototype.currentTranslate; - - -/** - * @param {number=} opt_maxWaitMilliseconds - * @return {number} - */ -SVGSVGElement.prototype.suspendRedraw = function(opt_maxWaitMilliseconds){}; - - -/** - * @param {number=} opt_suspendHandleId - * @return {undefined} - */ -SVGSVGElement.prototype.unsuspendRedraw = function(opt_suspendHandleId){}; - - -/** */ -SVGSVGElement.prototype.unsuspendRedrawAll = function(){}; - - -/** */ -SVGSVGElement.prototype.forceRedraw = function(){}; - - -/** */ -SVGSVGElement.prototype.pauseAnimations = function(){}; - - -/** */ -SVGSVGElement.prototype.unpauseAnimations = function(){}; - - -/** - * @return {boolean} - */ -SVGSVGElement.prototype.animationsPaused = function(){}; - - -/** - * @return {number} - */ -SVGSVGElement.prototype.getCurrentTime = function(){}; - - -/** - * @param {number=} opt_seconds - * @return {undefined} - */ -SVGSVGElement.prototype.setCurrentTime = function(opt_seconds){}; - - -/** - * @param {!SVGRect=} opt_rect - * @param {!SVGElement=} opt_referenceElement - * @return {!NodeList} - */ -SVGSVGElement.prototype.getIntersectionList = function(opt_rect, opt_referenceElement){}; - - -/** - * @param {!SVGRect=} opt_rect - * @param {!SVGElement=} opt_referenceElement - * @return {!NodeList} - */ -SVGSVGElement.prototype.getEnclosureList = function(opt_rect, opt_referenceElement){}; - - -/** - * @param {!SVGElement=} opt_element - * @param {!SVGRect=} opt_rect - * @return {boolean} - */ -SVGSVGElement.prototype.checkIntersection = function(opt_element, opt_rect){}; - - -/** - * @param {!SVGElement=} opt_element - * @param {!SVGRect=} opt_rect - * @return {boolean} - */ -SVGSVGElement.prototype.checkEnclosure = function(opt_element, opt_rect){}; - - -/** */ -SVGSVGElement.prototype.deselectAll = function(){}; - - -/** - * @return {!SVGNumber} - */ -SVGSVGElement.prototype.createSVGNumber = function(){}; - - -/** - * @return {!SVGLength} - */ -SVGSVGElement.prototype.createSVGLength = function(){}; - - -/** - * @return {!SVGAngle} - */ -SVGSVGElement.prototype.createSVGAngle = function(){}; - - -/** - * @return {!SVGPoint} - */ -SVGSVGElement.prototype.createSVGPoint = function(){}; - - -/** - * @return {!SVGMatrix} - */ -SVGSVGElement.prototype.createSVGMatrix = function(){}; - - -/** - * @return {!SVGRect} - */ -SVGSVGElement.prototype.createSVGRect = function(){}; - - -/** - * @return {!SVGTransform} - */ -SVGSVGElement.prototype.createSVGTransform = function(){}; - - -/** - * @param {!SVGMatrix=} opt_matrix - * @return {!SVGTransform} - */ -SVGSVGElement.prototype.createSVGTransformFromMatrix = function(opt_matrix){}; - - -/** - * @param {string=} opt_elementId - * @return {Element} - * @see https://developer.mozilla.org/en/docs/Web/API/SVGSVGElement - */ -SVGSVGElement.prototype.getElementById = function(opt_elementId){}; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGSVGElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedRect} - */ -SVGSVGElement.prototype.viewBox; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGSVGElement.prototype.preserveAspectRatio; - - -/** - * @type {string} - */ -SVGSVGElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGSVGElement.prototype.xmlspace; - - -/** - * @const - * @type {number} - */ -SVGSVGElement.SVG_ZOOMANDPAN_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGSVGElement.prototype.SVG_ZOOMANDPAN_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGSVGElement.SVG_ZOOMANDPAN_DISABLE; - - -/** - * @const - * @type {number} - */ -SVGSVGElement.prototype.SVG_ZOOMANDPAN_DISABLE; - - -/** - * @const - * @type {number} - */ -SVGSVGElement.SVG_ZOOMANDPAN_MAGNIFY; - - -/** - * @const - * @type {number} - */ -SVGSVGElement.prototype.SVG_ZOOMANDPAN_MAGNIFY; - - -/** - * @type {number} - */ -SVGSVGElement.prototype.zoomAndPan; - - -/** - * @type {!SVGElement} - */ -SVGSVGElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGSVGElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGSVGElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGSVGElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGSVGElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGSVGElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGSVGElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGSVGElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGSVGElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGSVGElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGSVGElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGSVGElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @interface - * @extends {SVGLocatable} - */ -function SVGTransformable(){} - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGTransformable.prototype.transform; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGDefsElement(){} - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGDefsElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGDefsElement.prototype.transform; - - -/** - * @type {string} - */ -SVGDefsElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGDefsElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGDefsElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGDefsElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGDefsElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGDefsElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGDefsElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGDefsElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGDefsElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGDefsElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGDefsElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGDefsElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGDefsElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGDefsElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGPolygonElement(){} - - -/** - * @type {!SVGPointList} - */ -SVGPolygonElement.prototype.points; - - -/** - * @type {!SVGPointList} - */ -SVGPolygonElement.prototype.animatedPoints; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGPolygonElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGPolygonElement.prototype.transform; - - -/** - * @type {string} - */ -SVGPolygonElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGPolygonElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGPolygonElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGPolygonElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGPolygonElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGPolygonElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGPolygonElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGPolygonElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGPolygonElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGPolygonElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGPolygonElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGPolygonElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGPolygonElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGPolygonElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGPathElement(){} - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGPathElement.prototype.pathLength; - - -/** - * @type {!SVGPathSegList} - */ -SVGPathElement.prototype.pathSegList; - - -/** - * @type {!SVGPathSegList} - */ -SVGPathElement.prototype.normalizedPathSegList; - - -/** - * @type {!SVGPathSegList} - */ -SVGPathElement.prototype.animatedPathSegList; - - -/** - * @type {!SVGPathSegList} - */ -SVGPathElement.prototype.animatedNormalizedPathSegList; - - -/** - * @return {number} - */ -SVGPathElement.prototype.getTotalLength = function(){}; - - -/** - * @param {number=} opt_distance - * @return {!SVGPoint} - */ -SVGPathElement.prototype.getPointAtLength = function(opt_distance){}; - - -/** - * @param {number=} opt_distance - * @return {number} - */ -SVGPathElement.prototype.getPathSegAtLength = function(opt_distance){}; - - -/** - * @return {!SVGPathSegClosePath} - */ -SVGPathElement.prototype.createSVGPathSegClosePath = function(){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @return {!SVGPathSegMovetoAbs} - */ -SVGPathElement.prototype.createSVGPathSegMovetoAbs = function(opt_x, opt_y){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @return {!SVGPathSegMovetoRel} - */ -SVGPathElement.prototype.createSVGPathSegMovetoRel = function(opt_x, opt_y){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @return {!SVGPathSegLinetoAbs} - */ -SVGPathElement.prototype.createSVGPathSegLinetoAbs = function(opt_x, opt_y){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @return {!SVGPathSegLinetoRel} - */ -SVGPathElement.prototype.createSVGPathSegLinetoRel = function(opt_x, opt_y){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_x1 - * @param {number=} opt_y1 - * @param {number=} opt_x2 - * @param {number=} opt_y2 - * @return {!SVGPathSegCurvetoCubicAbs} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function(opt_x, opt_y, opt_x1, opt_y1, opt_x2, opt_y2){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_x1 - * @param {number=} opt_y1 - * @param {number=} opt_x2 - * @param {number=} opt_y2 - * @return {!SVGPathSegCurvetoCubicRel} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function(opt_x, opt_y, opt_x1, opt_y1, opt_x2, opt_y2){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_x1 - * @param {number=} opt_y1 - * @return {!SVGPathSegCurvetoQuadraticAbs} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function(opt_x, opt_y, opt_x1, opt_y1){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_x1 - * @param {number=} opt_y1 - * @return {!SVGPathSegCurvetoQuadraticRel} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function(opt_x, opt_y, opt_x1, opt_y1){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_r1 - * @param {number=} opt_r2 - * @param {number=} opt_angle - * @param {boolean=} opt_largeArcFlag - * @param {boolean=} opt_sweepFlag - * @return {!SVGPathSegArcAbs} - */ -SVGPathElement.prototype.createSVGPathSegArcAbs = function(opt_x, opt_y, opt_r1, opt_r2, opt_angle, opt_largeArcFlag, opt_sweepFlag){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_r1 - * @param {number=} opt_r2 - * @param {number=} opt_angle - * @param {boolean=} opt_largeArcFlag - * @param {boolean=} opt_sweepFlag - * @return {!SVGPathSegArcRel} - */ -SVGPathElement.prototype.createSVGPathSegArcRel = function(opt_x, opt_y, opt_r1, opt_r2, opt_angle, opt_largeArcFlag, opt_sweepFlag){}; - - -/** - * @param {number=} opt_x - * @return {!SVGPathSegLinetoHorizontalAbs} - */ -SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function(opt_x){}; - - -/** - * @param {number=} opt_x - * @return {!SVGPathSegLinetoHorizontalRel} - */ -SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function(opt_x){}; - - -/** - * @param {number=} opt_y - * @return {!SVGPathSegLinetoVerticalAbs} - */ -SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function(opt_y){}; - - -/** - * @param {number=} opt_y - * @return {!SVGPathSegLinetoVerticalRel} - */ -SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function(opt_y){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_x2 - * @param {number=} opt_y2 - * @return {!SVGPathSegCurvetoCubicSmoothAbs} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function(opt_x, opt_y, opt_x2, opt_y2){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @param {number=} opt_x2 - * @param {number=} opt_y2 - * @return {!SVGPathSegCurvetoCubicSmoothRel} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function(opt_x, opt_y, opt_x2, opt_y2){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @return {!SVGPathSegCurvetoQuadraticSmoothAbs} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function(opt_x, opt_y){}; - - -/** - * @param {number=} opt_x - * @param {number=} opt_y - * @return {!SVGPathSegCurvetoQuadraticSmoothRel} - */ -SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function(opt_x, opt_y){}; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGPathElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGPathElement.prototype.transform; - - -/** - * @type {string} - */ -SVGPathElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGPathElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGPathElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGPathElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGPathElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGPathElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGPathElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGPathElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGPathElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGPathElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGPathElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGPathElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGPathElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGPathElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGCircleElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGCircleElement.prototype.cx; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGCircleElement.prototype.cy; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGCircleElement.prototype.r; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGCircleElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGCircleElement.prototype.transform; - - -/** - * @type {string} - */ -SVGCircleElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGCircleElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGCircleElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGCircleElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGCircleElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGCircleElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGCircleElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGCircleElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGCircleElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGCircleElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGCircleElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGCircleElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGCircleElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGCircleElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGUseElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGUseElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGUseElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGUseElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGUseElement.prototype.height; - - -/** - * @type {!SVGElementInstance} - */ -SVGUseElement.prototype.instanceRoot; - - -/** - * @type {!SVGElementInstance} - */ -SVGUseElement.prototype.animatedInstanceRoot; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGUseElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGElement} - */ -SVGUseElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGUseElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGUseElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGUseElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGUseElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGUseElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGUseElement.prototype.transform; - - -/** - * @type {!SVGAnimatedString} - */ -SVGUseElement.prototype.href; - - -/** - * @type {string} - */ -SVGUseElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGUseElement.prototype.xmlspace; - - -/** - * @type {!SVGStringList} - */ -SVGUseElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGUseElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGUseElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGUseElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGUseElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGUseElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGPolylineElement(){} - - -/** - * @type {!SVGPointList} - */ -SVGPolylineElement.prototype.points; - - -/** - * @type {!SVGPointList} - */ -SVGPolylineElement.prototype.animatedPoints; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGPolylineElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGPolylineElement.prototype.transform; - - -/** - * @type {string} - */ -SVGPolylineElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGPolylineElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGPolylineElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGPolylineElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGPolylineElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGPolylineElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGPolylineElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGPolylineElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGPolylineElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGPolylineElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGPolylineElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGPolylineElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGPolylineElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGPolylineElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGGElement(){} - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGGElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGGElement.prototype.transform; - - -/** - * @type {string} - */ -SVGGElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGGElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGGElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGGElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGGElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGGElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGGElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGGElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGGElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGGElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGGElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGGElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGGElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGGElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGSwitchElement(){} - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGSwitchElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGSwitchElement.prototype.transform; - - -/** - * @type {string} - */ -SVGSwitchElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGSwitchElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGSwitchElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGSwitchElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGSwitchElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGSwitchElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGSwitchElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGSwitchElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGSwitchElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGSwitchElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGSwitchElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGSwitchElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGSwitchElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGSwitchElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGImageElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGImageElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGImageElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGImageElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGImageElement.prototype.height; - - -/** - * @type {!SVGAnimatedPreserveAspectRatio} - */ -SVGImageElement.prototype.preserveAspectRatio; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGImageElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGElement} - */ -SVGImageElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGImageElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGImageElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGImageElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGImageElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGImageElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGImageElement.prototype.transform; - - -/** - * @type {!SVGAnimatedString} - */ -SVGImageElement.prototype.href; - - -/** - * @type {string} - */ -SVGImageElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGImageElement.prototype.xmlspace; - - -/** - * @type {!SVGStringList} - */ -SVGImageElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGImageElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGImageElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGImageElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGImageElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGImageElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGRectElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRectElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRectElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRectElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRectElement.prototype.height; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRectElement.prototype.rx; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGRectElement.prototype.ry; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGRectElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGRectElement.prototype.transform; - - -/** - * @type {string} - */ -SVGRectElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGRectElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGRectElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGRectElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGRectElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGRectElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGRectElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGRectElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGRectElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGRectElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGRectElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGRectElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGRectElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGRectElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGAElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGAElement.prototype.target; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGAElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGElement} - */ -SVGAElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGAElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGAElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGAElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGAElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGAElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGAElement.prototype.transform; - - -/** - * @type {!SVGAnimatedString} - */ -SVGAElement.prototype.href; - - -/** - * @type {string} - */ -SVGAElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGAElement.prototype.xmlspace; - - -/** - * @type {!SVGStringList} - */ -SVGAElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGAElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGAElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGAElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGAElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGAElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - */ -function SVGAnimatedPreserveAspectRatio(){} - - -/** - * @type {!SVGPreserveAspectRatio} - */ -SVGAnimatedPreserveAspectRatio.prototype.baseVal; - - -/** - * @type {!SVGPreserveAspectRatio} - */ -SVGAnimatedPreserveAspectRatio.prototype.animVal; - - - -/** - * @constructor - */ -function SVGElementInstanceList(){} - - -/** - * @type {number} - */ -SVGElementInstanceList.prototype.length; - - -/** - * @param {number=} opt_index - * @return {!SVGElementInstance} - */ -SVGElementInstanceList.prototype.item = function(opt_index){}; - - - -/** - * @constructor - * @extends {Element} - */ -function SVGElement(){} - - -/** - * @type {string} - */ -SVGElement.prototype.id; - - -/** - * @type {string} - */ -SVGElement.prototype.xmlbase; - - -/** - * @type {!SVGSVGElement} - */ -SVGElement.prototype.ownerSVGElement; - - -/** - * @type {!SVGElement} - */ -SVGElement.prototype.viewportElement; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFETurbulenceElement(){} - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.prototype.SVG_TURBULENCE_TYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.prototype.SVG_TURBULENCE_TYPE_FRACTALNOISE; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.prototype.SVG_TURBULENCE_TYPE_TURBULENCE; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.SVG_STITCHTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.prototype.SVG_STITCHTYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.prototype.SVG_STITCHTYPE_STITCH; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH; - - -/** - * @const - * @type {number} - */ -SVGFETurbulenceElement.prototype.SVG_STITCHTYPE_NOSTITCH; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFETurbulenceElement.prototype.baseFrequencyX; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFETurbulenceElement.prototype.baseFrequencyY; - - -/** - * @type {!SVGAnimatedInteger} - */ -SVGFETurbulenceElement.prototype.numOctaves; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFETurbulenceElement.prototype.seed; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFETurbulenceElement.prototype.stitchTiles; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFETurbulenceElement.prototype.type; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETurbulenceElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETurbulenceElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETurbulenceElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFETurbulenceElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFETurbulenceElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFETurbulenceElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFETurbulenceElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGPathSeg} - */ -function SVGPathSegArcAbs(){} - - -/** - * @type {number} - */ -SVGPathSegArcAbs.prototype.x; - - -/** - * @type {number} - */ -SVGPathSegArcAbs.prototype.y; - - -/** - * @type {number} - */ -SVGPathSegArcAbs.prototype.r1; - - -/** - * @type {number} - */ -SVGPathSegArcAbs.prototype.r2; - - -/** - * @type {number} - */ -SVGPathSegArcAbs.prototype.angle; - - -/** - * @type {boolean} - */ -SVGPathSegArcAbs.prototype.largeArcFlag; - - -/** - * @type {boolean} - */ -SVGPathSegArcAbs.prototype.sweepFlag; - - - -/** - * @constructor - */ -function SVGAnimatedBoolean(){} - - -/** - * @type {boolean} - */ -SVGAnimatedBoolean.prototype.baseVal; - - -/** - * @type {boolean} - */ -SVGAnimatedBoolean.prototype.animVal; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGLangSpace} - */ -function SVGStyleElement(){} - - -/** - * @type {boolean} - */ -SVGStyleElement.prototype.disabled; - - -/** - * @type {string} - */ -SVGStyleElement.prototype.type; - - -/** - * @type {string} - */ -SVGStyleElement.prototype.media; - - -/** - * @type {string} - */ -SVGStyleElement.prototype.title; - - -/** - * @type {string} - */ -SVGStyleElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGStyleElement.prototype.xmlspace; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGClipPathElement(){} - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGClipPathElement.prototype.clipPathUnits; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGClipPathElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGClipPathElement.prototype.transform; - - -/** - * @type {string} - */ -SVGClipPathElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGClipPathElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGClipPathElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGClipPathElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGClipPathElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGClipPathElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGClipPathElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGClipPathElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGClipPathElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGClipPathElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGClipPathElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGClipPathElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGClipPathElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGClipPathElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @interface - */ -function ElementTimeControl(){} - - -/** - * @return {undefined} - */ -ElementTimeControl.prototype.beginElement = function(){}; - - -/** - * @param {number=} opt_offset - * @return {undefined} - */ -ElementTimeControl.prototype.beginElementAt = function(opt_offset){}; - - -/** - * @return {undefined} - */ -ElementTimeControl.prototype.endElement = function(){}; - - -/** - * @param {number=} opt_offset - * @return {undefined} - */ -ElementTimeControl.prototype.endElementAt = function(opt_offset){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGExternalResourcesRequired} - * @implements {ElementTimeControl} - */ -function SVGAnimationElement(){} - - -/** - * @type {!SVGElement} - */ -SVGAnimationElement.prototype.targetElement; - - -/** - * @return {number} - */ -SVGAnimationElement.prototype.getStartTime = function(){}; - - -/** - * @return {number} - */ -SVGAnimationElement.prototype.getCurrentTime = function(){}; - - -/** - * @return {number} - */ -SVGAnimationElement.prototype.getSimpleDuration = function(){}; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGAnimationElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGStringList} - */ -SVGAnimationElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGAnimationElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGAnimationElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGAnimationElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @override - * @return {undefined} - */ -SVGAnimationElement.prototype.beginElement = function(){}; - - -/** - * @param {number=} opt_offset - * @override - * @return {undefined} - */ -SVGAnimationElement.prototype.beginElementAt = function(opt_offset){}; - - -/** - * @override - * @return {undefined} - */ -SVGAnimationElement.prototype.endElement = function(){}; - - -/** - * @param {number=} opt_offset - * @override - * @return {undefined} - */ -SVGAnimationElement.prototype.endElementAt = function(opt_offset){}; - - - -/** - * @constructor - * @extends {SVGAnimationElement} - */ -function SVGAnimateMotionElement(){} - - - -/** - * @constructor - * @extends {SVGAnimationElement} - */ -function SVGAnimateElement(){} - - - -/** - * @constructor - * @extends {SVGAnimationElement} - */ -function SVGAnimateColorElement(){} - - - -/** - * @constructor - * @extends {SVGAnimationElement} - */ -function SVGAnimateTransformElement(){} - - - -/** - * @constructor - * @extends {SVGAnimationElement} - */ -function SVGSetElement(){} - - - -/** - * @constructor - */ -function SVGAngle(){} - - -/** - * @const - * @type {number} - */ -SVGAngle.SVG_ANGLETYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGAngle.prototype.SVG_ANGLETYPE_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGAngle.SVG_ANGLETYPE_UNSPECIFIED; - - -/** - * @const - * @type {number} - */ -SVGAngle.prototype.SVG_ANGLETYPE_UNSPECIFIED; - - -/** - * @const - * @type {number} - */ -SVGAngle.SVG_ANGLETYPE_DEG; - - -/** - * @const - * @type {number} - */ -SVGAngle.prototype.SVG_ANGLETYPE_DEG; - - -/** - * @const - * @type {number} - */ -SVGAngle.SVG_ANGLETYPE_RAD; - - -/** - * @const - * @type {number} - */ -SVGAngle.prototype.SVG_ANGLETYPE_RAD; - - -/** - * @const - * @type {number} - */ -SVGAngle.SVG_ANGLETYPE_GRAD; - - -/** - * @const - * @type {number} - */ -SVGAngle.prototype.SVG_ANGLETYPE_GRAD; - - -/** - * @type {number} - */ -SVGAngle.prototype.unitType; - - -/** - * @type {number} - */ -SVGAngle.prototype.value; - - -/** - * @type {number} - */ -SVGAngle.prototype.valueInSpecifiedUnits; - - -/** - * @type {string} - */ -SVGAngle.prototype.valueAsString; - - -/** - * @param {number} unitType - * @param {number} valueInSpecifiedUnits - * @return {undefined} - */ -SVGAngle.prototype.newValueSpecifiedUnits = function(unitType, valueInSpecifiedUnits){}; - - -/** - * @param {number} unitType - * @return {undefined} - */ -SVGAngle.prototype.convertToSpecifiedUnits = function(unitType){}; - - - -/** - * @constructor - * @extends {SVGTextPositioningElement} - * @implements {SVGTransformable} - */ -function SVGTextElement(){} - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGTextElement.prototype.transform; - - -/** - * @type {!SVGElement} - */ -SVGTextElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGTextElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGTextElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGTextElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGTextElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGTextElement.prototype.getTransformToElement = function(opt_element){}; - - - -/** - * @constructor - * @extends {SVGElement} - */ -function SVGFontFaceElement(){} - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGLineElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLineElement.prototype.x1; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLineElement.prototype.y1; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLineElement.prototype.x2; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGLineElement.prototype.y2; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGLineElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGLineElement.prototype.transform; - - -/** - * @type {string} - */ -SVGLineElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGLineElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGLineElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGLineElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGLineElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGLineElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGLineElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGLineElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGLineElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGLineElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGLineElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGLineElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGLineElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGLineElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEComponentTransferElement(){} - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEComponentTransferElement.prototype.in1; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEComponentTransferElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEComponentTransferElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEComponentTransferElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEComponentTransferElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEComponentTransferElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEComponentTransferElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEComponentTransferElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEDisplacementMapElement(){} - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.SVG_CHANNEL_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.prototype.SVG_CHANNEL_UNKNOWN; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.SVG_CHANNEL_R; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.prototype.SVG_CHANNEL_R; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.SVG_CHANNEL_G; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.prototype.SVG_CHANNEL_G; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.SVG_CHANNEL_B; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.prototype.SVG_CHANNEL_B; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.SVG_CHANNEL_A; - - -/** - * @const - * @type {number} - */ -SVGFEDisplacementMapElement.prototype.SVG_CHANNEL_A; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDisplacementMapElement.prototype.in1; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDisplacementMapElement.prototype.in2; - - -/** - * @type {!SVGAnimatedNumber} - */ -SVGFEDisplacementMapElement.prototype.scale; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFEDisplacementMapElement.prototype.xChannelSelector; - - -/** - * @type {!SVGAnimatedEnumeration} - */ -SVGFEDisplacementMapElement.prototype.yChannelSelector; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDisplacementMapElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDisplacementMapElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDisplacementMapElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEDisplacementMapElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDisplacementMapElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEDisplacementMapElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEDisplacementMapElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - */ -function SVGAnimatedEnumeration(){} - - -/** - * @type {number} - */ -SVGAnimatedEnumeration.prototype.baseVal; - - -/** - * @type {number} - */ -SVGAnimatedEnumeration.prototype.animVal; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGFilterPrimitiveStandardAttributes} - */ -function SVGFEMergeElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMergeElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMergeElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMergeElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGFEMergeElement.prototype.height; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEMergeElement.prototype.result; - - -/** - * @type {!SVGAnimatedString} - */ -SVGFEMergeElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGFEMergeElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGTests} - * @implements {SVGLangSpace} - * @implements {SVGExternalResourcesRequired} - * @implements {SVGStylable} - * @implements {SVGTransformable} - */ -function SVGForeignObjectElement(){} - - -/** - * @type {!SVGAnimatedLength} - */ -SVGForeignObjectElement.prototype.x; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGForeignObjectElement.prototype.y; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGForeignObjectElement.prototype.width; - - -/** - * @type {!SVGAnimatedLength} - */ -SVGForeignObjectElement.prototype.height; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGForeignObjectElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedTransformList} - */ -SVGForeignObjectElement.prototype.transform; - - -/** - * @type {string} - */ -SVGForeignObjectElement.prototype.xmllang; - - -/** - * @type {string} - */ -SVGForeignObjectElement.prototype.xmlspace; - - -/** - * @type {!SVGElement} - */ -SVGForeignObjectElement.prototype.nearestViewportElement; - - -/** - * @type {!SVGElement} - */ -SVGForeignObjectElement.prototype.farthestViewportElement; - - -/** - * @return {!SVGRect} - * @override - */ -SVGForeignObjectElement.prototype.getBBox = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGForeignObjectElement.prototype.getCTM = function(){}; - - -/** - * @return {!SVGMatrix} - * @override - */ -SVGForeignObjectElement.prototype.getScreenCTM = function(){}; - - -/** - * @param {!SVGElement=} opt_element - * @return {!SVGMatrix} - * @override - */ -SVGForeignObjectElement.prototype.getTransformToElement = function(opt_element){}; - - -/** - * @type {!SVGStringList} - */ -SVGForeignObjectElement.prototype.requiredFeatures; - - -/** - * @type {!SVGStringList} - */ -SVGForeignObjectElement.prototype.requiredExtensions; - - -/** - * @type {!SVGStringList} - */ -SVGForeignObjectElement.prototype.systemLanguage; - - -/** - * @param {string=} opt_extension - * @return {boolean} - * @override - */ -SVGForeignObjectElement.prototype.hasExtension = function(opt_extension){}; - - -/** - * @type {!SVGAnimatedString} - */ -SVGForeignObjectElement.prototype.className; - - -/** - * @param {string=} opt_name - * @return {!CSSValue} - * @override - */ -SVGForeignObjectElement.prototype.getPresentationAttribute = function(opt_name){}; - - - -/** - * @constructor - */ -function SVGAnimatedLength(){} - - -/** - * @type {!SVGLength} - */ -SVGAnimatedLength.prototype.baseVal; - - -/** - * @type {!SVGLength} - */ -SVGAnimatedLength.prototype.animVal; - - - -/** - * @constructor - * @extends {SVGElement} - * @implements {SVGURIReference} - * @implements {SVGExternalResourcesRequired} - */ -function SVGScriptElement(){} - - -/** - * @type {string} - */ -SVGScriptElement.prototype.type; - - -/** - * @type {!SVGAnimatedBoolean} - */ -SVGScriptElement.prototype.externalResourcesRequired; - - -/** - * @type {!SVGAnimatedString} - */ -SVGScriptElement.prototype.href; - - - -/** - * @constructor - */ -function SVGAnimatedInteger(){} - - -/** - * @type {number} - */ -SVGAnimatedInteger.prototype.baseVal; - - -/** - * @type {number} - */ -SVGAnimatedInteger.prototype.animVal; diff --git a/lib/blockly/generators/dart.js b/lib/blockly/generators/dart.js deleted file mode 100644 index c5eadde..0000000 --- a/lib/blockly/generators/dart.js +++ /dev/null @@ -1,300 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Helper functions for generating Dart for blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart'); - -goog.require('Blockly.Generator'); -goog.require('Blockly.utils.string'); - - -/** - * Dart code generator. - * @type {!Blockly.Generator} - */ -Blockly.Dart = new Blockly.Generator('Dart'); - -/** - * List of illegal variable names. - * This is not intended to be a security feature. Blockly is 100% client-side, - * so bypassing this list is trivial. This is intended to prevent users from - * accidentally clobbering a built-in object or function. - * @private - */ -Blockly.Dart.addReservedWords( - // https://www.dartlang.org/docs/spec/latest/dart-language-specification.pdf - // Section 16.1.1 - 'assert,break,case,catch,class,const,continue,default,do,else,enum,' + - 'extends,false,final,finally,for,if,in,is,new,null,rethrow,return,super,' + - 'switch,this,throw,true,try,var,void,while,with,' + - // https://api.dartlang.org/dart_core.html - 'print,identityHashCode,identical,BidirectionalIterator,Comparable,' + - 'double,Function,int,Invocation,Iterable,Iterator,List,Map,Match,num,' + - 'Pattern,RegExp,Set,StackTrace,String,StringSink,Type,bool,DateTime,' + - 'Deprecated,Duration,Expando,Null,Object,RuneIterator,Runes,Stopwatch,' + - 'StringBuffer,Symbol,Uri,Comparator,AbstractClassInstantiationError,' + - 'ArgumentError,AssertionError,CastError,ConcurrentModificationError,' + - 'CyclicInitializationError,Error,Exception,FallThroughError,' + - 'FormatException,IntegerDivisionByZeroException,NoSuchMethodError,' + - 'NullThrownError,OutOfMemoryError,RangeError,StackOverflowError,' + - 'StateError,TypeError,UnimplementedError,UnsupportedError' -); - -/** - * Order of operation ENUMs. - * https://www.dartlang.org/docs/dart-up-and-running/ch02.html#operator_table - */ -Blockly.Dart.ORDER_ATOMIC = 0; // 0 "" ... -Blockly.Dart.ORDER_UNARY_POSTFIX = 1; // expr++ expr-- () [] . ?. -Blockly.Dart.ORDER_UNARY_PREFIX = 2; // -expr !expr ~expr ++expr --expr -Blockly.Dart.ORDER_MULTIPLICATIVE = 3; // * / % ~/ -Blockly.Dart.ORDER_ADDITIVE = 4; // + - -Blockly.Dart.ORDER_SHIFT = 5; // << >> -Blockly.Dart.ORDER_BITWISE_AND = 6; // & -Blockly.Dart.ORDER_BITWISE_XOR = 7; // ^ -Blockly.Dart.ORDER_BITWISE_OR = 8; // | -Blockly.Dart.ORDER_RELATIONAL = 9; // >= > <= < as is is! -Blockly.Dart.ORDER_EQUALITY = 10; // == != -Blockly.Dart.ORDER_LOGICAL_AND = 11; // && -Blockly.Dart.ORDER_LOGICAL_OR = 12; // || -Blockly.Dart.ORDER_IF_NULL = 13; // ?? -Blockly.Dart.ORDER_CONDITIONAL = 14; // expr ? expr : expr -Blockly.Dart.ORDER_CASCADE = 15; // .. -Blockly.Dart.ORDER_ASSIGNMENT = 16; // = *= /= ~/= %= += -= <<= >>= &= ^= |= -Blockly.Dart.ORDER_NONE = 99; // (...) - -/** - * Initialise the database of variable names. - * @param {!Blockly.Workspace} workspace Workspace to generate code from. - */ -Blockly.Dart.init = function(workspace) { - // Create a dictionary of definitions to be printed before the code. - Blockly.Dart.definitions_ = Object.create(null); - // Create a dictionary mapping desired function names in definitions_ - // to actual function names (to avoid collisions with user functions). - Blockly.Dart.functionNames_ = Object.create(null); - - if (!Blockly.Dart.variableDB_) { - Blockly.Dart.variableDB_ = - new Blockly.Names(Blockly.Dart.RESERVED_WORDS_); - } else { - Blockly.Dart.variableDB_.reset(); - } - - Blockly.Dart.variableDB_.setVariableMap(workspace.getVariableMap()); - - var defvars = []; - // Add developer variables (not created or named by the user). - var devVarList = Blockly.Variables.allDeveloperVariables(workspace); - for (var i = 0; i < devVarList.length; i++) { - defvars.push(Blockly.Dart.variableDB_.getName(devVarList[i], - Blockly.Names.DEVELOPER_VARIABLE_TYPE)); - } - - // Add user variables, but only ones that are being used. - var variables = Blockly.Variables.allUsedVarModels(workspace); - for (var i = 0; i < variables.length; i++) { - defvars.push(Blockly.Dart.variableDB_.getName(variables[i].getId(), - Blockly.Variables.NAME_TYPE)); - } - - // Declare all of the variables. - if (defvars.length) { - Blockly.Dart.definitions_['variables'] = - 'var ' + defvars.join(', ') + ';'; - } -}; - -/** - * Prepend the generated code with the variable definitions. - * @param {string} code Generated code. - * @return {string} Completed code. - */ -Blockly.Dart.finish = function(code) { - // Indent every line. - if (code) { - code = Blockly.Dart.prefixLines(code, Blockly.Dart.INDENT); - } - code = 'main() {\n' + code + '}'; - - // Convert the definitions dictionary into a list. - var imports = []; - var definitions = []; - for (var name in Blockly.Dart.definitions_) { - var def = Blockly.Dart.definitions_[name]; - if (def.match(/^import\s/)) { - imports.push(def); - } else { - definitions.push(def); - } - } - // Clean up temporary data. - delete Blockly.Dart.definitions_; - delete Blockly.Dart.functionNames_; - Blockly.Dart.variableDB_.reset(); - var allDefs = imports.join('\n') + '\n\n' + definitions.join('\n\n'); - return allDefs.replace(/\n\n+/g, '\n\n').replace(/\n*$/, '\n\n\n') + code; -}; - -/** - * Naked values are top-level blocks with outputs that aren't plugged into - * anything. A trailing semicolon is needed to make this legal. - * @param {string} line Line of generated code. - * @return {string} Legal line of code. - */ -Blockly.Dart.scrubNakedValue = function(line) { - return line + ';\n'; -}; - -/** - * Encode a string as a properly escaped Dart string, complete with quotes. - * @param {string} string Text to encode. - * @return {string} Dart string. - * @private - */ -Blockly.Dart.quote_ = function(string) { - // Can't use goog.string.quote since $ must also be escaped. - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n') - .replace(/\$/g, '\\$') - .replace(/'/g, '\\\''); - return '\'' + string + '\''; -}; - -/** - * Encode a string as a properly escaped multiline Dart string, complete with - * quotes. - * @param {string} string Text to encode. - * @return {string} Dart string. - * @private - */ -Blockly.Dart.multiline_quote_ = function(string) { - // Can't use goog.string.quote since $ must also be escaped. - string = string.replace(/'''/g, '\\\'\\\'\\\''); - return '\'\'\'' + string + '\'\'\''; -}; - - -/** - * Common tasks for generating Dart from blocks. - * Handles comments for the specified block and any connected value blocks. - * Calls any statements following this block. - * @param {!Blockly.Block} block The current block. - * @param {string} code The Dart code created for this block. - * @param {boolean=} opt_thisOnly True to generate code for only this statement. - * @return {string} Dart code with comments and subsequent blocks added. - * @private - */ -Blockly.Dart.scrub_ = function(block, code, opt_thisOnly) { - var commentCode = ''; - // Only collect comments for blocks that aren't inline. - if (!block.outputConnection || !block.outputConnection.targetConnection) { - // Collect comment for this block. - var comment = block.getCommentText(); - if (comment) { - comment = Blockly.utils.string.wrap(comment, - Blockly.Dart.COMMENT_WRAP - 3); - if (block.getProcedureDef) { - // Use documentation comment for function comments. - commentCode += Blockly.Dart.prefixLines(comment + '\n', '/// '); - } else { - commentCode += Blockly.Dart.prefixLines(comment + '\n', '// '); - } - } - // Collect comments for all value arguments. - // Don't collect comments for nested statements. - for (var i = 0; i < block.inputList.length; i++) { - if (block.inputList[i].type == Blockly.INPUT_VALUE) { - var childBlock = block.inputList[i].connection.targetBlock(); - if (childBlock) { - var comment = Blockly.Dart.allNestedComments(childBlock); - if (comment) { - commentCode += Blockly.Dart.prefixLines(comment, '// '); - } - } - } - } - } - var nextBlock = block.nextConnection && block.nextConnection.targetBlock(); - var nextCode = opt_thisOnly ? '' : Blockly.Dart.blockToCode(nextBlock); - return commentCode + code + nextCode; -}; - -/** - * Gets a property and adjusts the value while taking into account indexing. - * @param {!Blockly.Block} block The block. - * @param {string} atId The property ID of the element to get. - * @param {number=} opt_delta Value to add. - * @param {boolean=} opt_negate Whether to negate the value. - * @param {number=} opt_order The highest order acting on this value. - * @return {string|number} - */ -Blockly.Dart.getAdjusted = function(block, atId, opt_delta, opt_negate, - opt_order) { - var delta = opt_delta || 0; - var order = opt_order || Blockly.Dart.ORDER_NONE; - if (block.workspace.options.oneBasedIndex) { - delta--; - } - var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0'; - if (delta) { - var at = Blockly.Dart.valueToCode(block, atId, - Blockly.Dart.ORDER_ADDITIVE) || defaultAtIndex; - } else if (opt_negate) { - var at = Blockly.Dart.valueToCode(block, atId, - Blockly.Dart.ORDER_UNARY_PREFIX) || defaultAtIndex; - } else { - var at = Blockly.Dart.valueToCode(block, atId, order) || - defaultAtIndex; - } - - if (Blockly.isNumber(at)) { - // If the index is a naked number, adjust it right now. - at = parseInt(at, 10) + delta; - if (opt_negate) { - at = -at; - } - } else { - // If the index is dynamic, adjust it in code. - if (delta > 0) { - at = at + ' + ' + delta; - var innerOrder = Blockly.Dart.ORDER_ADDITIVE; - } else if (delta < 0) { - at = at + ' - ' + -delta; - var innerOrder = Blockly.Dart.ORDER_ADDITIVE; - } - if (opt_negate) { - if (delta) { - at = '-(' + at + ')'; - } else { - at = '-' + at; - } - var innerOrder = Blockly.Dart.ORDER_UNARY_PREFIX; - } - innerOrder = Math.floor(innerOrder); - order = Math.floor(order); - if (innerOrder && order >= innerOrder) { - at = '(' + at + ')'; - } - } - return at; -}; diff --git a/lib/blockly/generators/dart/colour.js b/lib/blockly/generators/dart/colour.js deleted file mode 100644 index 8f58bd4..0000000 --- a/lib/blockly/generators/dart/colour.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for colour blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart.colour'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart.addReservedWords('Math'); - -Blockly.Dart['colour_picker'] = function(block) { - // Colour picker. - var code = Blockly.Dart.quote_(block.getFieldValue('COLOUR')); - return [code, Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['colour_random'] = function(block) { - // Generate a random colour. - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'colour_random', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + '() {', - ' String hex = \'0123456789abcdef\';', - ' var rnd = new Math.Random();', - ' return \'#${hex[rnd.nextInt(16)]}${hex[rnd.nextInt(16)]}\'', - ' \'${hex[rnd.nextInt(16)]}${hex[rnd.nextInt(16)]}\'', - ' \'${hex[rnd.nextInt(16)]}${hex[rnd.nextInt(16)]}\';', - '}']); - var code = functionName + '()'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['colour_rgb'] = function(block) { - // Compose a colour from RGB components expressed as percentages. - var red = Blockly.Dart.valueToCode(block, 'RED', - Blockly.Dart.ORDER_NONE) || 0; - var green = Blockly.Dart.valueToCode(block, 'GREEN', - Blockly.Dart.ORDER_NONE) || 0; - var blue = Blockly.Dart.valueToCode(block, 'BLUE', - Blockly.Dart.ORDER_NONE) || 0; - - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'colour_rgb', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(num r, num g, num b) {', - ' num rn = (Math.max(Math.min(r, 100), 0) * 2.55).round();', - ' String rs = rn.toInt().toRadixString(16);', - ' rs = \'0$rs\';', - ' rs = rs.substring(rs.length - 2);', - ' num gn = (Math.max(Math.min(g, 100), 0) * 2.55).round();', - ' String gs = gn.toInt().toRadixString(16);', - ' gs = \'0$gs\';', - ' gs = gs.substring(gs.length - 2);', - ' num bn = (Math.max(Math.min(b, 100), 0) * 2.55).round();', - ' String bs = bn.toInt().toRadixString(16);', - ' bs = \'0$bs\';', - ' bs = bs.substring(bs.length - 2);', - ' return \'#$rs$gs$bs\';', - '}']); - var code = functionName + '(' + red + ', ' + green + ', ' + blue + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['colour_blend'] = function(block) { - // Blend two colours together. - var c1 = Blockly.Dart.valueToCode(block, 'COLOUR1', - Blockly.Dart.ORDER_NONE) || '\'#000000\''; - var c2 = Blockly.Dart.valueToCode(block, 'COLOUR2', - Blockly.Dart.ORDER_NONE) || '\'#000000\''; - var ratio = Blockly.Dart.valueToCode(block, 'RATIO', - Blockly.Dart.ORDER_NONE) || 0.5; - - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'colour_blend', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String c1, String c2, num ratio) {', - ' ratio = Math.max(Math.min(ratio, 1), 0);', - ' int r1 = int.parse(\'0x${c1.substring(1, 3)}\');', - ' int g1 = int.parse(\'0x${c1.substring(3, 5)}\');', - ' int b1 = int.parse(\'0x${c1.substring(5, 7)}\');', - ' int r2 = int.parse(\'0x${c2.substring(1, 3)}\');', - ' int g2 = int.parse(\'0x${c2.substring(3, 5)}\');', - ' int b2 = int.parse(\'0x${c2.substring(5, 7)}\');', - ' num rn = (r1 * (1 - ratio) + r2 * ratio).round();', - ' String rs = rn.toInt().toRadixString(16);', - ' num gn = (g1 * (1 - ratio) + g2 * ratio).round();', - ' String gs = gn.toInt().toRadixString(16);', - ' num bn = (b1 * (1 - ratio) + b2 * ratio).round();', - ' String bs = bn.toInt().toRadixString(16);', - ' rs = \'0$rs\';', - ' rs = rs.substring(rs.length - 2);', - ' gs = \'0$gs\';', - ' gs = gs.substring(gs.length - 2);', - ' bs = \'0$bs\';', - ' bs = bs.substring(bs.length - 2);', - ' return \'#$rs$gs$bs\';', - '}']); - var code = functionName + '(' + c1 + ', ' + c2 + ', ' + ratio + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; diff --git a/lib/blockly/generators/dart/lists.js b/lib/blockly/generators/dart/lists.js deleted file mode 100644 index 19ad887..0000000 --- a/lib/blockly/generators/dart/lists.js +++ /dev/null @@ -1,458 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for list blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart.lists'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart.addReservedWords('Math'); - -Blockly.Dart['lists_create_empty'] = function(block) { - // Create an empty list. - return ['[]', Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['lists_create_with'] = function(block) { - // Create a list with any number of elements of any type. - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.Dart.valueToCode(block, 'ADD' + i, - Blockly.Dart.ORDER_NONE) || 'null'; - } - var code = '[' + elements.join(', ') + ']'; - return [code, Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['lists_repeat'] = function(block) { - // Create a list with one element repeated. - var element = Blockly.Dart.valueToCode(block, 'ITEM', - Blockly.Dart.ORDER_NONE) || 'null'; - var repeatCount = Blockly.Dart.valueToCode(block, 'NUM', - Blockly.Dart.ORDER_NONE) || '0'; - var code = 'new List.filled(' + repeatCount + ', ' + element + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_length'] = function(block) { - // String or array length. - var list = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]'; - return [list + '.length', Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_isEmpty'] = function(block) { - // Is the string null or array empty? - var list = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]'; - return [list + '.isEmpty', Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_indexOf'] = function(block) { - // Find an item in the list. - var operator = block.getFieldValue('END') == 'FIRST' ? - 'indexOf' : 'lastIndexOf'; - var item = Blockly.Dart.valueToCode(block, 'FIND', - Blockly.Dart.ORDER_NONE) || '\'\''; - var list = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]'; - var code = list + '.' + operator + '(' + item + ')'; - if (block.workspace.options.oneBasedIndex) { - return [code + ' + 1', Blockly.Dart.ORDER_ADDITIVE]; - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_getIndex'] = function(block) { - // Get element at index. - // Note: Until January 2013 this block did not have MODE or WHERE inputs. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var listOrder = (where == 'RANDOM' || where == 'FROM_END') ? - Blockly.Dart.ORDER_NONE : Blockly.Dart.ORDER_UNARY_POSTFIX; - var list = Blockly.Dart.valueToCode(block, 'VALUE', listOrder) || '[]'; - // Cache non-trivial values to variables to prevent repeated look-ups. - // Closure, which accesses and modifies 'list'. - function cacheList() { - var listVar = Blockly.Dart.variableDB_.getDistinctName( - 'tmp_list', Blockly.Variables.NAME_TYPE); - var code = 'List ' + listVar + ' = ' + list + ';\n'; - list = listVar; - return code; - } - // If `list` would be evaluated more than once (which is the case for - // RANDOM REMOVE and FROM_END) and is non-trivial, make sure to access it - // only once. - if (((where == 'RANDOM' && mode == 'REMOVE') || where == 'FROM_END') && - !list.match(/^\w+$/)) { - // `list` is an expression, so we may not evaluate it more than once. - if (where == 'RANDOM') { - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - // We can use multiple statements. - var code = cacheList(); - var xVar = Blockly.Dart.variableDB_.getDistinctName( - 'tmp_x', Blockly.Variables.NAME_TYPE); - code += 'int ' + xVar + ' = new Math.Random().nextInt(' + list + - '.length);\n'; - code += list + '.removeAt(' + xVar + ');\n'; - return code; - } else { // where == 'FROM_END' - if (mode == 'REMOVE') { - // We can use multiple statements. - var at = Blockly.Dart.getAdjusted(block, 'AT', 1, false, - Blockly.Dart.ORDER_ADDITIVE); - var code = cacheList(); - code += list + '.removeAt(' + list + '.length' + ' - ' + at + ');\n'; - return code; - - } else if (mode == 'GET') { - var at = Blockly.Dart.getAdjusted(block, 'AT', 1); - // We need to create a procedure to avoid reevaluating values. - var functionName = Blockly.Dart.provideFunction_( - 'lists_get_from_end', - ['dynamic ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List my_list, num x) {', - ' x = my_list.length - x;', - ' return my_list[x];', - '}']); - var code = functionName + '(' + list + ', ' + at + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'GET_REMOVE') { - var at = Blockly.Dart.getAdjusted(block, 'AT', 1); - // We need to create a procedure to avoid reevaluating values. - var functionName = Blockly.Dart.provideFunction_( - 'lists_remove_from_end', - ['dynamic ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List my_list, num x) {', - ' x = my_list.length - x;', - ' return my_list.removeAt(x);', - '}']); - var code = functionName + '(' + list + ', ' + at + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } - } - } else { - // Either `list` is a simple variable, or we only need to refer to `list` - // once. - switch (where) { - case 'FIRST': - if (mode == 'GET') { - var code = list + '.first'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.removeAt(0)'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'REMOVE') { - return list + '.removeAt(0);\n'; - } - break; - case 'LAST': - if (mode == 'GET') { - var code = list + '.last'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.removeLast()'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'REMOVE') { - return list + '.removeLast();\n'; - } - break; - case 'FROM_START': - var at = Blockly.Dart.getAdjusted(block, 'AT'); - if (mode == 'GET') { - var code = list + '[' + at + ']'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.removeAt(' + at + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'REMOVE') { - return list + '.removeAt(' + at + ');\n'; - } - break; - case 'FROM_END': - var at = Blockly.Dart.getAdjusted(block, 'AT', 1, false, - Blockly.Dart.ORDER_ADDITIVE); - if (mode == 'GET') { - var code = list + '[' + list + '.length - ' + at + ']'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'GET_REMOVE' || mode == 'REMOVE') { - var code = list + '.removeAt(' + list + '.length - ' + at + ')'; - if (mode == 'GET_REMOVE') { - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'REMOVE') { - return code + ';\n'; - } - } - break; - case 'RANDOM': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - if (mode == 'REMOVE') { - // We can use multiple statements. - var xVar = Blockly.Dart.variableDB_.getDistinctName( - 'tmp_x', Blockly.Variables.NAME_TYPE); - var code = 'int ' + xVar + ' = new Math.Random().nextInt(' + list + - '.length);\n'; - code += list + '.removeAt(' + xVar + ');\n'; - return code; - } else if (mode == 'GET') { - var functionName = Blockly.Dart.provideFunction_( - 'lists_get_random_item', - ['dynamic ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List my_list) {', - ' int x = new Math.Random().nextInt(my_list.length);', - ' return my_list[x];', - '}']); - var code = functionName + '(' + list + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } else if (mode == 'GET_REMOVE') { - var functionName = Blockly.Dart.provideFunction_( - 'lists_remove_random_item', - ['dynamic ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List my_list) {', - ' int x = new Math.Random().nextInt(my_list.length);', - ' return my_list.removeAt(x);', - '}']); - var code = functionName + '(' + list + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } - break; - } - } - throw Error('Unhandled combination (lists_getIndex).'); -}; - -Blockly.Dart['lists_setIndex'] = function(block) { - // Set element at index. - // Note: Until February 2013 this block did not have MODE or WHERE inputs. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var list = Blockly.Dart.valueToCode(block, 'LIST', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]'; - var value = Blockly.Dart.valueToCode(block, 'TO', - Blockly.Dart.ORDER_ASSIGNMENT) || 'null'; - // Cache non-trivial values to variables to prevent repeated look-ups. - // Closure, which accesses and modifies 'list'. - function cacheList() { - if (list.match(/^\w+$/)) { - return ''; - } - var listVar = Blockly.Dart.variableDB_.getDistinctName( - 'tmp_list', Blockly.Variables.NAME_TYPE); - var code = 'List ' + listVar + ' = ' + list + ';\n'; - list = listVar; - return code; - } - switch (where) { - case 'FIRST': - if (mode == 'SET') { - return list + '[0] = ' + value + ';\n'; - } else if (mode == 'INSERT') { - return list + '.insert(0, ' + value + ');\n'; - } - break; - case 'LAST': - if (mode == 'SET') { - var code = cacheList(); - code += list + '[' + list + '.length - 1] = ' + value + ';\n'; - return code; - } else if (mode == 'INSERT') { - return list + '.add(' + value + ');\n'; - } - break; - case 'FROM_START': - var at = Blockly.Dart.getAdjusted(block, 'AT'); - if (mode == 'SET') { - return list + '[' + at + '] = ' + value + ';\n'; - } else if (mode == 'INSERT') { - return list + '.insert(' + at + ', ' + value + ');\n'; - } - break; - case 'FROM_END': - var at = Blockly.Dart.getAdjusted(block, 'AT', 1, false, - Blockly.Dart.ORDER_ADDITIVE); - var code = cacheList(); - if (mode == 'SET') { - code += list + '[' + list + '.length - ' + at + '] = ' + value + - ';\n'; - return code; - } else if (mode == 'INSERT') { - code += list + '.insert(' + list + '.length - ' + at + ', ' + - value + ');\n'; - return code; - } - break; - case 'RANDOM': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var code = cacheList(); - var xVar = Blockly.Dart.variableDB_.getDistinctName( - 'tmp_x', Blockly.Variables.NAME_TYPE); - code += 'int ' + xVar + - ' = new Math.Random().nextInt(' + list + '.length);\n'; - if (mode == 'SET') { - code += list + '[' + xVar + '] = ' + value + ';\n'; - return code; - } else if (mode == 'INSERT') { - code += list + '.insert(' + xVar + ', ' + value + ');\n'; - return code; - } - break; - } - throw Error('Unhandled combination (lists_setIndex).'); -}; - -Blockly.Dart['lists_getSublist'] = function(block) { - // Get sublist. - var list = Blockly.Dart.valueToCode(block, 'LIST', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - if (list.match(/^\w+$/) || (where1 != 'FROM_END' && where2 == 'FROM_START')) { - // If the list is a is a variable or doesn't require a call for length, - // don't generate a helper function. - switch (where1) { - case 'FROM_START': - var at1 = Blockly.Dart.getAdjusted(block, 'AT1'); - break; - case 'FROM_END': - var at1 = Blockly.Dart.getAdjusted(block, 'AT1', 1, false, - Blockly.Dart.ORDER_ADDITIVE); - at1 = list + '.length - ' + at1; - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw Error('Unhandled option (lists_getSublist).'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.Dart.getAdjusted(block, 'AT2', 1); - break; - case 'FROM_END': - var at2 = Blockly.Dart.getAdjusted(block, 'AT2', 0, false, - Blockly.Dart.ORDER_ADDITIVE); - at2 = list + '.length - ' + at2; - break; - case 'LAST': - // There is no second index if LAST option is chosen. - break; - default: - throw Error('Unhandled option (lists_getSublist).'); - } - if (where2 == 'LAST') { - var code = list + '.sublist(' + at1 + ')'; - } else { - var code = list + '.sublist(' + at1 + ', ' + at2 + ')'; - } - } else { - var at1 = Blockly.Dart.getAdjusted(block, 'AT1'); - var at2 = Blockly.Dart.getAdjusted(block, 'AT2'); - var functionName = Blockly.Dart.provideFunction_( - 'lists_get_sublist', - ['List ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List list, String where1, num at1, String where2, num at2) {', - ' int getAt(String where, num at) {', - ' if (where == \'FROM_END\') {', - ' at = list.length - 1 - at;', - ' } else if (where == \'FIRST\') {', - ' at = 0;', - ' } else if (where == \'LAST\') {', - ' at = list.length - 1;', - ' } else if (where != \'FROM_START\') {', - ' throw \'Unhandled option (lists_getSublist).\';', - ' }', - ' return at;', - ' }', - ' at1 = getAt(where1, at1);', - ' at2 = getAt(where2, at2) + 1;', - ' return list.sublist(at1, at2);', - '}']); - var code = functionName + '(' + list + ', \'' + - where1 + '\', ' + at1 + ', \'' + where2 + '\', ' + at2 + ')'; - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_sort'] = function(block) { - // Block for sorting a list. - var list = Blockly.Dart.valueToCode(block, 'LIST', - Blockly.Dart.ORDER_NONE) || '[]'; - var direction = block.getFieldValue('DIRECTION') === '1' ? 1 : -1; - var type = block.getFieldValue('TYPE'); - var sortFunctionName = Blockly.Dart.provideFunction_( - 'lists_sort', - ['List ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List list, String type, int direction) {', - ' var compareFuncs = {', - ' "NUMERIC": (a, b) => (direction * a.compareTo(b)).toInt(),', - ' "TEXT": (a, b) => direction * ' + - 'a.toString().compareTo(b.toString()),', - ' "IGNORE_CASE": ', - ' (a, b) => direction * ', - ' a.toString().toLowerCase().compareTo(b.toString().toLowerCase())', - ' };', - ' list = new List.from(list);', // Clone the list. - ' var compare = compareFuncs[type];', - ' list.sort(compare);', - ' return list;', - '}']); - return [sortFunctionName + '(' + list + ', ' + - '"' + type + '", ' + direction + ')', - Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_split'] = function(block) { - // Block for splitting text into a list, or joining a list into text. - var input = Blockly.Dart.valueToCode(block, 'INPUT', - Blockly.Dart.ORDER_UNARY_POSTFIX); - var delimiter = Blockly.Dart.valueToCode(block, 'DELIM', - Blockly.Dart.ORDER_NONE) || '\'\''; - var mode = block.getFieldValue('MODE'); - if (mode == 'SPLIT') { - if (!input) { - input = '\'\''; - } - var functionName = 'split'; - } else if (mode == 'JOIN') { - if (!input) { - input = '[]'; - } - var functionName = 'join'; - } else { - throw Error('Unknown mode: ' + mode); - } - var code = input + '.' + functionName + '(' + delimiter + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['lists_reverse'] = function(block) { - // Block for reversing a list. - var list = Blockly.Dart.valueToCode(block, 'LIST', - Blockly.Dart.ORDER_NONE) || '[]'; - // XXX What should the operator precedence be for a `new`? - var code = 'new List.from(' + list + '.reversed)'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; diff --git a/lib/blockly/generators/dart/logic.js b/lib/blockly/generators/dart/logic.js deleted file mode 100644 index abfdd05..0000000 --- a/lib/blockly/generators/dart/logic.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for logic blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Dart.logic'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart['controls_if'] = function(block) { - // If/elseif/else condition. - var n = 0; - var code = '', branchCode, conditionCode; - if (Blockly.Dart.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - code += Blockly.Dart.injectId(Blockly.Dart.STATEMENT_PREFIX, block); - } - do { - conditionCode = Blockly.Dart.valueToCode(block, 'IF' + n, - Blockly.Dart.ORDER_NONE) || 'false'; - branchCode = Blockly.Dart.statementToCode(block, 'DO' + n); - if (Blockly.Dart.STATEMENT_SUFFIX) { - branchCode = Blockly.Dart.prefixLines( - Blockly.Dart.injectId(Blockly.Dart.STATEMENT_SUFFIX, block), - Blockly.Dart.INDENT) + branchCode; - } - code += (n > 0 ? 'else ' : '') + - 'if (' + conditionCode + ') {\n' + branchCode + '}'; - ++n; - } while (block.getInput('IF' + n)); - - if (block.getInput('ELSE') || Blockly.Dart.STATEMENT_SUFFIX) { - branchCode = Blockly.Dart.statementToCode(block, 'ELSE'); - if (Blockly.Dart.STATEMENT_SUFFIX) { - branchCode = Blockly.Dart.prefixLines( - Blockly.Dart.injectId(Blockly.Dart.STATEMENT_SUFFIX, block), - Blockly.Dart.INDENT) + branchCode; - } - code += ' else {\n' + branchCode + '}'; - } - return code + '\n'; -}; - -Blockly.Dart['controls_ifelse'] = Blockly.Dart['controls_if']; - -Blockly.Dart['logic_compare'] = function(block) { - // Comparison operator. - var OPERATORS = { - 'EQ': '==', - 'NEQ': '!=', - 'LT': '<', - 'LTE': '<=', - 'GT': '>', - 'GTE': '>=' - }; - var operator = OPERATORS[block.getFieldValue('OP')]; - var order = (operator == '==' || operator == '!=') ? - Blockly.Dart.ORDER_EQUALITY : Blockly.Dart.ORDER_RELATIONAL; - var argument0 = Blockly.Dart.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'B', order) || '0'; - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.Dart['logic_operation'] = function(block) { - // Operations 'and', 'or'. - var operator = (block.getFieldValue('OP') == 'AND') ? '&&' : '||'; - var order = (operator == '&&') ? Blockly.Dart.ORDER_LOGICAL_AND : - Blockly.Dart.ORDER_LOGICAL_OR; - var argument0 = Blockly.Dart.valueToCode(block, 'A', order); - var argument1 = Blockly.Dart.valueToCode(block, 'B', order); - if (!argument0 && !argument1) { - // If there are no arguments, then the return value is false. - argument0 = 'false'; - argument1 = 'false'; - } else { - // Single missing arguments have no effect on the return value. - var defaultArgument = (operator == '&&') ? 'true' : 'false'; - if (!argument0) { - argument0 = defaultArgument; - } - if (!argument1) { - argument1 = defaultArgument; - } - } - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.Dart['logic_negate'] = function(block) { - // Negation. - var order = Blockly.Dart.ORDER_UNARY_PREFIX; - var argument0 = Blockly.Dart.valueToCode(block, 'BOOL', order) || 'true'; - var code = '!' + argument0; - return [code, order]; -}; - -Blockly.Dart['logic_boolean'] = function(block) { - // Boolean values true and false. - var code = (block.getFieldValue('BOOL') == 'TRUE') ? 'true' : 'false'; - return [code, Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['logic_null'] = function(block) { - // Null data type. - return ['null', Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['logic_ternary'] = function(block) { - // Ternary operator. - var value_if = Blockly.Dart.valueToCode(block, 'IF', - Blockly.Dart.ORDER_CONDITIONAL) || 'false'; - var value_then = Blockly.Dart.valueToCode(block, 'THEN', - Blockly.Dart.ORDER_CONDITIONAL) || 'null'; - var value_else = Blockly.Dart.valueToCode(block, 'ELSE', - Blockly.Dart.ORDER_CONDITIONAL) || 'null'; - var code = value_if + ' ? ' + value_then + ' : ' + value_else; - return [code, Blockly.Dart.ORDER_CONDITIONAL]; -}; diff --git a/lib/blockly/generators/dart/loops.js b/lib/blockly/generators/dart/loops.js deleted file mode 100644 index 63a5dbb..0000000 --- a/lib/blockly/generators/dart/loops.js +++ /dev/null @@ -1,180 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for loop blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart.loops'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart['controls_repeat_ext'] = function(block) { - // Repeat n times. - if (block.getField('TIMES')) { - // Internal number. - var repeats = String(Number(block.getFieldValue('TIMES'))); - } else { - // External number. - var repeats = Blockly.Dart.valueToCode(block, 'TIMES', - Blockly.Dart.ORDER_ASSIGNMENT) || '0'; - } - var branch = Blockly.Dart.statementToCode(block, 'DO'); - branch = Blockly.Dart.addLoopTrap(branch, block); - var code = ''; - var loopVar = Blockly.Dart.variableDB_.getDistinctName( - 'count', Blockly.Variables.NAME_TYPE); - var endVar = repeats; - if (!repeats.match(/^\w+$/) && !Blockly.isNumber(repeats)) { - var endVar = Blockly.Dart.variableDB_.getDistinctName( - 'repeat_end', Blockly.Variables.NAME_TYPE); - code += 'var ' + endVar + ' = ' + repeats + ';\n'; - } - code += 'for (int ' + loopVar + ' = 0; ' + - loopVar + ' < ' + endVar + '; ' + - loopVar + '++) {\n' + - branch + '}\n'; - return code; -}; - -Blockly.Dart['controls_repeat'] = Blockly.Dart['controls_repeat_ext']; - -Blockly.Dart['controls_whileUntil'] = function(block) { - // Do while/until loop. - var until = block.getFieldValue('MODE') == 'UNTIL'; - var argument0 = Blockly.Dart.valueToCode(block, 'BOOL', - until ? Blockly.Dart.ORDER_UNARY_PREFIX : - Blockly.Dart.ORDER_NONE) || 'false'; - var branch = Blockly.Dart.statementToCode(block, 'DO'); - branch = Blockly.Dart.addLoopTrap(branch, block); - if (until) { - argument0 = '!' + argument0; - } - return 'while (' + argument0 + ') {\n' + branch + '}\n'; -}; - -Blockly.Dart['controls_for'] = function(block) { - // For loop. - var variable0 = Blockly.Dart.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.Dart.valueToCode(block, 'FROM', - Blockly.Dart.ORDER_ASSIGNMENT) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'TO', - Blockly.Dart.ORDER_ASSIGNMENT) || '0'; - var increment = Blockly.Dart.valueToCode(block, 'BY', - Blockly.Dart.ORDER_ASSIGNMENT) || '1'; - var branch = Blockly.Dart.statementToCode(block, 'DO'); - branch = Blockly.Dart.addLoopTrap(branch, block); - var code; - if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && - Blockly.isNumber(increment)) { - // All arguments are simple numbers. - var up = Number(argument0) <= Number(argument1); - code = 'for (' + variable0 + ' = ' + argument0 + '; ' + - variable0 + (up ? ' <= ' : ' >= ') + argument1 + '; ' + - variable0; - var step = Math.abs(Number(increment)); - if (step == 1) { - code += up ? '++' : '--'; - } else { - code += (up ? ' += ' : ' -= ') + step; - } - code += ') {\n' + branch + '}\n'; - } else { - code = ''; - // Cache non-trivial values to variables to prevent repeated look-ups. - var startVar = argument0; - if (!argument0.match(/^\w+$/) && !Blockly.isNumber(argument0)) { - var startVar = Blockly.Dart.variableDB_.getDistinctName( - variable0 + '_start', Blockly.Variables.NAME_TYPE); - code += 'var ' + startVar + ' = ' + argument0 + ';\n'; - } - var endVar = argument1; - if (!argument1.match(/^\w+$/) && !Blockly.isNumber(argument1)) { - var endVar = Blockly.Dart.variableDB_.getDistinctName( - variable0 + '_end', Blockly.Variables.NAME_TYPE); - code += 'var ' + endVar + ' = ' + argument1 + ';\n'; - } - // Determine loop direction at start, in case one of the bounds - // changes during loop execution. - var incVar = Blockly.Dart.variableDB_.getDistinctName( - variable0 + '_inc', Blockly.Variables.NAME_TYPE); - code += 'num ' + incVar + ' = '; - if (Blockly.isNumber(increment)) { - code += Math.abs(increment) + ';\n'; - } else { - code += '(' + increment + ').abs();\n'; - } - code += 'if (' + startVar + ' > ' + endVar + ') {\n'; - code += Blockly.Dart.INDENT + incVar + ' = -' + incVar + ';\n'; - code += '}\n'; - code += 'for (' + variable0 + ' = ' + startVar + '; ' + - incVar + ' >= 0 ? ' + - variable0 + ' <= ' + endVar + ' : ' + - variable0 + ' >= ' + endVar + '; ' + - variable0 + ' += ' + incVar + ') {\n' + - branch + '}\n'; - } - return code; -}; - -Blockly.Dart['controls_forEach'] = function(block) { - // For each loop. - var variable0 = Blockly.Dart.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.Dart.valueToCode(block, 'LIST', - Blockly.Dart.ORDER_ASSIGNMENT) || '[]'; - var branch = Blockly.Dart.statementToCode(block, 'DO'); - branch = Blockly.Dart.addLoopTrap(branch, block); - var code = 'for (var ' + variable0 + ' in ' + argument0 + ') {\n' + - branch + '}\n'; - return code; -}; - -Blockly.Dart['controls_flow_statements'] = function(block) { - // Flow statements: continue, break. - var xfix = ''; - if (Blockly.Dart.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - xfix += Blockly.Dart.injectId(Blockly.Dart.STATEMENT_PREFIX, block); - } - if (Blockly.Dart.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the break/continue is triggered. - xfix += Blockly.Dart.injectId(Blockly.Dart.STATEMENT_SUFFIX, block); - } - if (Blockly.Dart.STATEMENT_PREFIX) { - var loop = Blockly.Constants.Loops - .CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(block); - if (loop && !loop.suppressPrefixSuffix) { - // Inject loop's statement prefix here since the regular one at the end - // of the loop will not get executed if 'continue' is triggered. - // In the case of 'break', a prefix is needed due to the loop's suffix. - xfix += Blockly.Dart.injectId(Blockly.Dart.STATEMENT_PREFIX, loop); - } - } - switch (block.getFieldValue('FLOW')) { - case 'BREAK': - return xfix + 'break;\n'; - case 'CONTINUE': - return xfix + 'continue;\n'; - } - throw Error('Unknown flow statement.'); -}; diff --git a/lib/blockly/generators/dart/math.js b/lib/blockly/generators/dart/math.js deleted file mode 100644 index 09b36f0..0000000 --- a/lib/blockly/generators/dart/math.js +++ /dev/null @@ -1,496 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for math blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Dart.math'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart.addReservedWords('Math'); - -Blockly.Dart['math_number'] = function(block) { - // Numeric value. - var code = Number(block.getFieldValue('NUM')); - var order; - if (code == Infinity) { - code = 'double.infinity'; - order = Blockly.Dart.ORDER_UNARY_POSTFIX; - } else if (code == -Infinity) { - code = '-double.infinity'; - order = Blockly.Dart.ORDER_UNARY_PREFIX; - } else { - // -4.abs() returns -4 in Dart due to strange order of operation choices. - // -4 is actually an operator and a number. Reflect this in the order. - order = code < 0 ? - Blockly.Dart.ORDER_UNARY_PREFIX : Blockly.Dart.ORDER_ATOMIC; - } - return [code, order]; -}; - -Blockly.Dart['math_arithmetic'] = function(block) { - // Basic arithmetic operators, and power. - var OPERATORS = { - 'ADD': [' + ', Blockly.Dart.ORDER_ADDITIVE], - 'MINUS': [' - ', Blockly.Dart.ORDER_ADDITIVE], - 'MULTIPLY': [' * ', Blockly.Dart.ORDER_MULTIPLICATIVE], - 'DIVIDE': [' / ', Blockly.Dart.ORDER_MULTIPLICATIVE], - 'POWER': [null, Blockly.Dart.ORDER_NONE] // Handle power separately. - }; - var tuple = OPERATORS[block.getFieldValue('OP')]; - var operator = tuple[0]; - var order = tuple[1]; - var argument0 = Blockly.Dart.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'B', order) || '0'; - var code; - // Power in Dart requires a special case since it has no operator. - if (!operator) { - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - code = 'Math.pow(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } - code = argument0 + operator + argument1; - return [code, order]; -}; - -Blockly.Dart['math_single'] = function(block) { - // Math operators with single operand. - var operator = block.getFieldValue('OP'); - var code; - var arg; - if (operator == 'NEG') { - // Negation is a special case given its different operator precedence. - arg = Blockly.Dart.valueToCode(block, 'NUM', - Blockly.Dart.ORDER_UNARY_PREFIX) || '0'; - if (arg[0] == '-') { - // --3 is not legal in Dart. - arg = ' ' + arg; - } - code = '-' + arg; - return [code, Blockly.Dart.ORDER_UNARY_PREFIX]; - } - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - if (operator == 'ABS' || operator.substring(0, 5) == 'ROUND') { - arg = Blockly.Dart.valueToCode(block, 'NUM', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '0'; - } else if (operator == 'SIN' || operator == 'COS' || operator == 'TAN') { - arg = Blockly.Dart.valueToCode(block, 'NUM', - Blockly.Dart.ORDER_MULTIPLICATIVE) || '0'; - } else { - arg = Blockly.Dart.valueToCode(block, 'NUM', - Blockly.Dart.ORDER_NONE) || '0'; - } - // First, handle cases which generate values that don't need parentheses - // wrapping the code. - switch (operator) { - case 'ABS': - code = arg + '.abs()'; - break; - case 'ROOT': - code = 'Math.sqrt(' + arg + ')'; - break; - case 'LN': - code = 'Math.log(' + arg + ')'; - break; - case 'EXP': - code = 'Math.exp(' + arg + ')'; - break; - case 'POW10': - code = 'Math.pow(10,' + arg + ')'; - break; - case 'ROUND': - code = arg + '.round()'; - break; - case 'ROUNDUP': - code = arg + '.ceil()'; - break; - case 'ROUNDDOWN': - code = arg + '.floor()'; - break; - case 'SIN': - code = 'Math.sin(' + arg + ' / 180 * Math.pi)'; - break; - case 'COS': - code = 'Math.cos(' + arg + ' / 180 * Math.pi)'; - break; - case 'TAN': - code = 'Math.tan(' + arg + ' / 180 * Math.pi)'; - break; - } - if (code) { - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } - // Second, handle cases which generate values that may need parentheses - // wrapping the code. - switch (operator) { - case 'LOG10': - code = 'Math.log(' + arg + ') / Math.log(10)'; - break; - case 'ASIN': - code = 'Math.asin(' + arg + ') / Math.pi * 180'; - break; - case 'ACOS': - code = 'Math.acos(' + arg + ') / Math.pi * 180'; - break; - case 'ATAN': - code = 'Math.atan(' + arg + ') / Math.pi * 180'; - break; - default: - throw Error('Unknown math operator: ' + operator); - } - return [code, Blockly.Dart.ORDER_MULTIPLICATIVE]; -}; - -Blockly.Dart['math_constant'] = function(block) { - // Constants: PI, E, the Golden Ratio, sqrt(2), 1/sqrt(2), INFINITY. - var CONSTANTS = { - 'PI': ['Math.pi', Blockly.Dart.ORDER_UNARY_POSTFIX], - 'E': ['Math.e', Blockly.Dart.ORDER_UNARY_POSTFIX], - 'GOLDEN_RATIO': - ['(1 + Math.sqrt(5)) / 2', Blockly.Dart.ORDER_MULTIPLICATIVE], - 'SQRT2': ['Math.sqrt2', Blockly.Dart.ORDER_UNARY_POSTFIX], - 'SQRT1_2': ['Math.sqrt1_2', Blockly.Dart.ORDER_UNARY_POSTFIX], - 'INFINITY': ['double.infinity', Blockly.Dart.ORDER_ATOMIC] - }; - var constant = block.getFieldValue('CONSTANT'); - if (constant != 'INFINITY') { - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - } - return CONSTANTS[constant]; -}; - -Blockly.Dart['math_number_property'] = function(block) { - // Check if a number is even, odd, prime, whole, positive, or negative - // or if it is divisible by certain number. Returns true or false. - var number_to_check = Blockly.Dart.valueToCode(block, 'NUMBER_TO_CHECK', - Blockly.Dart.ORDER_MULTIPLICATIVE); - if (!number_to_check) { - return ['false', Blockly.Dart.ORDER_ATOMIC]; - } - var dropdown_property = block.getFieldValue('PROPERTY'); - var code; - if (dropdown_property == 'PRIME') { - // Prime is a special case as it is not a one-liner test. - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'math_isPrime', - ['bool ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + '(n) {', - ' // https://en.wikipedia.org/wiki/Primality_test#Naive_methods', - ' if (n == 2 || n == 3) {', - ' return true;', - ' }', - ' // False if n is null, negative, is 1, or not whole.', - ' // And false if n is divisible by 2 or 3.', - ' if (n == null || n <= 1 || n % 1 != 0 || n % 2 == 0 ||' + - ' n % 3 == 0) {', - ' return false;', - ' }', - ' // Check all the numbers of form 6k +/- 1, up to sqrt(n).', - ' for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) {', - ' if (n % (x - 1) == 0 || n % (x + 1) == 0) {', - ' return false;', - ' }', - ' }', - ' return true;', - '}']); - code = functionName + '(' + number_to_check + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } - switch (dropdown_property) { - case 'EVEN': - code = number_to_check + ' % 2 == 0'; - break; - case 'ODD': - code = number_to_check + ' % 2 == 1'; - break; - case 'WHOLE': - code = number_to_check + ' % 1 == 0'; - break; - case 'POSITIVE': - code = number_to_check + ' > 0'; - break; - case 'NEGATIVE': - code = number_to_check + ' < 0'; - break; - case 'DIVISIBLE_BY': - var divisor = Blockly.Dart.valueToCode(block, 'DIVISOR', - Blockly.Dart.ORDER_MULTIPLICATIVE); - if (!divisor) { - return ['false', Blockly.Dart.ORDER_ATOMIC]; - } - code = number_to_check + ' % ' + divisor + ' == 0'; - break; - } - return [code, Blockly.Dart.ORDER_EQUALITY]; -}; - -Blockly.Dart['math_change'] = function(block) { - // Add to a variable in place. - var argument0 = Blockly.Dart.valueToCode(block, 'DELTA', - Blockly.Dart.ORDER_ADDITIVE) || '0'; - var varName = Blockly.Dart.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return varName + ' = (' + varName + ' is num ? ' + varName + ' : 0) + ' + - argument0 + ';\n'; -}; - -// Rounding functions have a single operand. -Blockly.Dart['math_round'] = Blockly.Dart['math_single']; -// Trigonometry functions have a single operand. -Blockly.Dart['math_trig'] = Blockly.Dart['math_single']; - -Blockly.Dart['math_on_list'] = function(block) { - // Math functions for lists. - var func = block.getFieldValue('OP'); - var list = Blockly.Dart.valueToCode(block, 'LIST', - Blockly.Dart.ORDER_NONE) || '[]'; - var code; - switch (func) { - case 'SUM': - var functionName = Blockly.Dart.provideFunction_( - 'math_sum', - ['num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' num sumVal = 0;', - ' myList.forEach((num entry) {sumVal += entry;});', - ' return sumVal;', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'MIN': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'math_min', - ['num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' if (myList.isEmpty) return null;', - ' num minVal = myList[0];', - ' myList.forEach((num entry) ' + - '{minVal = Math.min(minVal, entry);});', - ' return minVal;', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'MAX': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'math_max', - ['num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' if (myList.isEmpty) return null;', - ' num maxVal = myList[0];', - ' myList.forEach((num entry) ' + - '{maxVal = Math.max(maxVal, entry);});', - ' return maxVal;', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'AVERAGE': - // This operation exclude null and values that are not int or float: - // math_mean([null,null,"aString",1,9]) == 5.0. - var functionName = Blockly.Dart.provideFunction_( - 'math_mean', - ['num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' // First filter list for numbers only.', - ' List localList = new List.from(myList);', - ' localList.removeWhere((a) => a is! num);', - ' if (localList.isEmpty) return null;', - ' num sumVal = 0;', - ' localList.forEach((var entry) {sumVal += entry;});', - ' return sumVal / localList.length;', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'MEDIAN': - var functionName = Blockly.Dart.provideFunction_( - 'math_median', - ['num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' // First filter list for numbers only, then sort, ' + - 'then return middle value', - ' // or the average of two middle values if list has an ' + - 'even number of elements.', - ' List localList = new List.from(myList);', - ' localList.removeWhere((a) => a is! num);', - ' if (localList.isEmpty) return null;', - ' localList.sort((a, b) => (a - b));', - ' int index = localList.length ~/ 2;', - ' if (localList.length % 2 == 1) {', - ' return localList[index];', - ' } else {', - ' return (localList[index - 1] + localList[index]) / 2;', - ' }', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'MODE': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - // As a list of numbers can contain more than one mode, - // the returned result is provided as an array. - // Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1]. - var functionName = Blockly.Dart.provideFunction_( - 'math_modes', - ['List ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List values) {', - ' List modes = [];', - ' List counts = [];', - ' int maxCount = 0;', - ' for (int i = 0; i < values.length; i++) {', - ' var value = values[i];', - ' bool found = false;', - ' int thisCount;', - ' for (int j = 0; j < counts.length; j++) {', - ' if (counts[j][0] == value) {', - ' thisCount = ++counts[j][1];', - ' found = true;', - ' break;', - ' }', - ' }', - ' if (!found) {', - ' counts.add([value, 1]);', - ' thisCount = 1;', - ' }', - ' maxCount = Math.max(thisCount, maxCount);', - ' }', - ' for (int j = 0; j < counts.length; j++) {', - ' if (counts[j][1] == maxCount) {', - ' modes.add(counts[j][0]);', - ' }', - ' }', - ' return modes;', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'STD_DEV': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'math_standard_deviation', - ['num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' // First filter list for numbers only.', - ' List numbers = new List.from(myList);', - ' numbers.removeWhere((a) => a is! num);', - ' if (numbers.isEmpty) return null;', - ' num n = numbers.length;', - ' num sum = 0;', - ' numbers.forEach((x) => sum += x);', - ' num mean = sum / n;', - ' num sumSquare = 0;', - ' numbers.forEach((x) => sumSquare += ' + - 'Math.pow(x - mean, 2));', - ' return Math.sqrt(sumSquare / n);', - '}']); - code = functionName + '(' + list + ')'; - break; - case 'RANDOM': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'math_random_item', - ['dynamic ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(List myList) {', - ' int x = new Math.Random().nextInt(myList.length);', - ' return myList[x];', - '}']); - code = functionName + '(' + list + ')'; - break; - default: - throw Error('Unknown operator: ' + func); - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['math_modulo'] = function(block) { - // Remainder computation. - var argument0 = Blockly.Dart.valueToCode(block, 'DIVIDEND', - Blockly.Dart.ORDER_MULTIPLICATIVE) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'DIVISOR', - Blockly.Dart.ORDER_MULTIPLICATIVE) || '0'; - var code = argument0 + ' % ' + argument1; - return [code, Blockly.Dart.ORDER_MULTIPLICATIVE]; -}; - -Blockly.Dart['math_constrain'] = function(block) { - // Constrain a number between two limits. - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var argument0 = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_NONE) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'LOW', - Blockly.Dart.ORDER_NONE) || '0'; - var argument2 = Blockly.Dart.valueToCode(block, 'HIGH', - Blockly.Dart.ORDER_NONE) || 'double.infinity'; - var code = 'Math.min(Math.max(' + argument0 + ', ' + argument1 + '), ' + - argument2 + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['math_random_int'] = function(block) { - // Random integer between [X] and [Y]. - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var argument0 = Blockly.Dart.valueToCode(block, 'FROM', - Blockly.Dart.ORDER_NONE) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'TO', - Blockly.Dart.ORDER_NONE) || '0'; - var functionName = Blockly.Dart.provideFunction_( - 'math_random_int', - ['int ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + '(num a, num b) {', - ' if (a > b) {', - ' // Swap a and b to ensure a is smaller.', - ' num c = a;', - ' a = b;', - ' b = c;', - ' }', - ' return new Math.Random().nextInt(b - a + 1) + a;', - '}']); - var code = functionName + '(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['math_random_float'] = function(block) { - // Random fraction between 0 and 1. - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - return ['new Math.Random().nextDouble()', Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['math_atan2'] = function(block) { - // Arctangent of point (X, Y) in degrees from -180 to 180. - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var argument0 = Blockly.Dart.valueToCode(block, 'X', - Blockly.Dart.ORDER_NONE) || '0'; - var argument1 = Blockly.Dart.valueToCode(block, 'Y', - Blockly.Dart.ORDER_NONE) || '0'; - return ['Math.atan2(' + argument1 + ', ' + argument0 + ') / Math.pi * 180', - Blockly.Dart.ORDER_MULTIPLICATIVE]; -}; diff --git a/lib/blockly/generators/dart/procedures.js b/lib/blockly/generators/dart/procedures.js deleted file mode 100644 index b9c6286..0000000 --- a/lib/blockly/generators/dart/procedures.js +++ /dev/null @@ -1,120 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for procedure blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart.procedures'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart['procedures_defreturn'] = function(block) { - // Define a procedure with a return value. - var funcName = Blockly.Dart.variableDB_.getName(block.getFieldValue('NAME'), - Blockly.Procedures.NAME_TYPE); - var xfix1 = ''; - if (Blockly.Dart.STATEMENT_PREFIX) { - xfix1 += Blockly.Dart.injectId(Blockly.Dart.STATEMENT_PREFIX, block); - } - if (Blockly.Dart.STATEMENT_SUFFIX) { - xfix1 += Blockly.Dart.injectId(Blockly.Dart.STATEMENT_SUFFIX, block); - } - if (xfix1) { - xfix1 = Blockly.Dart.prefixLines(xfix1, Blockly.Dart.INDENT); - } - var loopTrap = ''; - if (Blockly.Dart.INFINITE_LOOP_TRAP) { - loopTrap = Blockly.Dart.prefixLines( - Blockly.Dart.injectId(Blockly.Dart.INFINITE_LOOP_TRAP, block), - Blockly.Dart.INDENT); - } - var branch = Blockly.Dart.statementToCode(block, 'STACK'); - var returnValue = Blockly.Dart.valueToCode(block, 'RETURN', - Blockly.Dart.ORDER_NONE) || ''; - var xfix2 = ''; - if (branch && returnValue) { - // After executing the function body, revisit this block for the return. - xfix2 = xfix1; - } - if (returnValue) { - returnValue = Blockly.Dart.INDENT + 'return ' + returnValue + ';\n'; - } - var returnType = returnValue ? 'dynamic' : 'void'; - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.Dart.variableDB_.getName(block.arguments_[i], - Blockly.Variables.NAME_TYPE); - } - var code = returnType + ' ' + funcName + '(' + args.join(', ') + ') {\n' + - xfix1 + loopTrap + branch + xfix2 + returnValue + '}'; - code = Blockly.Dart.scrub_(block, code); - // Add % so as not to collide with helper functions in definitions list. - Blockly.Dart.definitions_['%' + funcName] = code; - return null; -}; - -// Defining a procedure without a return value uses the same generator as -// a procedure with a return value. -Blockly.Dart['procedures_defnoreturn'] = Blockly.Dart['procedures_defreturn']; - -Blockly.Dart['procedures_callreturn'] = function(block) { - // Call a procedure with a return value. - var funcName = Blockly.Dart.variableDB_.getName(block.getFieldValue('NAME'), - Blockly.Procedures.NAME_TYPE); - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.Dart.valueToCode(block, 'ARG' + i, - Blockly.Dart.ORDER_NONE) || 'null'; - } - var code = funcName + '(' + args.join(', ') + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['procedures_callnoreturn'] = function(block) { - // Call a procedure with no return value. - // Generated code is for a function call as a statement is the same as a - // function call as a value, with the addition of line ending. - var tuple = Blockly.Dart['procedures_callreturn'](block); - return tuple[0] + ';\n'; -}; - -Blockly.Dart['procedures_ifreturn'] = function(block) { - // Conditionally return value from a procedure. - var condition = Blockly.Dart.valueToCode(block, 'CONDITION', - Blockly.Dart.ORDER_NONE) || 'false'; - var code = 'if (' + condition + ') {\n'; - if (Blockly.Dart.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the return is triggered. - code += Blockly.Dart.prefixLines( - Blockly.Dart.injectId(Blockly.Dart.STATEMENT_SUFFIX, block), - Blockly.Dart.INDENT); - } - if (block.hasReturnValue_) { - var value = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_NONE) || 'null'; - code += Blockly.Dart.INDENT + 'return ' + value + ';\n'; - } else { - code += Blockly.Dart.INDENT + 'return;\n'; - } - code += '}\n'; - return code; -}; diff --git a/lib/blockly/generators/dart/text.js b/lib/blockly/generators/dart/text.js deleted file mode 100644 index bb8c418..0000000 --- a/lib/blockly/generators/dart/text.js +++ /dev/null @@ -1,350 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for text blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart.texts'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart.addReservedWords('Html,Math'); - -Blockly.Dart['text'] = function(block) { - // Text value. - var code = Blockly.Dart.quote_(block.getFieldValue('TEXT')); - return [code, Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['text_multiline'] = function(block) { - // Text value. - var code = Blockly.Dart.multiline_quote_(block.getFieldValue('TEXT')); - return [code, Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['text_join'] = function(block) { - // Create a string made up of any number of elements of any type. - switch (block.itemCount_) { - case 0: - return ['\'\'', Blockly.Dart.ORDER_ATOMIC]; - case 1: - var element = Blockly.Dart.valueToCode(block, 'ADD0', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - var code = element + '.toString()'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - default: - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.Dart.valueToCode(block, 'ADD' + i, - Blockly.Dart.ORDER_NONE) || '\'\''; - } - var code = '[' + elements.join(',') + '].join()'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } -}; - -Blockly.Dart['text_append'] = function(block) { - // Append to a variable in place. - var varName = Blockly.Dart.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - var value = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_NONE) || '\'\''; - return varName + ' = [' + varName + ', ' + value + '].join();\n'; -}; - -Blockly.Dart['text_length'] = function(block) { - // String or array length. - var text = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - return [text + '.length', Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_isEmpty'] = function(block) { - // Is the string null or array empty? - var text = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - return [text + '.isEmpty', Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_indexOf'] = function(block) { - // Search the text for a substring. - var operator = block.getFieldValue('END') == 'FIRST' ? - 'indexOf' : 'lastIndexOf'; - var substring = Blockly.Dart.valueToCode(block, 'FIND', - Blockly.Dart.ORDER_NONE) || '\'\''; - var text = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - var code = text + '.' + operator + '(' + substring + ')'; - if (block.workspace.options.oneBasedIndex) { - return [code + ' + 1', Blockly.Dart.ORDER_ADDITIVE]; - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_charAt'] = function(block) { - // Get letter at index. - // Note: Until January 2013 this block did not have the WHERE input. - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var text = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - switch (where) { - case 'FIRST': - var code = text + '[0]'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - case 'FROM_START': - var at = Blockly.Dart.getAdjusted(block, 'AT'); - var code = text + '[' + at + ']'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - case 'LAST': - at = 1; - // Fall through. - case 'FROM_END': - var at = Blockly.Dart.getAdjusted(block, 'AT', 1); - var functionName = Blockly.Dart.provideFunction_( - 'text_get_from_end', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String text, num x) {', - ' return text[text.length - x];', - '}']); - code = functionName + '(' + text + ', ' + at + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - case 'RANDOM': - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - var functionName = Blockly.Dart.provideFunction_( - 'text_random_letter', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String text) {', - ' int x = new Math.Random().nextInt(text.length);', - ' return text[x];', - '}']); - code = functionName + '(' + text + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; - } - throw Error('Unhandled option (text_charAt).'); -}; - -Blockly.Dart['text_getSubstring'] = function(block) { - // Get substring. - var text = Blockly.Dart.valueToCode(block, 'STRING', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - if (where1 == 'FIRST' && where2 == 'LAST') { - var code = text; - } else if (text.match(/^'?\w+'?$/) || - (where1 != 'FROM_END' && where2 == 'FROM_START')) { - // If the text is a variable or literal or doesn't require a call for - // length, don't generate a helper function. - switch (where1) { - case 'FROM_START': - var at1 = Blockly.Dart.getAdjusted(block, 'AT1'); - break; - case 'FROM_END': - var at1 = Blockly.Dart.getAdjusted(block, 'AT1', 1, false, - Blockly.Dart.ORDER_ADDITIVE); - at1 = text + '.length - ' + at1; - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw Error('Unhandled option (text_getSubstring).'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.Dart.getAdjusted(block, 'AT2', 1); - break; - case 'FROM_END': - var at2 = Blockly.Dart.getAdjusted(block, 'AT2', 0, false, - Blockly.Dart.ORDER_ADDITIVE); - at2 = text + '.length - ' + at2; - break; - case 'LAST': - break; - default: - throw Error('Unhandled option (text_getSubstring).'); - } - if (where2 == 'LAST') { - var code = text + '.substring(' + at1 + ')'; - } else { - var code = text + '.substring(' + at1 + ', ' + at2 + ')'; - } - } else { - var at1 = Blockly.Dart.getAdjusted(block, 'AT1'); - var at2 = Blockly.Dart.getAdjusted(block, 'AT2'); - var functionName = Blockly.Dart.provideFunction_( - 'text_get_substring', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String text, String where1, num at1, String where2, num at2) {', - ' int getAt(String where, num at) {', - ' if (where == \'FROM_END\') {', - ' at = text.length - 1 - at;', - ' } else if (where == \'FIRST\') {', - ' at = 0;', - ' } else if (where == \'LAST\') {', - ' at = text.length - 1;', - ' } else if (where != \'FROM_START\') {', - ' throw \'Unhandled option (text_getSubstring).\';', - ' }', - ' return at;', - ' }', - ' at1 = getAt(where1, at1);', - ' at2 = getAt(where2, at2) + 1;', - ' return text.substring(at1, at2);', - '}']); - var code = functionName + '(' + text + ', \'' + - where1 + '\', ' + at1 + ', \'' + where2 + '\', ' + at2 + ')'; - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_changeCase'] = function(block) { - // Change capitalization. - var OPERATORS = { - 'UPPERCASE': '.toUpperCase()', - 'LOWERCASE': '.toLowerCase()', - 'TITLECASE': null - }; - var operator = OPERATORS[block.getFieldValue('CASE')]; - var textOrder = operator ? Blockly.Dart.ORDER_UNARY_POSTFIX : - Blockly.Dart.ORDER_NONE; - var text = Blockly.Dart.valueToCode(block, 'TEXT', textOrder) || '\'\''; - if (operator) { - // Upper and lower case are functions built into Dart. - var code = text + operator; - } else { - // Title case is not a native Dart function. Define one. - var functionName = Blockly.Dart.provideFunction_( - 'text_toTitleCase', - ['String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String str) {', - ' RegExp exp = new RegExp(r\'\\b\');', - ' List list = str.split(exp);', - ' final title = new StringBuffer();', - ' for (String part in list) {', - ' if (part.length > 0) {', - ' title.write(part[0].toUpperCase());', - ' if (part.length > 0) {', - ' title.write(part.substring(1).toLowerCase());', - ' }', - ' }', - ' }', - ' return title.toString();', - '}']); - var code = functionName + '(' + text + ')'; - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_trim'] = function(block) { - // Trim spaces. - var OPERATORS = { - 'LEFT': '.replaceFirst(new RegExp(r\'^\\s+\'), \'\')', - 'RIGHT': '.replaceFirst(new RegExp(r\'\\s+$\'), \'\')', - 'BOTH': '.trim()' - }; - var operator = OPERATORS[block.getFieldValue('MODE')]; - var text = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - return [text + operator, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_print'] = function(block) { - // Print statement. - var msg = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_NONE) || '\'\''; - return 'print(' + msg + ');\n'; -}; - -Blockly.Dart['text_prompt_ext'] = function(block) { - // Prompt function. - Blockly.Dart.definitions_['import_dart_html'] = - 'import \'dart:html\' as Html;'; - if (block.getField('TEXT')) { - // Internal message. - var msg = Blockly.Dart.quote_(block.getFieldValue('TEXT')); - } else { - // External message. - var msg = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_NONE) || '\'\''; - } - var code = 'Html.window.prompt(' + msg + ', \'\')'; - var toNumber = block.getFieldValue('TYPE') == 'NUMBER'; - if (toNumber) { - Blockly.Dart.definitions_['import_dart_math'] = - 'import \'dart:math\' as Math;'; - code = 'Math.parseDouble(' + code + ')'; - } - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_prompt'] = Blockly.Dart['text_prompt_ext']; - -Blockly.Dart['text_count'] = function(block) { - var text = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - var sub = Blockly.Dart.valueToCode(block, 'SUB', - Blockly.Dart.ORDER_NONE) || '\'\''; - // Substring count is not a native Dart function. Define one. - var functionName = Blockly.Dart.provideFunction_( - 'text_count', - ['int ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String haystack, String needle) {', - ' if (needle.length == 0) {', - ' return haystack.length + 1;', - ' }', - ' int index = 0;', - ' int count = 0;', - ' while (index != -1) {', - ' index = haystack.indexOf(needle, index);', - ' if (index != -1) {', - ' count++;', - ' index += needle.length;', - ' }', - ' }', - ' return count;', - '}']); - var code = functionName + '(' + text + ', ' + sub + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_replace'] = function(block) { - var text = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - var from = Blockly.Dart.valueToCode(block, 'FROM', - Blockly.Dart.ORDER_NONE) || '\'\''; - var to = Blockly.Dart.valueToCode(block, 'TO', - Blockly.Dart.ORDER_NONE) || '\'\''; - var code = text + '.replaceAll(' + from + ', ' + to + ')'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; - -Blockly.Dart['text_reverse'] = function(block) { - // There isn't a sensible way to do this in Dart. See: - // http://stackoverflow.com/a/21613700/3529104 - // Implementing something is possibly better than not implementing anything? - var text = Blockly.Dart.valueToCode(block, 'TEXT', - Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; - var code = 'new String.fromCharCodes(' + text + '.runes.toList().reversed)'; - // XXX What should the operator precedence be for a `new`? - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; -}; diff --git a/lib/blockly/generators/dart/variables.js b/lib/blockly/generators/dart/variables.js deleted file mode 100644 index 5c8db1b..0000000 --- a/lib/blockly/generators/dart/variables.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for variable blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Dart.variables'); - -goog.require('Blockly.Dart'); - - -Blockly.Dart['variables_get'] = function(block) { - // Variable getter. - var code = Blockly.Dart.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return [code, Blockly.Dart.ORDER_ATOMIC]; -}; - -Blockly.Dart['variables_set'] = function(block) { - // Variable setter. - var argument0 = Blockly.Dart.valueToCode(block, 'VALUE', - Blockly.Dart.ORDER_ASSIGNMENT) || '0'; - var varName = Blockly.Dart.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return varName + ' = ' + argument0 + ';\n'; -}; diff --git a/lib/blockly/generators/dart/variables_dynamic.js b/lib/blockly/generators/dart/variables_dynamic.js deleted file mode 100644 index 0fad712..0000000 --- a/lib/blockly/generators/dart/variables_dynamic.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for dynamic variable blocks. - * @author fenichel@google.com (Rachel Fenichel) - */ -'use strict'; - -goog.provide('Blockly.Dart.variablesDynamic'); - -goog.require('Blockly.Dart'); -goog.require('Blockly.Dart.variables'); - - -// Dart is dynamically typed. -Blockly.Dart['variables_get_dynamic'] = Blockly.Dart['variables_get']; -Blockly.Dart['variables_set_dynamic'] = Blockly.Dart['variables_set']; diff --git a/lib/blockly/generators/javascript.js b/lib/blockly/generators/javascript.js deleted file mode 100644 index 2dae1fa..0000000 --- a/lib/blockly/generators/javascript.js +++ /dev/null @@ -1,339 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Helper functions for generating JavaScript for blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.JavaScript'); - -goog.require('Blockly.Generator'); -goog.require('Blockly.utils.string'); - - -/** - * JavaScript code generator. - * @type {!Blockly.Generator} - */ -Blockly.JavaScript = new Blockly.Generator('JavaScript'); - -/** - * List of illegal variable names. - * This is not intended to be a security feature. Blockly is 100% client-side, - * so bypassing this list is trivial. This is intended to prevent users from - * accidentally clobbering a built-in object or function. - * @private - */ -Blockly.JavaScript.addReservedWords( - 'Blockly,' + // In case JS is evaled in the current window. - // https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words - 'break,case,catch,continue,debugger,default,delete,do,else,finally,for,function,if,in,instanceof,new,return,switch,this,throw,try,typeof,var,void,while,with,' + - 'class,enum,export,extends,import,super,implements,interface,let,package,private,protected,public,static,yield,' + - 'const,null,true,false,' + - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects - 'Array,ArrayBuffer,Boolean,Date,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Error,eval,EvalError,Float32Array,Float64Array,Function,Infinity,Int16Array,Int32Array,Int8Array,isFinite,isNaN,Iterator,JSON,Math,NaN,Number,Object,parseFloat,parseInt,RangeError,ReferenceError,RegExp,StopIteration,String,SyntaxError,TypeError,Uint16Array,Uint32Array,Uint8Array,Uint8ClampedArray,undefined,uneval,URIError,' + - // https://developer.mozilla.org/en/DOM/window - 'applicationCache,closed,Components,content,_content,controllers,crypto,defaultStatus,dialogArguments,directories,document,frameElement,frames,fullScreen,globalStorage,history,innerHeight,innerWidth,length,location,locationbar,localStorage,menubar,messageManager,mozAnimationStartTime,mozInnerScreenX,mozInnerScreenY,mozPaintCount,name,navigator,opener,outerHeight,outerWidth,pageXOffset,pageYOffset,parent,performance,personalbar,pkcs11,returnValue,screen,screenX,screenY,scrollbars,scrollMaxX,scrollMaxY,scrollX,scrollY,self,sessionStorage,sidebar,status,statusbar,toolbar,top,URL,window,' + - 'addEventListener,alert,atob,back,blur,btoa,captureEvents,clearImmediate,clearInterval,clearTimeout,close,confirm,disableExternalCapture,dispatchEvent,dump,enableExternalCapture,escape,find,focus,forward,GeckoActiveXObject,getAttention,getAttentionWithCycleCount,getComputedStyle,getSelection,home,matchMedia,maximize,minimize,moveBy,moveTo,mozRequestAnimationFrame,open,openDialog,postMessage,print,prompt,QueryInterface,releaseEvents,removeEventListener,resizeBy,resizeTo,restore,routeEvent,scroll,scrollBy,scrollByLines,scrollByPages,scrollTo,setCursor,setImmediate,setInterval,setResizable,setTimeout,showModalDialog,sizeToContent,stop,unescape,updateCommands,XPCNativeWrapper,XPCSafeJSObjectWrapper,' + - 'onabort,onbeforeunload,onblur,onchange,onclick,onclose,oncontextmenu,ondevicemotion,ondeviceorientation,ondragdrop,onerror,onfocus,onhashchange,onkeydown,onkeypress,onkeyup,onload,onmousedown,onmousemove,onmouseout,onmouseover,onmouseup,onmozbeforepaint,onpaint,onpopstate,onreset,onresize,onscroll,onselect,onsubmit,onunload,onpageshow,onpagehide,' + - 'Image,Option,Worker,' + - // https://developer.mozilla.org/en/Gecko_DOM_Reference - 'Event,Range,File,FileReader,Blob,BlobBuilder,' + - 'Attr,CDATASection,CharacterData,Comment,console,DocumentFragment,DocumentType,DomConfiguration,DOMError,DOMErrorHandler,DOMException,DOMImplementation,DOMImplementationList,DOMImplementationRegistry,DOMImplementationSource,DOMLocator,DOMObject,DOMString,DOMStringList,DOMTimeStamp,DOMUserData,Entity,EntityReference,MediaQueryList,MediaQueryListListener,NameList,NamedNodeMap,Node,NodeFilter,NodeIterator,NodeList,Notation,Plugin,PluginArray,ProcessingInstruction,SharedWorker,Text,TimeRanges,Treewalker,TypeInfo,UserDataHandler,Worker,WorkerGlobalScope,' + - 'HTMLDocument,HTMLElement,HTMLAnchorElement,HTMLAppletElement,HTMLAudioElement,HTMLAreaElement,HTMLBaseElement,HTMLBaseFontElement,HTMLBodyElement,HTMLBRElement,HTMLButtonElement,HTMLCanvasElement,HTMLDirectoryElement,HTMLDivElement,HTMLDListElement,HTMLEmbedElement,HTMLFieldSetElement,HTMLFontElement,HTMLFormElement,HTMLFrameElement,HTMLFrameSetElement,HTMLHeadElement,HTMLHeadingElement,HTMLHtmlElement,HTMLHRElement,HTMLIFrameElement,HTMLImageElement,HTMLInputElement,HTMLKeygenElement,HTMLLabelElement,HTMLLIElement,HTMLLinkElement,HTMLMapElement,HTMLMenuElement,HTMLMetaElement,HTMLModElement,HTMLObjectElement,HTMLOListElement,HTMLOptGroupElement,HTMLOptionElement,HTMLOutputElement,HTMLParagraphElement,HTMLParamElement,HTMLPreElement,HTMLQuoteElement,HTMLScriptElement,HTMLSelectElement,HTMLSourceElement,HTMLSpanElement,HTMLStyleElement,HTMLTableElement,HTMLTableCaptionElement,HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement,HTMLTableColElement,HTMLTableRowElement,HTMLTableSectionElement,HTMLTextAreaElement,HTMLTimeElement,HTMLTitleElement,HTMLTrackElement,HTMLUListElement,HTMLUnknownElement,HTMLVideoElement,' + - 'HTMLCanvasElement,CanvasRenderingContext2D,CanvasGradient,CanvasPattern,TextMetrics,ImageData,CanvasPixelArray,HTMLAudioElement,HTMLVideoElement,NotifyAudioAvailableEvent,HTMLCollection,HTMLAllCollection,HTMLFormControlsCollection,HTMLOptionsCollection,HTMLPropertiesCollection,DOMTokenList,DOMSettableTokenList,DOMStringMap,RadioNodeList,' + - 'SVGDocument,SVGElement,SVGAElement,SVGAltGlyphElement,SVGAltGlyphDefElement,SVGAltGlyphItemElement,SVGAnimationElement,SVGAnimateElement,SVGAnimateColorElement,SVGAnimateMotionElement,SVGAnimateTransformElement,SVGSetElement,SVGCircleElement,SVGClipPathElement,SVGColorProfileElement,SVGCursorElement,SVGDefsElement,SVGDescElement,SVGEllipseElement,SVGFilterElement,SVGFilterPrimitiveStandardAttributes,SVGFEBlendElement,SVGFEColorMatrixElement,SVGFEComponentTransferElement,SVGFECompositeElement,SVGFEConvolveMatrixElement,SVGFEDiffuseLightingElement,SVGFEDisplacementMapElement,SVGFEDistantLightElement,SVGFEFloodElement,SVGFEGaussianBlurElement,SVGFEImageElement,SVGFEMergeElement,SVGFEMergeNodeElement,SVGFEMorphologyElement,SVGFEOffsetElement,SVGFEPointLightElement,SVGFESpecularLightingElement,SVGFESpotLightElement,SVGFETileElement,SVGFETurbulenceElement,SVGComponentTransferFunctionElement,SVGFEFuncRElement,SVGFEFuncGElement,SVGFEFuncBElement,SVGFEFuncAElement,SVGFontElement,SVGFontFaceElement,SVGFontFaceFormatElement,SVGFontFaceNameElement,SVGFontFaceSrcElement,SVGFontFaceUriElement,SVGForeignObjectElement,SVGGElement,SVGGlyphElement,SVGGlyphRefElement,SVGGradientElement,SVGLinearGradientElement,SVGRadialGradientElement,SVGHKernElement,SVGImageElement,SVGLineElement,SVGMarkerElement,SVGMaskElement,SVGMetadataElement,SVGMissingGlyphElement,SVGMPathElement,SVGPathElement,SVGPatternElement,SVGPolylineElement,SVGPolygonElement,SVGRectElement,SVGScriptElement,SVGStopElement,SVGStyleElement,SVGSVGElement,SVGSwitchElement,SVGSymbolElement,SVGTextElement,SVGTextPathElement,SVGTitleElement,SVGTRefElement,SVGTSpanElement,SVGUseElement,SVGViewElement,SVGVKernElement,' + - 'SVGAngle,SVGColor,SVGICCColor,SVGElementInstance,SVGElementInstanceList,SVGLength,SVGLengthList,SVGMatrix,SVGNumber,SVGNumberList,SVGPaint,SVGPoint,SVGPointList,SVGPreserveAspectRatio,SVGRect,SVGStringList,SVGTransform,SVGTransformList,' + - 'SVGAnimatedAngle,SVGAnimatedBoolean,SVGAnimatedEnumeration,SVGAnimatedInteger,SVGAnimatedLength,SVGAnimatedLengthList,SVGAnimatedNumber,SVGAnimatedNumberList,SVGAnimatedPreserveAspectRatio,SVGAnimatedRect,SVGAnimatedString,SVGAnimatedTransformList,' + - 'SVGPathSegList,SVGPathSeg,SVGPathSegArcAbs,SVGPathSegArcRel,SVGPathSegClosePath,SVGPathSegCurvetoCubicAbs,SVGPathSegCurvetoCubicRel,SVGPathSegCurvetoCubicSmoothAbs,SVGPathSegCurvetoCubicSmoothRel,SVGPathSegCurvetoQuadraticAbs,SVGPathSegCurvetoQuadraticRel,SVGPathSegCurvetoQuadraticSmoothAbs,SVGPathSegCurvetoQuadraticSmoothRel,SVGPathSegLinetoAbs,SVGPathSegLinetoHorizontalAbs,SVGPathSegLinetoHorizontalRel,SVGPathSegLinetoRel,SVGPathSegLinetoVerticalAbs,SVGPathSegLinetoVerticalRel,SVGPathSegMovetoAbs,SVGPathSegMovetoRel,ElementTimeControl,TimeEvent,SVGAnimatedPathData,' + - 'SVGAnimatedPoints,SVGColorProfileRule,SVGCSSRule,SVGExternalResourcesRequired,SVGFitToViewBox,SVGLangSpace,SVGLocatable,SVGRenderingIntent,SVGStylable,SVGTests,SVGTextContentElement,SVGTextPositioningElement,SVGTransformable,SVGUnitTypes,SVGURIReference,SVGViewSpec,SVGZoomAndPan'); - -/** - * Order of operation ENUMs. - * https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence - */ -Blockly.JavaScript.ORDER_ATOMIC = 0; // 0 "" ... -Blockly.JavaScript.ORDER_NEW = 1.1; // new -Blockly.JavaScript.ORDER_MEMBER = 1.2; // . [] -Blockly.JavaScript.ORDER_FUNCTION_CALL = 2; // () -Blockly.JavaScript.ORDER_INCREMENT = 3; // ++ -Blockly.JavaScript.ORDER_DECREMENT = 3; // -- -Blockly.JavaScript.ORDER_BITWISE_NOT = 4.1; // ~ -Blockly.JavaScript.ORDER_UNARY_PLUS = 4.2; // + -Blockly.JavaScript.ORDER_UNARY_NEGATION = 4.3; // - -Blockly.JavaScript.ORDER_LOGICAL_NOT = 4.4; // ! -Blockly.JavaScript.ORDER_TYPEOF = 4.5; // typeof -Blockly.JavaScript.ORDER_VOID = 4.6; // void -Blockly.JavaScript.ORDER_DELETE = 4.7; // delete -Blockly.JavaScript.ORDER_AWAIT = 4.8; // await -Blockly.JavaScript.ORDER_EXPONENTIATION = 5.0; // ** -Blockly.JavaScript.ORDER_MULTIPLICATION = 5.1; // * -Blockly.JavaScript.ORDER_DIVISION = 5.2; // / -Blockly.JavaScript.ORDER_MODULUS = 5.3; // % -Blockly.JavaScript.ORDER_SUBTRACTION = 6.1; // - -Blockly.JavaScript.ORDER_ADDITION = 6.2; // + -Blockly.JavaScript.ORDER_BITWISE_SHIFT = 7; // << >> >>> -Blockly.JavaScript.ORDER_RELATIONAL = 8; // < <= > >= -Blockly.JavaScript.ORDER_IN = 8; // in -Blockly.JavaScript.ORDER_INSTANCEOF = 8; // instanceof -Blockly.JavaScript.ORDER_EQUALITY = 9; // == != === !== -Blockly.JavaScript.ORDER_BITWISE_AND = 10; // & -Blockly.JavaScript.ORDER_BITWISE_XOR = 11; // ^ -Blockly.JavaScript.ORDER_BITWISE_OR = 12; // | -Blockly.JavaScript.ORDER_LOGICAL_AND = 13; // && -Blockly.JavaScript.ORDER_LOGICAL_OR = 14; // || -Blockly.JavaScript.ORDER_CONDITIONAL = 15; // ?: -Blockly.JavaScript.ORDER_ASSIGNMENT = 16; // = += -= **= *= /= %= <<= >>= ... -Blockly.JavaScript.ORDER_YIELD = 17; // yield -Blockly.JavaScript.ORDER_COMMA = 18; // , -Blockly.JavaScript.ORDER_NONE = 99; // (...) - -/** - * List of outer-inner pairings that do NOT require parentheses. - * @type {!Array.>} - */ -Blockly.JavaScript.ORDER_OVERRIDES = [ - // (foo()).bar -> foo().bar - // (foo())[0] -> foo()[0] - [Blockly.JavaScript.ORDER_FUNCTION_CALL, Blockly.JavaScript.ORDER_MEMBER], - // (foo())() -> foo()() - [Blockly.JavaScript.ORDER_FUNCTION_CALL, Blockly.JavaScript.ORDER_FUNCTION_CALL], - // (foo.bar).baz -> foo.bar.baz - // (foo.bar)[0] -> foo.bar[0] - // (foo[0]).bar -> foo[0].bar - // (foo[0])[1] -> foo[0][1] - [Blockly.JavaScript.ORDER_MEMBER, Blockly.JavaScript.ORDER_MEMBER], - // (foo.bar)() -> foo.bar() - // (foo[0])() -> foo[0]() - [Blockly.JavaScript.ORDER_MEMBER, Blockly.JavaScript.ORDER_FUNCTION_CALL], - - // !(!foo) -> !!foo - [Blockly.JavaScript.ORDER_LOGICAL_NOT, Blockly.JavaScript.ORDER_LOGICAL_NOT], - // a * (b * c) -> a * b * c - [Blockly.JavaScript.ORDER_MULTIPLICATION, Blockly.JavaScript.ORDER_MULTIPLICATION], - // a + (b + c) -> a + b + c - [Blockly.JavaScript.ORDER_ADDITION, Blockly.JavaScript.ORDER_ADDITION], - // a && (b && c) -> a && b && c - [Blockly.JavaScript.ORDER_LOGICAL_AND, Blockly.JavaScript.ORDER_LOGICAL_AND], - // a || (b || c) -> a || b || c - [Blockly.JavaScript.ORDER_LOGICAL_OR, Blockly.JavaScript.ORDER_LOGICAL_OR] -]; - -/** - * Initialise the database of variable names. - * @param {!Blockly.Workspace} workspace Workspace to generate code from. - */ -Blockly.JavaScript.init = function(workspace) { - // Create a dictionary of definitions to be printed before the code. - Blockly.JavaScript.definitions_ = Object.create(null); - // Create a dictionary mapping desired function names in definitions_ - // to actual function names (to avoid collisions with user functions). - Blockly.JavaScript.functionNames_ = Object.create(null); - - if (!Blockly.JavaScript.variableDB_) { - Blockly.JavaScript.variableDB_ = - new Blockly.Names(Blockly.JavaScript.RESERVED_WORDS_); - } else { - Blockly.JavaScript.variableDB_.reset(); - } - - Blockly.JavaScript.variableDB_.setVariableMap(workspace.getVariableMap()); - - var defvars = []; - // Add developer variables (not created or named by the user). - var devVarList = Blockly.Variables.allDeveloperVariables(workspace); - for (var i = 0; i < devVarList.length; i++) { - defvars.push(Blockly.JavaScript.variableDB_.getName(devVarList[i], - Blockly.Names.DEVELOPER_VARIABLE_TYPE)); - } - - // Add user variables, but only ones that are being used. - var variables = Blockly.Variables.allUsedVarModels(workspace); - for (var i = 0; i < variables.length; i++) { - defvars.push(Blockly.JavaScript.variableDB_.getName(variables[i].getId(), - Blockly.Variables.NAME_TYPE)); - } - - // Declare all of the variables. - if (defvars.length) { - Blockly.JavaScript.definitions_['variables'] = - 'var ' + defvars.join(', ') + ';'; - } -}; - -/** - * Prepend the generated code with the variable definitions. - * @param {string} code Generated code. - * @return {string} Completed code. - */ -Blockly.JavaScript.finish = function(code) { - // Convert the definitions dictionary into a list. - var definitions = []; - for (var name in Blockly.JavaScript.definitions_) { - definitions.push(Blockly.JavaScript.definitions_[name]); - } - // Clean up temporary data. - delete Blockly.JavaScript.definitions_; - delete Blockly.JavaScript.functionNames_; - Blockly.JavaScript.variableDB_.reset(); - return definitions.join('\n\n') + '\n\n\n' + code; -}; - -/** - * Naked values are top-level blocks with outputs that aren't plugged into - * anything. A trailing semicolon is needed to make this legal. - * @param {string} line Line of generated code. - * @return {string} Legal line of code. - */ -Blockly.JavaScript.scrubNakedValue = function(line) { - return line + ';\n'; -}; - -/** - * Encode a string as a properly escaped JavaScript string, complete with - * quotes. - * @param {string} string Text to encode. - * @return {string} JavaScript string. - * @private - */ -Blockly.JavaScript.quote_ = function(string) { - // Can't use goog.string.quote since Google's style guide recommends - // JS string literals use single quotes. - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n') - .replace(/'/g, '\\\''); - return '\'' + string + '\''; -}; - -/** - * Encode a string as a properly escaped multiline JavaScript string, complete - * with quotes. - * @param {string} string Text to encode. - * @return {string} JavaScript string. - * @private - */ -Blockly.JavaScript.multiline_quote_ = function(string) { - // Can't use goog.string.quote since Google's style guide recommends - // JS string literals use single quotes. - var lines = string.split(/\n/g).map(Blockly.JavaScript.quote_); - return lines.join(' + \'\\n\' +\n'); -}; - -/** - * Common tasks for generating JavaScript from blocks. - * Handles comments for the specified block and any connected value blocks. - * Calls any statements following this block. - * @param {!Blockly.Block} block The current block. - * @param {string} code The JavaScript code created for this block. - * @param {boolean=} opt_thisOnly True to generate code for only this statement. - * @return {string} JavaScript code with comments and subsequent blocks added. - * @private - */ -Blockly.JavaScript.scrub_ = function(block, code, opt_thisOnly) { - var commentCode = ''; - // Only collect comments for blocks that aren't inline. - if (!block.outputConnection || !block.outputConnection.targetConnection) { - // Collect comment for this block. - var comment = block.getCommentText(); - if (comment) { - comment = Blockly.utils.string.wrap(comment, - Blockly.JavaScript.COMMENT_WRAP - 3); - commentCode += Blockly.JavaScript.prefixLines(comment + '\n', '// '); - } - // Collect comments for all value arguments. - // Don't collect comments for nested statements. - for (var i = 0; i < block.inputList.length; i++) { - if (block.inputList[i].type == Blockly.INPUT_VALUE) { - var childBlock = block.inputList[i].connection.targetBlock(); - if (childBlock) { - var comment = Blockly.JavaScript.allNestedComments(childBlock); - if (comment) { - commentCode += Blockly.JavaScript.prefixLines(comment, '// '); - } - } - } - } - } - var nextBlock = block.nextConnection && block.nextConnection.targetBlock(); - var nextCode = opt_thisOnly ? '' : Blockly.JavaScript.blockToCode(nextBlock); - return commentCode + code + nextCode; -}; - -/** - * Gets a property and adjusts the value while taking into account indexing. - * @param {!Blockly.Block} block The block. - * @param {string} atId The property ID of the element to get. - * @param {number=} opt_delta Value to add. - * @param {boolean=} opt_negate Whether to negate the value. - * @param {number=} opt_order The highest order acting on this value. - * @return {string|number} - */ -Blockly.JavaScript.getAdjusted = function(block, atId, opt_delta, opt_negate, - opt_order) { - var delta = opt_delta || 0; - var order = opt_order || Blockly.JavaScript.ORDER_NONE; - if (block.workspace.options.oneBasedIndex) { - delta--; - } - var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0'; - if (delta > 0) { - var at = Blockly.JavaScript.valueToCode(block, atId, - Blockly.JavaScript.ORDER_ADDITION) || defaultAtIndex; - } else if (delta < 0) { - var at = Blockly.JavaScript.valueToCode(block, atId, - Blockly.JavaScript.ORDER_SUBTRACTION) || defaultAtIndex; - } else if (opt_negate) { - var at = Blockly.JavaScript.valueToCode(block, atId, - Blockly.JavaScript.ORDER_UNARY_NEGATION) || defaultAtIndex; - } else { - var at = Blockly.JavaScript.valueToCode(block, atId, order) || - defaultAtIndex; - } - - if (Blockly.isNumber(at)) { - // If the index is a naked number, adjust it right now. - at = Number(at) + delta; - if (opt_negate) { - at = -at; - } - } else { - // If the index is dynamic, adjust it in code. - if (delta > 0) { - at = at + ' + ' + delta; - var innerOrder = Blockly.JavaScript.ORDER_ADDITION; - } else if (delta < 0) { - at = at + ' - ' + -delta; - var innerOrder = Blockly.JavaScript.ORDER_SUBTRACTION; - } - if (opt_negate) { - if (delta) { - at = '-(' + at + ')'; - } else { - at = '-' + at; - } - var innerOrder = Blockly.JavaScript.ORDER_UNARY_NEGATION; - } - innerOrder = Math.floor(innerOrder); - order = Math.floor(order); - if (innerOrder && order >= innerOrder) { - at = '(' + at + ')'; - } - } - return at; -}; diff --git a/lib/blockly/generators/javascript/colour.js b/lib/blockly/generators/javascript/colour.js deleted file mode 100644 index 55cc80c..0000000 --- a/lib/blockly/generators/javascript/colour.js +++ /dev/null @@ -1,100 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for colour blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.colour'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['colour_picker'] = function(block) { - // Colour picker. - var code = Blockly.JavaScript.quote_(block.getFieldValue('COLOUR')); - return [code, Blockly.JavaScript.ORDER_ATOMIC]; -}; - -Blockly.JavaScript['colour_random'] = function(block) { - // Generate a random colour. - var functionName = Blockly.JavaScript.provideFunction_( - 'colourRandom', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + '() {', - ' var num = Math.floor(Math.random() * Math.pow(2, 24));', - ' return \'#\' + (\'00000\' + num.toString(16)).substr(-6);', - '}']); - var code = functionName + '()'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['colour_rgb'] = function(block) { - // Compose a colour from RGB components expressed as percentages. - var red = Blockly.JavaScript.valueToCode(block, 'RED', - Blockly.JavaScript.ORDER_COMMA) || 0; - var green = Blockly.JavaScript.valueToCode(block, 'GREEN', - Blockly.JavaScript.ORDER_COMMA) || 0; - var blue = Blockly.JavaScript.valueToCode(block, 'BLUE', - Blockly.JavaScript.ORDER_COMMA) || 0; - var functionName = Blockly.JavaScript.provideFunction_( - 'colourRgb', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(r, g, b) {', - ' r = Math.max(Math.min(Number(r), 100), 0) * 2.55;', - ' g = Math.max(Math.min(Number(g), 100), 0) * 2.55;', - ' b = Math.max(Math.min(Number(b), 100), 0) * 2.55;', - ' r = (\'0\' + (Math.round(r) || 0).toString(16)).slice(-2);', - ' g = (\'0\' + (Math.round(g) || 0).toString(16)).slice(-2);', - ' b = (\'0\' + (Math.round(b) || 0).toString(16)).slice(-2);', - ' return \'#\' + r + g + b;', - '}']); - var code = functionName + '(' + red + ', ' + green + ', ' + blue + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['colour_blend'] = function(block) { - // Blend two colours together. - var c1 = Blockly.JavaScript.valueToCode(block, 'COLOUR1', - Blockly.JavaScript.ORDER_COMMA) || '\'#000000\''; - var c2 = Blockly.JavaScript.valueToCode(block, 'COLOUR2', - Blockly.JavaScript.ORDER_COMMA) || '\'#000000\''; - var ratio = Blockly.JavaScript.valueToCode(block, 'RATIO', - Blockly.JavaScript.ORDER_COMMA) || 0.5; - var functionName = Blockly.JavaScript.provideFunction_( - 'colourBlend', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(c1, c2, ratio) {', - ' ratio = Math.max(Math.min(Number(ratio), 1), 0);', - ' var r1 = parseInt(c1.substring(1, 3), 16);', - ' var g1 = parseInt(c1.substring(3, 5), 16);', - ' var b1 = parseInt(c1.substring(5, 7), 16);', - ' var r2 = parseInt(c2.substring(1, 3), 16);', - ' var g2 = parseInt(c2.substring(3, 5), 16);', - ' var b2 = parseInt(c2.substring(5, 7), 16);', - ' var r = Math.round(r1 * (1 - ratio) + r2 * ratio);', - ' var g = Math.round(g1 * (1 - ratio) + g2 * ratio);', - ' var b = Math.round(b1 * (1 - ratio) + b2 * ratio);', - ' r = (\'0\' + (r || 0).toString(16)).slice(-2);', - ' g = (\'0\' + (g || 0).toString(16)).slice(-2);', - ' b = (\'0\' + (b || 0).toString(16)).slice(-2);', - ' return \'#\' + r + g + b;', - '}']); - var code = functionName + '(' + c1 + ', ' + c2 + ', ' + ratio + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/javascript/lists.js b/lib/blockly/generators/javascript/lists.js deleted file mode 100644 index 6f9e1a4..0000000 --- a/lib/blockly/generators/javascript/lists.js +++ /dev/null @@ -1,399 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for list blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.lists'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['lists_create_empty'] = function(block) { - // Create an empty list. - return ['[]', Blockly.JavaScript.ORDER_ATOMIC]; -}; - -Blockly.JavaScript['lists_create_with'] = function(block) { - // Create a list with any number of elements of any type. - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.JavaScript.valueToCode(block, 'ADD' + i, - Blockly.JavaScript.ORDER_COMMA) || 'null'; - } - var code = '[' + elements.join(', ') + ']'; - return [code, Blockly.JavaScript.ORDER_ATOMIC]; -}; - -Blockly.JavaScript['lists_repeat'] = function(block) { - // Create a list with one element repeated. - var functionName = Blockly.JavaScript.provideFunction_( - 'listsRepeat', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(value, n) {', - ' var array = [];', - ' for (var i = 0; i < n; i++) {', - ' array[i] = value;', - ' }', - ' return array;', - '}']); - var element = Blockly.JavaScript.valueToCode(block, 'ITEM', - Blockly.JavaScript.ORDER_COMMA) || 'null'; - var repeatCount = Blockly.JavaScript.valueToCode(block, 'NUM', - Blockly.JavaScript.ORDER_COMMA) || '0'; - var code = functionName + '(' + element + ', ' + repeatCount + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['lists_length'] = function(block) { - // String or array length. - var list = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_MEMBER) || '[]'; - return [list + '.length', Blockly.JavaScript.ORDER_MEMBER]; -}; - -Blockly.JavaScript['lists_isEmpty'] = function(block) { - // Is the string null or array empty? - var list = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_MEMBER) || '[]'; - return ['!' + list + '.length', Blockly.JavaScript.ORDER_LOGICAL_NOT]; -}; - -Blockly.JavaScript['lists_indexOf'] = function(block) { - // Find an item in the list. - var operator = block.getFieldValue('END') == 'FIRST' ? - 'indexOf' : 'lastIndexOf'; - var item = Blockly.JavaScript.valueToCode(block, 'FIND', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var list = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_MEMBER) || '[]'; - var code = list + '.' + operator + '(' + item + ')'; - if (block.workspace.options.oneBasedIndex) { - return [code + ' + 1', Blockly.JavaScript.ORDER_ADDITION]; - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['lists_getIndex'] = function(block) { - // Get element at index. - // Note: Until January 2013 this block did not have MODE or WHERE inputs. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var listOrder = (where == 'RANDOM') ? Blockly.JavaScript.ORDER_COMMA : - Blockly.JavaScript.ORDER_MEMBER; - var list = Blockly.JavaScript.valueToCode(block, 'VALUE', listOrder) || '[]'; - - switch (where) { - case ('FIRST'): - if (mode == 'GET') { - var code = list + '[0]'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.shift()'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; - } else if (mode == 'REMOVE') { - return list + '.shift();\n'; - } - break; - case ('LAST'): - if (mode == 'GET') { - var code = list + '.slice(-1)[0]'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.pop()'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; - } else if (mode == 'REMOVE') { - return list + '.pop();\n'; - } - break; - case ('FROM_START'): - var at = Blockly.JavaScript.getAdjusted(block, 'AT'); - if (mode == 'GET') { - var code = list + '[' + at + ']'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.splice(' + at + ', 1)[0]'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return list + '.splice(' + at + ', 1);\n'; - } - break; - case ('FROM_END'): - var at = Blockly.JavaScript.getAdjusted(block, 'AT', 1, true); - if (mode == 'GET') { - var code = list + '.slice(' + at + ')[0]'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.splice(' + at + ', 1)[0]'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return list + '.splice(' + at + ', 1);'; - } - break; - case ('RANDOM'): - var functionName = Blockly.JavaScript.provideFunction_( - 'listsGetRandomItem', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(list, remove) {', - ' var x = Math.floor(Math.random() * list.length);', - ' if (remove) {', - ' return list.splice(x, 1)[0];', - ' } else {', - ' return list[x];', - ' }', - '}']); - code = functionName + '(' + list + ', ' + (mode != 'GET') + ')'; - if (mode == 'GET' || mode == 'GET_REMOVE') { - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return code + ';\n'; - } - break; - } - throw Error('Unhandled combination (lists_getIndex).'); -}; - -Blockly.JavaScript['lists_setIndex'] = function(block) { - // Set element at index. - // Note: Until February 2013 this block did not have MODE or WHERE inputs. - var list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_MEMBER) || '[]'; - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var value = Blockly.JavaScript.valueToCode(block, 'TO', - Blockly.JavaScript.ORDER_ASSIGNMENT) || 'null'; - // Cache non-trivial values to variables to prevent repeated look-ups. - // Closure, which accesses and modifies 'list'. - function cacheList() { - if (list.match(/^\w+$/)) { - return ''; - } - var listVar = Blockly.JavaScript.variableDB_.getDistinctName( - 'tmpList', Blockly.Variables.NAME_TYPE); - var code = 'var ' + listVar + ' = ' + list + ';\n'; - list = listVar; - return code; - } - switch (where) { - case ('FIRST'): - if (mode == 'SET') { - return list + '[0] = ' + value + ';\n'; - } else if (mode == 'INSERT') { - return list + '.unshift(' + value + ');\n'; - } - break; - case ('LAST'): - if (mode == 'SET') { - var code = cacheList(); - code += list + '[' + list + '.length - 1] = ' + value + ';\n'; - return code; - } else if (mode == 'INSERT') { - return list + '.push(' + value + ');\n'; - } - break; - case ('FROM_START'): - var at = Blockly.JavaScript.getAdjusted(block, 'AT'); - if (mode == 'SET') { - return list + '[' + at + '] = ' + value + ';\n'; - } else if (mode == 'INSERT') { - return list + '.splice(' + at + ', 0, ' + value + ');\n'; - } - break; - case ('FROM_END'): - var at = Blockly.JavaScript.getAdjusted(block, 'AT', 1, false, - Blockly.JavaScript.ORDER_SUBTRACTION); - var code = cacheList(); - if (mode == 'SET') { - code += list + '[' + list + '.length - ' + at + '] = ' + value + ';\n'; - return code; - } else if (mode == 'INSERT') { - code += list + '.splice(' + list + '.length - ' + at + ', 0, ' + value + - ');\n'; - return code; - } - break; - case ('RANDOM'): - var code = cacheList(); - var xVar = Blockly.JavaScript.variableDB_.getDistinctName( - 'tmpX', Blockly.Variables.NAME_TYPE); - code += 'var ' + xVar + ' = Math.floor(Math.random() * ' + list + - '.length);\n'; - if (mode == 'SET') { - code += list + '[' + xVar + '] = ' + value + ';\n'; - return code; - } else if (mode == 'INSERT') { - code += list + '.splice(' + xVar + ', 0, ' + value + ');\n'; - return code; - } - break; - } - throw Error('Unhandled combination (lists_setIndex).'); -}; - -/** - * Returns an expression calculating the index into a list. - * @param {string} listName Name of the list, used to calculate length. - * @param {string} where The method of indexing, selected by dropdown in Blockly - * @param {string=} opt_at The optional offset when indexing from start/end. - * @return {string} Index expression. - * @private - */ -Blockly.JavaScript.lists.getIndex_ = function(listName, where, opt_at) { - if (where == 'FIRST') { - return '0'; - } else if (where == 'FROM_END') { - return listName + '.length - 1 - ' + opt_at; - } else if (where == 'LAST') { - return listName + '.length - 1'; - } else { - return opt_at; - } -}; - -Blockly.JavaScript['lists_getSublist'] = function(block) { - // Get sublist. - var list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_MEMBER) || '[]'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - if (where1 == 'FIRST' && where2 == 'LAST') { - var code = list + '.slice(0)'; - } else if (list.match(/^\w+$/) || - (where1 != 'FROM_END' && where2 == 'FROM_START')) { - // If the list is a variable or doesn't require a call for length, don't - // generate a helper function. - switch (where1) { - case 'FROM_START': - var at1 = Blockly.JavaScript.getAdjusted(block, 'AT1'); - break; - case 'FROM_END': - var at1 = Blockly.JavaScript.getAdjusted(block, 'AT1', 1, false, - Blockly.JavaScript.ORDER_SUBTRACTION); - at1 = list + '.length - ' + at1; - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw Error('Unhandled option (lists_getSublist).'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.JavaScript.getAdjusted(block, 'AT2', 1); - break; - case 'FROM_END': - var at2 = Blockly.JavaScript.getAdjusted(block, 'AT2', 0, false, - Blockly.JavaScript.ORDER_SUBTRACTION); - at2 = list + '.length - ' + at2; - break; - case 'LAST': - var at2 = list + '.length'; - break; - default: - throw Error('Unhandled option (lists_getSublist).'); - } - code = list + '.slice(' + at1 + ', ' + at2 + ')'; - } else { - var at1 = Blockly.JavaScript.getAdjusted(block, 'AT1'); - var at2 = Blockly.JavaScript.getAdjusted(block, 'AT2'); - var getIndex_ = Blockly.JavaScript.lists.getIndex_; - var wherePascalCase = {'FIRST': 'First', 'LAST': 'Last', - 'FROM_START': 'FromStart', 'FROM_END': 'FromEnd'}; - var functionName = Blockly.JavaScript.provideFunction_( - 'subsequence' + wherePascalCase[where1] + wherePascalCase[where2], - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(sequence' + - // The value for 'FROM_END' and'FROM_START' depends on `at` so - // we add it as a parameter. - ((where1 == 'FROM_END' || where1 == 'FROM_START') ? ', at1' : '') + - ((where2 == 'FROM_END' || where2 == 'FROM_START') ? ', at2' : '') + - ') {', - ' var start = ' + getIndex_('sequence', where1, 'at1') + ';', - ' var end = ' + getIndex_('sequence', where2, 'at2') + ' + 1;', - ' return sequence.slice(start, end);', - '}']); - var code = functionName + '(' + list + - // The value for 'FROM_END' and 'FROM_START' depends on `at` so we - // pass it. - ((where1 == 'FROM_END' || where1 == 'FROM_START') ? ', ' + at1 : '') + - ((where2 == 'FROM_END' || where2 == 'FROM_START') ? ', ' + at2 : '') + - ')'; - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['lists_sort'] = function(block) { - // Block for sorting a list. - var list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_FUNCTION_CALL) || '[]'; - var direction = block.getFieldValue('DIRECTION') === '1' ? 1 : -1; - var type = block.getFieldValue('TYPE'); - var getCompareFunctionName = Blockly.JavaScript.provideFunction_( - 'listsGetSortCompare', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(type, direction) {', - ' var compareFuncs = {', - ' "NUMERIC": function(a, b) {', - ' return Number(a) - Number(b); },', - ' "TEXT": function(a, b) {', - ' return a.toString() > b.toString() ? 1 : -1; },', - ' "IGNORE_CASE": function(a, b) {', - ' return a.toString().toLowerCase() > ' + - 'b.toString().toLowerCase() ? 1 : -1; },', - ' };', - ' var compare = compareFuncs[type];', - ' return function(a, b) { return compare(a, b) * direction; }', - '}']); - return [list + '.slice().sort(' + - getCompareFunctionName + '("' + type + '", ' + direction + '))', - Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['lists_split'] = function(block) { - // Block for splitting text into a list, or joining a list into text. - var input = Blockly.JavaScript.valueToCode(block, 'INPUT', - Blockly.JavaScript.ORDER_MEMBER); - var delimiter = Blockly.JavaScript.valueToCode(block, 'DELIM', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var mode = block.getFieldValue('MODE'); - if (mode == 'SPLIT') { - if (!input) { - input = '\'\''; - } - var functionName = 'split'; - } else if (mode == 'JOIN') { - if (!input) { - input = '[]'; - } - var functionName = 'join'; - } else { - throw Error('Unknown mode: ' + mode); - } - var code = input + '.' + functionName + '(' + delimiter + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['lists_reverse'] = function(block) { - // Block for reversing a list. - var list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_FUNCTION_CALL) || '[]'; - var code = list + '.slice().reverse()'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/javascript/logic.js b/lib/blockly/generators/javascript/logic.js deleted file mode 100644 index 3160fa5..0000000 --- a/lib/blockly/generators/javascript/logic.js +++ /dev/null @@ -1,140 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for logic blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.logic'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['controls_if'] = function(block) { - // If/elseif/else condition. - var n = 0; - var code = '', branchCode, conditionCode; - if (Blockly.JavaScript.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - code += Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX, - block); - } - do { - conditionCode = Blockly.JavaScript.valueToCode(block, 'IF' + n, - Blockly.JavaScript.ORDER_NONE) || 'false'; - branchCode = Blockly.JavaScript.statementToCode(block, 'DO' + n); - if (Blockly.JavaScript.STATEMENT_SUFFIX) { - branchCode = Blockly.JavaScript.prefixLines( - Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX, - block), Blockly.JavaScript.INDENT) + branchCode; - } - code += (n > 0 ? ' else ' : '') + - 'if (' + conditionCode + ') {\n' + branchCode + '}'; - ++n; - } while (block.getInput('IF' + n)); - - if (block.getInput('ELSE') || Blockly.JavaScript.STATEMENT_SUFFIX) { - branchCode = Blockly.JavaScript.statementToCode(block, 'ELSE'); - if (Blockly.JavaScript.STATEMENT_SUFFIX) { - branchCode = Blockly.JavaScript.prefixLines( - Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX, - block), Blockly.JavaScript.INDENT) + branchCode; - } - code += ' else {\n' + branchCode + '}'; - } - return code + '\n'; -}; - -Blockly.JavaScript['controls_ifelse'] = Blockly.JavaScript['controls_if']; - -Blockly.JavaScript['logic_compare'] = function(block) { - // Comparison operator. - var OPERATORS = { - 'EQ': '==', - 'NEQ': '!=', - 'LT': '<', - 'LTE': '<=', - 'GT': '>', - 'GTE': '>=' - }; - var operator = OPERATORS[block.getFieldValue('OP')]; - var order = (operator == '==' || operator == '!=') ? - Blockly.JavaScript.ORDER_EQUALITY : Blockly.JavaScript.ORDER_RELATIONAL; - var argument0 = Blockly.JavaScript.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'B', order) || '0'; - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.JavaScript['logic_operation'] = function(block) { - // Operations 'and', 'or'. - var operator = (block.getFieldValue('OP') == 'AND') ? '&&' : '||'; - var order = (operator == '&&') ? Blockly.JavaScript.ORDER_LOGICAL_AND : - Blockly.JavaScript.ORDER_LOGICAL_OR; - var argument0 = Blockly.JavaScript.valueToCode(block, 'A', order); - var argument1 = Blockly.JavaScript.valueToCode(block, 'B', order); - if (!argument0 && !argument1) { - // If there are no arguments, then the return value is false. - argument0 = 'false'; - argument1 = 'false'; - } else { - // Single missing arguments have no effect on the return value. - var defaultArgument = (operator == '&&') ? 'true' : 'false'; - if (!argument0) { - argument0 = defaultArgument; - } - if (!argument1) { - argument1 = defaultArgument; - } - } - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.JavaScript['logic_negate'] = function(block) { - // Negation. - var order = Blockly.JavaScript.ORDER_LOGICAL_NOT; - var argument0 = Blockly.JavaScript.valueToCode(block, 'BOOL', order) || - 'true'; - var code = '!' + argument0; - return [code, order]; -}; - -Blockly.JavaScript['logic_boolean'] = function(block) { - // Boolean values true and false. - var code = (block.getFieldValue('BOOL') == 'TRUE') ? 'true' : 'false'; - return [code, Blockly.JavaScript.ORDER_ATOMIC]; -}; - -Blockly.JavaScript['logic_null'] = function(block) { - // Null data type. - return ['null', Blockly.JavaScript.ORDER_ATOMIC]; -}; - -Blockly.JavaScript['logic_ternary'] = function(block) { - // Ternary operator. - var value_if = Blockly.JavaScript.valueToCode(block, 'IF', - Blockly.JavaScript.ORDER_CONDITIONAL) || 'false'; - var value_then = Blockly.JavaScript.valueToCode(block, 'THEN', - Blockly.JavaScript.ORDER_CONDITIONAL) || 'null'; - var value_else = Blockly.JavaScript.valueToCode(block, 'ELSE', - Blockly.JavaScript.ORDER_CONDITIONAL) || 'null'; - var code = value_if + ' ? ' + value_then + ' : ' + value_else; - return [code, Blockly.JavaScript.ORDER_CONDITIONAL]; -}; diff --git a/lib/blockly/generators/javascript/loops.js b/lib/blockly/generators/javascript/loops.js deleted file mode 100644 index f408ca1..0000000 --- a/lib/blockly/generators/javascript/loops.js +++ /dev/null @@ -1,195 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for loop blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.loops'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['controls_repeat_ext'] = function(block) { - // Repeat n times. - if (block.getField('TIMES')) { - // Internal number. - var repeats = String(Number(block.getFieldValue('TIMES'))); - } else { - // External number. - var repeats = Blockly.JavaScript.valueToCode(block, 'TIMES', - Blockly.JavaScript.ORDER_ASSIGNMENT) || '0'; - } - var branch = Blockly.JavaScript.statementToCode(block, 'DO'); - branch = Blockly.JavaScript.addLoopTrap(branch, block); - var code = ''; - var loopVar = Blockly.JavaScript.variableDB_.getDistinctName( - 'count', Blockly.Variables.NAME_TYPE); - var endVar = repeats; - if (!repeats.match(/^\w+$/) && !Blockly.isNumber(repeats)) { - var endVar = Blockly.JavaScript.variableDB_.getDistinctName( - 'repeat_end', Blockly.Variables.NAME_TYPE); - code += 'var ' + endVar + ' = ' + repeats + ';\n'; - } - code += 'for (var ' + loopVar + ' = 0; ' + - loopVar + ' < ' + endVar + '; ' + - loopVar + '++) {\n' + - branch + '}\n'; - return code; -}; - -Blockly.JavaScript['controls_repeat'] = - Blockly.JavaScript['controls_repeat_ext']; - -Blockly.JavaScript['controls_whileUntil'] = function(block) { - // Do while/until loop. - var until = block.getFieldValue('MODE') == 'UNTIL'; - var argument0 = Blockly.JavaScript.valueToCode(block, 'BOOL', - until ? Blockly.JavaScript.ORDER_LOGICAL_NOT : - Blockly.JavaScript.ORDER_NONE) || 'false'; - var branch = Blockly.JavaScript.statementToCode(block, 'DO'); - branch = Blockly.JavaScript.addLoopTrap(branch, block); - if (until) { - argument0 = '!' + argument0; - } - return 'while (' + argument0 + ') {\n' + branch + '}\n'; -}; - -Blockly.JavaScript['controls_for'] = function(block) { - // For loop. - var variable0 = Blockly.JavaScript.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.JavaScript.valueToCode(block, 'FROM', - Blockly.JavaScript.ORDER_ASSIGNMENT) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'TO', - Blockly.JavaScript.ORDER_ASSIGNMENT) || '0'; - var increment = Blockly.JavaScript.valueToCode(block, 'BY', - Blockly.JavaScript.ORDER_ASSIGNMENT) || '1'; - var branch = Blockly.JavaScript.statementToCode(block, 'DO'); - branch = Blockly.JavaScript.addLoopTrap(branch, block); - var code; - if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && - Blockly.isNumber(increment)) { - // All arguments are simple numbers. - var up = Number(argument0) <= Number(argument1); - code = 'for (' + variable0 + ' = ' + argument0 + '; ' + - variable0 + (up ? ' <= ' : ' >= ') + argument1 + '; ' + - variable0; - var step = Math.abs(Number(increment)); - if (step == 1) { - code += up ? '++' : '--'; - } else { - code += (up ? ' += ' : ' -= ') + step; - } - code += ') {\n' + branch + '}\n'; - } else { - code = ''; - // Cache non-trivial values to variables to prevent repeated look-ups. - var startVar = argument0; - if (!argument0.match(/^\w+$/) && !Blockly.isNumber(argument0)) { - startVar = Blockly.JavaScript.variableDB_.getDistinctName( - variable0 + '_start', Blockly.Variables.NAME_TYPE); - code += 'var ' + startVar + ' = ' + argument0 + ';\n'; - } - var endVar = argument1; - if (!argument1.match(/^\w+$/) && !Blockly.isNumber(argument1)) { - var endVar = Blockly.JavaScript.variableDB_.getDistinctName( - variable0 + '_end', Blockly.Variables.NAME_TYPE); - code += 'var ' + endVar + ' = ' + argument1 + ';\n'; - } - // Determine loop direction at start, in case one of the bounds - // changes during loop execution. - var incVar = Blockly.JavaScript.variableDB_.getDistinctName( - variable0 + '_inc', Blockly.Variables.NAME_TYPE); - code += 'var ' + incVar + ' = '; - if (Blockly.isNumber(increment)) { - code += Math.abs(increment) + ';\n'; - } else { - code += 'Math.abs(' + increment + ');\n'; - } - code += 'if (' + startVar + ' > ' + endVar + ') {\n'; - code += Blockly.JavaScript.INDENT + incVar + ' = -' + incVar + ';\n'; - code += '}\n'; - code += 'for (' + variable0 + ' = ' + startVar + '; ' + - incVar + ' >= 0 ? ' + - variable0 + ' <= ' + endVar + ' : ' + - variable0 + ' >= ' + endVar + '; ' + - variable0 + ' += ' + incVar + ') {\n' + - branch + '}\n'; - } - return code; -}; - -Blockly.JavaScript['controls_forEach'] = function(block) { - // For each loop. - var variable0 = Blockly.JavaScript.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_ASSIGNMENT) || '[]'; - var branch = Blockly.JavaScript.statementToCode(block, 'DO'); - branch = Blockly.JavaScript.addLoopTrap(branch, block); - var code = ''; - // Cache non-trivial values to variables to prevent repeated look-ups. - var listVar = argument0; - if (!argument0.match(/^\w+$/)) { - listVar = Blockly.JavaScript.variableDB_.getDistinctName( - variable0 + '_list', Blockly.Variables.NAME_TYPE); - code += 'var ' + listVar + ' = ' + argument0 + ';\n'; - } - var indexVar = Blockly.JavaScript.variableDB_.getDistinctName( - variable0 + '_index', Blockly.Variables.NAME_TYPE); - branch = Blockly.JavaScript.INDENT + variable0 + ' = ' + - listVar + '[' + indexVar + '];\n' + branch; - code += 'for (var ' + indexVar + ' in ' + listVar + ') {\n' + branch + '}\n'; - return code; -}; - -Blockly.JavaScript['controls_flow_statements'] = function(block) { - // Flow statements: continue, break. - var xfix = ''; - if (Blockly.JavaScript.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - xfix += Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX, - block); - } - if (Blockly.JavaScript.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the break/continue is triggered. - xfix += Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX, - block); - } - if (Blockly.JavaScript.STATEMENT_PREFIX) { - var loop = Blockly.Constants.Loops - .CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(block); - if (loop && !loop.suppressPrefixSuffix) { - // Inject loop's statement prefix here since the regular one at the end - // of the loop will not get executed if 'continue' is triggered. - // In the case of 'break', a prefix is needed due to the loop's suffix. - xfix += Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX, - loop); - } - } - switch (block.getFieldValue('FLOW')) { - case 'BREAK': - return xfix + 'break;\n'; - case 'CONTINUE': - return xfix + 'continue;\n'; - } - throw Error('Unknown flow statement.'); -}; diff --git a/lib/blockly/generators/javascript/math.js b/lib/blockly/generators/javascript/math.js deleted file mode 100644 index 935c2e4..0000000 --- a/lib/blockly/generators/javascript/math.js +++ /dev/null @@ -1,420 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for math blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.math'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['math_number'] = function(block) { - // Numeric value. - var code = Number(block.getFieldValue('NUM')); - var order = code >= 0 ? Blockly.JavaScript.ORDER_ATOMIC : - Blockly.JavaScript.ORDER_UNARY_NEGATION; - return [code, order]; -}; - -Blockly.JavaScript['math_arithmetic'] = function(block) { - // Basic arithmetic operators, and power. - var OPERATORS = { - 'ADD': [' + ', Blockly.JavaScript.ORDER_ADDITION], - 'MINUS': [' - ', Blockly.JavaScript.ORDER_SUBTRACTION], - 'MULTIPLY': [' * ', Blockly.JavaScript.ORDER_MULTIPLICATION], - 'DIVIDE': [' / ', Blockly.JavaScript.ORDER_DIVISION], - 'POWER': [null, Blockly.JavaScript.ORDER_COMMA] // Handle power separately. - }; - var tuple = OPERATORS[block.getFieldValue('OP')]; - var operator = tuple[0]; - var order = tuple[1]; - var argument0 = Blockly.JavaScript.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'B', order) || '0'; - var code; - // Power in JavaScript requires a special case since it has no operator. - if (!operator) { - code = 'Math.pow(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } - code = argument0 + operator + argument1; - return [code, order]; -}; - -Blockly.JavaScript['math_single'] = function(block) { - // Math operators with single operand. - var operator = block.getFieldValue('OP'); - var code; - var arg; - if (operator == 'NEG') { - // Negation is a special case given its different operator precedence. - arg = Blockly.JavaScript.valueToCode(block, 'NUM', - Blockly.JavaScript.ORDER_UNARY_NEGATION) || '0'; - if (arg[0] == '-') { - // --3 is not legal in JS. - arg = ' ' + arg; - } - code = '-' + arg; - return [code, Blockly.JavaScript.ORDER_UNARY_NEGATION]; - } - if (operator == 'SIN' || operator == 'COS' || operator == 'TAN') { - arg = Blockly.JavaScript.valueToCode(block, 'NUM', - Blockly.JavaScript.ORDER_DIVISION) || '0'; - } else { - arg = Blockly.JavaScript.valueToCode(block, 'NUM', - Blockly.JavaScript.ORDER_NONE) || '0'; - } - // First, handle cases which generate values that don't need parentheses - // wrapping the code. - switch (operator) { - case 'ABS': - code = 'Math.abs(' + arg + ')'; - break; - case 'ROOT': - code = 'Math.sqrt(' + arg + ')'; - break; - case 'LN': - code = 'Math.log(' + arg + ')'; - break; - case 'EXP': - code = 'Math.exp(' + arg + ')'; - break; - case 'POW10': - code = 'Math.pow(10,' + arg + ')'; - break; - case 'ROUND': - code = 'Math.round(' + arg + ')'; - break; - case 'ROUNDUP': - code = 'Math.ceil(' + arg + ')'; - break; - case 'ROUNDDOWN': - code = 'Math.floor(' + arg + ')'; - break; - case 'SIN': - code = 'Math.sin(' + arg + ' / 180 * Math.PI)'; - break; - case 'COS': - code = 'Math.cos(' + arg + ' / 180 * Math.PI)'; - break; - case 'TAN': - code = 'Math.tan(' + arg + ' / 180 * Math.PI)'; - break; - } - if (code) { - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } - // Second, handle cases which generate values that may need parentheses - // wrapping the code. - switch (operator) { - case 'LOG10': - code = 'Math.log(' + arg + ') / Math.log(10)'; - break; - case 'ASIN': - code = 'Math.asin(' + arg + ') / Math.PI * 180'; - break; - case 'ACOS': - code = 'Math.acos(' + arg + ') / Math.PI * 180'; - break; - case 'ATAN': - code = 'Math.atan(' + arg + ') / Math.PI * 180'; - break; - default: - throw Error('Unknown math operator: ' + operator); - } - return [code, Blockly.JavaScript.ORDER_DIVISION]; -}; - -Blockly.JavaScript['math_constant'] = function(block) { - // Constants: PI, E, the Golden Ratio, sqrt(2), 1/sqrt(2), INFINITY. - var CONSTANTS = { - 'PI': ['Math.PI', Blockly.JavaScript.ORDER_MEMBER], - 'E': ['Math.E', Blockly.JavaScript.ORDER_MEMBER], - 'GOLDEN_RATIO': - ['(1 + Math.sqrt(5)) / 2', Blockly.JavaScript.ORDER_DIVISION], - 'SQRT2': ['Math.SQRT2', Blockly.JavaScript.ORDER_MEMBER], - 'SQRT1_2': ['Math.SQRT1_2', Blockly.JavaScript.ORDER_MEMBER], - 'INFINITY': ['Infinity', Blockly.JavaScript.ORDER_ATOMIC] - }; - return CONSTANTS[block.getFieldValue('CONSTANT')]; -}; - -Blockly.JavaScript['math_number_property'] = function(block) { - // Check if a number is even, odd, prime, whole, positive, or negative - // or if it is divisible by certain number. Returns true or false. - var number_to_check = Blockly.JavaScript.valueToCode(block, 'NUMBER_TO_CHECK', - Blockly.JavaScript.ORDER_MODULUS) || '0'; - var dropdown_property = block.getFieldValue('PROPERTY'); - var code; - if (dropdown_property == 'PRIME') { - // Prime is a special case as it is not a one-liner test. - var functionName = Blockly.JavaScript.provideFunction_( - 'mathIsPrime', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + '(n) {', - ' // https://en.wikipedia.org/wiki/Primality_test#Naive_methods', - ' if (n == 2 || n == 3) {', - ' return true;', - ' }', - ' // False if n is NaN, negative, is 1, or not whole.', - ' // And false if n is divisible by 2 or 3.', - ' if (isNaN(n) || n <= 1 || n % 1 != 0 || n % 2 == 0 ||' + - ' n % 3 == 0) {', - ' return false;', - ' }', - ' // Check all the numbers of form 6k +/- 1, up to sqrt(n).', - ' for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) {', - ' if (n % (x - 1) == 0 || n % (x + 1) == 0) {', - ' return false;', - ' }', - ' }', - ' return true;', - '}']); - code = functionName + '(' + number_to_check + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } - switch (dropdown_property) { - case 'EVEN': - code = number_to_check + ' % 2 == 0'; - break; - case 'ODD': - code = number_to_check + ' % 2 == 1'; - break; - case 'WHOLE': - code = number_to_check + ' % 1 == 0'; - break; - case 'POSITIVE': - code = number_to_check + ' > 0'; - break; - case 'NEGATIVE': - code = number_to_check + ' < 0'; - break; - case 'DIVISIBLE_BY': - var divisor = Blockly.JavaScript.valueToCode(block, 'DIVISOR', - Blockly.JavaScript.ORDER_MODULUS) || '0'; - code = number_to_check + ' % ' + divisor + ' == 0'; - break; - } - return [code, Blockly.JavaScript.ORDER_EQUALITY]; -}; - -Blockly.JavaScript['math_change'] = function(block) { - // Add to a variable in place. - var argument0 = Blockly.JavaScript.valueToCode(block, 'DELTA', - Blockly.JavaScript.ORDER_ADDITION) || '0'; - var varName = Blockly.JavaScript.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - return varName + ' = (typeof ' + varName + ' == \'number\' ? ' + varName + - ' : 0) + ' + argument0 + ';\n'; -}; - -// Rounding functions have a single operand. -Blockly.JavaScript['math_round'] = Blockly.JavaScript['math_single']; -// Trigonometry functions have a single operand. -Blockly.JavaScript['math_trig'] = Blockly.JavaScript['math_single']; - -Blockly.JavaScript['math_on_list'] = function(block) { - // Math functions for lists. - var func = block.getFieldValue('OP'); - var list, code; - switch (func) { - case 'SUM': - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_MEMBER) || '[]'; - code = list + '.reduce(function(x, y) {return x + y;})'; - break; - case 'MIN': - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_COMMA) || '[]'; - code = 'Math.min.apply(null, ' + list + ')'; - break; - case 'MAX': - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_COMMA) || '[]'; - code = 'Math.max.apply(null, ' + list + ')'; - break; - case 'AVERAGE': - // mathMean([null,null,1,3]) == 2.0. - var functionName = Blockly.JavaScript.provideFunction_( - 'mathMean', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(myList) {', - ' return myList.reduce(function(x, y) {return x + y;}) / ' + - 'myList.length;', - '}']); - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'MEDIAN': - // mathMedian([null,null,1,3]) == 2.0. - var functionName = Blockly.JavaScript.provideFunction_( - 'mathMedian', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(myList) {', - ' var localList = myList.filter(function (x) ' + - '{return typeof x == \'number\';});', - ' if (!localList.length) return null;', - ' localList.sort(function(a, b) {return b - a;});', - ' if (localList.length % 2 == 0) {', - ' return (localList[localList.length / 2 - 1] + ' + - 'localList[localList.length / 2]) / 2;', - ' } else {', - ' return localList[(localList.length - 1) / 2];', - ' }', - '}']); - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'MODE': - // As a list of numbers can contain more than one mode, - // the returned result is provided as an array. - // Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1]. - var functionName = Blockly.JavaScript.provideFunction_( - 'mathModes', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(values) {', - ' var modes = [];', - ' var counts = [];', - ' var maxCount = 0;', - ' for (var i = 0; i < values.length; i++) {', - ' var value = values[i];', - ' var found = false;', - ' var thisCount;', - ' for (var j = 0; j < counts.length; j++) {', - ' if (counts[j][0] === value) {', - ' thisCount = ++counts[j][1];', - ' found = true;', - ' break;', - ' }', - ' }', - ' if (!found) {', - ' counts.push([value, 1]);', - ' thisCount = 1;', - ' }', - ' maxCount = Math.max(thisCount, maxCount);', - ' }', - ' for (var j = 0; j < counts.length; j++) {', - ' if (counts[j][1] == maxCount) {', - ' modes.push(counts[j][0]);', - ' }', - ' }', - ' return modes;', - '}']); - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'STD_DEV': - var functionName = Blockly.JavaScript.provideFunction_( - 'mathStandardDeviation', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(numbers) {', - ' var n = numbers.length;', - ' if (!n) return null;', - ' var mean = numbers.reduce(function(x, y) {return x + y;}) / n;', - ' var variance = 0;', - ' for (var j = 0; j < n; j++) {', - ' variance += Math.pow(numbers[j] - mean, 2);', - ' }', - ' variance = variance / n;', - ' return Math.sqrt(variance);', - '}']); - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'RANDOM': - var functionName = Blockly.JavaScript.provideFunction_( - 'mathRandomList', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(list) {', - ' var x = Math.floor(Math.random() * list.length);', - ' return list[x];', - '}']); - list = Blockly.JavaScript.valueToCode(block, 'LIST', - Blockly.JavaScript.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - default: - throw Error('Unknown operator: ' + func); - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['math_modulo'] = function(block) { - // Remainder computation. - var argument0 = Blockly.JavaScript.valueToCode(block, 'DIVIDEND', - Blockly.JavaScript.ORDER_MODULUS) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'DIVISOR', - Blockly.JavaScript.ORDER_MODULUS) || '0'; - var code = argument0 + ' % ' + argument1; - return [code, Blockly.JavaScript.ORDER_MODULUS]; -}; - -Blockly.JavaScript['math_constrain'] = function(block) { - // Constrain a number between two limits. - var argument0 = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_COMMA) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'LOW', - Blockly.JavaScript.ORDER_COMMA) || '0'; - var argument2 = Blockly.JavaScript.valueToCode(block, 'HIGH', - Blockly.JavaScript.ORDER_COMMA) || 'Infinity'; - var code = 'Math.min(Math.max(' + argument0 + ', ' + argument1 + '), ' + - argument2 + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['math_random_int'] = function(block) { - // Random integer between [X] and [Y]. - var argument0 = Blockly.JavaScript.valueToCode(block, 'FROM', - Blockly.JavaScript.ORDER_COMMA) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'TO', - Blockly.JavaScript.ORDER_COMMA) || '0'; - var functionName = Blockly.JavaScript.provideFunction_( - 'mathRandomInt', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(a, b) {', - ' if (a > b) {', - ' // Swap a and b to ensure a is smaller.', - ' var c = a;', - ' a = b;', - ' b = c;', - ' }', - ' return Math.floor(Math.random() * (b - a + 1) + a);', - '}']); - var code = functionName + '(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['math_random_float'] = function(block) { - // Random fraction between 0 and 1. - return ['Math.random()', Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['math_atan2'] = function(block) { - // Arctangent of point (X, Y) in degrees from -180 to 180. - var argument0 = Blockly.JavaScript.valueToCode(block, 'X', - Blockly.JavaScript.ORDER_COMMA) || '0'; - var argument1 = Blockly.JavaScript.valueToCode(block, 'Y', - Blockly.JavaScript.ORDER_COMMA) || '0'; - return ['Math.atan2(' + argument1 + ', ' + argument0 + ') / Math.PI * 180', - Blockly.JavaScript.ORDER_DIVISION]; -}; diff --git a/lib/blockly/generators/javascript/procedures.js b/lib/blockly/generators/javascript/procedures.js deleted file mode 100644 index 6225f14..0000000 --- a/lib/blockly/generators/javascript/procedures.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for procedure blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.procedures'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['procedures_defreturn'] = function(block) { - // Define a procedure with a return value. - var funcName = Blockly.JavaScript.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var xfix1 = ''; - if (Blockly.JavaScript.STATEMENT_PREFIX) { - xfix1 += Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX, - block); - } - if (Blockly.JavaScript.STATEMENT_SUFFIX) { - xfix1 += Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX, - block); - } - if (xfix1) { - xfix1 = Blockly.JavaScript.prefixLines(xfix1, Blockly.JavaScript.INDENT); - } - var loopTrap = ''; - if (Blockly.JavaScript.INFINITE_LOOP_TRAP) { - loopTrap = Blockly.JavaScript.prefixLines( - Blockly.JavaScript.injectId(Blockly.JavaScript.INFINITE_LOOP_TRAP, - block), Blockly.JavaScript.INDENT); - } - var branch = Blockly.JavaScript.statementToCode(block, 'STACK'); - var returnValue = Blockly.JavaScript.valueToCode(block, 'RETURN', - Blockly.JavaScript.ORDER_NONE) || ''; - var xfix2 = ''; - if (branch && returnValue) { - // After executing the function body, revisit this block for the return. - xfix2 = xfix1; - } - if (returnValue) { - returnValue = Blockly.JavaScript.INDENT + 'return ' + returnValue + ';\n'; - } - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.JavaScript.variableDB_.getName(block.arguments_[i], - Blockly.Variables.NAME_TYPE); - } - var code = 'function ' + funcName + '(' + args.join(', ') + ') {\n' + - xfix1 + loopTrap + branch + xfix2 + returnValue + '}'; - code = Blockly.JavaScript.scrub_(block, code); - // Add % so as not to collide with helper functions in definitions list. - Blockly.JavaScript.definitions_['%' + funcName] = code; - return null; -}; - -// Defining a procedure without a return value uses the same generator as -// a procedure with a return value. -Blockly.JavaScript['procedures_defnoreturn'] = - Blockly.JavaScript['procedures_defreturn']; - -Blockly.JavaScript['procedures_callreturn'] = function(block) { - // Call a procedure with a return value. - var funcName = Blockly.JavaScript.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.JavaScript.valueToCode(block, 'ARG' + i, - Blockly.JavaScript.ORDER_COMMA) || 'null'; - } - var code = funcName + '(' + args.join(', ') + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['procedures_callnoreturn'] = function(block) { - // Call a procedure with no return value. - // Generated code is for a function call as a statement is the same as a - // function call as a value, with the addition of line ending. - var tuple = Blockly.JavaScript['procedures_callreturn'](block); - return tuple[0] + ';\n'; -}; - -Blockly.JavaScript['procedures_ifreturn'] = function(block) { - // Conditionally return value from a procedure. - var condition = Blockly.JavaScript.valueToCode(block, 'CONDITION', - Blockly.JavaScript.ORDER_NONE) || 'false'; - var code = 'if (' + condition + ') {\n'; - if (Blockly.JavaScript.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the return is triggered. - code += Blockly.JavaScript.prefixLines( - Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX, block), - Blockly.JavaScript.INDENT); - } - if (block.hasReturnValue_) { - var value = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_NONE) || 'null'; - code += Blockly.JavaScript.INDENT + 'return ' + value + ';\n'; - } else { - code += Blockly.JavaScript.INDENT + 'return;\n'; - } - code += '}\n'; - return code; -}; diff --git a/lib/blockly/generators/javascript/text.js b/lib/blockly/generators/javascript/text.js deleted file mode 100644 index 4e89b95..0000000 --- a/lib/blockly/generators/javascript/text.js +++ /dev/null @@ -1,378 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for text blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.JavaScript.texts'); - -goog.require('Blockly.JavaScript'); - - -Blockly.JavaScript['text'] = function(block) { - // Text value. - var code = Blockly.JavaScript.quote_(block.getFieldValue('TEXT')); - return [code, Blockly.JavaScript.ORDER_ATOMIC]; -}; - -Blockly.JavaScript['text_multiline'] = function(block) { - // Text value. - var code = Blockly.JavaScript.multiline_quote_(block.getFieldValue('TEXT')); - if (code.includes('\n')) { - code = '(' + code + ')' - } - return [code, Blockly.JavaScript.ORDER_ATOMIC]; -}; - -/** - * Enclose the provided value in 'String(...)' function. - * Leave string literals alone. - * @param {string} value Code evaluating to a value. - * @return {string} Code evaluating to a string. - * @private - */ -Blockly.JavaScript.text.forceString_ = function(value) { - if (Blockly.JavaScript.text.forceString_.strRegExp.test(value)) { - return value; - } - return 'String(' + value + ')'; -}; - -/** - * Regular expression to detect a single-quoted string literal. - */ -Blockly.JavaScript.text.forceString_.strRegExp = /^\s*'([^']|\\')*'\s*$/; - -Blockly.JavaScript['text_join'] = function(block) { - // Create a string made up of any number of elements of any type. - switch (block.itemCount_) { - case 0: - return ['\'\'', Blockly.JavaScript.ORDER_ATOMIC]; - case 1: - var element = Blockly.JavaScript.valueToCode(block, 'ADD0', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var code = Blockly.JavaScript.text.forceString_(element); - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - case 2: - var element0 = Blockly.JavaScript.valueToCode(block, 'ADD0', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var element1 = Blockly.JavaScript.valueToCode(block, 'ADD1', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var code = Blockly.JavaScript.text.forceString_(element0) + ' + ' + - Blockly.JavaScript.text.forceString_(element1); - return [code, Blockly.JavaScript.ORDER_ADDITION]; - default: - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.JavaScript.valueToCode(block, 'ADD' + i, - Blockly.JavaScript.ORDER_COMMA) || '\'\''; - } - var code = '[' + elements.join(',') + '].join(\'\')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } -}; - -Blockly.JavaScript['text_append'] = function(block) { - // Append to a variable in place. - var varName = Blockly.JavaScript.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var value = Blockly.JavaScript.valueToCode(block, 'TEXT', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - return varName + ' += ' + Blockly.JavaScript.text.forceString_(value) + ';\n'; -}; - -Blockly.JavaScript['text_length'] = function(block) { - // String or array length. - var text = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_FUNCTION_CALL) || '\'\''; - return [text + '.length', Blockly.JavaScript.ORDER_MEMBER]; -}; - -Blockly.JavaScript['text_isEmpty'] = function(block) { - // Is the string null or array empty? - var text = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_MEMBER) || '\'\''; - return ['!' + text + '.length', Blockly.JavaScript.ORDER_LOGICAL_NOT]; -}; - -Blockly.JavaScript['text_indexOf'] = function(block) { - // Search the text for a substring. - var operator = block.getFieldValue('END') == 'FIRST' ? - 'indexOf' : 'lastIndexOf'; - var substring = Blockly.JavaScript.valueToCode(block, 'FIND', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var text = Blockly.JavaScript.valueToCode(block, 'VALUE', - Blockly.JavaScript.ORDER_MEMBER) || '\'\''; - var code = text + '.' + operator + '(' + substring + ')'; - // Adjust index if using one-based indices. - if (block.workspace.options.oneBasedIndex) { - return [code + ' + 1', Blockly.JavaScript.ORDER_ADDITION]; - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['text_charAt'] = function(block) { - // Get letter at index. - // Note: Until January 2013 this block did not have the WHERE input. - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var textOrder = (where == 'RANDOM') ? Blockly.JavaScript.ORDER_NONE : - Blockly.JavaScript.ORDER_MEMBER; - var text = Blockly.JavaScript.valueToCode(block, 'VALUE', - textOrder) || '\'\''; - switch (where) { - case 'FIRST': - var code = text + '.charAt(0)'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - case 'LAST': - var code = text + '.slice(-1)'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - case 'FROM_START': - var at = Blockly.JavaScript.getAdjusted(block, 'AT'); - // Adjust index if using one-based indices. - var code = text + '.charAt(' + at + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - case 'FROM_END': - var at = Blockly.JavaScript.getAdjusted(block, 'AT', 1, true); - var code = text + '.slice(' + at + ').charAt(0)'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - case 'RANDOM': - var functionName = Blockly.JavaScript.provideFunction_( - 'textRandomLetter', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(text) {', - ' var x = Math.floor(Math.random() * text.length);', - ' return text[x];', - '}']); - var code = functionName + '(' + text + ')'; - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; - } - throw Error('Unhandled option (text_charAt).'); -}; - -/** - * Returns an expression calculating the index into a string. - * @param {string} stringName Name of the string, used to calculate length. - * @param {string} where The method of indexing, selected by dropdown in Blockly - * @param {string=} opt_at The optional offset when indexing from start/end. - * @return {string} Index expression. - * @private - */ -Blockly.JavaScript.text.getIndex_ = function(stringName, where, opt_at) { - if (where == 'FIRST') { - return '0'; - } else if (where == 'FROM_END') { - return stringName + '.length - 1 - ' + opt_at; - } else if (where == 'LAST') { - return stringName + '.length - 1'; - } else { - return opt_at; - } -}; - -Blockly.JavaScript['text_getSubstring'] = function(block) { - // Get substring. - var text = Blockly.JavaScript.valueToCode(block, 'STRING', - Blockly.JavaScript.ORDER_FUNCTION_CALL) || '\'\''; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - if (where1 == 'FIRST' && where2 == 'LAST') { - var code = text; - } else if (text.match(/^'?\w+'?$/) || - (where1 != 'FROM_END' && where1 != 'LAST' && - where2 != 'FROM_END' && where2 != 'LAST')) { - // If the text is a variable or literal or doesn't require a call for - // length, don't generate a helper function. - switch (where1) { - case 'FROM_START': - var at1 = Blockly.JavaScript.getAdjusted(block, 'AT1'); - break; - case 'FROM_END': - var at1 = Blockly.JavaScript.getAdjusted(block, 'AT1', 1, false, - Blockly.JavaScript.ORDER_SUBTRACTION); - at1 = text + '.length - ' + at1; - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw Error('Unhandled option (text_getSubstring).'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.JavaScript.getAdjusted(block, 'AT2', 1); - break; - case 'FROM_END': - var at2 = Blockly.JavaScript.getAdjusted(block, 'AT2', 0, false, - Blockly.JavaScript.ORDER_SUBTRACTION); - at2 = text + '.length - ' + at2; - break; - case 'LAST': - var at2 = text + '.length'; - break; - default: - throw Error('Unhandled option (text_getSubstring).'); - } - code = text + '.slice(' + at1 + ', ' + at2 + ')'; - } else { - var at1 = Blockly.JavaScript.getAdjusted(block, 'AT1'); - var at2 = Blockly.JavaScript.getAdjusted(block, 'AT2'); - var getIndex_ = Blockly.JavaScript.text.getIndex_; - var wherePascalCase = {'FIRST': 'First', 'LAST': 'Last', - 'FROM_START': 'FromStart', 'FROM_END': 'FromEnd'}; - var functionName = Blockly.JavaScript.provideFunction_( - 'subsequence' + wherePascalCase[where1] + wherePascalCase[where2], - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(sequence' + - // The value for 'FROM_END' and'FROM_START' depends on `at` so - // we add it as a parameter. - ((where1 == 'FROM_END' || where1 == 'FROM_START') ? ', at1' : '') + - ((where2 == 'FROM_END' || where2 == 'FROM_START') ? ', at2' : '') + - ') {', - ' var start = ' + getIndex_('sequence', where1, 'at1') + ';', - ' var end = ' + getIndex_('sequence', where2, 'at2') + ' + 1;', - ' return sequence.slice(start, end);', - '}']); - var code = functionName + '(' + text + - // The value for 'FROM_END' and 'FROM_START' depends on `at` so we - // pass it. - ((where1 == 'FROM_END' || where1 == 'FROM_START') ? ', ' + at1 : '') + - ((where2 == 'FROM_END' || where2 == 'FROM_START') ? ', ' + at2 : '') + - ')'; - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['text_changeCase'] = function(block) { - // Change capitalization. - var OPERATORS = { - 'UPPERCASE': '.toUpperCase()', - 'LOWERCASE': '.toLowerCase()', - 'TITLECASE': null - }; - var operator = OPERATORS[block.getFieldValue('CASE')]; - var textOrder = operator ? Blockly.JavaScript.ORDER_MEMBER : - Blockly.JavaScript.ORDER_NONE; - var text = Blockly.JavaScript.valueToCode(block, 'TEXT', - textOrder) || '\'\''; - if (operator) { - // Upper and lower case are functions built into JavaScript. - var code = text + operator; - } else { - // Title case is not a native JavaScript function. Define one. - var functionName = Blockly.JavaScript.provideFunction_( - 'textToTitleCase', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(str) {', - ' return str.replace(/\\S+/g,', - ' function(txt) {return txt[0].toUpperCase() + ' + - 'txt.substring(1).toLowerCase();});', - '}']); - var code = functionName + '(' + text + ')'; - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['text_trim'] = function(block) { - // Trim spaces. - var OPERATORS = { - 'LEFT': ".replace(/^[\\s\\xa0]+/, '')", - 'RIGHT': ".replace(/[\\s\\xa0]+$/, '')", - 'BOTH': '.trim()' - }; - var operator = OPERATORS[block.getFieldValue('MODE')]; - var text = Blockly.JavaScript.valueToCode(block, 'TEXT', - Blockly.JavaScript.ORDER_MEMBER) || '\'\''; - return [text + operator, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['text_print'] = function(block) { - // Print statement. - var msg = Blockly.JavaScript.valueToCode(block, 'TEXT', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - return 'window.alert(' + msg + ');\n'; -}; - -Blockly.JavaScript['text_prompt_ext'] = function(block) { - // Prompt function. - if (block.getField('TEXT')) { - // Internal message. - var msg = Blockly.JavaScript.quote_(block.getFieldValue('TEXT')); - } else { - // External message. - var msg = Blockly.JavaScript.valueToCode(block, 'TEXT', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - } - var code = 'window.prompt(' + msg + ')'; - var toNumber = block.getFieldValue('TYPE') == 'NUMBER'; - if (toNumber) { - code = 'Number(' + code + ')'; - } - return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL]; -}; - -Blockly.JavaScript['text_prompt'] = Blockly.JavaScript['text_prompt_ext']; - -Blockly.JavaScript['text_count'] = function(block) { - var text = Blockly.JavaScript.valueToCode(block, 'TEXT', - Blockly.JavaScript.ORDER_MEMBER) || '\'\''; - var sub = Blockly.JavaScript.valueToCode(block, 'SUB', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var functionName = Blockly.JavaScript.provideFunction_( - 'textCount', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(haystack, needle) {', - ' if (needle.length === 0) {', - ' return haystack.length + 1;', - ' } else {', - ' return haystack.split(needle).length - 1;', - ' }', - '}']); - var code = functionName + '(' + text + ', ' + sub + ')'; - return [code, Blockly.JavaScript.ORDER_SUBTRACTION]; -}; - -Blockly.JavaScript['text_replace'] = function(block) { - var text = Blockly.JavaScript.valueToCode(block, 'TEXT', - Blockly.JavaScript.ORDER_MEMBER) || '\'\''; - var from = Blockly.JavaScript.valueToCode(block, 'FROM', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - var to = Blockly.JavaScript.valueToCode(block, 'TO', - Blockly.JavaScript.ORDER_NONE) || '\'\''; - // The regex escaping code below is taken from the implementation of - // goog.string.regExpEscape. - var functionName = Blockly.JavaScript.provideFunction_( - 'textReplace', - ['function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(haystack, needle, replacement) {', - ' needle = ' + - 'needle.replace(/([-()\\[\\]{}+?*.$\\^|,:# <= >= ~= == -Blockly.Lua.ORDER_AND = 8; // and -Blockly.Lua.ORDER_OR = 9; // or -Blockly.Lua.ORDER_NONE = 99; - -/** - * Note: Lua is not supporting zero-indexing since the language itself is - * one-indexed, so the generator does not repoct the oneBasedIndex configuration - * option used for lists and text. - */ - -/** - * Initialise the database of variable names. - * @param {!Blockly.Workspace} workspace Workspace to generate code from. - */ -Blockly.Lua.init = function(workspace) { - // Create a dictionary of definitions to be printed before the code. - Blockly.Lua.definitions_ = Object.create(null); - // Create a dictionary mapping desired function names in definitions_ - // to actual function names (to avoid collisions with user functions). - Blockly.Lua.functionNames_ = Object.create(null); - - if (!Blockly.Lua.variableDB_) { - Blockly.Lua.variableDB_ = - new Blockly.Names(Blockly.Lua.RESERVED_WORDS_); - } else { - Blockly.Lua.variableDB_.reset(); - } - Blockly.Lua.variableDB_.setVariableMap(workspace.getVariableMap()); -}; - -/** - * Prepend the generated code with the variable definitions. - * @param {string} code Generated code. - * @return {string} Completed code. - */ -Blockly.Lua.finish = function(code) { - // Convert the definitions dictionary into a list. - var definitions = []; - for (var name in Blockly.Lua.definitions_) { - definitions.push(Blockly.Lua.definitions_[name]); - } - // Clean up temporary data. - delete Blockly.Lua.definitions_; - delete Blockly.Lua.functionNames_; - Blockly.Lua.variableDB_.reset(); - return definitions.join('\n\n') + '\n\n\n' + code; -}; - -/** - * Naked values are top-level blocks with outputs that aren't plugged into - * anything. In Lua, an expression is not a legal statement, so we must assign - * the value to the (conventionally ignored) _. - * http://lua-users.org/wiki/ExpressionsAsStatements - * @param {string} line Line of generated code. - * @return {string} Legal line of code. - */ -Blockly.Lua.scrubNakedValue = function(line) { - return 'local _ = ' + line + '\n'; -}; - -/** - * Encode a string as a properly escaped Lua string, complete with - * quotes. - * @param {string} string Text to encode. - * @return {string} Lua string. - * @private - */ -Blockly.Lua.quote_ = function(string) { - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n') - .replace(/'/g, '\\\''); - return '\'' + string + '\''; -}; - -/** - * Encode a string as a properly escaped multiline Lua string, complete with - * quotes. - * @param {string} string Text to encode. - * @return {string} Lua string. - * @private - */ -Blockly.Lua.multiline_quote_ = function(string) { - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n') - .replace(/'/g, '\\\''); - return '[===' + string + '===]'; -}; - -/** - * Common tasks for generating Lua from blocks. - * Handles comments for the specified block and any connected value blocks. - * Calls any statements following this block. - * @param {!Blockly.Block} block The current block. - * @param {string} code The Lua code created for this block. - * @param {boolean=} opt_thisOnly True to generate code for only this statement. - * @return {string} Lua code with comments and subsequent blocks added. - * @private - */ -Blockly.Lua.scrub_ = function(block, code, opt_thisOnly) { - var commentCode = ''; - // Only collect comments for blocks that aren't inline. - if (!block.outputConnection || !block.outputConnection.targetConnection) { - // Collect comment for this block. - var comment = block.getCommentText(); - if (comment) { - comment = Blockly.utils.string.wrap(comment, - Blockly.Lua.COMMENT_WRAP - 3); - commentCode += Blockly.Lua.prefixLines(comment, '-- ') + '\n'; - } - // Collect comments for all value arguments. - // Don't collect comments for nested statements. - for (var i = 0; i < block.inputList.length; i++) { - if (block.inputList[i].type == Blockly.INPUT_VALUE) { - var childBlock = block.inputList[i].connection.targetBlock(); - if (childBlock) { - comment = Blockly.Lua.allNestedComments(childBlock); - if (comment) { - commentCode += Blockly.Lua.prefixLines(comment, '-- '); - } - } - } - } - } - var nextBlock = block.nextConnection && block.nextConnection.targetBlock(); - var nextCode = opt_thisOnly ? '' : Blockly.Lua.blockToCode(nextBlock); - return commentCode + code + nextCode; -}; diff --git a/lib/blockly/generators/lua/colour.js b/lib/blockly/generators/lua/colour.js deleted file mode 100644 index 1ec5ccb..0000000 --- a/lib/blockly/generators/lua/colour.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for colour blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.colour'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['colour_picker'] = function(block) { - // Colour picker. - var code = Blockly.Lua.quote_(block.getFieldValue('COLOUR')); - return [code, Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['colour_random'] = function(block) { - // Generate a random colour. - var code = 'string.format("#%06x", math.random(0, 2^24 - 1))'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['colour_rgb'] = function(block) { - // Compose a colour from RGB components expressed as percentages. - var functionName = Blockly.Lua.provideFunction_( - 'colour_rgb', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(r, g, b)', - ' r = math.floor(math.min(100, math.max(0, r)) * 2.55 + .5)', - ' g = math.floor(math.min(100, math.max(0, g)) * 2.55 + .5)', - ' b = math.floor(math.min(100, math.max(0, b)) * 2.55 + .5)', - ' return string.format("#%02x%02x%02x", r, g, b)', - 'end']); - var r = Blockly.Lua.valueToCode(block, 'RED', - Blockly.Lua.ORDER_NONE) || 0; - var g = Blockly.Lua.valueToCode(block, 'GREEN', - Blockly.Lua.ORDER_NONE) || 0; - var b = Blockly.Lua.valueToCode(block, 'BLUE', - Blockly.Lua.ORDER_NONE) || 0; - var code = functionName + '(' + r + ', ' + g + ', ' + b + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['colour_blend'] = function(block) { - // Blend two colours together. - var functionName = Blockly.Lua.provideFunction_( - 'colour_blend', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(colour1, colour2, ratio)', - ' local r1 = tonumber(string.sub(colour1, 2, 3), 16)', - ' local r2 = tonumber(string.sub(colour2, 2, 3), 16)', - ' local g1 = tonumber(string.sub(colour1, 4, 5), 16)', - ' local g2 = tonumber(string.sub(colour2, 4, 5), 16)', - ' local b1 = tonumber(string.sub(colour1, 6, 7), 16)', - ' local b2 = tonumber(string.sub(colour2, 6, 7), 16)', - ' local ratio = math.min(1, math.max(0, ratio))', - ' local r = math.floor(r1 * (1 - ratio) + r2 * ratio + .5)', - ' local g = math.floor(g1 * (1 - ratio) + g2 * ratio + .5)', - ' local b = math.floor(b1 * (1 - ratio) + b2 * ratio + .5)', - ' return string.format("#%02x%02x%02x", r, g, b)', - 'end']); - var colour1 = Blockly.Lua.valueToCode(block, 'COLOUR1', - Blockly.Lua.ORDER_NONE) || '\'#000000\''; - var colour2 = Blockly.Lua.valueToCode(block, 'COLOUR2', - Blockly.Lua.ORDER_NONE) || '\'#000000\''; - var ratio = Blockly.Lua.valueToCode(block, 'RATIO', - Blockly.Lua.ORDER_NONE) || 0; - var code = functionName + '(' + colour1 + ', ' + colour2 + ', ' + ratio + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; diff --git a/lib/blockly/generators/lua/lists.js b/lib/blockly/generators/lua/lists.js deleted file mode 100644 index 93bc1b0..0000000 --- a/lib/blockly/generators/lua/lists.js +++ /dev/null @@ -1,379 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for list blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.lists'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['lists_create_empty'] = function(block) { - // Create an empty list. - return ['{}', Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['lists_create_with'] = function(block) { - // Create a list with any number of elements of any type. - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.Lua.valueToCode(block, 'ADD' + i, - Blockly.Lua.ORDER_NONE) || 'None'; - } - var code = '{' + elements.join(', ') + '}'; - return [code, Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['lists_repeat'] = function(block) { - // Create a list with one element repeated. - var functionName = Blockly.Lua.provideFunction_( - 'create_list_repeated', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(item, count)', - ' local t = {}', - ' for i = 1, count do', - ' table.insert(t, item)', - ' end', - ' return t', - 'end']); - var element = Blockly.Lua.valueToCode(block, 'ITEM', - Blockly.Lua.ORDER_NONE) || 'None'; - var repeatCount = Blockly.Lua.valueToCode(block, 'NUM', - Blockly.Lua.ORDER_NONE) || '0'; - var code = functionName + '(' + element + ', ' + repeatCount + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['lists_length'] = function(block) { - // String or array length. - var list = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_UNARY) || '{}'; - return ['#' + list, Blockly.Lua.ORDER_UNARY]; -}; - -Blockly.Lua['lists_isEmpty'] = function(block) { - // Is the string null or array empty? - var list = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_UNARY) || '{}'; - var code = '#' + list + ' == 0'; - return [code, Blockly.Lua.ORDER_RELATIONAL]; -}; - -Blockly.Lua['lists_indexOf'] = function(block) { - // Find an item in the list. - var item = Blockly.Lua.valueToCode(block, 'FIND', - Blockly.Lua.ORDER_NONE) || '\'\''; - var list = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_NONE) || '{}'; - if (block.getFieldValue('END') == 'FIRST') { - var functionName = Blockly.Lua.provideFunction_( - 'first_index', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t, elem)', - ' for k, v in ipairs(t) do', - ' if v == elem then', - ' return k', - ' end', - ' end', - ' return 0', - 'end']); - } else { - var functionName = Blockly.Lua.provideFunction_( - 'last_index', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t, elem)', - ' for i = #t, 1, -1 do', - ' if t[i] == elem then', - ' return i', - ' end', - ' end', - ' return 0', - 'end']); - } - var code = functionName + '(' + list + ', ' + item + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -/** - * Returns an expression calculating the index into a list. - * @param {string} listName Name of the list, used to calculate length. - * @param {string} where The method of indexing, selected by dropdown in Blockly - * @param {string=} opt_at The optional offset when indexing from start/end. - * @return {string} Index expression. - * @private - */ -Blockly.Lua.lists.getIndex_ = function(listName, where, opt_at) { - if (where == 'FIRST') { - return '1'; - } else if (where == 'FROM_END') { - return '#' + listName + ' + 1 - ' + opt_at; - } else if (where == 'LAST') { - return '#' + listName; - } else if (where == 'RANDOM') { - return 'math.random(#' + listName + ')'; - } else { - return opt_at; - } -}; - -Blockly.Lua['lists_getIndex'] = function(block) { - // Get element at index. - // Note: Until January 2013 this block did not have MODE or WHERE inputs. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var list = Blockly.Lua.valueToCode(block, 'VALUE', Blockly.Lua.ORDER_HIGH) || - '{}'; - var getIndex_ = Blockly.Lua.lists.getIndex_; - - // If `list` would be evaluated more than once (which is the case for LAST, - // FROM_END, and RANDOM) and is non-trivial, make sure to access it only once. - if ((where == 'LAST' || where == 'FROM_END' || where == 'RANDOM') && - !list.match(/^\w+$/)) { - // `list` is an expression, so we may not evaluate it more than once. - if (mode == 'REMOVE') { - // We can use multiple statements. - var atOrder = (where == 'FROM_END') ? Blockly.Lua.ORDER_ADDITIVE : - Blockly.Lua.ORDER_NONE; - var at = Blockly.Lua.valueToCode(block, 'AT', atOrder) || '1'; - var listVar = Blockly.Lua.variableDB_.getDistinctName( - 'tmp_list', Blockly.Variables.NAME_TYPE); - at = getIndex_(listVar, where, at); - var code = listVar + ' = ' + list + '\n' + - 'table.remove(' + listVar + ', ' + at + ')\n'; - return code; - } else { - // We need to create a procedure to avoid reevaluating values. - var at = Blockly.Lua.valueToCode(block, 'AT', Blockly.Lua.ORDER_NONE) || - '1'; - if (mode == 'GET') { - var functionName = Blockly.Lua.provideFunction_( - 'list_get_' + where.toLowerCase(), - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t' + - // The value for 'FROM_END' and'FROM_START' depends on `at` so - // we add it as a parameter. - ((where == 'FROM_END' || where == 'FROM_START') ? - ', at)' : ')'), - ' return t[' + getIndex_('t', where, 'at') + ']', - 'end']); - } else { // mode == 'GET_REMOVE' - var functionName = Blockly.Lua.provideFunction_( - 'list_remove_' + where.toLowerCase(), - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t' + - // The value for 'FROM_END' and'FROM_START' depends on `at` so - // we add it as a parameter. - ((where == 'FROM_END' || where == 'FROM_START') ? - ', at)' : ')'), - ' return table.remove(t, ' + getIndex_('t', where, 'at') + ')', - 'end']); - } - var code = functionName + '(' + list + - // The value for 'FROM_END' and 'FROM_START' depends on `at` so we - // pass it. - ((where == 'FROM_END' || where == 'FROM_START') ? ', ' + at : '') + - ')'; - return [code, Blockly.Lua.ORDER_HIGH]; - } - } else { - // Either `list` is a simple variable, or we only need to refer to `list` - // once. - var atOrder = (mode == 'GET' && where == 'FROM_END') ? - Blockly.Lua.ORDER_ADDITIVE : Blockly.Lua.ORDER_NONE; - var at = Blockly.Lua.valueToCode(block, 'AT', atOrder) || '1'; - at = getIndex_(list, where, at); - if (mode == 'GET') { - var code = list + '[' + at + ']'; - return [code, Blockly.Lua.ORDER_HIGH]; - } else { - var code = 'table.remove(' + list + ', ' + at + ')'; - if (mode == 'GET_REMOVE') { - return [code, Blockly.Lua.ORDER_HIGH]; - } else { // `mode` == 'REMOVE' - return code + '\n'; - } - } - } -}; - -Blockly.Lua['lists_setIndex'] = function(block) { - // Set element at index. - // Note: Until February 2013 this block did not have MODE or WHERE inputs. - var list = Blockly.Lua.valueToCode(block, 'LIST', - Blockly.Lua.ORDER_HIGH) || '{}'; - var mode = block.getFieldValue('MODE') || 'SET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var at = Blockly.Lua.valueToCode(block, 'AT', - Blockly.Lua.ORDER_ADDITIVE) || '1'; - var value = Blockly.Lua.valueToCode(block, 'TO', - Blockly.Lua.ORDER_NONE) || 'None'; - var getIndex_ = Blockly.Lua.lists.getIndex_; - - var code = ''; - // If `list` would be evaluated more than once (which is the case for LAST, - // FROM_END, and RANDOM) and is non-trivial, make sure to access it only once. - if ((where == 'LAST' || where == 'FROM_END' || where == 'RANDOM') && - !list.match(/^\w+$/)) { - // `list` is an expression, so we may not evaluate it more than once. - // We can use multiple statements. - var listVar = Blockly.Lua.variableDB_.getDistinctName( - 'tmp_list', Blockly.Variables.NAME_TYPE); - code = listVar + ' = ' + list + '\n'; - list = listVar; - } - if (mode == 'SET') { - code += list + '[' + getIndex_(list, where, at) + '] = ' + value; - } else { // `mode` == 'INSERT' - // LAST is a special case, because we want to insert - // *after* not *before*, the existing last element. - code += 'table.insert(' + list + ', ' + - (getIndex_(list, where, at) + (where == 'LAST' ? ' + 1' : '')) + - ', ' + value + ')'; - } - return code + '\n'; -}; - -Blockly.Lua['lists_getSublist'] = function(block) { - // Get sublist. - var list = Blockly.Lua.valueToCode(block, 'LIST', - Blockly.Lua.ORDER_NONE) || '{}'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - var at1 = Blockly.Lua.valueToCode(block, 'AT1', - Blockly.Lua.ORDER_NONE) || '1'; - var at2 = Blockly.Lua.valueToCode(block, 'AT2', - Blockly.Lua.ORDER_NONE) || '1'; - var getIndex_ = Blockly.Lua.lists.getIndex_; - - var functionName = Blockly.Lua.provideFunction_( - 'list_sublist_' + where1.toLowerCase() + '_' + where2.toLowerCase(), - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(source' + - // The value for 'FROM_END' and'FROM_START' depends on `at` so - // we add it as a parameter. - ((where1 == 'FROM_END' || where1 == 'FROM_START') ? ', at1' : '') + - ((where2 == 'FROM_END' || where2 == 'FROM_START') ? ', at2' : '') + - ')', - ' local t = {}', - ' local start = ' + getIndex_('source', where1, 'at1'), - ' local finish = ' + getIndex_('source', where2, 'at2'), - ' for i = start, finish do', - ' table.insert(t, source[i])', - ' end', - ' return t', - 'end']); - var code = functionName + '(' + list + - // The value for 'FROM_END' and 'FROM_START' depends on `at` so we - // pass it. - ((where1 == 'FROM_END' || where1 == 'FROM_START') ? ', ' + at1 : '') + - ((where2 == 'FROM_END' || where2 == 'FROM_START') ? ', ' + at2 : '') + - ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['lists_sort'] = function(block) { - // Block for sorting a list. - var list = Blockly.Lua.valueToCode( - block, 'LIST', Blockly.Lua.ORDER_NONE) || '{}'; - var direction = block.getFieldValue('DIRECTION') === '1' ? 1 : -1; - var type = block.getFieldValue('TYPE'); - - var functionName = Blockly.Lua.provideFunction_( - 'list_sort', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(list, typev, direction)', - ' local t = {}', - ' for n,v in pairs(list) do table.insert(t, v) end', // Shallow-copy. - ' local compareFuncs = {', - ' NUMERIC = function(a, b)', - ' return (tonumber(tostring(a)) or 0)', - ' < (tonumber(tostring(b)) or 0) end,', - ' TEXT = function(a, b)', - ' return tostring(a) < tostring(b) end,', - ' IGNORE_CASE = function(a, b)', - ' return string.lower(tostring(a)) < string.lower(tostring(b)) end', - ' }', - ' local compareTemp = compareFuncs[typev]', - ' local compare = compareTemp', - ' if direction == -1', - ' then compare = function(a, b) return compareTemp(b, a) end', - ' end', - ' table.sort(t, compare)', - ' return t', - 'end']); - - var code = functionName + - '(' + list + ',"' + type + '", ' + direction + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['lists_split'] = function(block) { - // Block for splitting text into a list, or joining a list into text. - var input = Blockly.Lua.valueToCode(block, 'INPUT', - Blockly.Lua.ORDER_NONE); - var delimiter = Blockly.Lua.valueToCode(block, 'DELIM', - Blockly.Lua.ORDER_NONE) || '\'\''; - var mode = block.getFieldValue('MODE'); - var functionName; - if (mode == 'SPLIT') { - if (!input) { - input = '\'\''; - } - functionName = Blockly.Lua.provideFunction_( - 'list_string_split', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(input, delim)', - ' local t = {}', - ' local pos = 1', - ' while true do', - ' next_delim = string.find(input, delim, pos)', - ' if next_delim == nil then', - ' table.insert(t, string.sub(input, pos))', - ' break', - ' else', - ' table.insert(t, string.sub(input, pos, next_delim-1))', - ' pos = next_delim + #delim', - ' end', - ' end', - ' return t', - 'end']); - } else if (mode == 'JOIN') { - if (!input) { - input = '{}'; - } - functionName = 'table.concat'; - } else { - throw Error('Unknown mode: ' + mode); - } - var code = functionName + '(' + input + ', ' + delimiter + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['lists_reverse'] = function(block) { - // Block for reversing a list. - var list = Blockly.Lua.valueToCode(block, 'LIST', - Blockly.Lua.ORDER_NONE) || '{}'; - var functionName = Blockly.Lua.provideFunction_( - 'list_reverse', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(input)', - ' local reversed = {}', - ' for i = #input, 1, -1 do', - ' table.insert(reversed, input[i])', - ' end', - ' return reversed', - 'end']); - var code = 'list_reverse(' + list + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; diff --git a/lib/blockly/generators/lua/logic.js b/lib/blockly/generators/lua/logic.js deleted file mode 100644 index bc0d895..0000000 --- a/lib/blockly/generators/lua/logic.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for logic blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.logic'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['controls_if'] = function(block) { - // If/elseif/else condition. - var n = 0; - var code = '', branchCode, conditionCode; - if (Blockly.Lua.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - code += Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX, block); - } - do { - conditionCode = Blockly.Lua.valueToCode(block, 'IF' + n, - Blockly.Lua.ORDER_NONE) || 'false'; - branchCode = Blockly.Lua.statementToCode(block, 'DO' + n); - if (Blockly.Lua.STATEMENT_SUFFIX) { - branchCode = Blockly.Lua.prefixLines( - Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX, block), - Blockly.Lua.INDENT) + branchCode; - } - code += (n > 0 ? 'else' : '') + - 'if ' + conditionCode + ' then\n' + branchCode; - ++n; - } while (block.getInput('IF' + n)); - - if (block.getInput('ELSE') || Blockly.Lua.STATEMENT_SUFFIX) { - branchCode = Blockly.Lua.statementToCode(block, 'ELSE'); - if (Blockly.Lua.STATEMENT_SUFFIX) { - branchCode = Blockly.Lua.prefixLines( - Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX, block), - Blockly.Lua.INDENT) + branchCode; - } - code += 'else\n' + branchCode; - } - return code + 'end\n'; -}; - -Blockly.Lua['controls_ifelse'] = Blockly.Lua['controls_if']; - -Blockly.Lua['logic_compare'] = function(block) { - // Comparison operator. - var OPERATORS = { - 'EQ': '==', - 'NEQ': '~=', - 'LT': '<', - 'LTE': '<=', - 'GT': '>', - 'GTE': '>=' - }; - var operator = OPERATORS[block.getFieldValue('OP')]; - var argument0 = Blockly.Lua.valueToCode(block, 'A', - Blockly.Lua.ORDER_RELATIONAL) || '0'; - var argument1 = Blockly.Lua.valueToCode(block, 'B', - Blockly.Lua.ORDER_RELATIONAL) || '0'; - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, Blockly.Lua.ORDER_RELATIONAL]; -}; - -Blockly.Lua['logic_operation'] = function(block) { - // Operations 'and', 'or'. - var operator = (block.getFieldValue('OP') == 'AND') ? 'and' : 'or'; - var order = (operator == 'and') ? Blockly.Lua.ORDER_AND : - Blockly.Lua.ORDER_OR; - var argument0 = Blockly.Lua.valueToCode(block, 'A', order); - var argument1 = Blockly.Lua.valueToCode(block, 'B', order); - if (!argument0 && !argument1) { - // If there are no arguments, then the return value is false. - argument0 = 'false'; - argument1 = 'false'; - } else { - // Single missing arguments have no effect on the return value. - var defaultArgument = (operator == 'and') ? 'true' : 'false'; - if (!argument0) { - argument0 = defaultArgument; - } - if (!argument1) { - argument1 = defaultArgument; - } - } - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.Lua['logic_negate'] = function(block) { - // Negation. - var argument0 = Blockly.Lua.valueToCode(block, 'BOOL', - Blockly.Lua.ORDER_UNARY) || 'true'; - var code = 'not ' + argument0; - return [code, Blockly.Lua.ORDER_UNARY]; -}; - -Blockly.Lua['logic_boolean'] = function(block) { - // Boolean values true and false. - var code = (block.getFieldValue('BOOL') == 'TRUE') ? 'true' : 'false'; - return [code, Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['logic_null'] = function(block) { - // Null data type. - return ['nil', Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['logic_ternary'] = function(block) { - // Ternary operator. - var value_if = Blockly.Lua.valueToCode(block, 'IF', - Blockly.Lua.ORDER_AND) || 'false'; - var value_then = Blockly.Lua.valueToCode(block, 'THEN', - Blockly.Lua.ORDER_AND) || 'nil'; - var value_else = Blockly.Lua.valueToCode(block, 'ELSE', - Blockly.Lua.ORDER_OR) || 'nil'; - var code = value_if + ' and ' + value_then + ' or ' + value_else; - return [code, Blockly.Lua.ORDER_OR]; -}; diff --git a/lib/blockly/generators/lua/loops.js b/lib/blockly/generators/lua/loops.js deleted file mode 100644 index 58edb13..0000000 --- a/lib/blockly/generators/lua/loops.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for loop blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.loops'); - -goog.require('Blockly.Lua'); - - -/** - * This is the text used to implement a
      continue
      . - * It is also used to recognise
      continue
      s in generated code so that - * the appropriate label can be put at the end of the loop body. - * @const {string} - */ -Blockly.Lua.CONTINUE_STATEMENT = 'goto continue\n'; - -/** - * If the loop body contains a "goto continue" statement, add a continue label - * to the loop body. Slightly inefficient, as continue labels will be generated - * in all outer loops, but this is safer than duplicating the logic of - * blockToCode. - * - * @param {string} branch Generated code of the loop body - * @return {string} Generated label or '' if unnecessary - * @private - */ -Blockly.Lua.addContinueLabel_ = function(branch) { - if (branch.indexOf(Blockly.Lua.CONTINUE_STATEMENT) != -1) { - // False positives are possible (e.g. a string literal), but are harmless. - return branch + Blockly.Lua.INDENT + '::continue::\n'; - } else { - return branch; - } -}; - -Blockly.Lua['controls_repeat_ext'] = function(block) { - // Repeat n times. - if (block.getField('TIMES')) { - // Internal number. - var repeats = String(Number(block.getFieldValue('TIMES'))); - } else { - // External number. - var repeats = Blockly.Lua.valueToCode(block, 'TIMES', - Blockly.Lua.ORDER_NONE) || '0'; - } - if (Blockly.isNumber(repeats)) { - repeats = parseInt(repeats, 10); - } else { - repeats = 'math.floor(' + repeats + ')'; - } - var branch = Blockly.Lua.statementToCode(block, 'DO'); - branch = Blockly.Lua.addLoopTrap(branch, block); - branch = Blockly.Lua.addContinueLabel_(branch); - var loopVar = Blockly.Lua.variableDB_.getDistinctName( - 'count', Blockly.Variables.NAME_TYPE); - var code = 'for ' + loopVar + ' = 1, ' + repeats + ' do\n' + - branch + 'end\n'; - return code; -}; - -Blockly.Lua['controls_repeat'] = Blockly.Lua['controls_repeat_ext']; - -Blockly.Lua['controls_whileUntil'] = function(block) { - // Do while/until loop. - var until = block.getFieldValue('MODE') == 'UNTIL'; - var argument0 = Blockly.Lua.valueToCode(block, 'BOOL', - until ? Blockly.Lua.ORDER_UNARY : - Blockly.Lua.ORDER_NONE) || 'false'; - var branch = Blockly.Lua.statementToCode(block, 'DO'); - branch = Blockly.Lua.addLoopTrap(branch, block); - branch = Blockly.Lua.addContinueLabel_(branch); - if (until) { - argument0 = 'not ' + argument0; - } - return 'while ' + argument0 + ' do\n' + branch + 'end\n'; -}; - -Blockly.Lua['controls_for'] = function(block) { - // For loop. - var variable0 = Blockly.Lua.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var startVar = Blockly.Lua.valueToCode(block, 'FROM', - Blockly.Lua.ORDER_NONE) || '0'; - var endVar = Blockly.Lua.valueToCode(block, 'TO', - Blockly.Lua.ORDER_NONE) || '0'; - var increment = Blockly.Lua.valueToCode(block, 'BY', - Blockly.Lua.ORDER_NONE) || '1'; - var branch = Blockly.Lua.statementToCode(block, 'DO'); - branch = Blockly.Lua.addLoopTrap(branch, block); - branch = Blockly.Lua.addContinueLabel_(branch); - var code = ''; - var incValue; - if (Blockly.isNumber(startVar) && Blockly.isNumber(endVar) && - Blockly.isNumber(increment)) { - // All arguments are simple numbers. - var up = Number(startVar) <= Number(endVar); - var step = Math.abs(Number(increment)); - incValue = (up ? '' : '-') + step; - } else { - code = ''; - // Determine loop direction at start, in case one of the bounds - // changes during loop execution. - incValue = Blockly.Lua.variableDB_.getDistinctName( - variable0 + '_inc', Blockly.Variables.NAME_TYPE); - code += incValue + ' = '; - if (Blockly.isNumber(increment)) { - code += Math.abs(increment) + '\n'; - } else { - code += 'math.abs(' + increment + ')\n'; - } - code += 'if (' + startVar + ') > (' + endVar + ') then\n'; - code += Blockly.Lua.INDENT + incValue + ' = -' + incValue + '\n'; - code += 'end\n'; - } - code += 'for ' + variable0 + ' = ' + startVar + ', ' + endVar + - ', ' + incValue; - code += ' do\n' + branch + 'end\n'; - return code; -}; - -Blockly.Lua['controls_forEach'] = function(block) { - // For each loop. - var variable0 = Blockly.Lua.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.Lua.valueToCode(block, 'LIST', - Blockly.Lua.ORDER_NONE) || '{}'; - var branch = Blockly.Lua.statementToCode(block, 'DO'); - branch = Blockly.Lua.addLoopTrap(branch, block); - branch = Blockly.Lua.addContinueLabel_(branch); - var code = 'for _, ' + variable0 + ' in ipairs(' + argument0 + ') do \n' + - branch + 'end\n'; - return code; -}; - -Blockly.Lua['controls_flow_statements'] = function(block) { - // Flow statements: continue, break. - var xfix = ''; - if (Blockly.Lua.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - xfix += Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX, block); - } - if (Blockly.Lua.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the break/continue is triggered. - xfix += Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX, block); - } - if (Blockly.Lua.STATEMENT_PREFIX) { - var loop = Blockly.Constants.Loops - .CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(block); - if (loop && !loop.suppressPrefixSuffix) { - // Inject loop's statement prefix here since the regular one at the end - // of the loop will not get executed if 'continue' is triggered. - // In the case of 'break', a prefix is needed due to the loop's suffix. - xfix += Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX, loop); - } - } - switch (block.getFieldValue('FLOW')) { - case 'BREAK': - return xfix + 'break\n'; - case 'CONTINUE': - return xfix + Blockly.Lua.CONTINUE_STATEMENT; - } - throw Error('Unknown flow statement.'); -}; diff --git a/lib/blockly/generators/lua/math.js b/lib/blockly/generators/lua/math.js deleted file mode 100644 index 47332a8..0000000 --- a/lib/blockly/generators/lua/math.js +++ /dev/null @@ -1,434 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for math blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.math'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['math_number'] = function(block) { - // Numeric value. - var code = Number(block.getFieldValue('NUM')); - var order = code < 0 ? Blockly.Lua.ORDER_UNARY : - Blockly.Lua.ORDER_ATOMIC; - return [code, order]; -}; - -Blockly.Lua['math_arithmetic'] = function(block) { - // Basic arithmetic operators, and power. - var OPERATORS = { - ADD: [' + ', Blockly.Lua.ORDER_ADDITIVE], - MINUS: [' - ', Blockly.Lua.ORDER_ADDITIVE], - MULTIPLY: [' * ', Blockly.Lua.ORDER_MULTIPLICATIVE], - DIVIDE: [' / ', Blockly.Lua.ORDER_MULTIPLICATIVE], - POWER: [' ^ ', Blockly.Lua.ORDER_EXPONENTIATION] - }; - var tuple = OPERATORS[block.getFieldValue('OP')]; - var operator = tuple[0]; - var order = tuple[1]; - var argument0 = Blockly.Lua.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.Lua.valueToCode(block, 'B', order) || '0'; - var code = argument0 + operator + argument1; - return [code, order]; -}; - -Blockly.Lua['math_single'] = function(block) { - // Math operators with single operand. - var operator = block.getFieldValue('OP'); - var code; - var arg; - if (operator == 'NEG') { - // Negation is a special case given its different operator precedence. - arg = Blockly.Lua.valueToCode(block, 'NUM', - Blockly.Lua.ORDER_UNARY) || '0'; - return ['-' + arg, Blockly.Lua.ORDER_UNARY]; - } - if (operator == 'POW10') { - arg = Blockly.Lua.valueToCode(block, 'NUM', - Blockly.Lua.ORDER_EXPONENTIATION) || '0'; - return ['10 ^ ' + arg, Blockly.Lua.ORDER_EXPONENTIATION]; - } - if (operator == 'ROUND') { - arg = Blockly.Lua.valueToCode(block, 'NUM', - Blockly.Lua.ORDER_ADDITIVE) || '0'; - } else { - arg = Blockly.Lua.valueToCode(block, 'NUM', - Blockly.Lua.ORDER_NONE) || '0'; - } - switch (operator) { - case 'ABS': - code = 'math.abs(' + arg + ')'; - break; - case 'ROOT': - code = 'math.sqrt(' + arg + ')'; - break; - case 'LN': - code = 'math.log(' + arg + ')'; - break; - case 'LOG10': - code = 'math.log(' + arg + ', 10)'; - break; - case 'EXP': - code = 'math.exp(' + arg + ')'; - break; - case 'ROUND': - // This rounds up. Blockly does not specify rounding direction. - code = 'math.floor(' + arg + ' + .5)'; - break; - case 'ROUNDUP': - code = 'math.ceil(' + arg + ')'; - break; - case 'ROUNDDOWN': - code = 'math.floor(' + arg + ')'; - break; - case 'SIN': - code = 'math.sin(math.rad(' + arg + '))'; - break; - case 'COS': - code = 'math.cos(math.rad(' + arg + '))'; - break; - case 'TAN': - code = 'math.tan(math.rad(' + arg + '))'; - break; - case 'ASIN': - code = 'math.deg(math.asin(' + arg + '))'; - break; - case 'ACOS': - code = 'math.deg(math.acos(' + arg + '))'; - break; - case 'ATAN': - code = 'math.deg(math.atan(' + arg + '))'; - break; - default: - throw Error('Unknown math operator: ' + operator); - } - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['math_constant'] = function(block) { - // Constants: PI, E, the Golden Ratio, sqrt(2), 1/sqrt(2), INFINITY. - var CONSTANTS = { - PI: ['math.pi', Blockly.Lua.ORDER_HIGH], - E: ['math.exp(1)', Blockly.Lua.ORDER_HIGH], - GOLDEN_RATIO: ['(1 + math.sqrt(5)) / 2', Blockly.Lua.ORDER_MULTIPLICATIVE], - SQRT2: ['math.sqrt(2)', Blockly.Lua.ORDER_HIGH], - SQRT1_2: ['math.sqrt(1 / 2)', Blockly.Lua.ORDER_HIGH], - INFINITY: ['math.huge', Blockly.Lua.ORDER_HIGH] - }; - return CONSTANTS[block.getFieldValue('CONSTANT')]; -}; - -Blockly.Lua['math_number_property'] = function(block) { - // Check if a number is even, odd, prime, whole, positive, or negative - // or if it is divisible by certain number. Returns true or false. - var number_to_check = Blockly.Lua.valueToCode(block, 'NUMBER_TO_CHECK', - Blockly.Lua.ORDER_MULTIPLICATIVE) || '0'; - var dropdown_property = block.getFieldValue('PROPERTY'); - var code; - if (dropdown_property == 'PRIME') { - // Prime is a special case as it is not a one-liner test. - var functionName = Blockly.Lua.provideFunction_( - 'math_isPrime', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(n)', - ' -- https://en.wikipedia.org/wiki/Primality_test#Naive_methods', - ' if n == 2 or n == 3 then', - ' return true', - ' end', - ' -- False if n is NaN, negative, is 1, or not whole.', - ' -- And false if n is divisible by 2 or 3.', - ' if not(n > 1) or n % 1 ~= 0 or n % 2 == 0 or n % 3 == 0 then', - ' return false', - ' end', - ' -- Check all the numbers of form 6k +/- 1, up to sqrt(n).', - ' for x = 6, math.sqrt(n) + 1.5, 6 do', - ' if n % (x - 1) == 0 or n % (x + 1) == 0 then', - ' return false', - ' end', - ' end', - ' return true', - 'end']); - code = functionName + '(' + number_to_check + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; - } - switch (dropdown_property) { - case 'EVEN': - code = number_to_check + ' % 2 == 0'; - break; - case 'ODD': - code = number_to_check + ' % 2 == 1'; - break; - case 'WHOLE': - code = number_to_check + ' % 1 == 0'; - break; - case 'POSITIVE': - code = number_to_check + ' > 0'; - break; - case 'NEGATIVE': - code = number_to_check + ' < 0'; - break; - case 'DIVISIBLE_BY': - var divisor = Blockly.Lua.valueToCode(block, 'DIVISOR', - Blockly.Lua.ORDER_MULTIPLICATIVE); - // If 'divisor' is some code that evals to 0, Lua will produce a nan. - // Let's produce nil if we can determine this at compile-time. - if (!divisor || divisor == '0') { - return ['nil', Blockly.Lua.ORDER_ATOMIC]; - } - // The normal trick to implement ?: with and/or doesn't work here: - // divisor == 0 and nil or number_to_check % divisor == 0 - // because nil is false, so allow a runtime failure. :-( - code = number_to_check + ' % ' + divisor + ' == 0'; - break; - } - return [code, Blockly.Lua.ORDER_RELATIONAL]; -}; - -Blockly.Lua['math_change'] = function(block) { - // Add to a variable in place. - var argument0 = Blockly.Lua.valueToCode(block, 'DELTA', - Blockly.Lua.ORDER_ADDITIVE) || '0'; - var varName = Blockly.Lua.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - return varName + ' = ' + varName + ' + ' + argument0 + '\n'; -}; - -// Rounding functions have a single operand. -Blockly.Lua['math_round'] = Blockly.Lua['math_single']; -// Trigonometry functions have a single operand. -Blockly.Lua['math_trig'] = Blockly.Lua['math_single']; - -Blockly.Lua['math_on_list'] = function(block) { - // Math functions for lists. - var func = block.getFieldValue('OP'); - var list = Blockly.Lua.valueToCode(block, 'LIST', - Blockly.Lua.ORDER_NONE) || '{}'; - var functionName; - - // Functions needed in more than one case. - function provideSum() { - return Blockly.Lua.provideFunction_( - 'math_sum', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' local result = 0', - ' for _, v in ipairs(t) do', - ' result = result + v', - ' end', - ' return result', - 'end']); - } - - switch (func) { - case 'SUM': - functionName = provideSum(); - break; - - case 'MIN': - // Returns 0 for the empty list. - functionName = Blockly.Lua.provideFunction_( - 'math_min', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' if #t == 0 then', - ' return 0', - ' end', - ' local result = math.huge', - ' for _, v in ipairs(t) do', - ' if v < result then', - ' result = v', - ' end', - ' end', - ' return result', - 'end']); - break; - - case 'AVERAGE': - // Returns 0 for the empty list. - functionName = Blockly.Lua.provideFunction_( - 'math_average', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' if #t == 0 then', - ' return 0', - ' end', - ' return ' + provideSum() + '(t) / #t', - 'end']); - break; - - case 'MAX': - // Returns 0 for the empty list. - functionName = Blockly.Lua.provideFunction_( - 'math_max', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' if #t == 0 then', - ' return 0', - ' end', - ' local result = -math.huge', - ' for _, v in ipairs(t) do', - ' if v > result then', - ' result = v', - ' end', - ' end', - ' return result', - 'end']); - break; - - case 'MEDIAN': - functionName = Blockly.Lua.provideFunction_( - 'math_median', - // This operation excludes non-numbers. - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' -- Source: http://lua-users.org/wiki/SimpleStats', - ' if #t == 0 then', - ' return 0', - ' end', - ' local temp={}', - ' for _, v in ipairs(t) do', - ' if type(v) == "number" then', - ' table.insert(temp, v)', - ' end', - ' end', - ' table.sort(temp)', - ' if #temp % 2 == 0 then', - ' return (temp[#temp/2] + temp[(#temp/2)+1]) / 2', - ' else', - ' return temp[math.ceil(#temp/2)]', - ' end', - 'end']); - break; - - case 'MODE': - functionName = Blockly.Lua.provideFunction_( - 'math_modes', - // As a list of numbers can contain more than one mode, - // the returned result is provided as an array. - // The Lua version includes non-numbers. - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' -- Source: http://lua-users.org/wiki/SimpleStats', - ' local counts={}', - ' for _, v in ipairs(t) do', - ' if counts[v] == nil then', - ' counts[v] = 1', - ' else', - ' counts[v] = counts[v] + 1', - ' end', - ' end', - ' local biggestCount = 0', - ' for _, v in pairs(counts) do', - ' if v > biggestCount then', - ' biggestCount = v', - ' end', - ' end', - ' local temp={}', - ' for k, v in pairs(counts) do', - ' if v == biggestCount then', - ' table.insert(temp, k)', - ' end', - ' end', - ' return temp', - 'end']); - break; - - case 'STD_DEV': - functionName = Blockly.Lua.provideFunction_( - 'math_standard_deviation', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' local m', - ' local vm', - ' local total = 0', - ' local count = 0', - ' local result', - ' m = #t == 0 and 0 or ' + provideSum() + '(t) / #t', - ' for _, v in ipairs(t) do', - " if type(v) == 'number' then", - ' vm = v - m', - ' total = total + (vm * vm)', - ' count = count + 1', - ' end', - ' end', - ' result = math.sqrt(total / (count-1))', - ' return result', - 'end']); - break; - - case 'RANDOM': - functionName = Blockly.Lua.provideFunction_( - 'math_random_list', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(t)', - ' if #t == 0 then', - ' return nil', - ' end', - ' return t[math.random(#t)]', - 'end']); - break; - - default: - throw Error('Unknown operator: ' + func); - } - return [functionName + '(' + list + ')', Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['math_modulo'] = function(block) { - // Remainder computation. - var argument0 = Blockly.Lua.valueToCode(block, 'DIVIDEND', - Blockly.Lua.ORDER_MULTIPLICATIVE) || '0'; - var argument1 = Blockly.Lua.valueToCode(block, 'DIVISOR', - Blockly.Lua.ORDER_MULTIPLICATIVE) || '0'; - var code = argument0 + ' % ' + argument1; - return [code, Blockly.Lua.ORDER_MULTIPLICATIVE]; -}; - -Blockly.Lua['math_constrain'] = function(block) { - // Constrain a number between two limits. - var argument0 = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_NONE) || '0'; - var argument1 = Blockly.Lua.valueToCode(block, 'LOW', - Blockly.Lua.ORDER_NONE) || '-math.huge'; - var argument2 = Blockly.Lua.valueToCode(block, 'HIGH', - Blockly.Lua.ORDER_NONE) || 'math.huge'; - var code = 'math.min(math.max(' + argument0 + ', ' + argument1 + '), ' + - argument2 + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['math_random_int'] = function(block) { - // Random integer between [X] and [Y]. - var argument0 = Blockly.Lua.valueToCode(block, 'FROM', - Blockly.Lua.ORDER_NONE) || '0'; - var argument1 = Blockly.Lua.valueToCode(block, 'TO', - Blockly.Lua.ORDER_NONE) || '0'; - var code = 'math.random(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['math_random_float'] = function(block) { - // Random fraction between 0 and 1. - return ['math.random()', Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['math_atan2'] = function(block) { - // Arctangent of point (X, Y) in degrees from -180 to 180. - var argument0 = Blockly.Lua.valueToCode(block, 'X', - Blockly.Lua.ORDER_NONE) || '0'; - var argument1 = Blockly.Lua.valueToCode(block, 'Y', - Blockly.Lua.ORDER_NONE) || '0'; - return ['math.deg(math.atan2(' + argument1 + ', ' + argument0 + '))', - Blockly.Lua.ORDER_HIGH]; -}; diff --git a/lib/blockly/generators/lua/procedures.js b/lib/blockly/generators/lua/procedures.js deleted file mode 100644 index 3bf01e0..0000000 --- a/lib/blockly/generators/lua/procedures.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for procedure blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.procedures'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['procedures_defreturn'] = function(block) { - // Define a procedure with a return value. - var funcName = Blockly.Lua.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var xfix1 = ''; - if (Blockly.Lua.STATEMENT_PREFIX) { - xfix1 += Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX, block); - } - if (Blockly.Lua.STATEMENT_SUFFIX) { - xfix1 += Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX, block); - } - if (xfix1) { - xfix1 = Blockly.Lua.prefixLines(xfix1, Blockly.Lua.INDENT); - } - var loopTrap = ''; - if (Blockly.Lua.INFINITE_LOOP_TRAP) { - loopTrap = Blockly.Lua.prefixLines( - Blockly.Lua.injectId(Blockly.Lua.INFINITE_LOOP_TRAP, block), - Blockly.Lua.INDENT); - } - var branch = Blockly.Lua.statementToCode(block, 'STACK'); - var returnValue = Blockly.Lua.valueToCode(block, 'RETURN', - Blockly.Lua.ORDER_NONE) || ''; - var xfix2 = ''; - if (branch && returnValue) { - // After executing the function body, revisit this block for the return. - xfix2 = xfix1; - } - if (returnValue) { - returnValue = Blockly.Lua.INDENT + 'return ' + returnValue + '\n'; - } else if (!branch) { - branch = ''; - } - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.Lua.variableDB_.getName(block.arguments_[i], - Blockly.Variables.NAME_TYPE); - } - var code = 'function ' + funcName + '(' + args.join(', ') + ')\n' + - xfix1 + loopTrap + branch + xfix2 + returnValue + 'end\n'; - code = Blockly.Lua.scrub_(block, code); - // Add % so as not to collide with helper functions in definitions list. - Blockly.Lua.definitions_['%' + funcName] = code; - return null; -}; - -// Defining a procedure without a return value uses the same generator as -// a procedure with a return value. -Blockly.Lua['procedures_defnoreturn'] = - Blockly.Lua['procedures_defreturn']; - -Blockly.Lua['procedures_callreturn'] = function(block) { - // Call a procedure with a return value. - var funcName = Blockly.Lua.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.Lua.valueToCode(block, 'ARG' + i, - Blockly.Lua.ORDER_NONE) || 'nil'; - } - var code = funcName + '(' + args.join(', ') + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['procedures_callnoreturn'] = function(block) { - // Call a procedure with no return value. - // Generated code is for a function call as a statement is the same as a - // function call as a value, with the addition of line ending. - var tuple = Blockly.Lua['procedures_callreturn'](block); - return tuple[0] + '\n'; -}; - -Blockly.Lua['procedures_ifreturn'] = function(block) { - // Conditionally return value from a procedure. - var condition = Blockly.Lua.valueToCode(block, 'CONDITION', - Blockly.Lua.ORDER_NONE) || 'false'; - var code = 'if ' + condition + ' then\n'; - if (Blockly.Lua.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the return is triggered. - code += Blockly.Lua.prefixLines( - Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX, block), - Blockly.Lua.INDENT); - } - if (block.hasReturnValue_) { - var value = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_NONE) || 'nil'; - code += Blockly.Lua.INDENT + 'return ' + value + '\n'; - } else { - code += Blockly.Lua.INDENT + 'return\n'; - } - code += 'end\n'; - return code; -}; diff --git a/lib/blockly/generators/lua/text.js b/lib/blockly/generators/lua/text.js deleted file mode 100644 index 2c6bdb2..0000000 --- a/lib/blockly/generators/lua/text.js +++ /dev/null @@ -1,364 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for text blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.texts'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['text'] = function(block) { - // Text value. - var code = Blockly.Lua.quote_(block.getFieldValue('TEXT')); - return [code, Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['text_multiline'] = function(block) { - // Text value. - var code = Blockly.Lua.multiline_quote_(block.getFieldValue('TEXT')); - return [code, Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['text_join'] = function(block) { - // Create a string made up of any number of elements of any type. - if (block.itemCount_ == 0) { - return ['\'\'', Blockly.Lua.ORDER_ATOMIC]; - } else if (block.itemCount_ == 1) { - var element = Blockly.Lua.valueToCode(block, 'ADD0', - Blockly.Lua.ORDER_NONE) || '\'\''; - var code = 'tostring(' + element + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; - } else if (block.itemCount_ == 2) { - var element0 = Blockly.Lua.valueToCode(block, 'ADD0', - Blockly.Lua.ORDER_CONCATENATION) || '\'\''; - var element1 = Blockly.Lua.valueToCode(block, 'ADD1', - Blockly.Lua.ORDER_CONCATENATION) || '\'\''; - var code = element0 + ' .. ' + element1; - return [code, Blockly.Lua.ORDER_CONCATENATION]; - } else { - var elements = []; - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.Lua.valueToCode(block, 'ADD' + i, - Blockly.Lua.ORDER_NONE) || '\'\''; - } - var code = 'table.concat({' + elements.join(', ') + '})'; - return [code, Blockly.Lua.ORDER_HIGH]; - } -}; - -Blockly.Lua['text_append'] = function(block) { - // Append to a variable in place. - var varName = Blockly.Lua.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var value = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_CONCATENATION) || '\'\''; - return varName + ' = ' + varName + ' .. ' + value + '\n'; -}; - -Blockly.Lua['text_length'] = function(block) { - // String or array length. - var text = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_UNARY) || '\'\''; - return ['#' + text, Blockly.Lua.ORDER_UNARY]; -}; - -Blockly.Lua['text_isEmpty'] = function(block) { - // Is the string null or array empty? - var text = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_UNARY) || '\'\''; - return ['#' + text + ' == 0', Blockly.Lua.ORDER_RELATIONAL]; -}; - -Blockly.Lua['text_indexOf'] = function(block) { - // Search the text for a substring. - var substring = Blockly.Lua.valueToCode(block, 'FIND', - Blockly.Lua.ORDER_NONE) || '\'\''; - var text = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_NONE) || '\'\''; - if (block.getFieldValue('END') == 'FIRST') { - var functionName = Blockly.Lua.provideFunction_( - 'firstIndexOf', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(str, substr) ', - ' local i = string.find(str, substr, 1, true)', - ' if i == nil then', - ' return 0', - ' else', - ' return i', - ' end', - 'end']); - } else { - var functionName = Blockly.Lua.provideFunction_( - 'lastIndexOf', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(str, substr)', - ' local i = string.find(string.reverse(str), ' + - 'string.reverse(substr), 1, true)', - ' if i then', - ' return #str + 2 - i - #substr', - ' end', - ' return 0', - 'end']); - } - var code = functionName + '(' + text + ', ' + substring + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_charAt'] = function(block) { - // Get letter at index. - // Note: Until January 2013 this block did not have the WHERE input. - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var atOrder = (where == 'FROM_END') ? Blockly.Lua.ORDER_UNARY : - Blockly.Lua.ORDER_NONE; - var at = Blockly.Lua.valueToCode(block, 'AT', atOrder) || '1'; - var text = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_NONE) || '\'\''; - var code; - if (where == 'RANDOM') { - var functionName = Blockly.Lua.provideFunction_( - 'text_random_letter', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(str)', - ' local index = math.random(string.len(str))', - ' return string.sub(str, index, index)', - 'end']); - code = functionName + '(' + text + ')'; - } else { - if (where == 'FIRST') { - var start = '1'; - } else if (where == 'LAST') { - var start = '-1'; - } else { - if (where == 'FROM_START') { - var start = at; - } else if (where == 'FROM_END') { - var start = '-' + at; - } else { - throw Error('Unhandled option (text_charAt).'); - } - } - if (start.match(/^-?\w*$/)) { - code = 'string.sub(' + text + ', ' + start + ', ' + start + ')'; - } else { - // use function to avoid reevaluation - var functionName = Blockly.Lua.provideFunction_( - 'text_char_at', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(str, index)', - ' return string.sub(str, index, index)', - 'end']); - code = functionName + '(' + text + ', ' + start + ')'; - } - } - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_getSubstring'] = function(block) { - // Get substring. - var text = Blockly.Lua.valueToCode(block, 'STRING', - Blockly.Lua.ORDER_NONE) || '\'\''; - - // Get start index. - var where1 = block.getFieldValue('WHERE1'); - var at1Order = (where1 == 'FROM_END') ? Blockly.Lua.ORDER_UNARY : - Blockly.Lua.ORDER_NONE; - var at1 = Blockly.Lua.valueToCode(block, 'AT1', at1Order) || '1'; - if (where1 == 'FIRST') { - var start = 1; - } else if (where1 == 'FROM_START') { - var start = at1; - } else if (where1 == 'FROM_END') { - var start = '-' + at1; - } else { - throw Error('Unhandled option (text_getSubstring)'); - } - - // Get end index. - var where2 = block.getFieldValue('WHERE2'); - var at2Order = (where2 == 'FROM_END') ? Blockly.Lua.ORDER_UNARY : - Blockly.Lua.ORDER_NONE; - var at2 = Blockly.Lua.valueToCode(block, 'AT2', at2Order) || '1'; - if (where2 == 'LAST') { - var end = -1; - } else if (where2 == 'FROM_START') { - var end = at2; - } else if (where2 == 'FROM_END') { - var end = '-' + at2; - } else { - throw Error('Unhandled option (text_getSubstring)'); - } - var code = 'string.sub(' + text + ', ' + start + ', ' + end + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_changeCase'] = function(block) { - // Change capitalization. - var operator = block.getFieldValue('CASE'); - var text = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_NONE) || '\'\''; - if (operator == 'UPPERCASE') { - var functionName = 'string.upper'; - } else if (operator == 'LOWERCASE') { - var functionName = 'string.lower'; - } else if (operator == 'TITLECASE') { - var functionName = Blockly.Lua.provideFunction_( - 'text_titlecase', - // There are shorter versions at - // http://lua-users.org/wiki/SciteTitleCase - // that do not preserve whitespace. - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(str)', - ' local buf = {}', - ' local inWord = false', - ' for i = 1, #str do', - ' local c = string.sub(str, i, i)', - ' if inWord then', - ' table.insert(buf, string.lower(c))', - ' if string.find(c, "%s") then', - ' inWord = false', - ' end', - ' else', - ' table.insert(buf, string.upper(c))', - ' inWord = true', - ' end', - ' end', - ' return table.concat(buf)', - 'end']); - } - var code = functionName + '(' + text + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_trim'] = function(block) { - // Trim spaces. - var OPERATORS = { - LEFT: '^%s*(,-)', - RIGHT: '(.-)%s*$', - BOTH: '^%s*(.-)%s*$' - }; - var operator = OPERATORS[block.getFieldValue('MODE')]; - var text = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_NONE) || '\'\''; - var code = 'string.gsub(' + text + ', "' + operator + '", "%1")'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_print'] = function(block) { - // Print statement. - var msg = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_NONE) || '\'\''; - return 'print(' + msg + ')\n'; -}; - -Blockly.Lua['text_prompt_ext'] = function(block) { - // Prompt function. - if (block.getField('TEXT')) { - // Internal message. - var msg = Blockly.Lua.quote_(block.getFieldValue('TEXT')); - } else { - // External message. - var msg = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_NONE) || '\'\''; - } - - var functionName = Blockly.Lua.provideFunction_( - 'text_prompt', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(msg)', - ' io.write(msg)', - ' io.flush()', - ' return io.read()', - 'end']); - var code = functionName + '(' + msg + ')'; - - var toNumber = block.getFieldValue('TYPE') == 'NUMBER'; - if (toNumber) { - code = 'tonumber(' + code + ', 10)'; - } - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_prompt'] = Blockly.Lua['text_prompt_ext']; - -Blockly.Lua['text_count'] = function(block) { - var text = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_NONE) || '\'\''; - var sub = Blockly.Lua.valueToCode(block, 'SUB', - Blockly.Lua.ORDER_NONE) || '\'\''; - var functionName = Blockly.Lua.provideFunction_( - 'text_count', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ - + '(haystack, needle)', - ' if #needle == 0 then', - ' return #haystack + 1', - ' end', - ' local i = 1', - ' local count = 0', - ' while true do', - ' i = string.find(haystack, needle, i, true)', - ' if i == nil then', - ' break', - ' end', - ' count = count + 1', - ' i = i + #needle', - ' end', - ' return count', - 'end', - ]); - var code = functionName + '(' + text + ', ' + sub + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_replace'] = function(block) { - var text = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_NONE) || '\'\''; - var from = Blockly.Lua.valueToCode(block, 'FROM', - Blockly.Lua.ORDER_NONE) || '\'\''; - var to = Blockly.Lua.valueToCode(block, 'TO', - Blockly.Lua.ORDER_NONE) || '\'\''; - var functionName = Blockly.Lua.provideFunction_( - 'text_replace', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ - + '(haystack, needle, replacement)', - ' local buf = {}', - ' local i = 1', - ' while i <= #haystack do', - ' if string.sub(haystack, i, i + #needle - 1) == needle then', - ' for j = 1, #replacement do', - ' table.insert(buf, string.sub(replacement, j, j))', - ' end', - ' i = i + #needle', - ' else', - ' table.insert(buf, string.sub(haystack, i, i))', - ' i = i + 1', - ' end', - ' end', - ' return table.concat(buf)', - 'end', - ]); - var code = functionName + '(' + text + ', ' + from + ', ' + to + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; - -Blockly.Lua['text_reverse'] = function(block) { - var text = Blockly.Lua.valueToCode(block, 'TEXT', - Blockly.Lua.ORDER_HIGH) || '\'\''; - var code = 'string.reverse(' + text + ')'; - return [code, Blockly.Lua.ORDER_HIGH]; -}; diff --git a/lib/blockly/generators/lua/variables.js b/lib/blockly/generators/lua/variables.js deleted file mode 100644 index f08fc36..0000000 --- a/lib/blockly/generators/lua/variables.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for variable blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -goog.provide('Blockly.Lua.variables'); - -goog.require('Blockly.Lua'); - - -Blockly.Lua['variables_get'] = function(block) { - // Variable getter. - var code = Blockly.Lua.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return [code, Blockly.Lua.ORDER_ATOMIC]; -}; - -Blockly.Lua['variables_set'] = function(block) { - // Variable setter. - var argument0 = Blockly.Lua.valueToCode(block, 'VALUE', - Blockly.Lua.ORDER_NONE) || '0'; - var varName = Blockly.Lua.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - return varName + ' = ' + argument0 + '\n'; -}; diff --git a/lib/blockly/generators/lua/variables_dynamic.js b/lib/blockly/generators/lua/variables_dynamic.js deleted file mode 100644 index 841c779..0000000 --- a/lib/blockly/generators/lua/variables_dynamic.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for dynamic variable blocks. - * @author fenichel@google.com (Rachel Fenichel) - */ -'use strict'; - -goog.provide('Blockly.Lua.variablesDynamic'); - -goog.require('Blockly.Lua'); -goog.require('Blockly.Lua.variables'); - - -// Lua is dynamically typed. -Blockly.Lua['variables_get_dynamic'] = Blockly.Lua['variables_get']; -Blockly.Lua['variables_set_dynamic'] = Blockly.Lua['variables_set']; diff --git a/lib/blockly/generators/php.js b/lib/blockly/generators/php.js deleted file mode 100644 index 702eb77..0000000 --- a/lib/blockly/generators/php.js +++ /dev/null @@ -1,325 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Helper functions for generating PHP for blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP'); - -goog.require('Blockly.Generator'); -goog.require('Blockly.utils.string'); - - -/** - * PHP code generator. - * @type {!Blockly.Generator} - */ -Blockly.PHP = new Blockly.Generator('PHP'); - -/** - * List of illegal variable names. - * This is not intended to be a security feature. Blockly is 100% client-side, - * so bypassing this list is trivial. This is intended to prevent users from - * accidentally clobbering a built-in object or function. - * @private - */ -Blockly.PHP.addReservedWords( - // http://php.net/manual/en/reserved.keywords.php - '__halt_compiler,abstract,and,array,as,break,callable,case,catch,class,' + - 'clone,const,continue,declare,default,die,do,echo,else,elseif,empty,' + - 'enddeclare,endfor,endforeach,endif,endswitch,endwhile,eval,exit,extends,' + - 'final,for,foreach,function,global,goto,if,implements,include,' + - 'include_once,instanceof,insteadof,interface,isset,list,namespace,new,or,' + - 'print,private,protected,public,require,require_once,return,static,' + - 'switch,throw,trait,try,unset,use,var,while,xor,' + - // http://php.net/manual/en/reserved.constants.php - 'PHP_VERSION,PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,' + - 'PHP_VERSION_ID,PHP_EXTRA_VERSION,PHP_ZTS,PHP_DEBUG,PHP_MAXPATHLEN,' + - 'PHP_OS,PHP_SAPI,PHP_EOL,PHP_INT_MAX,PHP_INT_SIZE,DEFAULT_INCLUDE_PATH,' + - 'PEAR_INSTALL_DIR,PEAR_EXTENSION_DIR,PHP_EXTENSION_DIR,PHP_PREFIX,' + - 'PHP_BINDIR,PHP_BINARY,PHP_MANDIR,PHP_LIBDIR,PHP_DATADIR,PHP_SYSCONFDIR,' + - 'PHP_LOCALSTATEDIR,PHP_CONFIG_FILE_PATH,PHP_CONFIG_FILE_SCAN_DIR,' + - 'PHP_SHLIB_SUFFIX,E_ERROR,E_WARNING,E_PARSE,E_NOTICE,E_CORE_ERROR,' + - 'E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING,E_USER_ERROR,' + - 'E_USER_WARNING,E_USER_NOTICE,E_DEPRECATED,E_USER_DEPRECATED,E_ALL,' + - 'E_STRICT,__COMPILER_HALT_OFFSET__,TRUE,FALSE,NULL,__CLASS__,__DIR__,' + - '__FILE__,__FUNCTION__,__LINE__,__METHOD__,__NAMESPACE__,__TRAIT__' -); - -/** - * Order of operation ENUMs. - * http://php.net/manual/en/language.operators.precedence.php - */ -Blockly.PHP.ORDER_ATOMIC = 0; // 0 "" ... -Blockly.PHP.ORDER_CLONE = 1; // clone -Blockly.PHP.ORDER_NEW = 1; // new -Blockly.PHP.ORDER_MEMBER = 2.1; // [] -Blockly.PHP.ORDER_FUNCTION_CALL = 2.2; // () -Blockly.PHP.ORDER_POWER = 3; // ** -Blockly.PHP.ORDER_INCREMENT = 4; // ++ -Blockly.PHP.ORDER_DECREMENT = 4; // -- -Blockly.PHP.ORDER_BITWISE_NOT = 4; // ~ -Blockly.PHP.ORDER_CAST = 4; // (int) (float) (string) (array) ... -Blockly.PHP.ORDER_SUPPRESS_ERROR = 4; // @ -Blockly.PHP.ORDER_INSTANCEOF = 5; // instanceof -Blockly.PHP.ORDER_LOGICAL_NOT = 6; // ! -Blockly.PHP.ORDER_UNARY_PLUS = 7.1; // + -Blockly.PHP.ORDER_UNARY_NEGATION = 7.2; // - -Blockly.PHP.ORDER_MULTIPLICATION = 8.1; // * -Blockly.PHP.ORDER_DIVISION = 8.2; // / -Blockly.PHP.ORDER_MODULUS = 8.3; // % -Blockly.PHP.ORDER_ADDITION = 9.1; // + -Blockly.PHP.ORDER_SUBTRACTION = 9.2; // - -Blockly.PHP.ORDER_STRING_CONCAT = 9.3; // . -Blockly.PHP.ORDER_BITWISE_SHIFT = 10; // << >> -Blockly.PHP.ORDER_RELATIONAL = 11; // < <= > >= -Blockly.PHP.ORDER_EQUALITY = 12; // == != === !== <> <=> -Blockly.PHP.ORDER_REFERENCE = 13; // & -Blockly.PHP.ORDER_BITWISE_AND = 13; // & -Blockly.PHP.ORDER_BITWISE_XOR = 14; // ^ -Blockly.PHP.ORDER_BITWISE_OR = 15; // | -Blockly.PHP.ORDER_LOGICAL_AND = 16; // && -Blockly.PHP.ORDER_LOGICAL_OR = 17; // || -Blockly.PHP.ORDER_IF_NULL = 18; // ?? -Blockly.PHP.ORDER_CONDITIONAL = 19; // ?: -Blockly.PHP.ORDER_ASSIGNMENT = 20; // = += -= *= /= %= <<= >>= ... -Blockly.PHP.ORDER_LOGICAL_AND_WEAK = 21; // and -Blockly.PHP.ORDER_LOGICAL_XOR = 22; // xor -Blockly.PHP.ORDER_LOGICAL_OR_WEAK = 23; // or -Blockly.PHP.ORDER_COMMA = 24; // , -Blockly.PHP.ORDER_NONE = 99; // (...) - -/** - * List of outer-inner pairings that do NOT require parentheses. - * @type {!Array.>} - */ -Blockly.PHP.ORDER_OVERRIDES = [ - // (foo()).bar() -> foo().bar() - // (foo())[0] -> foo()[0] - [Blockly.PHP.ORDER_MEMBER, Blockly.PHP.ORDER_FUNCTION_CALL], - // (foo[0])[1] -> foo[0][1] - // (foo.bar).baz -> foo.bar.baz - [Blockly.PHP.ORDER_MEMBER, Blockly.PHP.ORDER_MEMBER], - // !(!foo) -> !!foo - [Blockly.PHP.ORDER_LOGICAL_NOT, Blockly.PHP.ORDER_LOGICAL_NOT], - // a * (b * c) -> a * b * c - [Blockly.PHP.ORDER_MULTIPLICATION, Blockly.PHP.ORDER_MULTIPLICATION], - // a + (b + c) -> a + b + c - [Blockly.PHP.ORDER_ADDITION, Blockly.PHP.ORDER_ADDITION], - // a && (b && c) -> a && b && c - [Blockly.PHP.ORDER_LOGICAL_AND, Blockly.PHP.ORDER_LOGICAL_AND], - // a || (b || c) -> a || b || c - [Blockly.PHP.ORDER_LOGICAL_OR, Blockly.PHP.ORDER_LOGICAL_OR] -]; - -/** - * Initialise the database of variable names. - * @param {!Blockly.Workspace} workspace Workspace to generate code from. - */ -Blockly.PHP.init = function(workspace) { - // Create a dictionary of definitions to be printed before the code. - Blockly.PHP.definitions_ = Object.create(null); - // Create a dictionary mapping desired function names in definitions_ - // to actual function names (to avoid collisions with user functions). - Blockly.PHP.functionNames_ = Object.create(null); - - if (!Blockly.PHP.variableDB_) { - Blockly.PHP.variableDB_ = - new Blockly.Names(Blockly.PHP.RESERVED_WORDS_, '$'); - } else { - Blockly.PHP.variableDB_.reset(); - } - - Blockly.PHP.variableDB_.setVariableMap(workspace.getVariableMap()); - - var defvars = []; - // Add developer variables (not created or named by the user). - var devVarList = Blockly.Variables.allDeveloperVariables(workspace); - for (var i = 0; i < devVarList.length; i++) { - defvars.push(Blockly.PHP.variableDB_.getName(devVarList[i], - Blockly.Names.DEVELOPER_VARIABLE_TYPE) + ';'); - } - - // Add user variables, but only ones that are being used. - var variables = Blockly.Variables.allUsedVarModels(workspace); - for (var i = 0, variable; variable = variables[i]; i++) { - defvars.push(Blockly.PHP.variableDB_.getName(variable.getId(), - Blockly.Variables.NAME_TYPE) + ';'); - } - - // Declare all of the variables. - Blockly.PHP.definitions_['variables'] = defvars.join('\n'); -}; - -/** - * Prepend the generated code with the variable definitions. - * @param {string} code Generated code. - * @return {string} Completed code. - */ -Blockly.PHP.finish = function(code) { - // Convert the definitions dictionary into a list. - var definitions = []; - for (var name in Blockly.PHP.definitions_) { - definitions.push(Blockly.PHP.definitions_[name]); - } - // Clean up temporary data. - delete Blockly.PHP.definitions_; - delete Blockly.PHP.functionNames_; - Blockly.PHP.variableDB_.reset(); - return definitions.join('\n\n') + '\n\n\n' + code; -}; - -/** - * Naked values are top-level blocks with outputs that aren't plugged into - * anything. A trailing semicolon is needed to make this legal. - * @param {string} line Line of generated code. - * @return {string} Legal line of code. - */ -Blockly.PHP.scrubNakedValue = function(line) { - return line + ';\n'; -}; - -/** - * Encode a string as a properly escaped PHP string, complete with - * quotes. - * @param {string} string Text to encode. - * @return {string} PHP string. - * @private - */ -Blockly.PHP.quote_ = function(string) { - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n') - .replace(/'/g, '\\\''); - return '\'' + string + '\''; -}; - -/** - * Encode a string as a properly escaped multiline PHP string, complete with - * quotes. - * @param {string} string Text to encode. - * @return {string} PHP string. - * @private - */ -Blockly.PHP.multiline_quote_ = function(string) { - return '<< 0) { - var at = Blockly.PHP.valueToCode(block, atId, - Blockly.PHP.ORDER_ADDITION) || defaultAtIndex; - } else if (delta < 0) { - var at = Blockly.PHP.valueToCode(block, atId, - Blockly.PHP.ORDER_SUBTRACTION) || defaultAtIndex; - } else if (opt_negate) { - var at = Blockly.PHP.valueToCode(block, atId, - Blockly.PHP.ORDER_UNARY_NEGATION) || defaultAtIndex; - } else { - var at = Blockly.PHP.valueToCode(block, atId, order) || - defaultAtIndex; - } - - if (Blockly.isNumber(at)) { - // If the index is a naked number, adjust it right now. - at = Number(at) + delta; - if (opt_negate) { - at = -at; - } - } else { - // If the index is dynamic, adjust it in code. - if (delta > 0) { - at = at + ' + ' + delta; - var innerOrder = Blockly.PHP.ORDER_ADDITION; - } else if (delta < 0) { - at = at + ' - ' + -delta; - var innerOrder = Blockly.PHP.ORDER_SUBTRACTION; - } - if (opt_negate) { - if (delta) { - at = '-(' + at + ')'; - } else { - at = '-' + at; - } - var innerOrder = Blockly.PHP.ORDER_UNARY_NEGATION; - } - innerOrder = Math.floor(innerOrder); - order = Math.floor(order); - if (innerOrder && order >= innerOrder) { - at = '(' + at + ')'; - } - } - return at; -}; diff --git a/lib/blockly/generators/php/colour.js b/lib/blockly/generators/php/colour.js deleted file mode 100644 index b1f7b73..0000000 --- a/lib/blockly/generators/php/colour.js +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for colour blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.colour'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['colour_picker'] = function(block) { - // Colour picker. - var code = Blockly.PHP.quote_(block.getFieldValue('COLOUR')); - return [code, Blockly.PHP.ORDER_ATOMIC]; -}; - -Blockly.PHP['colour_random'] = function(block) { - // Generate a random colour. - var functionName = Blockly.PHP.provideFunction_( - 'colour_random', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '() {', - ' return \'#\' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), ' + - '6, \'0\', STR_PAD_LEFT);', - '}']); - var code = functionName + '()'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['colour_rgb'] = function(block) { - // Compose a colour from RGB components expressed as percentages. - var red = Blockly.PHP.valueToCode(block, 'RED', - Blockly.PHP.ORDER_COMMA) || 0; - var green = Blockly.PHP.valueToCode(block, 'GREEN', - Blockly.PHP.ORDER_COMMA) || 0; - var blue = Blockly.PHP.valueToCode(block, 'BLUE', - Blockly.PHP.ORDER_COMMA) || 0; - var functionName = Blockly.PHP.provideFunction_( - 'colour_rgb', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($r, $g, $b) {', - ' $r = round(max(min($r, 100), 0) * 2.55);', - ' $g = round(max(min($g, 100), 0) * 2.55);', - ' $b = round(max(min($b, 100), 0) * 2.55);', - ' $hex = \'#\';', - ' $hex .= str_pad(dechex($r), 2, \'0\', STR_PAD_LEFT);', - ' $hex .= str_pad(dechex($g), 2, \'0\', STR_PAD_LEFT);', - ' $hex .= str_pad(dechex($b), 2, \'0\', STR_PAD_LEFT);', - ' return $hex;', - '}']); - var code = functionName + '(' + red + ', ' + green + ', ' + blue + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['colour_blend'] = function(block) { - // Blend two colours together. - var c1 = Blockly.PHP.valueToCode(block, 'COLOUR1', - Blockly.PHP.ORDER_COMMA) || '\'#000000\''; - var c2 = Blockly.PHP.valueToCode(block, 'COLOUR2', - Blockly.PHP.ORDER_COMMA) || '\'#000000\''; - var ratio = Blockly.PHP.valueToCode(block, 'RATIO', - Blockly.PHP.ORDER_COMMA) || 0.5; - var functionName = Blockly.PHP.provideFunction_( - 'colour_blend', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($c1, $c2, $ratio) {', - ' $ratio = max(min($ratio, 1), 0);', - ' $r1 = hexdec(substr($c1, 1, 2));', - ' $g1 = hexdec(substr($c1, 3, 2));', - ' $b1 = hexdec(substr($c1, 5, 2));', - ' $r2 = hexdec(substr($c2, 1, 2));', - ' $g2 = hexdec(substr($c2, 3, 2));', - ' $b2 = hexdec(substr($c2, 5, 2));', - ' $r = round($r1 * (1 - $ratio) + $r2 * $ratio);', - ' $g = round($g1 * (1 - $ratio) + $g2 * $ratio);', - ' $b = round($b1 * (1 - $ratio) + $b2 * $ratio);', - ' $hex = \'#\';', - ' $hex .= str_pad(dechex($r), 2, \'0\', STR_PAD_LEFT);', - ' $hex .= str_pad(dechex($g), 2, \'0\', STR_PAD_LEFT);', - ' $hex .= str_pad(dechex($b), 2, \'0\', STR_PAD_LEFT);', - ' return $hex;', - '}']); - var code = functionName + '(' + c1 + ', ' + c2 + ', ' + ratio + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/php/lists.js b/lib/blockly/generators/php/lists.js deleted file mode 100644 index 17b522a..0000000 --- a/lib/blockly/generators/php/lists.js +++ /dev/null @@ -1,509 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for list blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ - -/* - * Lists in PHP are known to break when non-variables are passed into blocks - * that require a list. PHP, unlike other languages, passes arrays as reference - * value instead of value so we are unable to support it to the extent we can - * for the other languages. - * For example, a ternary operator with two arrays will return the array by - * value and that cannot be passed into any of the built-in array functions for - * PHP (because only variables can be passed by reference). - * ex: end(true ? list1 : list2) - */ -'use strict'; - -goog.provide('Blockly.PHP.lists'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['lists_create_empty'] = function(block) { - // Create an empty list. - return ['array()', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_create_with'] = function(block) { - // Create a list with any number of elements of any type. - var code = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - code[i] = Blockly.PHP.valueToCode(block, 'ADD' + i, - Blockly.PHP.ORDER_COMMA) || 'null'; - } - code = 'array(' + code.join(', ') + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_repeat'] = function(block) { - // Create a list with one element repeated. - var functionName = Blockly.PHP.provideFunction_( - 'lists_repeat', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($value, $count) {', - ' $array = array();', - ' for ($index = 0; $index < $count; $index++) {', - ' $array[] = $value;', - ' }', - ' return $array;', - '}']); - var element = Blockly.PHP.valueToCode(block, 'ITEM', - Blockly.PHP.ORDER_COMMA) || 'null'; - var repeatCount = Blockly.PHP.valueToCode(block, 'NUM', - Blockly.PHP.ORDER_COMMA) || '0'; - var code = functionName + '(' + element + ', ' + repeatCount + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_length'] = function(block) { - // String or array length. - var functionName = Blockly.PHP.provideFunction_( - 'length', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '($value) {', - ' if (is_string($value)) {', - ' return strlen($value);', - ' } else {', - ' return count($value);', - ' }', - '}']); - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || '\'\''; - return [functionName + '(' + list + ')', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_isEmpty'] = function(block) { - // Is the string null or array empty? - var argument0 = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_FUNCTION_CALL) || 'array()'; - return ['empty(' + argument0 + ')', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_indexOf'] = function(block) { - // Find an item in the list. - var argument0 = Blockly.PHP.valueToCode(block, 'FIND', - Blockly.PHP.ORDER_NONE) || '\'\''; - var argument1 = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_MEMBER) || '[]'; - if (block.workspace.options.oneBasedIndex) { - var errorIndex = ' 0'; - var indexAdjustment = ' + 1'; - } else { - var errorIndex = ' -1'; - var indexAdjustment = ''; - } - if (block.getFieldValue('END') == 'FIRST') { - // indexOf - var functionName = Blockly.PHP.provideFunction_( - 'indexOf', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($haystack, $needle) {', - ' for ($index = 0; $index < count($haystack); $index++) {', - ' if ($haystack[$index] == $needle) return $index' + - indexAdjustment + ';', - ' }', - ' return ' + errorIndex + ';', - '}']); - } else { - // lastIndexOf - var functionName = Blockly.PHP.provideFunction_( - 'lastIndexOf', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($haystack, $needle) {', - ' $last = ' + errorIndex + ';', - ' for ($index = 0; $index < count($haystack); $index++) {', - ' if ($haystack[$index] == $needle) $last = $index' + - indexAdjustment + ';', - ' }', - ' return $last;', - '}']); - } - - var code = functionName + '(' + argument1 + ', ' + argument0 + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_getIndex'] = function(block) { - // Get element at index. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - switch (where) { - case 'FIRST': - if (mode == 'GET') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_MEMBER) || 'array()'; - var code = list + '[0]'; - return [code, Blockly.PHP.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - var code = 'array_shift(' + list + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - return 'array_shift(' + list + ');\n'; - } - break; - case 'LAST': - if (mode == 'GET') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - var code = 'end(' + list + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'GET_REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - var code = 'array_pop(' + list + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - return 'array_pop(' + list + ');\n'; - } - break; - case 'FROM_START': - var at = Blockly.PHP.getAdjusted(block, 'AT'); - if (mode == 'GET') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_MEMBER) || 'array()'; - var code = list + '[' + at + ']'; - return [code, Blockly.PHP.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_COMMA) || 'array()'; - var code = 'array_splice(' + list + ', ' + at + ', 1)[0]'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_COMMA) || 'array()'; - return 'array_splice(' + list + ', ' + at + ', 1);\n'; - } - break; - case 'FROM_END': - if (mode == 'GET') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_COMMA) || 'array()'; - var at = Blockly.PHP.getAdjusted(block, 'AT', 1, true); - var code = 'array_slice(' + list + ', ' + at + ', 1)[0]'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'GET_REMOVE' || mode == 'REMOVE') { - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - var at = Blockly.PHP.getAdjusted(block, 'AT', 1, false, - Blockly.PHP.ORDER_SUBTRACTION); - code = 'array_splice(' + list + - ', count(' + list + ') - ' + at + ', 1)[0]'; - if (mode == 'GET_REMOVE') { - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return code + ';\n'; - } - } - break; - case 'RANDOM': - var list = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'array()'; - if (mode == 'GET') { - var functionName = Blockly.PHP.provideFunction_( - 'lists_get_random_item', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($list) {', - ' return $list[rand(0,count($list)-1)];', - '}']); - code = functionName + '(' + list + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'GET_REMOVE') { - var functionName = Blockly.PHP.provideFunction_( - 'lists_get_remove_random_item', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '(&$list) {', - ' $x = rand(0,count($list)-1);', - ' unset($list[$x]);', - ' return array_values($list);', - '}']); - code = functionName + '(' + list + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - var functionName = Blockly.PHP.provideFunction_( - 'lists_remove_random_item', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '(&$list) {', - ' unset($list[rand(0,count($list)-1)]);', - '}']); - return functionName + '(' + list + ');\n'; - } - break; - } - throw Error('Unhandled combination (lists_getIndex).'); -}; - -Blockly.PHP['lists_setIndex'] = function(block) { - // Set element at index. - // Note: Until February 2013 this block did not have MODE or WHERE inputs. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var value = Blockly.PHP.valueToCode(block, 'TO', - Blockly.PHP.ORDER_ASSIGNMENT) || 'null'; - // Cache non-trivial values to variables to prevent repeated look-ups. - // Closure, which accesses and modifies 'list'. - function cacheList() { - if (list.match(/^\$\w+$/)) { - return ''; - } - var listVar = Blockly.PHP.variableDB_.getDistinctName( - 'tmp_list', Blockly.Variables.NAME_TYPE); - var code = listVar + ' = &' + list + ';\n'; - list = listVar; - return code; - } - switch (where) { - case 'FIRST': - if (mode == 'SET') { - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_MEMBER) || 'array()'; - return list + '[0] = ' + value + ';\n'; - } else if (mode == 'INSERT') { - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || 'array()'; - return 'array_unshift(' + list + ', ' + value + ');\n'; - } - break; - case 'LAST': - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || 'array()'; - if (mode == 'SET') { - var functionName = Blockly.PHP.provideFunction_( - 'lists_set_last_item', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '(&$list, $value) {', - ' $list[count($list) - 1] = $value;', - '}']); - return functionName + '(' + list + ', ' + value + ');\n'; - } else if (mode == 'INSERT') { - return 'array_push(' + list + ', ' + value + ');\n'; - } - break; - case 'FROM_START': - var at = Blockly.PHP.getAdjusted(block, 'AT'); - if (mode == 'SET') { - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_MEMBER) || 'array()'; - return list + '[' + at + '] = ' + value + ';\n'; - } else if (mode == 'INSERT') { - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || 'array()'; - return 'array_splice(' + list + ', ' + at + ', 0, ' + value + ');\n'; - } - break; - case 'FROM_END': - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || 'array()'; - var at = Blockly.PHP.getAdjusted(block, 'AT', 1); - if (mode == 'SET') { - var functionName = Blockly.PHP.provideFunction_( - 'lists_set_from_end', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '(&$list, $at, $value) {', - ' $list[count($list) - $at] = $value;', - '}']); - return functionName + '(' + list + ', ' + at + ', ' + value + ');\n'; - } else if (mode == 'INSERT') { - var functionName = Blockly.PHP.provideFunction_( - 'lists_insert_from_end', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '(&$list, $at, $value) {', - ' return array_splice($list, count($list) - $at, 0, $value);', - '}']); - return functionName + '(' + list + ', ' + at + ', ' + value + ');\n'; - } - break; - case 'RANDOM': - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_REFERENCE) || 'array()'; - var code = cacheList(); - var xVar = Blockly.PHP.variableDB_.getDistinctName( - 'tmp_x', Blockly.Variables.NAME_TYPE); - code += xVar + ' = rand(0, count(' + list + ')-1);\n'; - if (mode == 'SET') { - code += list + '[' + xVar + '] = ' + value + ';\n'; - return code; - } else if (mode == 'INSERT') { - code += 'array_splice(' + list + ', ' + xVar + ', 0, ' + value + - ');\n'; - return code; - } - break; - } - throw Error('Unhandled combination (lists_setIndex).'); -}; - -Blockly.PHP['lists_getSublist'] = function(block) { - // Get sublist. - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || 'array()'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - if (where1 == 'FIRST' && where2 == 'LAST') { - var code = list; - } else if (list.match(/^\$\w+$/) || - (where1 != 'FROM_END' && where2 == 'FROM_START')) { - // If the list is a simple value or doesn't require a call for length, don't - // generate a helper function. - switch (where1) { - case 'FROM_START': - var at1 = Blockly.PHP.getAdjusted(block, 'AT1'); - break; - case 'FROM_END': - var at1 = Blockly.PHP.getAdjusted(block, 'AT1', 1, false, - Blockly.PHP.ORDER_SUBTRACTION); - at1 = 'count(' + list + ') - ' + at1; - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw Error('Unhandled option (lists_getSublist).'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.PHP.getAdjusted(block, 'AT2', 0, false, - Blockly.PHP.ORDER_SUBTRACTION); - var length = at2 + ' - '; - if (Blockly.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) { - length += at1; - } else { - length += '(' + at1 + ')'; - } - length += ' + 1'; - break; - case 'FROM_END': - var at2 = Blockly.PHP.getAdjusted(block, 'AT2', 0, false, - Blockly.PHP.ORDER_SUBTRACTION); - var length = 'count(' + list + ') - ' + at2 + ' - '; - if (Blockly.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) { - length += at1; - } else { - length += '(' + at1 + ')'; - } - break; - case 'LAST': - var length = 'count(' + list + ') - '; - if (Blockly.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) { - length += at1; - } else { - length += '(' + at1 + ')'; - } - break; - default: - throw Error('Unhandled option (lists_getSublist).'); - } - code = 'array_slice(' + list + ', ' + at1 + ', ' + length + ')'; - } else { - var at1 = Blockly.PHP.getAdjusted(block, 'AT1'); - var at2 = Blockly.PHP.getAdjusted(block, 'AT2'); - var functionName = Blockly.PHP.provideFunction_( - 'lists_get_sublist', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($list, $where1, $at1, $where2, $at2) {', - ' if ($where1 == \'FROM_END\') {', - ' $at1 = count($list) - 1 - $at1;', - ' } else if ($where1 == \'FIRST\') {', - ' $at1 = 0;', - ' } else if ($where1 != \'FROM_START\') {', - ' throw new Exception(\'Unhandled option (lists_get_sublist).\');', - ' }', - ' $length = 0;', - ' if ($where2 == \'FROM_START\') {', - ' $length = $at2 - $at1 + 1;', - ' } else if ($where2 == \'FROM_END\') {', - ' $length = count($list) - $at1 - $at2;', - ' } else if ($where2 == \'LAST\') {', - ' $length = count($list) - $at1;', - ' } else {', - ' throw new Exception(\'Unhandled option (lists_get_sublist).\');', - ' }', - ' return array_slice($list, $at1, $length);', - '}']); - var code = functionName + '(' + list + ', \'' + - where1 + '\', ' + at1 + ', \'' + where2 + '\', ' + at2 + ')'; - } - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_sort'] = function(block) { - // Block for sorting a list. - var listCode = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || 'array()'; - var direction = block.getFieldValue('DIRECTION') === '1' ? 1 : -1; - var type = block.getFieldValue('TYPE'); - var functionName = Blockly.PHP.provideFunction_( - 'lists_sort', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($list, $type, $direction) {', - ' $sortCmpFuncs = array(', - ' "NUMERIC" => "strnatcasecmp",', - ' "TEXT" => "strcmp",', - ' "IGNORE_CASE" => "strcasecmp"', - ' );', - ' $sortCmp = $sortCmpFuncs[$type];', - ' $list2 = $list;', // Clone list. - ' usort($list2, $sortCmp);', - ' if ($direction == -1) {', - ' $list2 = array_reverse($list2);', - ' }', - ' return $list2;', - '}']); - var sortCode = functionName + - '(' + listCode + ', "' + type + '", ' + direction + ')'; - return [sortCode, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_split'] = function(block) { - // Block for splitting text into a list, or joining a list into text. - var value_input = Blockly.PHP.valueToCode(block, 'INPUT', - Blockly.PHP.ORDER_COMMA); - var value_delim = Blockly.PHP.valueToCode(block, 'DELIM', - Blockly.PHP.ORDER_COMMA) || '\'\''; - var mode = block.getFieldValue('MODE'); - if (mode == 'SPLIT') { - if (!value_input) { - value_input = '\'\''; - } - var functionName = 'explode'; - } else if (mode == 'JOIN') { - if (!value_input) { - value_input = 'array()'; - } - var functionName = 'implode'; - } else { - throw Error('Unknown mode: ' + mode); - } - var code = functionName + '(' + value_delim + ', ' + value_input + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['lists_reverse'] = function(block) { - // Block for reversing a list. - var list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_COMMA) || '[]'; - var code = 'array_reverse(' + list + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/php/logic.js b/lib/blockly/generators/php/logic.js deleted file mode 100644 index 290eeb2..0000000 --- a/lib/blockly/generators/php/logic.js +++ /dev/null @@ -1,139 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for logic blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.logic'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['controls_if'] = function(block) { - // If/elseif/else condition. - var n = 0; - var code = '', branchCode, conditionCode; - if (Blockly.PHP.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - code += Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX, block); - } - do { - conditionCode = Blockly.PHP.valueToCode(block, 'IF' + n, - Blockly.PHP.ORDER_NONE) || 'false'; - branchCode = Blockly.PHP.statementToCode(block, 'DO' + n); - if (Blockly.PHP.STATEMENT_SUFFIX) { - branchCode = Blockly.PHP.prefixLines( - Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX, block), - Blockly.PHP.INDENT) + branchCode; - } - code += (n > 0 ? ' else ' : '') + - 'if (' + conditionCode + ') {\n' + branchCode + '}'; - ++n; - } while (block.getInput('IF' + n)); - - if (block.getInput('ELSE') || Blockly.PHP.STATEMENT_SUFFIX) { - branchCode = Blockly.PHP.statementToCode(block, 'ELSE'); - if (Blockly.PHP.STATEMENT_SUFFIX) { - branchCode = Blockly.PHP.prefixLines( - Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX, block), - Blockly.PHP.INDENT) + branchCode; - } - code += ' else {\n' + branchCode + '}'; - } - return code + '\n'; -}; - -Blockly.PHP['controls_ifelse'] = Blockly.PHP['controls_if']; - -Blockly.PHP['logic_compare'] = function(block) { - // Comparison operator. - var OPERATORS = { - 'EQ': '==', - 'NEQ': '!=', - 'LT': '<', - 'LTE': '<=', - 'GT': '>', - 'GTE': '>=' - }; - var operator = OPERATORS[block.getFieldValue('OP')]; - var order = (operator == '==' || operator == '!=') ? - Blockly.PHP.ORDER_EQUALITY : Blockly.PHP.ORDER_RELATIONAL; - var argument0 = Blockly.PHP.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'B', order) || '0'; - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.PHP['logic_operation'] = function(block) { - // Operations 'and', 'or'. - var operator = (block.getFieldValue('OP') == 'AND') ? '&&' : '||'; - var order = (operator == '&&') ? Blockly.PHP.ORDER_LOGICAL_AND : - Blockly.PHP.ORDER_LOGICAL_OR; - var argument0 = Blockly.PHP.valueToCode(block, 'A', order); - var argument1 = Blockly.PHP.valueToCode(block, 'B', order); - if (!argument0 && !argument1) { - // If there are no arguments, then the return value is false. - argument0 = 'false'; - argument1 = 'false'; - } else { - // Single missing arguments have no effect on the return value. - var defaultArgument = (operator == '&&') ? 'true' : 'false'; - if (!argument0) { - argument0 = defaultArgument; - } - if (!argument1) { - argument1 = defaultArgument; - } - } - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.PHP['logic_negate'] = function(block) { - // Negation. - var order = Blockly.PHP.ORDER_LOGICAL_NOT; - var argument0 = Blockly.PHP.valueToCode(block, 'BOOL', order) || - 'true'; - var code = '!' + argument0; - return [code, order]; -}; - -Blockly.PHP['logic_boolean'] = function(block) { - // Boolean values true and false. - var code = (block.getFieldValue('BOOL') == 'TRUE') ? 'true' : 'false'; - return [code, Blockly.PHP.ORDER_ATOMIC]; -}; - -Blockly.PHP['logic_null'] = function(block) { - // Null data type. - return ['null', Blockly.PHP.ORDER_ATOMIC]; -}; - -Blockly.PHP['logic_ternary'] = function(block) { - // Ternary operator. - var value_if = Blockly.PHP.valueToCode(block, 'IF', - Blockly.PHP.ORDER_CONDITIONAL) || 'false'; - var value_then = Blockly.PHP.valueToCode(block, 'THEN', - Blockly.PHP.ORDER_CONDITIONAL) || 'null'; - var value_else = Blockly.PHP.valueToCode(block, 'ELSE', - Blockly.PHP.ORDER_CONDITIONAL) || 'null'; - var code = value_if + ' ? ' + value_then + ' : ' + value_else; - return [code, Blockly.PHP.ORDER_CONDITIONAL]; -}; diff --git a/lib/blockly/generators/php/loops.js b/lib/blockly/generators/php/loops.js deleted file mode 100644 index f87a808..0000000 --- a/lib/blockly/generators/php/loops.js +++ /dev/null @@ -1,181 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for loop blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.loops'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['controls_repeat_ext'] = function(block) { - // Repeat n times. - if (block.getField('TIMES')) { - // Internal number. - var repeats = String(Number(block.getFieldValue('TIMES'))); - } else { - // External number. - var repeats = Blockly.PHP.valueToCode(block, 'TIMES', - Blockly.PHP.ORDER_ASSIGNMENT) || '0'; - } - var branch = Blockly.PHP.statementToCode(block, 'DO'); - branch = Blockly.PHP.addLoopTrap(branch, block); - var code = ''; - var loopVar = Blockly.PHP.variableDB_.getDistinctName( - 'count', Blockly.Variables.NAME_TYPE); - var endVar = repeats; - if (!repeats.match(/^\w+$/) && !Blockly.isNumber(repeats)) { - var endVar = Blockly.PHP.variableDB_.getDistinctName( - 'repeat_end', Blockly.Variables.NAME_TYPE); - code += endVar + ' = ' + repeats + ';\n'; - } - code += 'for (' + loopVar + ' = 0; ' + - loopVar + ' < ' + endVar + '; ' + - loopVar + '++) {\n' + - branch + '}\n'; - return code; -}; - -Blockly.PHP['controls_repeat'] = Blockly.PHP['controls_repeat_ext']; - -Blockly.PHP['controls_whileUntil'] = function(block) { - // Do while/until loop. - var until = block.getFieldValue('MODE') == 'UNTIL'; - var argument0 = Blockly.PHP.valueToCode(block, 'BOOL', - until ? Blockly.PHP.ORDER_LOGICAL_NOT : - Blockly.PHP.ORDER_NONE) || 'false'; - var branch = Blockly.PHP.statementToCode(block, 'DO'); - branch = Blockly.PHP.addLoopTrap(branch, block); - if (until) { - argument0 = '!' + argument0; - } - return 'while (' + argument0 + ') {\n' + branch + '}\n'; -}; - -Blockly.PHP['controls_for'] = function(block) { - // For loop. - var variable0 = Blockly.PHP.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.PHP.valueToCode(block, 'FROM', - Blockly.PHP.ORDER_ASSIGNMENT) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'TO', - Blockly.PHP.ORDER_ASSIGNMENT) || '0'; - var increment = Blockly.PHP.valueToCode(block, 'BY', - Blockly.PHP.ORDER_ASSIGNMENT) || '1'; - var branch = Blockly.PHP.statementToCode(block, 'DO'); - branch = Blockly.PHP.addLoopTrap(branch, block); - var code; - if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && - Blockly.isNumber(increment)) { - // All arguments are simple numbers. - var up = Number(argument0) <= Number(argument1); - code = 'for (' + variable0 + ' = ' + argument0 + '; ' + - variable0 + (up ? ' <= ' : ' >= ') + argument1 + '; ' + - variable0; - var step = Math.abs(Number(increment)); - if (step == 1) { - code += up ? '++' : '--'; - } else { - code += (up ? ' += ' : ' -= ') + step; - } - code += ') {\n' + branch + '}\n'; - } else { - code = ''; - // Cache non-trivial values to variables to prevent repeated look-ups. - var startVar = argument0; - if (!argument0.match(/^\w+$/) && !Blockly.isNumber(argument0)) { - startVar = Blockly.PHP.variableDB_.getDistinctName( - variable0 + '_start', Blockly.Variables.NAME_TYPE); - code += startVar + ' = ' + argument0 + ';\n'; - } - var endVar = argument1; - if (!argument1.match(/^\w+$/) && !Blockly.isNumber(argument1)) { - var endVar = Blockly.PHP.variableDB_.getDistinctName( - variable0 + '_end', Blockly.Variables.NAME_TYPE); - code += endVar + ' = ' + argument1 + ';\n'; - } - // Determine loop direction at start, in case one of the bounds - // changes during loop execution. - var incVar = Blockly.PHP.variableDB_.getDistinctName( - variable0 + '_inc', Blockly.Variables.NAME_TYPE); - code += incVar + ' = '; - if (Blockly.isNumber(increment)) { - code += Math.abs(increment) + ';\n'; - } else { - code += 'abs(' + increment + ');\n'; - } - code += 'if (' + startVar + ' > ' + endVar + ') {\n'; - code += Blockly.PHP.INDENT + incVar + ' = -' + incVar + ';\n'; - code += '}\n'; - code += 'for (' + variable0 + ' = ' + startVar + '; ' + - incVar + ' >= 0 ? ' + - variable0 + ' <= ' + endVar + ' : ' + - variable0 + ' >= ' + endVar + '; ' + - variable0 + ' += ' + incVar + ') {\n' + - branch + '}\n'; - } - return code; -}; - -Blockly.PHP['controls_forEach'] = function(block) { - // For each loop. - var variable0 = Blockly.PHP.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_ASSIGNMENT) || '[]'; - var branch = Blockly.PHP.statementToCode(block, 'DO'); - branch = Blockly.PHP.addLoopTrap(branch, block); - var code = ''; - code += 'foreach (' + argument0 + ' as ' + variable0 + - ') {\n' + branch + '}\n'; - return code; -}; - -Blockly.PHP['controls_flow_statements'] = function(block) { - // Flow statements: continue, break. - var xfix = ''; - if (Blockly.PHP.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - xfix += Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX, block); - } - if (Blockly.PHP.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the break/continue is triggered. - xfix += Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX, block); - } - if (Blockly.PHP.STATEMENT_PREFIX) { - var loop = Blockly.Constants.Loops - .CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(block); - if (loop && !loop.suppressPrefixSuffix) { - // Inject loop's statement prefix here since the regular one at the end - // of the loop will not get executed if 'continue' is triggered. - // In the case of 'break', a prefix is needed due to the loop's suffix. - xfix += Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX, loop); - } - } - switch (block.getFieldValue('FLOW')) { - case 'BREAK': - return xfix + 'break;\n'; - case 'CONTINUE': - return xfix + 'continue;\n'; - } - throw Error('Unknown flow statement.'); -}; diff --git a/lib/blockly/generators/php/math.js b/lib/blockly/generators/php/math.js deleted file mode 100644 index e9b637b..0000000 --- a/lib/blockly/generators/php/math.js +++ /dev/null @@ -1,381 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for math blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.math'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['math_number'] = function(block) { - // Numeric value. - var code = Number(block.getFieldValue('NUM')); - var order = code >= 0 ? Blockly.PHP.ORDER_ATOMIC : - Blockly.PHP.ORDER_UNARY_NEGATION; - if (code == Infinity) { - code = 'INF'; - } else if (code == -Infinity) { - code = '-INF'; - } - return [code, order]; -}; - -Blockly.PHP['math_arithmetic'] = function(block) { - // Basic arithmetic operators, and power. - var OPERATORS = { - 'ADD': [' + ', Blockly.PHP.ORDER_ADDITION], - 'MINUS': [' - ', Blockly.PHP.ORDER_SUBTRACTION], - 'MULTIPLY': [' * ', Blockly.PHP.ORDER_MULTIPLICATION], - 'DIVIDE': [' / ', Blockly.PHP.ORDER_DIVISION], - 'POWER': [' ** ', Blockly.PHP.ORDER_POWER] - }; - var tuple = OPERATORS[block.getFieldValue('OP')]; - var operator = tuple[0]; - var order = tuple[1]; - var argument0 = Blockly.PHP.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'B', order) || '0'; - var code = argument0 + operator + argument1; - return [code, order]; -}; - -Blockly.PHP['math_single'] = function(block) { - // Math operators with single operand. - var operator = block.getFieldValue('OP'); - var code; - var arg; - if (operator == 'NEG') { - // Negation is a special case given its different operator precedence. - arg = Blockly.PHP.valueToCode(block, 'NUM', - Blockly.PHP.ORDER_UNARY_NEGATION) || '0'; - if (arg[0] == '-') { - // --3 is not legal in JS. - arg = ' ' + arg; - } - code = '-' + arg; - return [code, Blockly.PHP.ORDER_UNARY_NEGATION]; - } - if (operator == 'SIN' || operator == 'COS' || operator == 'TAN') { - arg = Blockly.PHP.valueToCode(block, 'NUM', - Blockly.PHP.ORDER_DIVISION) || '0'; - } else { - arg = Blockly.PHP.valueToCode(block, 'NUM', - Blockly.PHP.ORDER_NONE) || '0'; - } - // First, handle cases which generate values that don't need parentheses - // wrapping the code. - switch (operator) { - case 'ABS': - code = 'abs(' + arg + ')'; - break; - case 'ROOT': - code = 'sqrt(' + arg + ')'; - break; - case 'LN': - code = 'log(' + arg + ')'; - break; - case 'EXP': - code = 'exp(' + arg + ')'; - break; - case 'POW10': - code = 'pow(10,' + arg + ')'; - break; - case 'ROUND': - code = 'round(' + arg + ')'; - break; - case 'ROUNDUP': - code = 'ceil(' + arg + ')'; - break; - case 'ROUNDDOWN': - code = 'floor(' + arg + ')'; - break; - case 'SIN': - code = 'sin(' + arg + ' / 180 * pi())'; - break; - case 'COS': - code = 'cos(' + arg + ' / 180 * pi())'; - break; - case 'TAN': - code = 'tan(' + arg + ' / 180 * pi())'; - break; - } - if (code) { - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } - // Second, handle cases which generate values that may need parentheses - // wrapping the code. - switch (operator) { - case 'LOG10': - code = 'log(' + arg + ') / log(10)'; - break; - case 'ASIN': - code = 'asin(' + arg + ') / pi() * 180'; - break; - case 'ACOS': - code = 'acos(' + arg + ') / pi() * 180'; - break; - case 'ATAN': - code = 'atan(' + arg + ') / pi() * 180'; - break; - default: - throw Error('Unknown math operator: ' + operator); - } - return [code, Blockly.PHP.ORDER_DIVISION]; -}; - -Blockly.PHP['math_constant'] = function(block) { - // Constants: PI, E, the Golden Ratio, sqrt(2), 1/sqrt(2), INFINITY. - var CONSTANTS = { - 'PI': ['M_PI', Blockly.PHP.ORDER_ATOMIC], - 'E': ['M_E', Blockly.PHP.ORDER_ATOMIC], - 'GOLDEN_RATIO': ['(1 + sqrt(5)) / 2', Blockly.PHP.ORDER_DIVISION], - 'SQRT2': ['M_SQRT2', Blockly.PHP.ORDER_ATOMIC], - 'SQRT1_2': ['M_SQRT1_2', Blockly.PHP.ORDER_ATOMIC], - 'INFINITY': ['INF', Blockly.PHP.ORDER_ATOMIC] - }; - return CONSTANTS[block.getFieldValue('CONSTANT')]; -}; - -Blockly.PHP['math_number_property'] = function(block) { - // Check if a number is even, odd, prime, whole, positive, or negative - // or if it is divisible by certain number. Returns true or false. - var number_to_check = Blockly.PHP.valueToCode(block, 'NUMBER_TO_CHECK', - Blockly.PHP.ORDER_MODULUS) || '0'; - var dropdown_property = block.getFieldValue('PROPERTY'); - var code; - if (dropdown_property == 'PRIME') { - // Prime is a special case as it is not a one-liner test. - var functionName = Blockly.PHP.provideFunction_( - 'math_isPrime', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '($n) {', - ' // https://en.wikipedia.org/wiki/Primality_test#Naive_methods', - ' if ($n == 2 || $n == 3) {', - ' return true;', - ' }', - ' // False if n is NaN, negative, is 1, or not whole.', - ' // And false if n is divisible by 2 or 3.', - ' if (!is_numeric($n) || $n <= 1 || $n % 1 != 0 || $n % 2 == 0 ||' + - ' $n % 3 == 0) {', - ' return false;', - ' }', - ' // Check all the numbers of form 6k +/- 1, up to sqrt(n).', - ' for ($x = 6; $x <= sqrt($n) + 1; $x += 6) {', - ' if ($n % ($x - 1) == 0 || $n % ($x + 1) == 0) {', - ' return false;', - ' }', - ' }', - ' return true;', - '}']); - code = functionName + '(' + number_to_check + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } - switch (dropdown_property) { - case 'EVEN': - code = number_to_check + ' % 2 == 0'; - break; - case 'ODD': - code = number_to_check + ' % 2 == 1'; - break; - case 'WHOLE': - code = 'is_int(' + number_to_check + ')'; - break; - case 'POSITIVE': - code = number_to_check + ' > 0'; - break; - case 'NEGATIVE': - code = number_to_check + ' < 0'; - break; - case 'DIVISIBLE_BY': - var divisor = Blockly.PHP.valueToCode(block, 'DIVISOR', - Blockly.PHP.ORDER_MODULUS) || '0'; - code = number_to_check + ' % ' + divisor + ' == 0'; - break; - } - return [code, Blockly.PHP.ORDER_EQUALITY]; -}; - -Blockly.PHP['math_change'] = function(block) { - // Add to a variable in place. - var argument0 = Blockly.PHP.valueToCode(block, 'DELTA', - Blockly.PHP.ORDER_ADDITION) || '0'; - var varName = Blockly.PHP.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - return varName + ' += ' + argument0 + ';\n'; -}; - -// Rounding functions have a single operand. -Blockly.PHP['math_round'] = Blockly.PHP['math_single']; -// Trigonometry functions have a single operand. -Blockly.PHP['math_trig'] = Blockly.PHP['math_single']; - -Blockly.PHP['math_on_list'] = function(block) { - // Math functions for lists. - var func = block.getFieldValue('OP'); - var list, code; - switch (func) { - case 'SUM': - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_FUNCTION_CALL) || 'array()'; - code = 'array_sum(' + list + ')'; - break; - case 'MIN': - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_FUNCTION_CALL) || 'array()'; - code = 'min(' + list + ')'; - break; - case 'MAX': - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_FUNCTION_CALL) || 'array()'; - code = 'max(' + list + ')'; - break; - case 'AVERAGE': - var functionName = Blockly.PHP.provideFunction_( - 'math_mean', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($myList) {', - ' return array_sum($myList) / count($myList);', - '}']); - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_NONE) || 'array()'; - code = functionName + '(' + list + ')'; - break; - case 'MEDIAN': - var functionName = Blockly.PHP.provideFunction_( - 'math_median', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($arr) {', - ' sort($arr,SORT_NUMERIC);', - ' return (count($arr) % 2) ? $arr[floor(count($arr)/2)] : ', - ' ($arr[floor(count($arr)/2)] + $arr[floor(count($arr)/2)' + - ' - 1]) / 2;', - '}']); - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'MODE': - // As a list of numbers can contain more than one mode, - // the returned result is provided as an array. - // Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1]. - var functionName = Blockly.PHP.provideFunction_( - 'math_modes', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($values) {', - ' if (empty($values)) return array();', - ' $counts = array_count_values($values);', - ' arsort($counts); // Sort counts in descending order', - ' $modes = array_keys($counts, current($counts), true);', - ' return $modes;', - '}']); - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'STD_DEV': - var functionName = Blockly.PHP.provideFunction_( - 'math_standard_deviation', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($numbers) {', - ' $n = count($numbers);', - ' if (!$n) return null;', - ' $mean = array_sum($numbers) / count($numbers);', - ' foreach($numbers as $key => $num) $devs[$key] = ' + - 'pow($num - $mean, 2);', - ' return sqrt(array_sum($devs) / (count($devs) - 1));', - '}']); - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - case 'RANDOM': - var functionName = Blockly.PHP.provideFunction_( - 'math_random_list', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($list) {', - ' $x = rand(0, count($list)-1);', - ' return $list[$x];', - '}']); - list = Blockly.PHP.valueToCode(block, 'LIST', - Blockly.PHP.ORDER_NONE) || '[]'; - code = functionName + '(' + list + ')'; - break; - default: - throw Error('Unknown operator: ' + func); - } - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['math_modulo'] = function(block) { - // Remainder computation. - var argument0 = Blockly.PHP.valueToCode(block, 'DIVIDEND', - Blockly.PHP.ORDER_MODULUS) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'DIVISOR', - Blockly.PHP.ORDER_MODULUS) || '0'; - var code = argument0 + ' % ' + argument1; - return [code, Blockly.PHP.ORDER_MODULUS]; -}; - -Blockly.PHP['math_constrain'] = function(block) { - // Constrain a number between two limits. - var argument0 = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_COMMA) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'LOW', - Blockly.PHP.ORDER_COMMA) || '0'; - var argument2 = Blockly.PHP.valueToCode(block, 'HIGH', - Blockly.PHP.ORDER_COMMA) || 'Infinity'; - var code = 'min(max(' + argument0 + ', ' + argument1 + '), ' + - argument2 + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['math_random_int'] = function(block) { - // Random integer between [X] and [Y]. - var argument0 = Blockly.PHP.valueToCode(block, 'FROM', - Blockly.PHP.ORDER_COMMA) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'TO', - Blockly.PHP.ORDER_COMMA) || '0'; - var functionName = Blockly.PHP.provideFunction_( - 'math_random_int', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($a, $b) {', - ' if ($a > $b) {', - ' return rand($b, $a);', - ' }', - ' return rand($a, $b);', - '}']); - var code = functionName + '(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['math_random_float'] = function(block) { - // Random fraction between 0 and 1. - return ['(float)rand()/(float)getrandmax()', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['math_atan2'] = function(block) { - // Arctangent of point (X, Y) in degrees from -180 to 180. - var argument0 = Blockly.PHP.valueToCode(block, 'X', - Blockly.PHP.ORDER_COMMA) || '0'; - var argument1 = Blockly.PHP.valueToCode(block, 'Y', - Blockly.PHP.ORDER_COMMA) || '0'; - return ['atan2(' + argument1 + ', ' + argument0 + ') / pi() * 180', - Blockly.PHP.ORDER_DIVISION]; -}; diff --git a/lib/blockly/generators/php/procedures.js b/lib/blockly/generators/php/procedures.js deleted file mode 100644 index ec70ace..0000000 --- a/lib/blockly/generators/php/procedures.js +++ /dev/null @@ -1,141 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for procedure blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.procedures'); - -goog.require('Blockly.PHP'); - -Blockly.PHP['procedures_defreturn'] = function(block) { - // Define a procedure with a return value. - // First, add a 'global' statement for every variable that is not shadowed by - // a local parameter. - var globals = []; - var varName; - var workspace = block.workspace; - var variables = Blockly.Variables.allUsedVarModels(workspace) || []; - for (var i = 0, variable; variable = variables[i]; i++) { - varName = variable.name; - if (block.arguments_.indexOf(varName) == -1) { - globals.push(Blockly.PHP.variableDB_.getName(varName, - Blockly.Variables.NAME_TYPE)); - } - } - // Add developer variables. - var devVarList = Blockly.Variables.allDeveloperVariables(workspace); - for (var i = 0; i < devVarList.length; i++) { - globals.push(Blockly.PHP.variableDB_.getName(devVarList[i], - Blockly.Names.DEVELOPER_VARIABLE_TYPE)); - } - globals = globals.length ? - Blockly.PHP.INDENT + 'global ' + globals.join(', ') + ';\n' : ''; - - var funcName = Blockly.PHP.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var xfix1 = ''; - if (Blockly.PHP.STATEMENT_PREFIX) { - xfix1 += Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX, block); - } - if (Blockly.PHP.STATEMENT_SUFFIX) { - xfix1 += Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX, block); - } - if (xfix1) { - xfix1 = Blockly.PHP.prefixLines(xfix1, Blockly.PHP.INDENT); - } - var loopTrap = ''; - if (Blockly.PHP.INFINITE_LOOP_TRAP) { - loopTrap = Blockly.PHP.prefixLines( - Blockly.PHP.injectId(Blockly.PHP.INFINITE_LOOP_TRAP, block), - Blockly.PHP.INDENT); - } - var branch = Blockly.PHP.statementToCode(block, 'STACK'); - var returnValue = Blockly.PHP.valueToCode(block, 'RETURN', - Blockly.PHP.ORDER_NONE) || ''; - var xfix2 = ''; - if (branch && returnValue) { - // After executing the function body, revisit this block for the return. - xfix2 = xfix1; - } - if (returnValue) { - returnValue = Blockly.PHP.INDENT + 'return ' + returnValue + ';\n'; - } - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.PHP.variableDB_.getName(block.arguments_[i], - Blockly.Variables.NAME_TYPE); - } - var code = 'function ' + funcName + '(' + args.join(', ') + ') {\n' + - globals + xfix1 + loopTrap + branch + xfix2 + returnValue + '}'; - code = Blockly.PHP.scrub_(block, code); - // Add % so as not to collide with helper functions in definitions list. - Blockly.PHP.definitions_['%' + funcName] = code; - return null; -}; - -// Defining a procedure without a return value uses the same generator as -// a procedure with a return value. -Blockly.PHP['procedures_defnoreturn'] = - Blockly.PHP['procedures_defreturn']; - -Blockly.PHP['procedures_callreturn'] = function(block) { - // Call a procedure with a return value. - var funcName = Blockly.PHP.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.PHP.valueToCode(block, 'ARG' + i, - Blockly.PHP.ORDER_COMMA) || 'null'; - } - var code = funcName + '(' + args.join(', ') + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['procedures_callnoreturn'] = function(block) { - // Call a procedure with no return value. - // Generated code is for a function call as a statement is the same as a - // function call as a value, with the addition of line ending. - var tuple = Blockly.PHP['procedures_callreturn'](block); - return tuple[0] + ';\n'; -}; - -Blockly.PHP['procedures_ifreturn'] = function(block) { - // Conditionally return value from a procedure. - var condition = Blockly.PHP.valueToCode(block, 'CONDITION', - Blockly.PHP.ORDER_NONE) || 'false'; - var code = 'if (' + condition + ') {\n'; - if (Blockly.PHP.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the return is triggered. - code += Blockly.PHP.prefixLines( - Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX, block), - Blockly.PHP.INDENT); - } - if (block.hasReturnValue_) { - var value = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || 'null'; - code += Blockly.PHP.INDENT + 'return ' + value + ';\n'; - } else { - code += Blockly.PHP.INDENT + 'return;\n'; - } - code += '}\n'; - return code; -}; diff --git a/lib/blockly/generators/php/text.js b/lib/blockly/generators/php/text.js deleted file mode 100644 index a3eb618..0000000 --- a/lib/blockly/generators/php/text.js +++ /dev/null @@ -1,282 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for text blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.texts'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['text'] = function(block) { - // Text value. - var code = Blockly.PHP.quote_(block.getFieldValue('TEXT')); - return [code, Blockly.PHP.ORDER_ATOMIC]; -}; - -Blockly.PHP['text_multiline'] = function(block) { - // Text value. - var code = Blockly.PHP.multiline_quote_(block.getFieldValue('TEXT')); - return [code, Blockly.PHP.ORDER_ATOMIC]; -}; - -Blockly.PHP['text_join'] = function(block) { - // Create a string made up of any number of elements of any type. - if (block.itemCount_ == 0) { - return ['\'\'', Blockly.PHP.ORDER_ATOMIC]; - } else if (block.itemCount_ == 1) { - var element = Blockly.PHP.valueToCode(block, 'ADD0', - Blockly.PHP.ORDER_NONE) || '\'\''; - var code = element; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } else if (block.itemCount_ == 2) { - var element0 = Blockly.PHP.valueToCode(block, 'ADD0', - Blockly.PHP.ORDER_ATOMIC) || '\'\''; - var element1 = Blockly.PHP.valueToCode(block, 'ADD1', - Blockly.PHP.ORDER_ATOMIC) || '\'\''; - var code = element0 + ' . ' + element1; - return [code, Blockly.PHP.ORDER_STRING_CONCAT]; - } else { - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.PHP.valueToCode(block, 'ADD' + i, - Blockly.PHP.ORDER_COMMA) || '\'\''; - } - var code = 'implode(\'\', array(' + elements.join(',') + '))'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } -}; - -Blockly.PHP['text_append'] = function(block) { - // Append to a variable in place. - var varName = Blockly.PHP.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var value = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_ASSIGNMENT) || '\'\''; - return varName + ' .= ' + value + ';\n'; -}; - -Blockly.PHP['text_length'] = function(block) { - // String or array length. - var functionName = Blockly.PHP.provideFunction_( - 'length', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '($value) {', - ' if (is_string($value)) {', - ' return strlen($value);', - ' } else {', - ' return count($value);', - ' }', - '}']); - var text = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || '\'\''; - return [functionName + '(' + text + ')', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_isEmpty'] = function(block) { - // Is the string null or array empty? - var text = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || '\'\''; - return ['empty(' + text + ')', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_indexOf'] = function(block) { - // Search the text for a substring. - var operator = block.getFieldValue('END') == 'FIRST' ? - 'strpos' : 'strrpos'; - var substring = Blockly.PHP.valueToCode(block, 'FIND', - Blockly.PHP.ORDER_NONE) || '\'\''; - var text = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_NONE) || '\'\''; - if (block.workspace.options.oneBasedIndex) { - var errorIndex = ' 0'; - var indexAdjustment = ' + 1'; - } else { - var errorIndex = ' -1'; - var indexAdjustment = ''; - } - var functionName = Blockly.PHP.provideFunction_( - block.getFieldValue('END') == 'FIRST' ? - 'text_indexOf' : 'text_lastIndexOf', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($text, $search) {', - ' $pos = ' + operator + '($text, $search);', - ' return $pos === false ? ' + errorIndex + ' : $pos' + - indexAdjustment + ';', - '}']); - var code = functionName + '(' + text + ', ' + substring + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_charAt'] = function(block) { - // Get letter at index. - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var textOrder = (where == 'RANDOM') ? Blockly.PHP.ORDER_NONE : - Blockly.PHP.ORDER_COMMA; - var text = Blockly.PHP.valueToCode(block, 'VALUE', textOrder) || '\'\''; - switch (where) { - case 'FIRST': - var code = 'substr(' + text + ', 0, 1)'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - case 'LAST': - var code = 'substr(' + text + ', -1)'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - case 'FROM_START': - var at = Blockly.PHP.getAdjusted(block, 'AT'); - var code = 'substr(' + text + ', ' + at + ', 1)'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - case 'FROM_END': - var at = Blockly.PHP.getAdjusted(block, 'AT', 1, true); - var code = 'substr(' + text + ', ' + at + ', 1)'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - case 'RANDOM': - var functionName = Blockly.PHP.provideFunction_( - 'text_random_letter', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '($text) {', - ' return $text[rand(0, strlen($text) - 1)];', - '}']); - code = functionName + '(' + text + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; - } - throw Error('Unhandled option (text_charAt).'); -}; - -Blockly.PHP['text_getSubstring'] = function(block) { - // Get substring. - var text = Blockly.PHP.valueToCode(block, 'STRING', - Blockly.PHP.ORDER_FUNCTION_CALL) || '\'\''; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - if (where1 == 'FIRST' && where2 == 'LAST') { - var code = text; - } else { - var at1 = Blockly.PHP.getAdjusted(block, 'AT1'); - var at2 = Blockly.PHP.getAdjusted(block, 'AT2'); - var functionName = Blockly.PHP.provideFunction_( - 'text_get_substring', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($text, $where1, $at1, $where2, $at2) {', - ' if ($where1 == \'FROM_END\') {', - ' $at1 = strlen($text) - 1 - $at1;', - ' } else if ($where1 == \'FIRST\') {', - ' $at1 = 0;', - ' } else if ($where1 != \'FROM_START\') {', - ' throw new Exception(\'Unhandled option (text_get_substring).\');', - ' }', - ' $length = 0;', - ' if ($where2 == \'FROM_START\') {', - ' $length = $at2 - $at1 + 1;', - ' } else if ($where2 == \'FROM_END\') {', - ' $length = strlen($text) - $at1 - $at2;', - ' } else if ($where2 == \'LAST\') {', - ' $length = strlen($text) - $at1;', - ' } else {', - ' throw new Exception(\'Unhandled option (text_get_substring).\');', - ' }', - ' return substr($text, $at1, $length);', - '}']); - var code = functionName + '(' + text + ', \'' + - where1 + '\', ' + at1 + ', \'' + where2 + '\', ' + at2 + ')'; - } - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_changeCase'] = function(block) { - // Change capitalization. - var text = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_NONE) || '\'\''; - if (block.getFieldValue('CASE') == 'UPPERCASE') { - var code = 'strtoupper(' + text + ')'; - } else if (block.getFieldValue('CASE') == 'LOWERCASE') { - var code = 'strtolower(' + text + ')'; - } else if (block.getFieldValue('CASE') == 'TITLECASE') { - var code = 'ucwords(strtolower(' + text + '))'; - } - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_trim'] = function(block) { - // Trim spaces. - var OPERATORS = { - 'LEFT': 'ltrim', - 'RIGHT': 'rtrim', - 'BOTH': 'trim' - }; - var operator = OPERATORS[block.getFieldValue('MODE')]; - var text = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_NONE) || '\'\''; - return [operator + '(' + text + ')', Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_print'] = function(block) { - // Print statement. - var msg = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_NONE) || '\'\''; - return 'print(' + msg + ');\n'; -}; - -Blockly.PHP['text_prompt_ext'] = function(block) { - // Prompt function. - if (block.getField('TEXT')) { - // Internal message. - var msg = Blockly.PHP.quote_(block.getFieldValue('TEXT')); - } else { - // External message. - var msg = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_NONE) || '\'\''; - } - var code = 'readline(' + msg + ')'; - var toNumber = block.getFieldValue('TYPE') == 'NUMBER'; - if (toNumber) { - code = 'floatval(' + code + ')'; - } - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_prompt'] = Blockly.PHP['text_prompt_ext']; - -Blockly.PHP['text_count'] = function(block) { - var text = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_MEMBER) || '\'\''; - var sub = Blockly.PHP.valueToCode(block, 'SUB', - Blockly.PHP.ORDER_NONE) || '\'\''; - var code = 'strlen(' + sub + ') === 0' - + ' ? strlen(' + text + ') + 1' - + ' : substr_count(' + text + ', ' + sub + ')'; - return [code, Blockly.PHP.ORDER_CONDITIONAL]; -}; - -Blockly.PHP['text_replace'] = function(block) { - var text = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_MEMBER) || '\'\''; - var from = Blockly.PHP.valueToCode(block, 'FROM', - Blockly.PHP.ORDER_NONE) || '\'\''; - var to = Blockly.PHP.valueToCode(block, 'TO', - Blockly.PHP.ORDER_NONE) || '\'\''; - var code = 'str_replace(' + from + ', ' + to + ', ' + text + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; - -Blockly.PHP['text_reverse'] = function(block) { - var text = Blockly.PHP.valueToCode(block, 'TEXT', - Blockly.PHP.ORDER_MEMBER) || '\'\''; - var code = 'strrev(' + text + ')'; - return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/php/variables.js b/lib/blockly/generators/php/variables.js deleted file mode 100644 index 61b162e..0000000 --- a/lib/blockly/generators/php/variables.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for variable blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -goog.provide('Blockly.PHP.variables'); - -goog.require('Blockly.PHP'); - - -Blockly.PHP['variables_get'] = function(block) { - // Variable getter. - var code = Blockly.PHP.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return [code, Blockly.PHP.ORDER_ATOMIC]; -}; - -Blockly.PHP['variables_set'] = function(block) { - // Variable setter. - var argument0 = Blockly.PHP.valueToCode(block, 'VALUE', - Blockly.PHP.ORDER_ASSIGNMENT) || '0'; - var varName = Blockly.PHP.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - return varName + ' = ' + argument0 + ';\n'; -}; diff --git a/lib/blockly/generators/php/variables_dynamic.js b/lib/blockly/generators/php/variables_dynamic.js deleted file mode 100644 index 1a5383b..0000000 --- a/lib/blockly/generators/php/variables_dynamic.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for dynamic variable blocks. - * @author fenichel@google.com (Rachel Fenichel) - */ -'use strict'; - -goog.provide('Blockly.PHP.variablesDynamic'); - -goog.require('Blockly.PHP'); -goog.require('Blockly.PHP.variables'); - - -// PHP is dynamically typed. -Blockly.PHP['variables_get_dynamic'] = Blockly.PHP['variables_get']; -Blockly.PHP['variables_set_dynamic'] = Blockly.PHP['variables_set']; diff --git a/lib/blockly/generators/python.js b/lib/blockly/generators/python.js deleted file mode 100644 index 544cd29..0000000 --- a/lib/blockly/generators/python.js +++ /dev/null @@ -1,331 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Helper functions for generating Python for blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Python'); - -goog.require('Blockly.Generator'); -goog.require('Blockly.utils.string'); - - -/** - * Python code generator. - * @type {!Blockly.Generator} - */ -Blockly.Python = new Blockly.Generator('Python'); - -/** - * List of illegal variable names. - * This is not intended to be a security feature. Blockly is 100% client-side, - * so bypassing this list is trivial. This is intended to prevent users from - * accidentally clobbering a built-in object or function. - * @private - */ -Blockly.Python.addReservedWords( - // import keyword - // print(','.join(sorted(keyword.kwlist))) - // https://docs.python.org/3/reference/lexical_analysis.html#keywords - // https://docs.python.org/2/reference/lexical_analysis.html#keywords - 'False,None,True,and,as,assert,break,class,continue,def,del,elif,else,' + - 'except,exec,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,' + - 'or,pass,print,raise,return,try,while,with,yield,' + - // https://docs.python.org/3/library/constants.html - // https://docs.python.org/2/library/constants.html - 'NotImplemented,Ellipsis,__debug__,quit,exit,copyright,license,credits,' + - // >>> print(','.join(sorted(dir(__builtins__)))) - // https://docs.python.org/3/library/functions.html - // https://docs.python.org/2/library/functions.html - 'ArithmeticError,AssertionError,AttributeError,BaseException,' + - 'BlockingIOError,BrokenPipeError,BufferError,BytesWarning,' + - 'ChildProcessError,ConnectionAbortedError,ConnectionError,' + - 'ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,' + - 'Ellipsis,EnvironmentError,Exception,FileExistsError,FileNotFoundError,' + - 'FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,' + - 'ImportWarning,IndentationError,IndexError,InterruptedError,' + - 'IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,' + - 'ModuleNotFoundError,NameError,NotADirectoryError,NotImplemented,' + - 'NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,' + - 'PermissionError,ProcessLookupError,RecursionError,ReferenceError,' + - 'ResourceWarning,RuntimeError,RuntimeWarning,StandardError,' + - 'StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,' + - 'SystemExit,TabError,TimeoutError,TypeError,UnboundLocalError,' + - 'UnicodeDecodeError,UnicodeEncodeError,UnicodeError,' + - 'UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,' + - 'ZeroDivisionError,_,__build_class__,__debug__,__doc__,__import__,' + - '__loader__,__name__,__package__,__spec__,abs,all,any,apply,ascii,' + - 'basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,' + - 'coerce,compile,complex,copyright,credits,delattr,dict,dir,divmod,' + - 'enumerate,eval,exec,execfile,exit,file,filter,float,format,frozenset,' + - 'getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,' + - 'issubclass,iter,len,license,list,locals,long,map,max,memoryview,min,' + - 'next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,' + - 'reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,' + - 'sum,super,tuple,type,unichr,unicode,vars,xrange,zip' -); - -/** - * Order of operation ENUMs. - * http://docs.python.org/reference/expressions.html#summary - */ -Blockly.Python.ORDER_ATOMIC = 0; // 0 "" ... -Blockly.Python.ORDER_COLLECTION = 1; // tuples, lists, dictionaries -Blockly.Python.ORDER_STRING_CONVERSION = 1; // `expression...` -Blockly.Python.ORDER_MEMBER = 2.1; // . [] -Blockly.Python.ORDER_FUNCTION_CALL = 2.2; // () -Blockly.Python.ORDER_EXPONENTIATION = 3; // ** -Blockly.Python.ORDER_UNARY_SIGN = 4; // + - -Blockly.Python.ORDER_BITWISE_NOT = 4; // ~ -Blockly.Python.ORDER_MULTIPLICATIVE = 5; // * / // % -Blockly.Python.ORDER_ADDITIVE = 6; // + - -Blockly.Python.ORDER_BITWISE_SHIFT = 7; // << >> -Blockly.Python.ORDER_BITWISE_AND = 8; // & -Blockly.Python.ORDER_BITWISE_XOR = 9; // ^ -Blockly.Python.ORDER_BITWISE_OR = 10; // | -Blockly.Python.ORDER_RELATIONAL = 11; // in, not in, is, is not, - // <, <=, >, >=, <>, !=, == -Blockly.Python.ORDER_LOGICAL_NOT = 12; // not -Blockly.Python.ORDER_LOGICAL_AND = 13; // and -Blockly.Python.ORDER_LOGICAL_OR = 14; // or -Blockly.Python.ORDER_CONDITIONAL = 15; // if else -Blockly.Python.ORDER_LAMBDA = 16; // lambda -Blockly.Python.ORDER_NONE = 99; // (...) - -/** - * List of outer-inner pairings that do NOT require parentheses. - * @type {!Array.>} - */ -Blockly.Python.ORDER_OVERRIDES = [ - // (foo()).bar -> foo().bar - // (foo())[0] -> foo()[0] - [Blockly.Python.ORDER_FUNCTION_CALL, Blockly.Python.ORDER_MEMBER], - // (foo())() -> foo()() - [Blockly.Python.ORDER_FUNCTION_CALL, Blockly.Python.ORDER_FUNCTION_CALL], - // (foo.bar).baz -> foo.bar.baz - // (foo.bar)[0] -> foo.bar[0] - // (foo[0]).bar -> foo[0].bar - // (foo[0])[1] -> foo[0][1] - [Blockly.Python.ORDER_MEMBER, Blockly.Python.ORDER_MEMBER], - // (foo.bar)() -> foo.bar() - // (foo[0])() -> foo[0]() - [Blockly.Python.ORDER_MEMBER, Blockly.Python.ORDER_FUNCTION_CALL], - - // not (not foo) -> not not foo - [Blockly.Python.ORDER_LOGICAL_NOT, Blockly.Python.ORDER_LOGICAL_NOT], - // a and (b and c) -> a and b and c - [Blockly.Python.ORDER_LOGICAL_AND, Blockly.Python.ORDER_LOGICAL_AND], - // a or (b or c) -> a or b or c - [Blockly.Python.ORDER_LOGICAL_OR, Blockly.Python.ORDER_LOGICAL_OR] -]; - -/** - * Initialise the database of variable names. - * @param {!Blockly.Workspace} workspace Workspace to generate code from. - */ -Blockly.Python.init = function(workspace) { - /** - * Empty loops or conditionals are not allowed in Python. - */ - Blockly.Python.PASS = this.INDENT + 'pass\n'; - // Create a dictionary of definitions to be printed before the code. - Blockly.Python.definitions_ = Object.create(null); - // Create a dictionary mapping desired function names in definitions_ - // to actual function names (to avoid collisions with user functions). - Blockly.Python.functionNames_ = Object.create(null); - - if (!Blockly.Python.variableDB_) { - Blockly.Python.variableDB_ = - new Blockly.Names(Blockly.Python.RESERVED_WORDS_); - } else { - Blockly.Python.variableDB_.reset(); - } - - Blockly.Python.variableDB_.setVariableMap(workspace.getVariableMap()); - - var defvars = []; - // Add developer variables (not created or named by the user). - var devVarList = Blockly.Variables.allDeveloperVariables(workspace); - for (var i = 0; i < devVarList.length; i++) { - defvars.push(Blockly.Python.variableDB_.getName(devVarList[i], - Blockly.Names.DEVELOPER_VARIABLE_TYPE) + ' = None'); - } - - // Add user variables, but only ones that are being used. - var variables = Blockly.Variables.allUsedVarModels(workspace); - for (var i = 0; i < variables.length; i++) { - defvars.push(Blockly.Python.variableDB_.getName(variables[i].getId(), - Blockly.Variables.NAME_TYPE) + ' = None'); - } - - Blockly.Python.definitions_['variables'] = defvars.join('\n'); -}; - -/** - * Prepend the generated code with the variable definitions. - * @param {string} code Generated code. - * @return {string} Completed code. - */ -Blockly.Python.finish = function(code) { - // Convert the definitions dictionary into a list. - var imports = []; - var definitions = []; - for (var name in Blockly.Python.definitions_) { - var def = Blockly.Python.definitions_[name]; - if (def.match(/^(from\s+\S+\s+)?import\s+\S+/)) { - imports.push(def); - } else { - definitions.push(def); - } - } - // Clean up temporary data. - delete Blockly.Python.definitions_; - delete Blockly.Python.functionNames_; - Blockly.Python.variableDB_.reset(); - var allDefs = imports.join('\n') + '\n\n' + definitions.join('\n\n'); - return allDefs.replace(/\n\n+/g, '\n\n').replace(/\n*$/, '\n\n\n') + code; -}; - -/** - * Naked values are top-level blocks with outputs that aren't plugged into - * anything. - * @param {string} line Line of generated code. - * @return {string} Legal line of code. - */ -Blockly.Python.scrubNakedValue = function(line) { - return line + '\n'; -}; - -/** - * Encode a string as a properly escaped Python string, complete with quotes. - * @param {string} string Text to encode. - * @return {string} Python string. - * @private - */ -Blockly.Python.quote_ = function(string) { - // Can't use goog.string.quote since % must also be escaped. - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n'); - - // Follow the CPython behaviour of repr() for a non-byte string. - var quote = '\''; - if (string.indexOf('\'') !== -1) { - if (string.indexOf('"') === -1) { - quote = '"'; - } else { - string = string.replace(/'/g, '\\\''); - } - }; - return quote + string + quote; -}; - -/** - * Encode a string as a properly escaped multiline Python string, complete - * with quotes. - * @param {string} string Text to encode. - * @return {string} Python string. - * @private - */ -Blockly.Python.multiline_quote_ = function(string) { - // Can't use goog.string.quote since % must also be escaped. - string = string.replace(/'''/g, '\\\'\\\'\\\''); - return '\'\'\'' + string + '\'\'\''; -}; - -/** - * Common tasks for generating Python from blocks. - * Handles comments for the specified block and any connected value blocks. - * Calls any statements following this block. - * @param {!Blockly.Block} block The current block. - * @param {string} code The Python code created for this block. - * @param {boolean=} opt_thisOnly True to generate code for only this statement. - * @return {string} Python code with comments and subsequent blocks added. - * @private - */ -Blockly.Python.scrub_ = function(block, code, opt_thisOnly) { - var commentCode = ''; - // Only collect comments for blocks that aren't inline. - if (!block.outputConnection || !block.outputConnection.targetConnection) { - // Collect comment for this block. - var comment = block.getCommentText(); - if (comment) { - comment = Blockly.utils.string.wrap(comment, - Blockly.Python.COMMENT_WRAP - 3); - commentCode += Blockly.Python.prefixLines(comment + '\n', '# '); - } - // Collect comments for all value arguments. - // Don't collect comments for nested statements. - for (var i = 0; i < block.inputList.length; i++) { - if (block.inputList[i].type == Blockly.INPUT_VALUE) { - var childBlock = block.inputList[i].connection.targetBlock(); - if (childBlock) { - var comment = Blockly.Python.allNestedComments(childBlock); - if (comment) { - commentCode += Blockly.Python.prefixLines(comment, '# '); - } - } - } - } - } - var nextBlock = block.nextConnection && block.nextConnection.targetBlock(); - var nextCode = opt_thisOnly ? '' : Blockly.Python.blockToCode(nextBlock); - return commentCode + code + nextCode; -}; - -/** - * Gets a property and adjusts the value, taking into account indexing, and - * casts to an integer. - * @param {!Blockly.Block} block The block. - * @param {string} atId The property ID of the element to get. - * @param {number=} opt_delta Value to add. - * @param {boolean=} opt_negate Whether to negate the value. - * @return {string|number} - */ -Blockly.Python.getAdjustedInt = function(block, atId, opt_delta, opt_negate) { - var delta = opt_delta || 0; - if (block.workspace.options.oneBasedIndex) { - delta--; - } - var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0'; - var atOrder = delta ? Blockly.Python.ORDER_ADDITIVE : - Blockly.Python.ORDER_NONE; - var at = Blockly.Python.valueToCode(block, atId, atOrder) || defaultAtIndex; - - if (Blockly.isNumber(at)) { - // If the index is a naked number, adjust it right now. - at = parseInt(at, 10) + delta; - if (opt_negate) { - at = -at; - } - } else { - // If the index is dynamic, adjust it in code. - if (delta > 0) { - at = 'int(' + at + ' + ' + delta + ')'; - } else if (delta < 0) { - at = 'int(' + at + ' - ' + -delta + ')'; - } else { - at = 'int(' + at + ')'; - } - if (opt_negate) { - at = '-' + at; - } - } - return at; -}; diff --git a/lib/blockly/generators/python/colour.js b/lib/blockly/generators/python/colour.js deleted file mode 100644 index 6b1d2ad..0000000 --- a/lib/blockly/generators/python/colour.js +++ /dev/null @@ -1,83 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for colour blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Python.colour'); - -goog.require('Blockly.Python'); - - -Blockly.Python['colour_picker'] = function(block) { - // Colour picker. - var code = Blockly.Python.quote_(block.getFieldValue('COLOUR')); - return [code, Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['colour_random'] = function(block) { - // Generate a random colour. - Blockly.Python.definitions_['import_random'] = 'import random'; - var code = '\'#%06x\' % random.randint(0, 2**24 - 1)'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['colour_rgb'] = function(block) { - // Compose a colour from RGB components expressed as percentages. - var functionName = Blockly.Python.provideFunction_( - 'colour_rgb', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(r, g, b):', - ' r = round(min(100, max(0, r)) * 2.55)', - ' g = round(min(100, max(0, g)) * 2.55)', - ' b = round(min(100, max(0, b)) * 2.55)', - ' return \'#%02x%02x%02x\' % (r, g, b)']); - var r = Blockly.Python.valueToCode(block, 'RED', - Blockly.Python.ORDER_NONE) || 0; - var g = Blockly.Python.valueToCode(block, 'GREEN', - Blockly.Python.ORDER_NONE) || 0; - var b = Blockly.Python.valueToCode(block, 'BLUE', - Blockly.Python.ORDER_NONE) || 0; - var code = functionName + '(' + r + ', ' + g + ', ' + b + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['colour_blend'] = function(block) { - // Blend two colours together. - var functionName = Blockly.Python.provideFunction_( - 'colour_blend', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + - '(colour1, colour2, ratio):', - ' r1, r2 = int(colour1[1:3], 16), int(colour2[1:3], 16)', - ' g1, g2 = int(colour1[3:5], 16), int(colour2[3:5], 16)', - ' b1, b2 = int(colour1[5:7], 16), int(colour2[5:7], 16)', - ' ratio = min(1, max(0, ratio))', - ' r = round(r1 * (1 - ratio) + r2 * ratio)', - ' g = round(g1 * (1 - ratio) + g2 * ratio)', - ' b = round(b1 * (1 - ratio) + b2 * ratio)', - ' return \'#%02x%02x%02x\' % (r, g, b)']); - var colour1 = Blockly.Python.valueToCode(block, 'COLOUR1', - Blockly.Python.ORDER_NONE) || '\'#000000\''; - var colour2 = Blockly.Python.valueToCode(block, 'COLOUR2', - Blockly.Python.ORDER_NONE) || '\'#000000\''; - var ratio = Blockly.Python.valueToCode(block, 'RATIO', - Blockly.Python.ORDER_NONE) || 0; - var code = functionName + '(' + colour1 + ', ' + colour2 + ', ' + ratio + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/python/lists.js b/lib/blockly/generators/python/lists.js deleted file mode 100644 index a31ec27..0000000 --- a/lib/blockly/generators/python/lists.js +++ /dev/null @@ -1,360 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for list blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Python.lists'); - -goog.require('Blockly.Python'); - - -Blockly.Python['lists_create_empty'] = function(block) { - // Create an empty list. - return ['[]', Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['lists_create_with'] = function(block) { - // Create a list with any number of elements of any type. - var elements = new Array(block.itemCount_); - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.Python.valueToCode(block, 'ADD' + i, - Blockly.Python.ORDER_NONE) || 'None'; - } - var code = '[' + elements.join(', ') + ']'; - return [code, Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['lists_repeat'] = function(block) { - // Create a list with one element repeated. - var item = Blockly.Python.valueToCode(block, 'ITEM', - Blockly.Python.ORDER_NONE) || 'None'; - var times = Blockly.Python.valueToCode(block, 'NUM', - Blockly.Python.ORDER_MULTIPLICATIVE) || '0'; - var code = '[' + item + '] * ' + times; - return [code, Blockly.Python.ORDER_MULTIPLICATIVE]; -}; - -Blockly.Python['lists_length'] = function(block) { - // String or array length. - var list = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '[]'; - return ['len(' + list + ')', Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['lists_isEmpty'] = function(block) { - // Is the string null or array empty? - var list = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '[]'; - var code = 'not len(' + list + ')'; - return [code, Blockly.Python.ORDER_LOGICAL_NOT]; -}; - -Blockly.Python['lists_indexOf'] = function(block) { - // Find an item in the list. - var item = Blockly.Python.valueToCode(block, 'FIND', - Blockly.Python.ORDER_NONE) || '[]'; - var list = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '\'\''; - if (block.workspace.options.oneBasedIndex) { - var errorIndex = ' 0'; - var firstIndexAdjustment = ' + 1'; - var lastIndexAdjustment = ''; - } else { - var errorIndex = ' -1'; - var firstIndexAdjustment = ''; - var lastIndexAdjustment = ' - 1'; - } - if (block.getFieldValue('END') == 'FIRST') { - var functionName = Blockly.Python.provideFunction_( - 'first_index', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + - '(my_list, elem):', - ' try: index = my_list.index(elem)' + firstIndexAdjustment, - ' except: index =' + errorIndex, - ' return index']); - var code = functionName + '(' + list + ', ' + item + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } - var functionName = Blockly.Python.provideFunction_( - 'last_index', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(my_list, elem):', - ' try: index = len(my_list) - my_list[::-1].index(elem)' + - lastIndexAdjustment, - ' except: index =' + errorIndex, - ' return index']); - var code = functionName + '(' + list + ', ' + item + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['lists_getIndex'] = function(block) { - // Get element at index. - // Note: Until January 2013 this block did not have MODE or WHERE inputs. - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var listOrder = (where == 'RANDOM') ? Blockly.Python.ORDER_NONE : - Blockly.Python.ORDER_MEMBER; - var list = Blockly.Python.valueToCode(block, 'VALUE', listOrder) || '[]'; - - switch (where) { - case 'FIRST': - if (mode == 'GET') { - var code = list + '[0]'; - return [code, Blockly.Python.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.pop(0)'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return list + '.pop(0)\n'; - } - break; - case 'LAST': - if (mode == 'GET') { - var code = list + '[-1]'; - return [code, Blockly.Python.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.pop()'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return list + '.pop()\n'; - } - break; - case 'FROM_START': - var at = Blockly.Python.getAdjustedInt(block, 'AT'); - if (mode == 'GET') { - var code = list + '[' + at + ']'; - return [code, Blockly.Python.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.pop(' + at + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return list + '.pop(' + at + ')\n'; - } - break; - case'FROM_END': - var at = Blockly.Python.getAdjustedInt(block, 'AT', 1, true); - if (mode == 'GET') { - var code = list + '[' + at + ']'; - return [code, Blockly.Python.ORDER_MEMBER]; - } else if (mode == 'GET_REMOVE') { - var code = list + '.pop(' + at + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return list + '.pop(' + at + ')\n'; - } - break; - case 'RANDOM': - Blockly.Python.definitions_['import_random'] = 'import random'; - if (mode == 'GET') { - code = 'random.choice(' + list + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } else { - var functionName = Blockly.Python.provideFunction_( - 'lists_remove_random_item', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(myList):', - ' x = int(random.random() * len(myList))', - ' return myList.pop(x)']); - code = functionName + '(' + list + ')'; - if (mode == 'GET_REMOVE') { - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } else if (mode == 'REMOVE') { - return code + '\n'; - } - } - break; - } - throw Error('Unhandled combination (lists_getIndex).'); -}; - -Blockly.Python['lists_setIndex'] = function(block) { - // Set element at index. - // Note: Until February 2013 this block did not have MODE or WHERE inputs. - var list = Blockly.Python.valueToCode(block, 'LIST', - Blockly.Python.ORDER_MEMBER) || '[]'; - var mode = block.getFieldValue('MODE') || 'GET'; - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var value = Blockly.Python.valueToCode(block, 'TO', - Blockly.Python.ORDER_NONE) || 'None'; - // Cache non-trivial values to variables to prevent repeated look-ups. - // Closure, which accesses and modifies 'list'. - function cacheList() { - if (list.match(/^\w+$/)) { - return ''; - } - var listVar = Blockly.Python.variableDB_.getDistinctName( - 'tmp_list', Blockly.Variables.NAME_TYPE); - var code = listVar + ' = ' + list + '\n'; - list = listVar; - return code; - } - - switch (where) { - case 'FIRST': - if (mode == 'SET') { - return list + '[0] = ' + value + '\n'; - } else if (mode == 'INSERT') { - return list + '.insert(0, ' + value + ')\n'; - } - break; - case 'LAST': - if (mode == 'SET') { - return list + '[-1] = ' + value + '\n'; - } else if (mode == 'INSERT') { - return list + '.append(' + value + ')\n'; - } - break; - case 'FROM_START': - var at = Blockly.Python.getAdjustedInt(block, 'AT'); - if (mode == 'SET') { - return list + '[' + at + '] = ' + value + '\n'; - } else if (mode == 'INSERT') { - return list + '.insert(' + at + ', ' + value + ')\n'; - } - break; - case 'FROM_END': - var at = Blockly.Python.getAdjustedInt(block, 'AT', 1, true); - if (mode == 'SET') { - return list + '[' + at + '] = ' + value + '\n'; - } else if (mode == 'INSERT') { - return list + '.insert(' + at + ', ' + value + ')\n'; - } - break; - case 'RANDOM': - Blockly.Python.definitions_['import_random'] = 'import random'; - var code = cacheList(); - var xVar = Blockly.Python.variableDB_.getDistinctName( - 'tmp_x', Blockly.Variables.NAME_TYPE); - code += xVar + ' = int(random.random() * len(' + list + '))\n'; - if (mode == 'SET') { - code += list + '[' + xVar + '] = ' + value + '\n'; - return code; - } else if (mode == 'INSERT') { - code += list + '.insert(' + xVar + ', ' + value + ')\n'; - return code; - } - break; - } - throw Error('Unhandled combination (lists_setIndex).'); -}; - -Blockly.Python['lists_getSublist'] = function(block) { - // Get sublist. - var list = Blockly.Python.valueToCode(block, 'LIST', - Blockly.Python.ORDER_MEMBER) || '[]'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - switch (where1) { - case 'FROM_START': - var at1 = Blockly.Python.getAdjustedInt(block, 'AT1'); - if (at1 == '0') { - at1 = ''; - } - break; - case 'FROM_END': - var at1 = Blockly.Python.getAdjustedInt(block, 'AT1', 1, true); - break; - case 'FIRST': - var at1 = ''; - break; - default: - throw Error('Unhandled option (lists_getSublist)'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 1); - break; - case 'FROM_END': - var at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 0, true); - // Ensure that if the result calculated is 0 that sub-sequence will - // include all elements as expected. - if (!Blockly.isNumber(String(at2))) { - Blockly.Python.definitions_['import_sys'] = 'import sys'; - at2 += ' or sys.maxsize'; - } else if (at2 == '0') { - at2 = ''; - } - break; - case 'LAST': - var at2 = ''; - break; - default: - throw Error('Unhandled option (lists_getSublist)'); - } - var code = list + '[' + at1 + ' : ' + at2 + ']'; - return [code, Blockly.Python.ORDER_MEMBER]; -}; - -Blockly.Python['lists_sort'] = function(block) { - // Block for sorting a list. - var list = (Blockly.Python.valueToCode(block, 'LIST', - Blockly.Python.ORDER_NONE) || '[]'); - var type = block.getFieldValue('TYPE'); - var reverse = block.getFieldValue('DIRECTION') === '1' ? 'False' : 'True'; - var sortFunctionName = Blockly.Python.provideFunction_('lists_sort', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + - '(my_list, type, reverse):', - ' def try_float(s):', - ' try:', - ' return float(s)', - ' except:', - ' return 0', - ' key_funcs = {', - ' "NUMERIC": try_float,', - ' "TEXT": str,', - ' "IGNORE_CASE": lambda s: str(s).lower()', - ' }', - ' key_func = key_funcs[type]', - ' list_cpy = list(my_list)', // Clone the list. - ' return sorted(list_cpy, key=key_func, reverse=reverse)' - ]); - - var code = sortFunctionName + - '(' + list + ', "' + type + '", ' + reverse + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['lists_split'] = function(block) { - // Block for splitting text into a list, or joining a list into text. - var mode = block.getFieldValue('MODE'); - if (mode == 'SPLIT') { - var value_input = Blockly.Python.valueToCode(block, 'INPUT', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var value_delim = Blockly.Python.valueToCode(block, 'DELIM', - Blockly.Python.ORDER_NONE); - var code = value_input + '.split(' + value_delim + ')'; - } else if (mode == 'JOIN') { - var value_input = Blockly.Python.valueToCode(block, 'INPUT', - Blockly.Python.ORDER_NONE) || '[]'; - var value_delim = Blockly.Python.valueToCode(block, 'DELIM', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var code = value_delim + '.join(' + value_input + ')'; - } else { - throw Error('Unknown mode: ' + mode); - } - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['lists_reverse'] = function(block) { - // Block for reversing a list. - var list = Blockly.Python.valueToCode(block, 'LIST', - Blockly.Python.ORDER_NONE) || '[]'; - var code = 'list(reversed(' + list + '))'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; diff --git a/lib/blockly/generators/python/logic.js b/lib/blockly/generators/python/logic.js deleted file mode 100644 index bd29f3e..0000000 --- a/lib/blockly/generators/python/logic.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for logic blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Python.logic'); - -goog.require('Blockly.Python'); - - -Blockly.Python['controls_if'] = function(block) { - // If/elseif/else condition. - var n = 0; - var code = '', branchCode, conditionCode; - if (Blockly.Python.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - code += Blockly.Python.injectId(Blockly.Python.STATEMENT_PREFIX, block); - } - do { - conditionCode = Blockly.Python.valueToCode(block, 'IF' + n, - Blockly.Python.ORDER_NONE) || 'False'; - branchCode = Blockly.Python.statementToCode(block, 'DO' + n) || - Blockly.Python.PASS; - if (Blockly.Python.STATEMENT_SUFFIX) { - branchCode = Blockly.Python.prefixLines( - Blockly.Python.injectId(Blockly.Python.STATEMENT_SUFFIX, block), - Blockly.Python.INDENT) + branchCode; - } - code += (n == 0 ? 'if ' : 'elif ' ) + conditionCode + ':\n' + branchCode; - ++n; - } while (block.getInput('IF' + n)); - - if (block.getInput('ELSE') || Blockly.Python.STATEMENT_SUFFIX) { - branchCode = Blockly.Python.statementToCode(block, 'ELSE') || - Blockly.Python.PASS; - if (Blockly.Python.STATEMENT_SUFFIX) { - branchCode = Blockly.Python.prefixLines( - Blockly.Python.injectId(Blockly.Python.STATEMENT_SUFFIX, block), - Blockly.Python.INDENT) + branchCode; - } - code += 'else:\n' + branchCode; - } - return code; -}; - -Blockly.Python['controls_ifelse'] = Blockly.Python['controls_if']; - -Blockly.Python['logic_compare'] = function(block) { - // Comparison operator. - var OPERATORS = { - 'EQ': '==', - 'NEQ': '!=', - 'LT': '<', - 'LTE': '<=', - 'GT': '>', - 'GTE': '>=' - }; - var operator = OPERATORS[block.getFieldValue('OP')]; - var order = Blockly.Python.ORDER_RELATIONAL; - var argument0 = Blockly.Python.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'B', order) || '0'; - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.Python['logic_operation'] = function(block) { - // Operations 'and', 'or'. - var operator = (block.getFieldValue('OP') == 'AND') ? 'and' : 'or'; - var order = (operator == 'and') ? Blockly.Python.ORDER_LOGICAL_AND : - Blockly.Python.ORDER_LOGICAL_OR; - var argument0 = Blockly.Python.valueToCode(block, 'A', order); - var argument1 = Blockly.Python.valueToCode(block, 'B', order); - if (!argument0 && !argument1) { - // If there are no arguments, then the return value is false. - argument0 = 'False'; - argument1 = 'False'; - } else { - // Single missing arguments have no effect on the return value. - var defaultArgument = (operator == 'and') ? 'True' : 'False'; - if (!argument0) { - argument0 = defaultArgument; - } - if (!argument1) { - argument1 = defaultArgument; - } - } - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -}; - -Blockly.Python['logic_negate'] = function(block) { - // Negation. - var argument0 = Blockly.Python.valueToCode(block, 'BOOL', - Blockly.Python.ORDER_LOGICAL_NOT) || 'True'; - var code = 'not ' + argument0; - return [code, Blockly.Python.ORDER_LOGICAL_NOT]; -}; - -Blockly.Python['logic_boolean'] = function(block) { - // Boolean values true and false. - var code = (block.getFieldValue('BOOL') == 'TRUE') ? 'True' : 'False'; - return [code, Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['logic_null'] = function(block) { - // Null data type. - return ['None', Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['logic_ternary'] = function(block) { - // Ternary operator. - var value_if = Blockly.Python.valueToCode(block, 'IF', - Blockly.Python.ORDER_CONDITIONAL) || 'False'; - var value_then = Blockly.Python.valueToCode(block, 'THEN', - Blockly.Python.ORDER_CONDITIONAL) || 'None'; - var value_else = Blockly.Python.valueToCode(block, 'ELSE', - Blockly.Python.ORDER_CONDITIONAL) || 'None'; - var code = value_then + ' if ' + value_if + ' else ' + value_else; - return [code, Blockly.Python.ORDER_CONDITIONAL]; -}; diff --git a/lib/blockly/generators/python/loops.js b/lib/blockly/generators/python/loops.js deleted file mode 100644 index 21a32c4..0000000 --- a/lib/blockly/generators/python/loops.js +++ /dev/null @@ -1,224 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for loop blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Python.loops'); - -goog.require('Blockly.Python'); - - -Blockly.Python['controls_repeat_ext'] = function(block) { - // Repeat n times. - if (block.getField('TIMES')) { - // Internal number. - var repeats = String(parseInt(block.getFieldValue('TIMES'), 10)); - } else { - // External number. - var repeats = Blockly.Python.valueToCode(block, 'TIMES', - Blockly.Python.ORDER_NONE) || '0'; - } - if (Blockly.isNumber(repeats)) { - repeats = parseInt(repeats, 10); - } else { - repeats = 'int(' + repeats + ')'; - } - var branch = Blockly.Python.statementToCode(block, 'DO'); - branch = Blockly.Python.addLoopTrap(branch, block) || Blockly.Python.PASS; - var loopVar = Blockly.Python.variableDB_.getDistinctName( - 'count', Blockly.Variables.NAME_TYPE); - var code = 'for ' + loopVar + ' in range(' + repeats + '):\n' + branch; - return code; -}; - -Blockly.Python['controls_repeat'] = Blockly.Python['controls_repeat_ext']; - -Blockly.Python['controls_whileUntil'] = function(block) { - // Do while/until loop. - var until = block.getFieldValue('MODE') == 'UNTIL'; - var argument0 = Blockly.Python.valueToCode(block, 'BOOL', - until ? Blockly.Python.ORDER_LOGICAL_NOT : - Blockly.Python.ORDER_NONE) || 'False'; - var branch = Blockly.Python.statementToCode(block, 'DO'); - branch = Blockly.Python.addLoopTrap(branch, block) || Blockly.Python.PASS; - if (until) { - argument0 = 'not ' + argument0; - } - return 'while ' + argument0 + ':\n' + branch; -}; - -Blockly.Python['controls_for'] = function(block) { - // For loop. - var variable0 = Blockly.Python.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.Python.valueToCode(block, 'FROM', - Blockly.Python.ORDER_NONE) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'TO', - Blockly.Python.ORDER_NONE) || '0'; - var increment = Blockly.Python.valueToCode(block, 'BY', - Blockly.Python.ORDER_NONE) || '1'; - var branch = Blockly.Python.statementToCode(block, 'DO'); - branch = Blockly.Python.addLoopTrap(branch, block) || Blockly.Python.PASS; - - var code = ''; - var range; - - // Helper functions. - var defineUpRange = function() { - return Blockly.Python.provideFunction_( - 'upRange', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + - '(start, stop, step):', - ' while start <= stop:', - ' yield start', - ' start += abs(step)']); - }; - var defineDownRange = function() { - return Blockly.Python.provideFunction_( - 'downRange', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + - '(start, stop, step):', - ' while start >= stop:', - ' yield start', - ' start -= abs(step)']); - }; - // Arguments are legal Python code (numbers or strings returned by scrub()). - var generateUpDownRange = function(start, end, inc) { - return '(' + start + ' <= ' + end + ') and ' + - defineUpRange() + '(' + start + ', ' + end + ', ' + inc + ') or ' + - defineDownRange() + '(' + start + ', ' + end + ', ' + inc + ')'; - }; - - if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && - Blockly.isNumber(increment)) { - // All parameters are simple numbers. - argument0 = Number(argument0); - argument1 = Number(argument1); - increment = Math.abs(Number(increment)); - if (argument0 % 1 === 0 && argument1 % 1 === 0 && increment % 1 === 0) { - // All parameters are integers. - if (argument0 <= argument1) { - // Count up. - argument1++; - if (argument0 == 0 && increment == 1) { - // If starting index is 0, omit it. - range = argument1; - } else { - range = argument0 + ', ' + argument1; - } - // If increment isn't 1, it must be explicit. - if (increment != 1) { - range += ', ' + increment; - } - } else { - // Count down. - argument1--; - range = argument0 + ', ' + argument1 + ', -' + increment; - } - range = 'range(' + range + ')'; - } else { - // At least one of the parameters is not an integer. - if (argument0 < argument1) { - range = defineUpRange(); - } else { - range = defineDownRange(); - } - range += '(' + argument0 + ', ' + argument1 + ', ' + increment + ')'; - } - } else { - // Cache non-trivial values to variables to prevent repeated look-ups. - var scrub = function(arg, suffix) { - if (Blockly.isNumber(arg)) { - // Simple number. - arg = Number(arg); - } else if (arg.match(/^\w+$/)) { - // Variable. - arg = 'float(' + arg + ')'; - } else { - // It's complicated. - var varName = Blockly.Python.variableDB_.getDistinctName( - variable0 + suffix, Blockly.Variables.NAME_TYPE); - code += varName + ' = float(' + arg + ')\n'; - arg = varName; - } - return arg; - }; - var startVar = scrub(argument0, '_start'); - var endVar = scrub(argument1, '_end'); - var incVar = scrub(increment, '_inc'); - - if (typeof startVar == 'number' && typeof endVar == 'number') { - if (startVar < endVar) { - range = defineUpRange(startVar, endVar, increment); - } else { - range = defineDownRange(startVar, endVar, increment); - } - } else { - // We cannot determine direction statically. - range = generateUpDownRange(startVar, endVar, increment); - } - } - code += 'for ' + variable0 + ' in ' + range + ':\n' + branch; - return code; -}; - -Blockly.Python['controls_forEach'] = function(block) { - // For each loop. - var variable0 = Blockly.Python.variableDB_.getName( - block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE); - var argument0 = Blockly.Python.valueToCode(block, 'LIST', - Blockly.Python.ORDER_RELATIONAL) || '[]'; - var branch = Blockly.Python.statementToCode(block, 'DO'); - branch = Blockly.Python.addLoopTrap(branch, block) || Blockly.Python.PASS; - var code = 'for ' + variable0 + ' in ' + argument0 + ':\n' + branch; - return code; -}; - -Blockly.Python['controls_flow_statements'] = function(block) { - // Flow statements: continue, break. - var xfix = ''; - if (Blockly.Python.STATEMENT_PREFIX) { - // Automatic prefix insertion is switched off for this block. Add manually. - xfix += Blockly.Python.injectId(Blockly.Python.STATEMENT_PREFIX, block); - } - if (Blockly.Python.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the break/continue is triggered. - xfix += Blockly.Python.injectId(Blockly.Python.STATEMENT_SUFFIX, block); - } - if (Blockly.Python.STATEMENT_PREFIX) { - var loop = Blockly.Constants.Loops - .CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(block); - if (loop && !loop.suppressPrefixSuffix) { - // Inject loop's statement prefix here since the regular one at the end - // of the loop will not get executed if 'continue' is triggered. - // In the case of 'break', a prefix is needed due to the loop's suffix. - xfix += Blockly.Python.injectId(Blockly.Python.STATEMENT_PREFIX, loop); - } - } - switch (block.getFieldValue('FLOW')) { - case 'BREAK': - return xfix + 'break\n'; - case 'CONTINUE': - return xfix + 'continue\n'; - } - throw Error('Unknown flow statement.'); -}; diff --git a/lib/blockly/generators/python/math.js b/lib/blockly/generators/python/math.js deleted file mode 100644 index 71fd50e..0000000 --- a/lib/blockly/generators/python/math.js +++ /dev/null @@ -1,396 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for math blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Python.math'); - -goog.require('Blockly.Python'); - - -// If any new block imports any library, add that library name here. -Blockly.Python.addReservedWords('math,random,Number'); - -Blockly.Python['math_number'] = function(block) { - // Numeric value. - var code = Number(block.getFieldValue('NUM')); - var order; - if (code == Infinity) { - code = 'float("inf")'; - order = Blockly.Python.ORDER_FUNCTION_CALL; - } else if (code == -Infinity) { - code = '-float("inf")'; - order = Blockly.Python.ORDER_UNARY_SIGN; - } else { - order = code < 0 ? Blockly.Python.ORDER_UNARY_SIGN : - Blockly.Python.ORDER_ATOMIC; - } - return [code, order]; -}; - -Blockly.Python['math_arithmetic'] = function(block) { - // Basic arithmetic operators, and power. - var OPERATORS = { - 'ADD': [' + ', Blockly.Python.ORDER_ADDITIVE], - 'MINUS': [' - ', Blockly.Python.ORDER_ADDITIVE], - 'MULTIPLY': [' * ', Blockly.Python.ORDER_MULTIPLICATIVE], - 'DIVIDE': [' / ', Blockly.Python.ORDER_MULTIPLICATIVE], - 'POWER': [' ** ', Blockly.Python.ORDER_EXPONENTIATION] - }; - var tuple = OPERATORS[block.getFieldValue('OP')]; - var operator = tuple[0]; - var order = tuple[1]; - var argument0 = Blockly.Python.valueToCode(block, 'A', order) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'B', order) || '0'; - var code = argument0 + operator + argument1; - return [code, order]; - // In case of 'DIVIDE', division between integers returns different results - // in Python 2 and 3. However, is not an issue since Blockly does not - // guarantee identical results in all languages. To do otherwise would - // require every operator to be wrapped in a function call. This would kill - // legibility of the generated code. -}; - -Blockly.Python['math_single'] = function(block) { - // Math operators with single operand. - var operator = block.getFieldValue('OP'); - var code; - var arg; - if (operator == 'NEG') { - // Negation is a special case given its different operator precedence. - var code = Blockly.Python.valueToCode(block, 'NUM', - Blockly.Python.ORDER_UNARY_SIGN) || '0'; - return ['-' + code, Blockly.Python.ORDER_UNARY_SIGN]; - } - Blockly.Python.definitions_['import_math'] = 'import math'; - if (operator == 'SIN' || operator == 'COS' || operator == 'TAN') { - arg = Blockly.Python.valueToCode(block, 'NUM', - Blockly.Python.ORDER_MULTIPLICATIVE) || '0'; - } else { - arg = Blockly.Python.valueToCode(block, 'NUM', - Blockly.Python.ORDER_NONE) || '0'; - } - // First, handle cases which generate values that don't need parentheses - // wrapping the code. - switch (operator) { - case 'ABS': - code = 'math.fabs(' + arg + ')'; - break; - case 'ROOT': - code = 'math.sqrt(' + arg + ')'; - break; - case 'LN': - code = 'math.log(' + arg + ')'; - break; - case 'LOG10': - code = 'math.log10(' + arg + ')'; - break; - case 'EXP': - code = 'math.exp(' + arg + ')'; - break; - case 'POW10': - code = 'math.pow(10,' + arg + ')'; - break; - case 'ROUND': - code = 'round(' + arg + ')'; - break; - case 'ROUNDUP': - code = 'math.ceil(' + arg + ')'; - break; - case 'ROUNDDOWN': - code = 'math.floor(' + arg + ')'; - break; - case 'SIN': - code = 'math.sin(' + arg + ' / 180.0 * math.pi)'; - break; - case 'COS': - code = 'math.cos(' + arg + ' / 180.0 * math.pi)'; - break; - case 'TAN': - code = 'math.tan(' + arg + ' / 180.0 * math.pi)'; - break; - } - if (code) { - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } - // Second, handle cases which generate values that may need parentheses - // wrapping the code. - switch (operator) { - case 'ASIN': - code = 'math.asin(' + arg + ') / math.pi * 180'; - break; - case 'ACOS': - code = 'math.acos(' + arg + ') / math.pi * 180'; - break; - case 'ATAN': - code = 'math.atan(' + arg + ') / math.pi * 180'; - break; - default: - throw Error('Unknown math operator: ' + operator); - } - return [code, Blockly.Python.ORDER_MULTIPLICATIVE]; -}; - -Blockly.Python['math_constant'] = function(block) { - // Constants: PI, E, the Golden Ratio, sqrt(2), 1/sqrt(2), INFINITY. - var CONSTANTS = { - 'PI': ['math.pi', Blockly.Python.ORDER_MEMBER], - 'E': ['math.e', Blockly.Python.ORDER_MEMBER], - 'GOLDEN_RATIO': ['(1 + math.sqrt(5)) / 2', - Blockly.Python.ORDER_MULTIPLICATIVE], - 'SQRT2': ['math.sqrt(2)', Blockly.Python.ORDER_MEMBER], - 'SQRT1_2': ['math.sqrt(1.0 / 2)', Blockly.Python.ORDER_MEMBER], - 'INFINITY': ['float(\'inf\')', Blockly.Python.ORDER_ATOMIC] - }; - var constant = block.getFieldValue('CONSTANT'); - if (constant != 'INFINITY') { - Blockly.Python.definitions_['import_math'] = 'import math'; - } - return CONSTANTS[constant]; -}; - -Blockly.Python['math_number_property'] = function(block) { - // Check if a number is even, odd, prime, whole, positive, or negative - // or if it is divisible by certain number. Returns true or false. - var number_to_check = Blockly.Python.valueToCode(block, 'NUMBER_TO_CHECK', - Blockly.Python.ORDER_MULTIPLICATIVE) || '0'; - var dropdown_property = block.getFieldValue('PROPERTY'); - var code; - if (dropdown_property == 'PRIME') { - Blockly.Python.definitions_['import_math'] = 'import math'; - Blockly.Python.definitions_['from_numbers_import_Number'] = - 'from numbers import Number'; - var functionName = Blockly.Python.provideFunction_( - 'math_isPrime', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(n):', - ' # https://en.wikipedia.org/wiki/Primality_test#Naive_methods', - ' # If n is not a number but a string, try parsing it.', - ' if not isinstance(n, Number):', - ' try:', - ' n = float(n)', - ' except:', - ' return False', - ' if n == 2 or n == 3:', - ' return True', - ' # False if n is negative, is 1, or not whole,' + - ' or if n is divisible by 2 or 3.', - ' if n <= 1 or n % 1 != 0 or n % 2 == 0 or n % 3 == 0:', - ' return False', - ' # Check all the numbers of form 6k +/- 1, up to sqrt(n).', - ' for x in range(6, int(math.sqrt(n)) + 2, 6):', - ' if n % (x - 1) == 0 or n % (x + 1) == 0:', - ' return False', - ' return True']); - code = functionName + '(' + number_to_check + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } - switch (dropdown_property) { - case 'EVEN': - code = number_to_check + ' % 2 == 0'; - break; - case 'ODD': - code = number_to_check + ' % 2 == 1'; - break; - case 'WHOLE': - code = number_to_check + ' % 1 == 0'; - break; - case 'POSITIVE': - code = number_to_check + ' > 0'; - break; - case 'NEGATIVE': - code = number_to_check + ' < 0'; - break; - case 'DIVISIBLE_BY': - var divisor = Blockly.Python.valueToCode(block, 'DIVISOR', - Blockly.Python.ORDER_MULTIPLICATIVE); - // If 'divisor' is some code that evals to 0, Python will raise an error. - if (!divisor || divisor == '0') { - return ['False', Blockly.Python.ORDER_ATOMIC]; - } - code = number_to_check + ' % ' + divisor + ' == 0'; - break; - } - return [code, Blockly.Python.ORDER_RELATIONAL]; -}; - -Blockly.Python['math_change'] = function(block) { - // Add to a variable in place. - Blockly.Python.definitions_['from_numbers_import_Number'] = - 'from numbers import Number'; - var argument0 = Blockly.Python.valueToCode(block, 'DELTA', - Blockly.Python.ORDER_ADDITIVE) || '0'; - var varName = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return varName + ' = (' + varName + ' if isinstance(' + varName + - ', Number) else 0) + ' + argument0 + '\n'; -}; - -// Rounding functions have a single operand. -Blockly.Python['math_round'] = Blockly.Python['math_single']; -// Trigonometry functions have a single operand. -Blockly.Python['math_trig'] = Blockly.Python['math_single']; - -Blockly.Python['math_on_list'] = function(block) { - // Math functions for lists. - var func = block.getFieldValue('OP'); - var list = Blockly.Python.valueToCode(block, 'LIST', - Blockly.Python.ORDER_NONE) || '[]'; - var code; - switch (func) { - case 'SUM': - code = 'sum(' + list + ')'; - break; - case 'MIN': - code = 'min(' + list + ')'; - break; - case 'MAX': - code = 'max(' + list + ')'; - break; - case 'AVERAGE': - Blockly.Python.definitions_['from_numbers_import_Number'] = - 'from numbers import Number'; - var functionName = Blockly.Python.provideFunction_( - 'math_mean', - // This operation excludes null and values that aren't int or float:', - // math_mean([null, null, "aString", 1, 9]) == 5.0.', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(myList):', - ' localList = [e for e in myList if isinstance(e, Number)]', - ' if not localList: return', - ' return float(sum(localList)) / len(localList)']); - code = functionName + '(' + list + ')'; - break; - case 'MEDIAN': - Blockly.Python.definitions_['from_numbers_import_Number'] = - 'from numbers import Number'; - var functionName = Blockly.Python.provideFunction_( - 'math_median', - // This operation excludes null values: - // math_median([null, null, 1, 3]) == 2.0. - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(myList):', - ' localList = sorted([e for e in myList if isinstance(e, Number)])', - ' if not localList: return', - ' if len(localList) % 2 == 0:', - ' return (localList[len(localList) // 2 - 1] + ' + - 'localList[len(localList) // 2]) / 2.0', - ' else:', - ' return localList[(len(localList) - 1) // 2]']); - code = functionName + '(' + list + ')'; - break; - case 'MODE': - var functionName = Blockly.Python.provideFunction_( - 'math_modes', - // As a list of numbers can contain more than one mode, - // the returned result is provided as an array. - // Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1]. - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):', - ' modes = []', - ' # Using a lists of [item, count] to keep count rather than dict', - ' # to avoid "unhashable" errors when the counted item is ' + - 'itself a list or dict.', - ' counts = []', - ' maxCount = 1', - ' for item in some_list:', - ' found = False', - ' for count in counts:', - ' if count[0] == item:', - ' count[1] += 1', - ' maxCount = max(maxCount, count[1])', - ' found = True', - ' if not found:', - ' counts.append([item, 1])', - ' for counted_item, item_count in counts:', - ' if item_count == maxCount:', - ' modes.append(counted_item)', - ' return modes']); - code = functionName + '(' + list + ')'; - break; - case 'STD_DEV': - Blockly.Python.definitions_['import_math'] = 'import math'; - var functionName = Blockly.Python.provideFunction_( - 'math_standard_deviation', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):', - ' n = len(numbers)', - ' if n == 0: return', - ' mean = float(sum(numbers)) / n', - ' variance = sum((x - mean) ** 2 for x in numbers) / n', - ' return math.sqrt(variance)']); - code = functionName + '(' + list + ')'; - break; - case 'RANDOM': - Blockly.Python.definitions_['import_random'] = 'import random'; - code = 'random.choice(' + list + ')'; - break; - default: - throw Error('Unknown operator: ' + func); - } - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['math_modulo'] = function(block) { - // Remainder computation. - var argument0 = Blockly.Python.valueToCode(block, 'DIVIDEND', - Blockly.Python.ORDER_MULTIPLICATIVE) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'DIVISOR', - Blockly.Python.ORDER_MULTIPLICATIVE) || '0'; - var code = argument0 + ' % ' + argument1; - return [code, Blockly.Python.ORDER_MULTIPLICATIVE]; -}; - -Blockly.Python['math_constrain'] = function(block) { - // Constrain a number between two limits. - var argument0 = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'LOW', - Blockly.Python.ORDER_NONE) || '0'; - var argument2 = Blockly.Python.valueToCode(block, 'HIGH', - Blockly.Python.ORDER_NONE) || 'float(\'inf\')'; - var code = 'min(max(' + argument0 + ', ' + argument1 + '), ' + - argument2 + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['math_random_int'] = function(block) { - // Random integer between [X] and [Y]. - Blockly.Python.definitions_['import_random'] = 'import random'; - var argument0 = Blockly.Python.valueToCode(block, 'FROM', - Blockly.Python.ORDER_NONE) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'TO', - Blockly.Python.ORDER_NONE) || '0'; - var code = 'random.randint(' + argument0 + ', ' + argument1 + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['math_random_float'] = function(block) { - // Random fraction between 0 and 1. - Blockly.Python.definitions_['import_random'] = 'import random'; - return ['random.random()', Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['math_atan2'] = function(block) { - // Arctangent of point (X, Y) in degrees from -180 to 180. - Blockly.Python.definitions_['import_math'] = 'import math'; - var argument0 = Blockly.Python.valueToCode(block, 'X', - Blockly.Python.ORDER_NONE) || '0'; - var argument1 = Blockly.Python.valueToCode(block, 'Y', - Blockly.Python.ORDER_NONE) || '0'; - return ['math.atan2(' + argument1 + ', ' + argument0 + ') / math.pi * 180', - Blockly.Python.ORDER_MULTIPLICATIVE]; -}; diff --git a/lib/blockly/generators/python/procedures.js b/lib/blockly/generators/python/procedures.js deleted file mode 100644 index 38559bb..0000000 --- a/lib/blockly/generators/python/procedures.js +++ /dev/null @@ -1,143 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for procedure blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -goog.provide('Blockly.Python.procedures'); - -goog.require('Blockly.Python'); - - -Blockly.Python['procedures_defreturn'] = function(block) { - // Define a procedure with a return value. - // First, add a 'global' statement for every variable that is not shadowed by - // a local parameter. - var globals = []; - var varName; - var workspace = block.workspace; - var variables = Blockly.Variables.allUsedVarModels(workspace) || []; - for (var i = 0, variable; variable = variables[i]; i++) { - varName = variable.name; - if (block.arguments_.indexOf(varName) == -1) { - globals.push(Blockly.Python.variableDB_.getName(varName, - Blockly.Variables.NAME_TYPE)); - } - } - // Add developer variables. - var devVarList = Blockly.Variables.allDeveloperVariables(workspace); - for (var i = 0; i < devVarList.length; i++) { - globals.push(Blockly.Python.variableDB_.getName(devVarList[i], - Blockly.Names.DEVELOPER_VARIABLE_TYPE)); - } - - globals = globals.length ? - Blockly.Python.INDENT + 'global ' + globals.join(', ') + '\n' : ''; - var funcName = Blockly.Python.variableDB_.getName( - block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); - var xfix1 = ''; - if (Blockly.Python.STATEMENT_PREFIX) { - xfix1 += Blockly.Python.injectId(Blockly.Python.STATEMENT_PREFIX, block); - } - if (Blockly.Python.STATEMENT_SUFFIX) { - xfix1 += Blockly.Python.injectId(Blockly.Python.STATEMENT_SUFFIX, block); - } - if (xfix1) { - xfix1 = Blockly.Python.prefixLines(xfix1, Blockly.Python.INDENT); - } - var loopTrap = ''; - if (Blockly.Python.INFINITE_LOOP_TRAP) { - loopTrap = Blockly.Python.prefixLines( - Blockly.Python.injectId(Blockly.Python.INFINITE_LOOP_TRAP, block), - Blockly.Python.INDENT); - } - var branch = Blockly.Python.statementToCode(block, 'STACK'); - var returnValue = Blockly.Python.valueToCode(block, 'RETURN', - Blockly.Python.ORDER_NONE) || ''; - var xfix2 = ''; - if (branch && returnValue) { - // After executing the function body, revisit this block for the return. - xfix2 = xfix1; - } - if (returnValue) { - returnValue = Blockly.Python.INDENT + 'return ' + returnValue + '\n'; - } else if (!branch) { - branch = Blockly.Python.PASS; - } - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.Python.variableDB_.getName(block.arguments_[i], - Blockly.Variables.NAME_TYPE); - } - var code = 'def ' + funcName + '(' + args.join(', ') + '):\n' + - globals + xfix1 + loopTrap + branch + xfix2 + returnValue; - code = Blockly.Python.scrub_(block, code); - // Add % so as not to collide with helper functions in definitions list. - Blockly.Python.definitions_['%' + funcName] = code; - return null; -}; - -// Defining a procedure without a return value uses the same generator as -// a procedure with a return value. -Blockly.Python['procedures_defnoreturn'] = - Blockly.Python['procedures_defreturn']; - -Blockly.Python['procedures_callreturn'] = function(block) { - // Call a procedure with a return value. - var funcName = Blockly.Python.variableDB_.getName(block.getFieldValue('NAME'), - Blockly.Procedures.NAME_TYPE); - var args = []; - for (var i = 0; i < block.arguments_.length; i++) { - args[i] = Blockly.Python.valueToCode(block, 'ARG' + i, - Blockly.Python.ORDER_NONE) || 'None'; - } - var code = funcName + '(' + args.join(', ') + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['procedures_callnoreturn'] = function(block) { - // Call a procedure with no return value. - // Generated code is for a function call as a statement is the same as a - // function call as a value, with the addition of line ending. - var tuple = Blockly.Python['procedures_callreturn'](block); - return tuple[0] + '\n'; -}; - -Blockly.Python['procedures_ifreturn'] = function(block) { - // Conditionally return value from a procedure. - var condition = Blockly.Python.valueToCode(block, 'CONDITION', - Blockly.Python.ORDER_NONE) || 'False'; - var code = 'if ' + condition + ':\n'; - if (Blockly.Python.STATEMENT_SUFFIX) { - // Inject any statement suffix here since the regular one at the end - // will not get executed if the return is triggered. - code += Blockly.Python.prefixLines( - Blockly.Python.injectId(Blockly.Python.STATEMENT_SUFFIX, block), - Blockly.Python.INDENT); - } - if (block.hasReturnValue_) { - var value = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || 'None'; - code += Blockly.Python.INDENT + 'return ' + value + '\n'; - } else { - code += Blockly.Python.INDENT + 'return\n'; - } - return code; -}; diff --git a/lib/blockly/generators/python/text.js b/lib/blockly/generators/python/text.js deleted file mode 100644 index 0089d5f..0000000 --- a/lib/blockly/generators/python/text.js +++ /dev/null @@ -1,304 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for text blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Python.texts'); - -goog.require('Blockly.Python'); - - -Blockly.Python['text'] = function(block) { - // Text value. - var code = Blockly.Python.quote_(block.getFieldValue('TEXT')); - return [code, Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['text_multiline'] = function(block) { - // Text value. - var code = Blockly.Python.multiline_quote_(block.getFieldValue('TEXT')); - return [code, Blockly.Python.ORDER_ATOMIC]; -}; - -/** - * Enclose the provided value in 'str(...)' function. - * Leave string literals alone. - * @param {string} value Code evaluating to a value. - * @return {string} Code evaluating to a string. - * @private - */ -Blockly.Python.text.forceString_ = function(value) { - if (Blockly.Python.text.forceString_.strRegExp.test(value)) { - return value; - } - return 'str(' + value + ')'; -}; - -/** - * Regular expression to detect a single-quoted string literal. - */ -Blockly.Python.text.forceString_.strRegExp = /^\s*'([^']|\\')*'\s*$/; - -Blockly.Python['text_join'] = function(block) { - // Create a string made up of any number of elements of any type. - //Should we allow joining by '-' or ',' or any other characters? - switch (block.itemCount_) { - case 0: - return ['\'\'', Blockly.Python.ORDER_ATOMIC]; - break; - case 1: - var element = Blockly.Python.valueToCode(block, 'ADD0', - Blockly.Python.ORDER_NONE) || '\'\''; - var code = Blockly.Python.text.forceString_(element); - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - break; - case 2: - var element0 = Blockly.Python.valueToCode(block, 'ADD0', - Blockly.Python.ORDER_NONE) || '\'\''; - var element1 = Blockly.Python.valueToCode(block, 'ADD1', - Blockly.Python.ORDER_NONE) || '\'\''; - var code = Blockly.Python.text.forceString_(element0) + ' + ' + - Blockly.Python.text.forceString_(element1); - return [code, Blockly.Python.ORDER_ADDITIVE]; - break; - default: - var elements = []; - for (var i = 0; i < block.itemCount_; i++) { - elements[i] = Blockly.Python.valueToCode(block, 'ADD' + i, - Blockly.Python.ORDER_NONE) || '\'\''; - } - var tempVar = Blockly.Python.variableDB_.getDistinctName('x', - Blockly.Variables.NAME_TYPE); - var code = '\'\'.join([str(' + tempVar + ') for ' + tempVar + ' in [' + - elements.join(', ') + ']])'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } -}; - -Blockly.Python['text_append'] = function(block) { - // Append to a variable in place. - var varName = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - var value = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_NONE) || '\'\''; - return varName + ' = str(' + varName + ') + ' + - Blockly.Python.text.forceString_(value) + '\n'; -}; - -Blockly.Python['text_length'] = function(block) { - // Is the string null or array empty? - var text = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '\'\''; - return ['len(' + text + ')', Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['text_isEmpty'] = function(block) { - // Is the string null or array empty? - var text = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '\'\''; - var code = 'not len(' + text + ')'; - return [code, Blockly.Python.ORDER_LOGICAL_NOT]; -}; - -Blockly.Python['text_indexOf'] = function(block) { - // Search the text for a substring. - // Should we allow for non-case sensitive??? - var operator = block.getFieldValue('END') == 'FIRST' ? 'find' : 'rfind'; - var substring = Blockly.Python.valueToCode(block, 'FIND', - Blockly.Python.ORDER_NONE) || '\'\''; - var text = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var code = text + '.' + operator + '(' + substring + ')'; - if (block.workspace.options.oneBasedIndex) { - return [code + ' + 1', Blockly.Python.ORDER_ADDITIVE]; - } - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['text_charAt'] = function(block) { - // Get letter at index. - // Note: Until January 2013 this block did not have the WHERE input. - var where = block.getFieldValue('WHERE') || 'FROM_START'; - var text = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_MEMBER) || '\'\''; - switch (where) { - case 'FIRST': - var code = text + '[0]'; - return [code, Blockly.Python.ORDER_MEMBER]; - case 'LAST': - var code = text + '[-1]'; - return [code, Blockly.Python.ORDER_MEMBER]; - case 'FROM_START': - var at = Blockly.Python.getAdjustedInt(block, 'AT'); - var code = text + '[' + at + ']'; - return [code, Blockly.Python.ORDER_MEMBER]; - case 'FROM_END': - var at = Blockly.Python.getAdjustedInt(block, 'AT', 1, true); - var code = text + '[' + at + ']'; - return [code, Blockly.Python.ORDER_MEMBER]; - case 'RANDOM': - Blockly.Python.definitions_['import_random'] = 'import random'; - var functionName = Blockly.Python.provideFunction_( - 'text_random_letter', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(text):', - ' x = int(random.random() * len(text))', - ' return text[x];']); - code = functionName + '(' + text + ')'; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; - } - throw Error('Unhandled option (text_charAt).'); -}; - -Blockly.Python['text_getSubstring'] = function(block) { - // Get substring. - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - var text = Blockly.Python.valueToCode(block, 'STRING', - Blockly.Python.ORDER_MEMBER) || '\'\''; - switch (where1) { - case 'FROM_START': - var at1 = Blockly.Python.getAdjustedInt(block, 'AT1'); - if (at1 == '0') { - at1 = ''; - } - break; - case 'FROM_END': - var at1 = Blockly.Python.getAdjustedInt(block, 'AT1', 1, true); - break; - case 'FIRST': - var at1 = ''; - break; - default: - throw Error('Unhandled option (text_getSubstring)'); - } - switch (where2) { - case 'FROM_START': - var at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 1); - break; - case 'FROM_END': - var at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 0, true); - // Ensure that if the result calculated is 0 that sub-sequence will - // include all elements as expected. - if (!Blockly.isNumber(String(at2))) { - Blockly.Python.definitions_['import_sys'] = 'import sys'; - at2 += ' or sys.maxsize'; - } else if (at2 == '0') { - at2 = ''; - } - break; - case 'LAST': - var at2 = ''; - break; - default: - throw Error('Unhandled option (text_getSubstring)'); - } - var code = text + '[' + at1 + ' : ' + at2 + ']'; - return [code, Blockly.Python.ORDER_MEMBER]; -}; - -Blockly.Python['text_changeCase'] = function(block) { - // Change capitalization. - var OPERATORS = { - 'UPPERCASE': '.upper()', - 'LOWERCASE': '.lower()', - 'TITLECASE': '.title()' - }; - var operator = OPERATORS[block.getFieldValue('CASE')]; - var text = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var code = text + operator; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['text_trim'] = function(block) { - // Trim spaces. - var OPERATORS = { - 'LEFT': '.lstrip()', - 'RIGHT': '.rstrip()', - 'BOTH': '.strip()' - }; - var operator = OPERATORS[block.getFieldValue('MODE')]; - var text = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var code = text + operator; - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['text_print'] = function(block) { - // Print statement. - var msg = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_NONE) || '\'\''; - return 'print(' + msg + ')\n'; -}; - -Blockly.Python['text_prompt_ext'] = function(block) { - // Prompt function. - var functionName = Blockly.Python.provideFunction_( - 'text_prompt', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(msg):', - ' try:', - ' return raw_input(msg)', - ' except NameError:', - ' return input(msg)']); - if (block.getField('TEXT')) { - // Internal message. - var msg = Blockly.Python.quote_(block.getFieldValue('TEXT')); - } else { - // External message. - var msg = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_NONE) || '\'\''; - } - var code = functionName + '(' + msg + ')'; - var toNumber = block.getFieldValue('TYPE') == 'NUMBER'; - if (toNumber) { - code = 'float(' + code + ')'; - } - return [code, Blockly.Python.ORDER_FUNCTION_CALL]; -}; - -Blockly.Python['text_prompt'] = Blockly.Python['text_prompt_ext']; - -Blockly.Python['text_count'] = function(block) { - var text = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var sub = Blockly.Python.valueToCode(block, 'SUB', - Blockly.Python.ORDER_NONE) || '\'\''; - var code = text + '.count(' + sub + ')'; - return [code, Blockly.Python.ORDER_MEMBER]; -}; - -Blockly.Python['text_replace'] = function(block) { - var text = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var from = Blockly.Python.valueToCode(block, 'FROM', - Blockly.Python.ORDER_NONE) || '\'\''; - var to = Blockly.Python.valueToCode(block, 'TO', - Blockly.Python.ORDER_NONE) || '\'\''; - var code = text + '.replace(' + from + ', ' + to + ')'; - return [code, Blockly.Python.ORDER_MEMBER]; -}; - -Blockly.Python['text_reverse'] = function(block) { - var text = Blockly.Python.valueToCode(block, 'TEXT', - Blockly.Python.ORDER_MEMBER) || '\'\''; - var code = text + '[::-1]'; - return [code, Blockly.Python.ORDER_MEMBER]; -}; diff --git a/lib/blockly/generators/python/variables.js b/lib/blockly/generators/python/variables.js deleted file mode 100644 index 3c9d7cf..0000000 --- a/lib/blockly/generators/python/variables.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for variable blocks. - * @author q.neutron@gmail.com (Quynh Neutron) - */ -'use strict'; - -goog.provide('Blockly.Python.variables'); - -goog.require('Blockly.Python'); - - -Blockly.Python['variables_get'] = function(block) { - // Variable getter. - var code = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return [code, Blockly.Python.ORDER_ATOMIC]; -}; - -Blockly.Python['variables_set'] = function(block) { - // Variable setter. - var argument0 = Blockly.Python.valueToCode(block, 'VALUE', - Blockly.Python.ORDER_NONE) || '0'; - var varName = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'), - Blockly.Variables.NAME_TYPE); - return varName + ' = ' + argument0 + '\n'; -}; diff --git a/lib/blockly/generators/python/variables_dynamic.js b/lib/blockly/generators/python/variables_dynamic.js deleted file mode 100644 index 6a3376d..0000000 --- a/lib/blockly/generators/python/variables_dynamic.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for dynamic variable blocks. - * @author fenichel@google.com (Rachel Fenichel) - */ -'use strict'; - -goog.provide('Blockly.Python.variablesDynamic'); - -goog.require('Blockly.Python'); -goog.require('Blockly.Python.variables'); - - -// Python is dynamically typed. -Blockly.Python['variables_get_dynamic'] = Blockly.Python['variables_get']; -Blockly.Python['variables_set_dynamic'] = Blockly.Python['variables_set']; diff --git a/lib/blockly/gulpfile.js b/lib/blockly/gulpfile.js deleted file mode 100644 index f495916..0000000 --- a/lib/blockly/gulpfile.js +++ /dev/null @@ -1,772 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Gulp script to build Blockly for Node & NPM. - * Run this script by calling "npm install" in this directory. - */ - -var gulp = require('gulp'); -gulp.shell = require('gulp-shell'); -gulp.concat = require('gulp-concat'); -gulp.replace = require('gulp-replace'); -gulp.rename = require('gulp-rename'); -gulp.insert = require('gulp-insert'); -gulp.umd = require('gulp-umd'); - -var path = require('path'); -var fs = require('fs'); -var rimraf = require('rimraf'); -var execSync = require('child_process').execSync; - -var closureCompiler = require('google-closure-compiler').gulp(); -var packageJson = require('./package.json'); -var argv = require('yargs').argv; - - -//////////////////////////////////////////////////////////// -// Build // -//////////////////////////////////////////////////////////// - -const licenseRegex = `\\/\\*\\* - \\* @license - \\* (Copyright \\d+ (Google LLC|Massachusetts Institute of Technology)) -( \\* All rights reserved. -)? \\* - \\* Licensed under the Apache License, Version 2.0 \\(the "License"\\); - \\* you may not use this file except in compliance with the License. - \\* You may obtain a copy of the License at - \\* - \\* http://www.apache.org/licenses/LICENSE-2.0 - \\* - \\* Unless required by applicable law or agreed to in writing, software - \\* distributed under the License is distributed on an "AS IS" BASIS, - \\* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - \\* See the License for the specific language governing permissions and - \\* limitations under the License. - \\*\\/`; - -/** - * Helper method for stripping the Google's and MIT's Apache Licenses. - */ -function stripApacheLicense() { - // Strip out Google's and MIT's Apache licences. - // Closure Compiler preserves dozens of Apache licences in the Blockly code. - // Remove these if they belong to Google or MIT. - // MIT's permission to do this is logged in Blockly issue #2412. - return gulp.replace(new RegExp(licenseRegex, "g"), ''); -} - -/** - * Helper method for prepending the auto-generated header text. - */ -function prependHeader() { - return gulp.insert.prepend(`// Do not edit this file; automatically generated by gulp.\n`); -} - -/** - * Helper method for calling the Closure compiler. - * @param {*} compilerOptions - * @param {boolean=} opt_verbose Optional option for verbose logging - */ -function compile(compilerOptions, opt_verbose) { - if (!compilerOptions) compilerOptions = {}; - compilerOptions.compilation_level = 'SIMPLE_OPTIMIZATIONS'; - compilerOptions.warning_level = opt_verbose ? 'VERBOSE' : 'DEFAULT'; - compilerOptions.language_out = 'ECMASCRIPT5_STRICT'; - compilerOptions.rewrite_polyfills = false; - compilerOptions.hide_warnings_for = 'node_modules'; - - const platform = ['native', 'java', 'javascript']; - - return closureCompiler(compilerOptions, { platform }); -} - -/** - * This task builds Blockly's core files. - * blockly_compressed.js - */ -gulp.task('build-core', function () { - const defines = 'Blockly.VERSION="' + packageJson.version + '"'; - return gulp.src([ - 'core/**/**/*.js' - ], {base: './'}) - // Directories in Blockly are used to group similar files together - // but are not used to limit access with @package, instead the - // method means something is internal to Blockly and not a public - // API. - // Flatten all files so they're in the same directory, but ensure that - // files with the same name don't conflict. - .pipe(gulp.rename(function (p) { - var dirname = p.dirname.replace(new RegExp(path.sep, "g"), "-"); - p.dirname = ""; - p.basename = dirname + "-" + p.basename; - })) - .pipe(stripApacheLicense()) - .pipe(compile({ - dependency_mode: 'PRUNE', - entry_point: './core-requires.js', - js_output_file: 'blockly_compressed.js', - externs: './externs/svg-externs.js', - define: defines - }, argv.verbose)) - .pipe(prependHeader()) - .pipe(gulp.dest('./')); -}); - -/** - * This task builds the Blockly's built in blocks. - * blocks_compressed.js - */ -gulp.task('build-blocks', function () { - const provides = ` -goog.provide('Blockly'); -goog.provide('Blockly.Blocks'); -goog.provide('Blockly.Comment'); -goog.provide('Blockly.FieldCheckbox'); -goog.provide('Blockly.FieldColour'); -goog.provide('Blockly.FieldDropdown'); -goog.provide('Blockly.FieldImage'); -goog.provide('Blockly.FieldLabel'); -goog.provide('Blockly.FieldMultilineInput'); -goog.provide('Blockly.FieldNumber'); -goog.provide('Blockly.FieldTextInput'); -goog.provide('Blockly.FieldVariable'); -goog.provide('Blockly.Mutator');`; - return gulp.src('blocks/*.js', {base: './'}) - // Add Blockly.Blocks to be compatible with the compiler. - .pipe(gulp.replace(`goog.provide('Blockly.Constants.Colour');`, - `${provides}goog.provide('Blockly.Constants.Colour');`)) - .pipe(stripApacheLicense()) - .pipe(compile({ - dependency_mode: 'NONE', - js_output_file: 'blocks_compressed.js' - }, argv.verbose)) - .pipe(gulp.replace('\'use strict\';', '\'use strict\';\n\n\n')) - // Remove Blockly.Blocks to be compatible with Blockly. - .pipe(gulp.replace(/var Blockly=\{[^;]*\};\n?/, '')) - // Remove Blockly Fields to be compatible with Blockly. - .pipe(gulp.replace(/Blockly\.Field[^=\(]+=\{[^;]*\};/g, '')) - .pipe(prependHeader()) - .pipe(gulp.dest('./')); -}); - -/** - * A helper method for building a Blockly code generator. - * @param {string} language Generator language. - * @param {string} namespace Language namespace. - */ -function buildGenerator(language, namespace) { - var provides = ` -goog.provide('Blockly.Generator'); -goog.provide('Blockly.utils.string');`; - return gulp.src([`generators/${language}.js`, `generators/${language}/*.js`], {base: './'}) - .pipe(stripApacheLicense()) - // Add Blockly.Generator and Blockly.utils.string to be compatible with the compiler. - .pipe(gulp.replace(`goog.provide('Blockly.${namespace}');`, - `${provides}goog.provide('Blockly.${namespace}');`)) - .pipe(compile({ - dependency_mode: 'NONE', - js_output_file: `${language}_compressed.js` - }, argv.verbose)) - .pipe(gulp.replace('\'use strict\';', '\'use strict\';\n\n\n')) - // Remove Blockly.Generator and Blockly.utils.string to be compatible with Blockly. - .pipe(gulp.replace(/var Blockly=\{[^;]*\};\s*Blockly.utils.string={};\n?/, '')) - .pipe(prependHeader()) - .pipe(gulp.dest('./')); -}; - -/** - * This task builds the javascript generator. - * javascript_compressed.js - */ -gulp.task('build-javascript', function() { - return buildGenerator('javascript', 'JavaScript'); -}); - -/** - * This task builds the python generator. - * python_compressed.js - */ -gulp.task('build-python', function() { - return buildGenerator('python', 'Python'); -}); - -/** - * This task builds the php generator. - * php_compressed.js - */ -gulp.task('build-php', function() { - return buildGenerator('php', 'PHP'); -}); - -/** - * This task builds the lua generator. - * lua_compressed.js - */ -gulp.task('build-lua', function() { - return buildGenerator('lua', 'Lua'); -}); - -/** - * This task builds the dart generator: - * dart_compressed.js - */ -gulp.task('build-dart', function() { - return buildGenerator('dart', 'Dart'); -}); - -/** - * This task builds Blockly's uncompressed file. - * blockly_uncompressed.js - */ -gulp.task('build-uncompressed', function() { - const header = `// Do not edit this file; automatically generated by build.py. -'use strict'; - -this.IS_NODE_JS = !!(typeof module !== 'undefined' && module.exports); - -this.BLOCKLY_DIR = (function(root) { - if (!root.IS_NODE_JS) { - // Find name of current directory. - var scripts = document.getElementsByTagName('script'); - var re = new RegExp('(.+)[\\\/]blockly_(.*)uncompressed\\\.js$'); - for (var i = 0, script; script = scripts[i]; i++) { - var match = re.exec(script.src); - if (match) { - return match[1]; - } - } - alert('Could not detect Blockly\\'s directory name.'); - } - return ''; -})(this); - -this.BLOCKLY_BOOT = function(root) { - // Execute after Closure has loaded. -`; - const footer = ` -delete root.BLOCKLY_DIR; -delete root.BLOCKLY_BOOT; -delete root.IS_NODE_JS; -}; - -if (this.IS_NODE_JS) { - this.BLOCKLY_BOOT(this); - module.exports = Blockly; -} else { - // Delete any existing Closure (e.g. Soy's nogoog_shim). - document.write(''); - // Load fresh Closure Library. - document.write(''); - document.write(''); -} -`; - const file = 'blockly_uncompressed.js'; - // Run depswriter.py and which scans the core directory and writes out a ``goog.addDependency`` line for each file. - const cmd = `python ./node_modules/google-closure-library/closure/bin/build/depswriter.py \ - --root_with_prefix="./core ../core" > ${file}`; - execSync(cmd, { stdio: 'inherit' }); - - const requires = `\n// Load Blockly.\ngoog.require('Blockly.requires');\n`; - - return gulp.src(file) - // Remove comments so we're compatible with the build.py script - .pipe(gulp.replace(/\/\/.*\n/gm, '')) - // Replace quotes to be compatible with build.py - .pipe(gulp.replace(/\'(.*\.js)\'/gm, '"$1"')) - // Find the Blockly directory name and replace it with a JS variable. - // This allows blockly_uncompressed.js to be compiled on one computer and be - // used on another, even if the directory name differs. - .pipe(gulp.replace(/\.\.\/core/gm, `../../core`)) - .pipe(gulp.insert.wrap(header, requires + footer)) - .pipe(gulp.dest('./')); -}); - -/** - * This task builds all of Blockly: - * blockly_compressed.js - * blocks_compressed.js - * javascript_compressed.js - * python_compressed.js - * php_compressed.js - * lua_compressed.js - * dart_compressed.js - */ -gulp.task('build', gulp.parallel( - 'build-core', - 'build-blocks', - 'build-javascript', - 'build-python', - 'build-php', - 'build-lua', - 'build-dart' -)); - -//////////////////////////////////////////////////////////// -// Typings // -//////////////////////////////////////////////////////////// - -// Generates the TypeScript definition file (d.ts) for Blockly. -// As well as generating the typings of each of the files under core/ and msg/, -// the script also pulls in a number of part files from typings/parts. -// This includes the header (incl License), additional useful interfaces -// including Blockly Options and Google Closure typings. -gulp.task('typings', function (cb) { - const tmpDir = './typings/tmp'; - const blocklySrcs = [ - "core/", - "core/components", - "core/components/tree", - "core/components/menu", - "core/keyboard_nav", - "core/renderers/common", - "core/renderers/measurables", - "core/theme", - "core/utils", - "msg/" - ]; - // Clean directory if exists. - if (fs.existsSync(tmpDir)) { - rimraf.sync(tmpDir); - } - fs.mkdirSync(tmpDir); - - // Find all files that will be included in the typings file. - let files = []; - blocklySrcs.forEach((src) => { - files = files.concat(fs.readdirSync(src) - .filter(fn => fn.endsWith('.js')) - .map(fn => path.join(src, fn))); - }); - - // Generate typings file for each file. - files.forEach((file) => { - const typescriptFileName = `${path.join(tmpDir, file)}.d.ts`; - if (file.indexOf('core/msg.js') > -1) { - return; - } - const cmd = `node ./node_modules/typescript-closure-tools/definition-generator/src/main.js ${file} ${typescriptFileName}`; - console.log(`Generating typings for ${file}`); - execSync(cmd, { stdio: 'inherit' }); - }); - - const srcs = [ - 'typings/parts/blockly-header.d.ts', - 'typings/parts/blockly-interfaces.d.ts', - `${tmpDir}/core/**`, - `${tmpDir}/core/components/**`, - `${tmpDir}/core/components/tree/**`, - `${tmpDir}/core/components/menu/**`, - `${tmpDir}/core/keyboard_nav/**`, - `${tmpDir}/core/renderers/common/**`, - `${tmpDir}/core/renderers/measurables/**`, - `${tmpDir}/core/utils/**`, - `${tmpDir}/core/theme/**`, - `${tmpDir}/msg/**` - ]; - return gulp.src(srcs) - .pipe(gulp.concat('blockly.d.ts')) - .pipe(gulp.dest('typings')) - .on('end', function () { - // Clean up tmp directory. - if (fs.existsSync(tmpDir)) { - rimraf.sync(tmpDir); - } - }); -}); - -//////////////////////////////////////////////////////////// -// NPM packaging tasks // -//////////////////////////////////////////////////////////// - -// The destination path where all the NPM distribution files will go. -const packageDistribution = './dist'; - -/** - * A helper method for wrapping a file into a Universal Module Definition. - * @param {string} namespace The export namespace. - * @param {Array} dependencies An array of dependencies to inject. - */ -function packageUMD(namespace, dependencies) { - return gulp.umd({ - dependencies: function () { return dependencies; }, - namespace: function () { return namespace; }, - exports: function () { return namespace; }, - template: path.join(__dirname, 'package/templates/umd.template') - }); -}; - -/** - * A helper method for wrapping a file into a CommonJS module for Node.js. - * @param {string} namespace The export namespace. - * @param {Array} dependencies An array of dependencies to inject. - */ -function packageCommonJS(namespace, dependencies) { - return gulp.umd({ - dependencies: function () { return dependencies; }, - namespace: function () { return namespace; }, - exports: function () { return namespace; }, - template: path.join(__dirname, 'package/templates/node.template') - }); -}; - -/** - * This task wraps blockly_compressed.js into a UMD module. - * @example import 'blockly/blockly'; - */ -gulp.task('package-blockly', function() { - return gulp.src('blockly_compressed.js') - .pipe(packageUMD('Blockly', [])) - .pipe(gulp.rename('blockly.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * This task wraps blocks_compressed.js into a CommonJS module for Node.js. - * This is an equivelant task to package-blockly but for Node.js. - * @example import 'blockly/blockly-node'; - */ -gulp.task('package-blockly-node', function() { - // Override textToDomDocument, providing a Node.js alternative to DOMParser. - return gulp.src('blockly_compressed.js') - .pipe(gulp.insert.append(` - if (typeof DOMParser !== 'function') { - var DOMParser = require("jsdom/lib/jsdom/living").DOMParser; - var XMLSerializer = require("jsdom/lib/jsdom/living").XMLSerializer; - var doc = Blockly.utils.xml.textToDomDocument( - ''); - Blockly.utils.xml.document = function() { - return doc; - }; - }`)) - .pipe(packageCommonJS('Blockly', [])) - .pipe(gulp.rename('blockly-node.js')) - .pipe(gulp.dest(packageDistribution)); -}) - -/** - * This task wraps blocks_compressed.js into a UMD module. - * @example import 'blockly/blocks'; - */ -gulp.task('package-blocks', function() { - return gulp.src('blocks_compressed.js') - .pipe(gulp.insert.prepend(` - Blockly.Blocks={};`)) - .pipe(packageUMD('Blockly.Blocks', [{ - name: 'Blockly', - amd: './core', - cjs: './core', - }])) - .pipe(gulp.rename('blocks.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * This task wraps package/index.js into a UMD module. - * We implicitly require the Node entry point in CommonJS environments, - * and the Browser entry point for AMD environments. - * @example import * as Blockly from 'blockly'; - */ -gulp.task('package-index', function() { - return gulp.src('package/index.js') - .pipe(packageUMD('Blockly', [{ - name: 'Blockly', - amd: './browser', - cjs: './node', - }])) - .pipe(gulp.rename('index.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * This task wraps package/browser/index.js into a UMD module. - * By default, the module includes Blockly core and built-in blocks, - * as well as the JavaScript code generator and the English block - * localization files. - * This module is configured (in package.json) to replaces the module - * built by package-node in browser environments. - * @example import * as Blockly from 'blockly/browser'; - */ -gulp.task('package-browser', function() { - return gulp.src('package/browser/index.js') - .pipe(packageUMD('Blockly', [{ - name: 'Blockly', - amd: './core-browser', - cjs: './core-browser', - },{ - name: 'En', - amd: './msg/en', - cjs: './msg/en', - },{ - name: 'BlocklyBlocks', - amd: './blocks', - cjs: './blocks', - },{ - name: 'BlocklyJS', - amd: './javascript', - cjs: './javascript', - }])) - .pipe(gulp.rename('browser.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * This task wraps package/browser/core.js into a UMD module. - * By default, the module includes the Blockly core package and a - * helper method to set the locale. - * This module is configured (in package.json) to replaces the module - * built by package-node-core in browser environments. - * @example import * as Blockly from 'blockly/core'; - */ -gulp.task('package-core', function() { - return gulp.src('package/browser/core.js') - .pipe(packageUMD('Blockly', [{ - name: 'Blockly', - amd: './blockly', - cjs: './blockly', - }])) - .pipe(gulp.rename('core-browser.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * This task wraps package/node/index.js into a CommonJS module for Node.js. - * By default, the module includes Blockly core and built-in blocks, - * as well as all the code generators and the English block localization files. - * This module is configured (in package.json) to be replaced by the module - * built by package-browser in browser environments. - * @example import * as Blockly from 'blockly/node'; - */ -gulp.task('package-node', function() { - return gulp.src('package/node/index.js') - .pipe(packageCommonJS('Blockly', [{ - name: 'Blockly', - cjs: './core', - },{ - name: 'En', - cjs: './msg/en', - },{ - name: 'BlocklyBlocks', - cjs: './blocks', - },{ - name: 'BlocklyJS', - cjs: './javascript', - },{ - name: 'BlocklyPython', - cjs: './python', - },{ - name: 'BlocklyPHP', - cjs: './php', - },{ - name: 'BlocklyLua', - cjs: './lua', - }, { - name: 'BlocklyDart', - cjs: './dart', - }])) - .pipe(gulp.rename('node.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * This task wraps package/node/core.js into a CommonJS module for Node.js. - * By default, the module includes the Blockly core package for Node.js - * and a helper method to set the locale. - * This module is configured (in package.json) to be replaced by the module - * built by package-core in browser environments. - * @example import * as Blockly from 'blockly/core'; - */ -gulp.task('package-node-core', function() { - return gulp.src('package/node/core.js') - .pipe(packageCommonJS('Blockly', [{ - name: 'Blockly', - amd: './blockly-node', - cjs: './blockly-node', - }])) - .pipe(gulp.rename('core.js')) - .pipe(gulp.dest(packageDistribution)); -}); - -/** - * A helper method for packaging a Blockly code generator into a UMD module. - * @param {string} file Source file name. - * @param {string} rename Destination file name. - * @param {string} generator Generator export namespace. - */ -function packageGenerator(file, rename, generator) { - return gulp.src(file) - .pipe(packageUMD(generator, [{ - name: 'Blockly', - amd: './core', - cjs: './core', - }])) - .pipe(gulp.rename(rename)) - .pipe(gulp.dest(packageDistribution)); -}; - -/** - * This task wraps javascript_compressed.js into a UMD module. - * @example import 'blockly/javascript'; - */ -gulp.task('package-javascript', function() { - return packageGenerator('javascript_compressed.js', 'javascript.js', 'Blockly.JavaScript'); -}); - -/** - * This task wraps python_compressed.js into a UMD module. - * @example import 'blockly/python'; - */ -gulp.task('package-python', function() { - return packageGenerator('python_compressed.js', 'python.js', 'Blockly.Python'); -}); - -/** - * This task wraps lua_compressed.js into a UMD module. - * @example import 'blockly/lua'; - */ -gulp.task('package-lua', function() { - return packageGenerator('lua_compressed.js', 'lua.js', 'Blockly.Lua'); -}); - -/** - * This task wraps dart_compressed.js into a UMD module. - * @example import 'blockly/dart'; - */ -gulp.task('package-dart', function() { - return packageGenerator('dart_compressed.js', 'dart.js', 'Blockly.Dart'); -}); - -/** - * This task wraps php_compressed.js into a UMD module. - * @example import 'blockly/php'; - */ -gulp.task('package-php', function() { - return packageGenerator('php_compressed.js', 'php.js', 'Blockly.PHP'); -}); - -/** - * This task wraps each of the msg/js/* files into a UMD module. - * @example import * as En from 'blockly/msg/en'; - */ -gulp.task('package-locales', function() { - // Remove references to goog.provide and goog.require. - return gulp.src('msg/js/*.js') - .pipe(gulp.replace(/goog\.[^\n]+/g, '')) - .pipe(gulp.insert.prepend(` - var Blockly = {};Blockly.Msg={};`)) - .pipe(packageUMD('Blockly.Msg', [{ - name: 'Blockly', - amd: '../core', - cjs: '../core', - }])) - .pipe(gulp.dest(`${packageDistribution}/msg`)); -}); - -/** - * This task creates a UMD bundle of Blockly which includes the Blockly - * core files, the built-in blocks, the JavaScript code generator and the - * English localization files. - * @example - */ -gulp.task('package-umd-bundle', function() { - var srcs = [ - 'blockly_compressed.js', - 'msg/js/en.js', - 'blocks_compressed.js', - 'javascript_compressed.js' - ]; - return gulp.src(srcs) - .pipe(gulp.concat('blockly.min.js')) - .pipe(packageUMD('Blockly', [])) - .pipe(gulp.dest(`${packageDistribution}`)) -}); - -/** - * This task copies all the media/* files into the distribution directory. - */ -gulp.task('package-media', function() { - return gulp.src('./media/*') - .pipe(gulp.dest(`${packageDistribution}/media`)); -}); - -/** - * This task copies the package.json file into the distribution directory. - */ -gulp.task('package-json', function() { - return gulp.src('./package.json') - .pipe(gulp.dest(`${packageDistribution}`)) -}); - -/** - * This task copies the package/README.md file into the distribution directory. - * This file is what developers will see at https://www.npmjs.com/package/blockly. - */ -gulp.task('package-readme', function() { - return gulp.src('./package/README.md') - .pipe(gulp.dest(`${packageDistribution}`)) -}); - -/** - * This task copies the typings/blockly.d.ts TypeScript definition file into the - * distribution directory. - * The bundled declaration file is referenced in package.json in the types property. - */ -gulp.task('package-dts', function() { - return gulp.src('./typings/blockly.d.ts') - .pipe(gulp.dest(`${packageDistribution}`)) -}); - -/** - * This task prepares the NPM distribution files under the /dist directory. - */ -gulp.task('package', gulp.parallel( - 'package-index', - 'package-browser', - 'package-node', - 'package-core', - 'package-node-core', - 'package-blockly', - 'package-blockly-node', - 'package-blocks', - 'package-javascript', - 'package-python', - 'package-lua', - 'package-dart', - 'package-php', - 'package-locales', - 'package-media', - 'package-umd-bundle', - 'package-json', - 'package-readme', - 'package-dts' - )); - -// The release task prepares Blockly for an npm release. -// It rebuilds the Blockly compressed files and updates the TypeScript -// typings, and then packages all the npm release files into the /dist directory -gulp.task('release', gulp.series(['build', 'typings', function() { - // Clean directory if exists - if (fs.existsSync(packageDistribution)) { - rimraf.sync(packageDistribution); - } - fs.mkdirSync(packageDistribution); -}, 'package'])); - -// The default task builds Blockly. -gulp.task('default', gulp.series(['build'])); diff --git a/lib/blockly/i18n/__pycache__/common.cpython-38.pyc b/lib/blockly/i18n/__pycache__/common.cpython-38.pyc deleted file mode 100644 index c3b9585..0000000 Binary files a/lib/blockly/i18n/__pycache__/common.cpython-38.pyc and /dev/null differ diff --git a/lib/blockly/i18n/common.py b/lib/blockly/i18n/common.py deleted file mode 100644 index 7e568a5..0000000 --- a/lib/blockly/i18n/common.py +++ /dev/null @@ -1,233 +0,0 @@ -#!/usr/bin/python - -# Code shared by translation conversion scripts. -# -# Copyright 2013 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import codecs -import json -import os -from datetime import datetime - -class InputError(Exception): - """Exception raised for errors in the input. - - Attributes: - location -- where error occurred - msg -- explanation of the error - - """ - - def __init__(self, location, msg): - Exception.__init__(self, '{0}: {1}'.format(location, msg)) - self.location = location - self.msg = msg - - -def read_json_file(filename): - """Read a JSON file as UTF-8 into a dictionary, discarding @metadata. - - Args: - filename: The filename, which must end ".json". - - Returns: - The dictionary. - - Raises: - InputError: The filename did not end with ".json" or an error occurred - while opening or reading the file. - """ - if not filename.endswith('.json'): - raise InputError(filename, 'filenames must end with ".json"') - try: - # Read in file. - with codecs.open(filename, 'r', 'utf-8') as infile: - defs = json.load(infile) - if '@metadata' in defs: - del defs['@metadata'] - return defs - except ValueError as e: - print('Error reading ' + filename) - raise InputError(filename, str(e)) - - -def _create_qqq_file(output_dir): - """Creates a qqq.json file with message documentation for translatewiki.net. - - The file consists of key-value pairs, where the keys are message ids and - the values are descriptions for the translators of the messages. - What documentation exists for the format can be found at: - http://translatewiki.net/wiki/Translating:Localisation_for_developers#Message_documentation - - The file should be closed by _close_qqq_file(). - - Parameters: - output_dir: The output directory. - - Returns: - A pointer to a file to which a left brace and newline have been written. - - Raises: - IOError: An error occurred while opening or writing the file. - """ - qqq_file_name = os.path.join(os.curdir, output_dir, 'qqq.json') - qqq_file = codecs.open(qqq_file_name, 'w', 'utf-8') - print('Created file: ' + qqq_file_name) - qqq_file.write('{\n') - return qqq_file - - -def _close_qqq_file(qqq_file): - """Closes a qqq.json file created and opened by _create_qqq_file(). - - This writes the final newlines and right brace. - - Args: - qqq_file: A file created by _create_qqq_file(). - - Raises: - IOError: An error occurred while writing to or closing the file. - """ - qqq_file.write('\n}\n') - qqq_file.close() - - -def _create_lang_file(author, lang, output_dir): - """Creates a .json file for translatewiki.net. - - The file consists of metadata, followed by key-value pairs, where the keys - are message ids and the values are the messages in the language specified - by the corresponding command-line argument. The file should be closed by - _close_lang_file(). - - Args: - author: Name and email address of contact for translators. - lang: ISO 639-1 source language code. - output_dir: Relative directory for output files. - - Returns: - A pointer to a file to which the metadata has been written. - - Raises: - IOError: An error occurred while opening or writing the file. - """ - lang_file_name = os.path.join(os.curdir, output_dir, lang + '.json') - lang_file = codecs.open(lang_file_name, 'w', 'utf-8') - print('Created file: ' + lang_file_name) - # string.format doesn't like printing braces, so break up our writes. - lang_file.write('{\n\t"@metadata": {') - lang_file.write(""" -\t\t"author": "{0}", -\t\t"lastupdated": "{1}", -\t\t"locale": "{2}", -\t\t"messagedocumentation" : "qqq" -""".format(author, str(datetime.now()), lang)) - lang_file.write('\t},\n') - return lang_file - - -def _close_lang_file(lang_file): - """Closes a .json file created with _create_lang_file(). - - This also writes the terminating left brace and newline. - - Args: - lang_file: A file opened with _create_lang_file(). - - Raises: - IOError: An error occurred while writing to or closing the file. - """ - lang_file.write('\n}\n') - lang_file.close() - - -def _create_key_file(output_dir): - """Creates a keys.json file mapping Closure keys to Blockly keys. - - Args: - output_dir: Relative directory for output files. - - Raises: - IOError: An error occurred while creating the file. - """ - key_file_name = os.path.join(os.curdir, output_dir, 'keys.json') - key_file = open(key_file_name, 'w') - key_file.write('{\n') - print('Created file: ' + key_file_name) - return key_file - - -def _close_key_file(key_file): - """Closes a key file created and opened with _create_key_file(). - - Args: - key_file: A file created by _create_key_file(). - - Raises: - IOError: An error occurred while writing to or closing the file. - """ - key_file.write('\n}\n') - key_file.close() - - -def write_files(author, lang, output_dir, units, write_key_file): - """Writes the output files for the given units. - - There are three possible output files: - * lang_file: JSON file mapping meanings (e.g., Maze.turnLeft) to the - English text. The base name of the language file is specified by the - "lang" command-line argument. - * key_file: JSON file mapping meanings to Soy-generated keys (long hash - codes). This is only output if the parameter write_key_file is True. - * qqq_file: JSON file mapping meanings to descriptions. - - Args: - author: Name and email address of contact for translators. - lang: ISO 639-1 source language code. - output_dir: Relative directory for output files. - units: A list of dictionaries with entries for 'meaning', 'source', - 'description', and 'keys' (the last only if write_key_file is true), - in the order desired in the output files. - write_key_file: Whether to output a keys.json file. - - Raises: - IOError: An error occurs opening, writing to, or closing a file. - KeyError: An expected key is missing from units. - """ - lang_file = _create_lang_file(author, lang, output_dir) - qqq_file = _create_qqq_file(output_dir) - if write_key_file: - key_file = _create_key_file(output_dir) - first_entry = True - for unit in units: - if not first_entry: - lang_file.write(',\n') - if write_key_file: - key_file.write(',\n') - qqq_file.write(',\n') - lang_file.write(u'\t"{0}": "{1}"'.format( - unit['meaning'], - unit['source'].replace('"', "'"))) - if write_key_file: - key_file.write('"{0}": "{1}"'.format(unit['meaning'], unit['key'])) - qqq_file.write(u'\t"{0}": "{1}"'.format( - unit['meaning'], - unit['description'].replace('"', "'").replace( - '{lb}', '{').replace('{rb}', '}'))) - first_entry = False - _close_lang_file(lang_file) - if write_key_file: - _close_key_file(key_file) - _close_qqq_file(qqq_file) diff --git a/lib/blockly/i18n/create_messages.py b/lib/blockly/i18n/create_messages.py deleted file mode 100644 index dba3b35..0000000 --- a/lib/blockly/i18n/create_messages.py +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/python - -# Generate .js files defining Blockly core and language messages. -# -# Copyright 2013 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import argparse -import codecs -import os -import re -import sys -from common import read_json_file - - -_NEWLINE_PATTERN = re.compile('[\n\r]') - - -def string_is_ascii(s): - try: - # This approach is better for compatibility - return all(ord(c) < 128 for c in s) - except TypeError: - return False - -def load_constants(filename): - """Read in constants file, which must be output in every language.""" - constant_defs = read_json_file(filename) - constants_text = '\n' - for key in constant_defs: - value = constant_defs[key] - value = value.replace('"', '\\"') - constants_text += u'\nBlockly.Msg["{0}"] = \"{1}\";'.format( - key, value) - return constants_text - -def main(): - """Generate .js files defining Blockly core and language messages.""" - - # Process command-line arguments. - parser = argparse.ArgumentParser(description='Convert JSON files to JS.') - parser.add_argument('--source_lang', default='en', - help='ISO 639-1 source language code') - parser.add_argument('--source_lang_file', - default=os.path.join('json', 'en.json'), - help='Path to .json file for source language') - parser.add_argument('--source_synonym_file', - default=os.path.join('json', 'synonyms.json'), - help='Path to .json file with synonym definitions') - parser.add_argument('--source_constants_file', - default=os.path.join('json', 'constants.json'), - help='Path to .json file with constant definitions') - parser.add_argument('--output_dir', default='js/', - help='relative directory for output files') - parser.add_argument('--key_file', default='keys.json', - help='relative path to input keys file') - parser.add_argument('--quiet', action='store_true', default=False, - help='do not write anything to standard output') - parser.add_argument('files', nargs='+', help='input files') - args = parser.parse_args() - if not args.output_dir.endswith(os.path.sep): - args.output_dir += os.path.sep - - # Read in source language .json file, which provides any values missing - # in target languages' .json files. - source_defs = read_json_file(os.path.join(os.curdir, args.source_lang_file)) - # Make sure the source file doesn't contain a newline or carriage return. - for key, value in source_defs.items(): - if _NEWLINE_PATTERN.search(value): - print('ERROR: definition of {0} in {1} contained a newline character.'. - format(key, args.source_lang_file)) - sys.exit(1) - sorted_keys = sorted(source_defs.keys()) - - # Read in synonyms file, which must be output in every language. - synonym_defs = read_json_file(os.path.join( - os.curdir, args.source_synonym_file)) - - # synonym_defs is also being sorted to ensure the same order is kept - synonym_text = '\n'.join([u'Blockly.Msg["{0}"] = Blockly.Msg["{1}"];' - .format(key, synonym_defs[key]) for key in sorted(synonym_defs)]) - - # Read in constants file, which must be output in every language. - constants_text = load_constants(os.path.join(os.curdir, args.source_constants_file)) - - # Create each output file. - for arg_file in args.files: - (_, filename) = os.path.split(arg_file) - target_lang = filename[:filename.index('.')] - if target_lang not in ('qqq', 'keys', 'synonyms', 'constants'): - target_defs = read_json_file(os.path.join(os.curdir, arg_file)) - - # Verify that keys are 'ascii' - bad_keys = [key for key in target_defs if not string_is_ascii(key)] - if bad_keys: - print(u'These keys in {0} contain non ascii characters: {1}'.format( - filename, ', '.join(bad_keys))) - - # If there's a '\n' or '\r', remove it and print a warning. - for key, value in target_defs.items(): - if _NEWLINE_PATTERN.search(value): - print(u'WARNING: definition of {0} in {1} contained ' - 'a newline character.'. - format(key, arg_file)) - target_defs[key] = _NEWLINE_PATTERN.sub(' ', value) - - # Output file. - outname = os.path.join(os.curdir, args.output_dir, target_lang + '.js') - with codecs.open(outname, 'w', 'utf-8') as outfile: - outfile.write( - """// This file was automatically generated. Do not modify. - -'use strict'; - -""".format(target_lang.replace('-', '.'))) - # For each key in the source language file, output the target value - # if present; otherwise, output the source language value with a - # warning comment. - for key in sorted_keys: - if key in target_defs: - value = target_defs[key] - comment = '' - del target_defs[key] - else: - value = source_defs[key] - comment = ' // untranslated' - value = value.replace('"', '\\"') - outfile.write(u'Blockly.Msg["{0}"] = "{1}";{2}\n' - .format(key, value, comment)) - - # Announce any keys defined only for target language. - if target_defs: - extra_keys = [key for key in target_defs if key not in synonym_defs] - synonym_keys = [key for key in target_defs if key in synonym_defs] - if not args.quiet: - if extra_keys: - print(u'These extra keys appeared in {0}: {1}'.format( - filename, ', '.join(extra_keys))) - if synonym_keys: - print(u'These synonym keys appeared in {0}: {1}'.format( - filename, ', '.join(synonym_keys))) - - outfile.write(synonym_text) - outfile.write(constants_text) - - if not args.quiet: - print('Created {0}.'.format(outname)) - - -if __name__ == '__main__': - main() diff --git a/lib/blockly/i18n/dedup_json.py b/lib/blockly/i18n/dedup_json.py deleted file mode 100644 index 1329e47..0000000 --- a/lib/blockly/i18n/dedup_json.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/python - -# Consolidates duplicate key-value pairs in a JSON file. -# If the same key is used with different values, no warning is given, -# and there is no guarantee about which key-value pair will be output. -# There is also no guarantee as to the order of the key-value pairs -# output. -# -# Copyright 2013 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import argparse -import codecs -import json -from common import InputError - - -def main(): - """Parses arguments and iterates over files. - - Raises: - IOError: An I/O error occurred with an input or output file. - InputError: Input JSON could not be parsed. - """ - - # Set up argument parser. - parser = argparse.ArgumentParser( - description='Removes duplicate key-value pairs from JSON files.') - parser.add_argument('--suffix', default='', - help='optional suffix for output files; ' - 'if empty, files will be changed in place') - parser.add_argument('files', nargs='+', help='input files') - args = parser.parse_args() - - # Iterate over files. - for filename in args.files: - # Read in json using Python libraries. This eliminates duplicates. - print('Processing ' + filename + '...') - try: - with codecs.open(filename, 'r', 'utf-8') as infile: - j = json.load(infile) - except ValueError as e: - print('Error reading ' + filename) - raise InputError(filename, str(e)) - - # Built up output strings as an array to make output of delimiters easier. - output = [] - for key in j: - if key != '@metadata': - output.append('\t"' + key + '": "' + - j[key].replace('\n', '\\n') + '"') - - # Output results. - with codecs.open(filename + args.suffix, 'w', 'utf-8') as outfile: - outfile.write('{\n') - outfile.write(',\n'.join(output)) - outfile.write('\n}\n') - - -if __name__ == '__main__': - main() diff --git a/lib/blockly/i18n/js_to_json.py b/lib/blockly/i18n/js_to_json.py deleted file mode 100644 index cd3d4dc..0000000 --- a/lib/blockly/i18n/js_to_json.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/python - -# Gives the translation status of the specified apps and languages. -# -# Copyright 2013 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Extracts messages from messages.js file into .json files for translation. - -Specifically, lines with the following formats are extracted: - - /// Here is a description of the following message. - Blockly.SOME_KEY = 'Some value'; - -Adjacent "///" lines are concatenated. - -There are two output files, each of which is proper JSON. For each key, the -file en.json would get an entry of the form: - - "Blockly.SOME_KEY", "Some value", - -The file qqq.json would get: - - "Blockly.SOME_KEY", "Here is a description of the following message.", - -Commas would of course be omitted for the final entry of each value. - -@author Ellen Spertus (ellen.spertus@gmail.com) -""" - -import argparse -import codecs -import json -import os -import re -from common import write_files - - -_INPUT_DEF_PATTERN = re.compile("""Blockly.Msg.(\w*)\s*=\s*'(.*)';?\r?$""") - -_INPUT_SYN_PATTERN = re.compile( - """Blockly.Msg.(\w*)\s*=\s*Blockly.Msg.(\w*);""") - -_CONSTANT_DESCRIPTION_PATTERN = re.compile( - """{{Notranslate}}""", re.IGNORECASE) - -def main(): - # Set up argument parser. - parser = argparse.ArgumentParser(description='Create translation files.') - parser.add_argument( - '--author', - default='Ellen Spertus ', - help='name and email address of contact for translators') - parser.add_argument('--lang', default='en', - help='ISO 639-1 source language code') - parser.add_argument('--output_dir', default='json', - help='relative directory for output files') - parser.add_argument('--input_file', default='messages.js', - help='input file') - parser.add_argument('--quiet', action='store_true', default=False, - help='only display warnings, not routine info') - args = parser.parse_args() - if (not args.output_dir.endswith(os.path.sep)): - args.output_dir += os.path.sep - - # Read and parse input file. - results = [] - synonyms = {} - constants = {} # Values that are constant across all languages. - description = '' - infile = codecs.open(args.input_file, 'r', 'utf-8') - for line in infile: - if line.startswith('///'): - if description: - description = description + ' ' + line[3:].strip() - else: - description = line[3:].strip() - else: - match = _INPUT_DEF_PATTERN.match(line) - if match: - key = match.group(1) - value = match.group(2).replace("\\'", "'") - if not description: - print('Warning: No description for ' + result['meaning']) - if (description and _CONSTANT_DESCRIPTION_PATTERN.search(description)): - constants[key] = value - else: - result = {} - result['meaning'] = key - result['source'] = value - result['description'] = description - results.append(result) - description = '' - else: - match = _INPUT_SYN_PATTERN.match(line) - if match: - if description: - print('Warning: Description preceding definition of synonym {0}.'. - format(match.group(1))) - description = '' - synonyms[match.group(1)] = match.group(2) - infile.close() - - # Create .json, keys.json, and qqq.json. - write_files(args.author, args.lang, args.output_dir, results, False) - - # Create synonyms.json. - synonym_file_name = os.path.join(os.curdir, args.output_dir, 'synonyms.json') - with open(synonym_file_name, 'w') as outfile: - json.dump(synonyms, outfile) - if not args.quiet: - print("Wrote {0} synonym pairs to {1}.".format( - len(synonyms), synonym_file_name)) - - # Create constants.json - constants_file_name = os.path.join(os.curdir, args.output_dir, 'constants.json') - with open(constants_file_name, 'w') as outfile: - json.dump(constants, outfile) - if not args.quiet: - print("Wrote {0} constant pairs to {1}.".format( - len(constants), synonym_file_name)) - -if __name__ == '__main__': - main() diff --git a/lib/blockly/i18n/tests.py b/lib/blockly/i18n/tests.py deleted file mode 100644 index 2fd3bc7..0000000 --- a/lib/blockly/i18n/tests.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Tests of i18n scripts. -# -# Copyright 2013 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import common -import re -import unittest - -class TestSequenceFunctions(unittest.TestCase): - def test_insert_breaks(self): - spaces = re.compile(r'\s+|\\n') - def contains_all_chars(orig, result): - return re.sub(spaces, '', orig) == re.sub(spaces, '', result) - - sentences = [u'Quay Pegman qua bên trái hoặc bên phải 90 độ.', - u'Foo bar baz this is english that is okay bye.', - u'If there is a path in the specified direction, \nthen ' + - u'do some actions.', - u'If there is a path in the specified direction, then do ' + - u'the first block of actions. Otherwise, do the second ' + - u'block of actions.'] - for sentence in sentences: - output = common.insert_breaks(sentence, 30, 50) - self.assertTrue(contains_all_chars(sentence, output), - u'Mismatch between:\n{0}\n{1}'.format( - re.sub(spaces, '', sentence), - re.sub(spaces, '', output))) - - -if __name__ == '__main__': - unittest.main() diff --git a/lib/blockly/javascript_compressed.js b/lib/blockly/javascript_compressed.js deleted file mode 100644 index 682ce28..0000000 --- a/lib/blockly/javascript_compressed.js +++ /dev/null @@ -1,103 +0,0 @@ -// Do not edit this file; automatically generated by build.py. -'use strict'; - - -Blockly.JavaScript=new Blockly.Generator("JavaScript");Blockly.JavaScript.addReservedWords("Blockly,break,case,catch,continue,debugger,default,delete,do,else,finally,for,function,if,in,instanceof,new,return,switch,this,throw,try,typeof,var,void,while,with,class,enum,export,extends,import,super,implements,interface,let,package,private,protected,public,static,yield,const,null,true,false,Array,ArrayBuffer,Boolean,Date,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Error,eval,EvalError,Float32Array,Float64Array,Function,Infinity,Int16Array,Int32Array,Int8Array,isFinite,isNaN,Iterator,JSON,Math,NaN,Number,Object,parseFloat,parseInt,RangeError,ReferenceError,RegExp,StopIteration,String,SyntaxError,TypeError,Uint16Array,Uint32Array,Uint8Array,Uint8ClampedArray,undefined,uneval,URIError,applicationCache,closed,Components,content,_content,controllers,crypto,defaultStatus,dialogArguments,directories,document,frameElement,frames,fullScreen,globalStorage,history,innerHeight,innerWidth,length,location,locationbar,localStorage,menubar,messageManager,mozAnimationStartTime,mozInnerScreenX,mozInnerScreenY,mozPaintCount,name,navigator,opener,outerHeight,outerWidth,pageXOffset,pageYOffset,parent,performance,personalbar,pkcs11,returnValue,screen,screenX,screenY,scrollbars,scrollMaxX,scrollMaxY,scrollX,scrollY,self,sessionStorage,sidebar,status,statusbar,toolbar,top,URL,window,addEventListener,alert,atob,back,blur,btoa,captureEvents,clearImmediate,clearInterval,clearTimeout,close,confirm,disableExternalCapture,dispatchEvent,dump,enableExternalCapture,escape,find,focus,forward,GeckoActiveXObject,getAttention,getAttentionWithCycleCount,getComputedStyle,getSelection,home,matchMedia,maximize,minimize,moveBy,moveTo,mozRequestAnimationFrame,open,openDialog,postMessage,print,prompt,QueryInterface,releaseEvents,removeEventListener,resizeBy,resizeTo,restore,routeEvent,scroll,scrollBy,scrollByLines,scrollByPages,scrollTo,setCursor,setImmediate,setInterval,setResizable,setTimeout,showModalDialog,sizeToContent,stop,unescape,updateCommands,XPCNativeWrapper,XPCSafeJSObjectWrapper,onabort,onbeforeunload,onblur,onchange,onclick,onclose,oncontextmenu,ondevicemotion,ondeviceorientation,ondragdrop,onerror,onfocus,onhashchange,onkeydown,onkeypress,onkeyup,onload,onmousedown,onmousemove,onmouseout,onmouseover,onmouseup,onmozbeforepaint,onpaint,onpopstate,onreset,onresize,onscroll,onselect,onsubmit,onunload,onpageshow,onpagehide,Image,Option,Worker,Event,Range,File,FileReader,Blob,BlobBuilder,Attr,CDATASection,CharacterData,Comment,console,DocumentFragment,DocumentType,DomConfiguration,DOMError,DOMErrorHandler,DOMException,DOMImplementation,DOMImplementationList,DOMImplementationRegistry,DOMImplementationSource,DOMLocator,DOMObject,DOMString,DOMStringList,DOMTimeStamp,DOMUserData,Entity,EntityReference,MediaQueryList,MediaQueryListListener,NameList,NamedNodeMap,Node,NodeFilter,NodeIterator,NodeList,Notation,Plugin,PluginArray,ProcessingInstruction,SharedWorker,Text,TimeRanges,Treewalker,TypeInfo,UserDataHandler,Worker,WorkerGlobalScope,HTMLDocument,HTMLElement,HTMLAnchorElement,HTMLAppletElement,HTMLAudioElement,HTMLAreaElement,HTMLBaseElement,HTMLBaseFontElement,HTMLBodyElement,HTMLBRElement,HTMLButtonElement,HTMLCanvasElement,HTMLDirectoryElement,HTMLDivElement,HTMLDListElement,HTMLEmbedElement,HTMLFieldSetElement,HTMLFontElement,HTMLFormElement,HTMLFrameElement,HTMLFrameSetElement,HTMLHeadElement,HTMLHeadingElement,HTMLHtmlElement,HTMLHRElement,HTMLIFrameElement,HTMLImageElement,HTMLInputElement,HTMLKeygenElement,HTMLLabelElement,HTMLLIElement,HTMLLinkElement,HTMLMapElement,HTMLMenuElement,HTMLMetaElement,HTMLModElement,HTMLObjectElement,HTMLOListElement,HTMLOptGroupElement,HTMLOptionElement,HTMLOutputElement,HTMLParagraphElement,HTMLParamElement,HTMLPreElement,HTMLQuoteElement,HTMLScriptElement,HTMLSelectElement,HTMLSourceElement,HTMLSpanElement,HTMLStyleElement,HTMLTableElement,HTMLTableCaptionElement,HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement,HTMLTableColElement,HTMLTableRowElement,HTMLTableSectionElement,HTMLTextAreaElement,HTMLTimeElement,HTMLTitleElement,HTMLTrackElement,HTMLUListElement,HTMLUnknownElement,HTMLVideoElement,HTMLCanvasElement,CanvasRenderingContext2D,CanvasGradient,CanvasPattern,TextMetrics,ImageData,CanvasPixelArray,HTMLAudioElement,HTMLVideoElement,NotifyAudioAvailableEvent,HTMLCollection,HTMLAllCollection,HTMLFormControlsCollection,HTMLOptionsCollection,HTMLPropertiesCollection,DOMTokenList,DOMSettableTokenList,DOMStringMap,RadioNodeList,SVGDocument,SVGElement,SVGAElement,SVGAltGlyphElement,SVGAltGlyphDefElement,SVGAltGlyphItemElement,SVGAnimationElement,SVGAnimateElement,SVGAnimateColorElement,SVGAnimateMotionElement,SVGAnimateTransformElement,SVGSetElement,SVGCircleElement,SVGClipPathElement,SVGColorProfileElement,SVGCursorElement,SVGDefsElement,SVGDescElement,SVGEllipseElement,SVGFilterElement,SVGFilterPrimitiveStandardAttributes,SVGFEBlendElement,SVGFEColorMatrixElement,SVGFEComponentTransferElement,SVGFECompositeElement,SVGFEConvolveMatrixElement,SVGFEDiffuseLightingElement,SVGFEDisplacementMapElement,SVGFEDistantLightElement,SVGFEFloodElement,SVGFEGaussianBlurElement,SVGFEImageElement,SVGFEMergeElement,SVGFEMergeNodeElement,SVGFEMorphologyElement,SVGFEOffsetElement,SVGFEPointLightElement,SVGFESpecularLightingElement,SVGFESpotLightElement,SVGFETileElement,SVGFETurbulenceElement,SVGComponentTransferFunctionElement,SVGFEFuncRElement,SVGFEFuncGElement,SVGFEFuncBElement,SVGFEFuncAElement,SVGFontElement,SVGFontFaceElement,SVGFontFaceFormatElement,SVGFontFaceNameElement,SVGFontFaceSrcElement,SVGFontFaceUriElement,SVGForeignObjectElement,SVGGElement,SVGGlyphElement,SVGGlyphRefElement,SVGGradientElement,SVGLinearGradientElement,SVGRadialGradientElement,SVGHKernElement,SVGImageElement,SVGLineElement,SVGMarkerElement,SVGMaskElement,SVGMetadataElement,SVGMissingGlyphElement,SVGMPathElement,SVGPathElement,SVGPatternElement,SVGPolylineElement,SVGPolygonElement,SVGRectElement,SVGScriptElement,SVGStopElement,SVGStyleElement,SVGSVGElement,SVGSwitchElement,SVGSymbolElement,SVGTextElement,SVGTextPathElement,SVGTitleElement,SVGTRefElement,SVGTSpanElement,SVGUseElement,SVGViewElement,SVGVKernElement,SVGAngle,SVGColor,SVGICCColor,SVGElementInstance,SVGElementInstanceList,SVGLength,SVGLengthList,SVGMatrix,SVGNumber,SVGNumberList,SVGPaint,SVGPoint,SVGPointList,SVGPreserveAspectRatio,SVGRect,SVGStringList,SVGTransform,SVGTransformList,SVGAnimatedAngle,SVGAnimatedBoolean,SVGAnimatedEnumeration,SVGAnimatedInteger,SVGAnimatedLength,SVGAnimatedLengthList,SVGAnimatedNumber,SVGAnimatedNumberList,SVGAnimatedPreserveAspectRatio,SVGAnimatedRect,SVGAnimatedString,SVGAnimatedTransformList,SVGPathSegList,SVGPathSeg,SVGPathSegArcAbs,SVGPathSegArcRel,SVGPathSegClosePath,SVGPathSegCurvetoCubicAbs,SVGPathSegCurvetoCubicRel,SVGPathSegCurvetoCubicSmoothAbs,SVGPathSegCurvetoCubicSmoothRel,SVGPathSegCurvetoQuadraticAbs,SVGPathSegCurvetoQuadraticRel,SVGPathSegCurvetoQuadraticSmoothAbs,SVGPathSegCurvetoQuadraticSmoothRel,SVGPathSegLinetoAbs,SVGPathSegLinetoHorizontalAbs,SVGPathSegLinetoHorizontalRel,SVGPathSegLinetoRel,SVGPathSegLinetoVerticalAbs,SVGPathSegLinetoVerticalRel,SVGPathSegMovetoAbs,SVGPathSegMovetoRel,ElementTimeControl,TimeEvent,SVGAnimatedPathData,SVGAnimatedPoints,SVGColorProfileRule,SVGCSSRule,SVGExternalResourcesRequired,SVGFitToViewBox,SVGLangSpace,SVGLocatable,SVGRenderingIntent,SVGStylable,SVGTests,SVGTextContentElement,SVGTextPositioningElement,SVGTransformable,SVGUnitTypes,SVGURIReference,SVGViewSpec,SVGZoomAndPan"); -Blockly.JavaScript.ORDER_ATOMIC=0;Blockly.JavaScript.ORDER_NEW=1.1;Blockly.JavaScript.ORDER_MEMBER=1.2;Blockly.JavaScript.ORDER_FUNCTION_CALL=2;Blockly.JavaScript.ORDER_INCREMENT=3;Blockly.JavaScript.ORDER_DECREMENT=3;Blockly.JavaScript.ORDER_BITWISE_NOT=4.1;Blockly.JavaScript.ORDER_UNARY_PLUS=4.2;Blockly.JavaScript.ORDER_UNARY_NEGATION=4.3;Blockly.JavaScript.ORDER_LOGICAL_NOT=4.4;Blockly.JavaScript.ORDER_TYPEOF=4.5;Blockly.JavaScript.ORDER_VOID=4.6;Blockly.JavaScript.ORDER_DELETE=4.7; -Blockly.JavaScript.ORDER_AWAIT=4.8;Blockly.JavaScript.ORDER_EXPONENTIATION=5;Blockly.JavaScript.ORDER_MULTIPLICATION=5.1;Blockly.JavaScript.ORDER_DIVISION=5.2;Blockly.JavaScript.ORDER_MODULUS=5.3;Blockly.JavaScript.ORDER_SUBTRACTION=6.1;Blockly.JavaScript.ORDER_ADDITION=6.2;Blockly.JavaScript.ORDER_BITWISE_SHIFT=7;Blockly.JavaScript.ORDER_RELATIONAL=8;Blockly.JavaScript.ORDER_IN=8;Blockly.JavaScript.ORDER_INSTANCEOF=8;Blockly.JavaScript.ORDER_EQUALITY=9;Blockly.JavaScript.ORDER_BITWISE_AND=10; -Blockly.JavaScript.ORDER_BITWISE_XOR=11;Blockly.JavaScript.ORDER_BITWISE_OR=12;Blockly.JavaScript.ORDER_LOGICAL_AND=13;Blockly.JavaScript.ORDER_LOGICAL_OR=14;Blockly.JavaScript.ORDER_CONDITIONAL=15;Blockly.JavaScript.ORDER_ASSIGNMENT=16;Blockly.JavaScript.ORDER_YIELD=17;Blockly.JavaScript.ORDER_COMMA=18;Blockly.JavaScript.ORDER_NONE=99; -Blockly.JavaScript.ORDER_OVERRIDES=[[Blockly.JavaScript.ORDER_FUNCTION_CALL,Blockly.JavaScript.ORDER_MEMBER],[Blockly.JavaScript.ORDER_FUNCTION_CALL,Blockly.JavaScript.ORDER_FUNCTION_CALL],[Blockly.JavaScript.ORDER_MEMBER,Blockly.JavaScript.ORDER_MEMBER],[Blockly.JavaScript.ORDER_MEMBER,Blockly.JavaScript.ORDER_FUNCTION_CALL],[Blockly.JavaScript.ORDER_LOGICAL_NOT,Blockly.JavaScript.ORDER_LOGICAL_NOT],[Blockly.JavaScript.ORDER_MULTIPLICATION,Blockly.JavaScript.ORDER_MULTIPLICATION],[Blockly.JavaScript.ORDER_ADDITION, -Blockly.JavaScript.ORDER_ADDITION],[Blockly.JavaScript.ORDER_LOGICAL_AND,Blockly.JavaScript.ORDER_LOGICAL_AND],[Blockly.JavaScript.ORDER_LOGICAL_OR,Blockly.JavaScript.ORDER_LOGICAL_OR]]; -Blockly.JavaScript.init=function(a){Blockly.JavaScript.definitions_=Object.create(null);Blockly.JavaScript.functionNames_=Object.create(null);Blockly.JavaScript.variableDB_?Blockly.JavaScript.variableDB_.reset():Blockly.JavaScript.variableDB_=new Blockly.Names(Blockly.JavaScript.RESERVED_WORDS_);Blockly.JavaScript.variableDB_.setVariableMap(a.getVariableMap());for(var b=[],c=Blockly.Variables.allDeveloperVariables(a),d=0;dc?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_SUBTRACTION)||f:d?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_UNARY_NEGATION)||f:Blockly.JavaScript.valueToCode(a,b,e)||f;if(Blockly.isNumber(a))a=Number(a)+c,d&& -(a=-a);else{if(0c&&(a=a+" - "+-c,g=Blockly.JavaScript.ORDER_SUBTRACTION);d&&(a=c?"-("+a+")":"-"+a,g=Blockly.JavaScript.ORDER_UNARY_NEGATION);g=Math.floor(g);e=Math.floor(e);g&&e>=g&&(a="("+a+")")}return a};Blockly.JavaScript.colour={};Blockly.JavaScript.colour_picker=function(a){return[Blockly.JavaScript.quote_(a.getFieldValue("COLOUR")),Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.colour_random=function(a){return[Blockly.JavaScript.provideFunction_("colourRandom",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"() {"," var num = Math.floor(Math.random() * Math.pow(2, 24));"," return '#' + ('00000' + num.toString(16)).substr(-6);","}"])+"()",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.colour_rgb=function(a){var b=Blockly.JavaScript.valueToCode(a,"RED",Blockly.JavaScript.ORDER_COMMA)||0,c=Blockly.JavaScript.valueToCode(a,"GREEN",Blockly.JavaScript.ORDER_COMMA)||0;a=Blockly.JavaScript.valueToCode(a,"BLUE",Blockly.JavaScript.ORDER_COMMA)||0;return[Blockly.JavaScript.provideFunction_("colourRgb",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(r, g, b) {"," r = Math.max(Math.min(Number(r), 100), 0) * 2.55;"," g = Math.max(Math.min(Number(g), 100), 0) * 2.55;", -" b = Math.max(Math.min(Number(b), 100), 0) * 2.55;"," r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2);"," g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2);"," b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2);"," return '#' + r + g + b;","}"])+"("+b+", "+c+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.colour_blend=function(a){var b=Blockly.JavaScript.valueToCode(a,"COLOUR1",Blockly.JavaScript.ORDER_COMMA)||"'#000000'",c=Blockly.JavaScript.valueToCode(a,"COLOUR2",Blockly.JavaScript.ORDER_COMMA)||"'#000000'";a=Blockly.JavaScript.valueToCode(a,"RATIO",Blockly.JavaScript.ORDER_COMMA)||.5;return[Blockly.JavaScript.provideFunction_("colourBlend",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(c1, c2, ratio) {"," ratio = Math.max(Math.min(Number(ratio), 1), 0);"," var r1 = parseInt(c1.substring(1, 3), 16);", -" var g1 = parseInt(c1.substring(3, 5), 16);"," var b1 = parseInt(c1.substring(5, 7), 16);"," var r2 = parseInt(c2.substring(1, 3), 16);"," var g2 = parseInt(c2.substring(3, 5), 16);"," var b2 = parseInt(c2.substring(5, 7), 16);"," var r = Math.round(r1 * (1 - ratio) + r2 * ratio);"," var g = Math.round(g1 * (1 - ratio) + g2 * ratio);"," var b = Math.round(b1 * (1 - ratio) + b2 * ratio);"," r = ('0' + (r || 0).toString(16)).slice(-2);"," g = ('0' + (g || 0).toString(16)).slice(-2);"," b = ('0' + (b || 0).toString(16)).slice(-2);", -" return '#' + r + g + b;","}"])+"("+b+", "+c+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.lists={};Blockly.JavaScript.lists_create_empty=function(a){return["[]",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.lists_create_with=function(a){for(var b=Array(a.itemCount_),c=0;c b.toString() ? 1 : -1; },", -' "IGNORE_CASE": function(a, b) {'," return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },"," };"," var compare = compareFuncs[type];"," return function(a, b) { return compare(a, b) * direction; }","}"]);return[b+".slice().sort("+d+'("'+a+'", '+c+"))",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.lists_split=function(a){var b=Blockly.JavaScript.valueToCode(a,"INPUT",Blockly.JavaScript.ORDER_MEMBER),c=Blockly.JavaScript.valueToCode(a,"DELIM",Blockly.JavaScript.ORDER_NONE)||"''";a=a.getFieldValue("MODE");if("SPLIT"==a)b||(b="''"),a="split";else if("JOIN"==a)b||(b="[]"),a="join";else throw Error("Unknown mode: "+a);return[b+"."+a+"("+c+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.lists_reverse=function(a){return[(Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_FUNCTION_CALL)||"[]")+".slice().reverse()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.logic={}; -Blockly.JavaScript.controls_if=function(a){var b=0,c="";Blockly.JavaScript.STATEMENT_PREFIX&&(c+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX,a));do{var d=Blockly.JavaScript.valueToCode(a,"IF"+b,Blockly.JavaScript.ORDER_NONE)||"false";var e=Blockly.JavaScript.statementToCode(a,"DO"+b);Blockly.JavaScript.STATEMENT_SUFFIX&&(e=Blockly.JavaScript.prefixLines(Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX,a),Blockly.JavaScript.INDENT)+e);c+=(0",GTE:">="}[a.getFieldValue("OP")],c="=="==b||"!="==b?Blockly.JavaScript.ORDER_EQUALITY:Blockly.JavaScript.ORDER_RELATIONAL,d=Blockly.JavaScript.valueToCode(a,"A",c)||"0";a=Blockly.JavaScript.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]}; -Blockly.JavaScript.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"&&":"||",c="&&"==b?Blockly.JavaScript.ORDER_LOGICAL_AND:Blockly.JavaScript.ORDER_LOGICAL_OR,d=Blockly.JavaScript.valueToCode(a,"A",c);a=Blockly.JavaScript.valueToCode(a,"B",c);if(d||a){var e="&&"==b?"true":"false";d||(d=e);a||(a=e)}else a=d="false";return[d+" "+b+" "+a,c]}; -Blockly.JavaScript.logic_negate=function(a){var b=Blockly.JavaScript.ORDER_LOGICAL_NOT;return["!"+(Blockly.JavaScript.valueToCode(a,"BOOL",b)||"true"),b]};Blockly.JavaScript.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"true":"false",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.logic_null=function(a){return["null",Blockly.JavaScript.ORDER_ATOMIC]}; -Blockly.JavaScript.logic_ternary=function(a){var b=Blockly.JavaScript.valueToCode(a,"IF",Blockly.JavaScript.ORDER_CONDITIONAL)||"false",c=Blockly.JavaScript.valueToCode(a,"THEN",Blockly.JavaScript.ORDER_CONDITIONAL)||"null";a=Blockly.JavaScript.valueToCode(a,"ELSE",Blockly.JavaScript.ORDER_CONDITIONAL)||"null";return[b+" ? "+c+" : "+a,Blockly.JavaScript.ORDER_CONDITIONAL]};Blockly.JavaScript.loops={}; -Blockly.JavaScript.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):Blockly.JavaScript.valueToCode(a,"TIMES",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",c=Blockly.JavaScript.statementToCode(a,"DO");c=Blockly.JavaScript.addLoopTrap(c,a);a="";var d=Blockly.JavaScript.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE),e=b;b.match(/^\w+$/)||Blockly.isNumber(b)||(e=Blockly.JavaScript.variableDB_.getDistinctName("repeat_end",Blockly.Variables.NAME_TYPE), -a+="var "+e+" = "+b+";\n");return a+("for (var "+d+" = 0; "+d+" < "+e+"; "+d+"++) {\n"+c+"}\n")};Blockly.JavaScript.controls_repeat=Blockly.JavaScript.controls_repeat_ext; -Blockly.JavaScript.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.JavaScript.valueToCode(a,"BOOL",b?Blockly.JavaScript.ORDER_LOGICAL_NOT:Blockly.JavaScript.ORDER_NONE)||"false",d=Blockly.JavaScript.statementToCode(a,"DO");d=Blockly.JavaScript.addLoopTrap(d,a);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"}; -Blockly.JavaScript.controls_for=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.JavaScript.valueToCode(a,"FROM",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",d=Blockly.JavaScript.valueToCode(a,"TO",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",e=Blockly.JavaScript.valueToCode(a,"BY",Blockly.JavaScript.ORDER_ASSIGNMENT)||"1",f=Blockly.JavaScript.statementToCode(a,"DO");f=Blockly.JavaScript.addLoopTrap(f,a);if(Blockly.isNumber(c)&&Blockly.isNumber(d)&& -Blockly.isNumber(e)){var g=Number(c)<=Number(d);a="for ("+b+" = "+c+"; "+b+(g?" <= ":" >= ")+d+"; "+b;b=Math.abs(Number(e));a=(1==b?a+(g?"++":"--"):a+((g?" += ":" -= ")+b))+(") {\n"+f+"}\n")}else a="",g=c,c.match(/^\w+$/)||Blockly.isNumber(c)||(g=Blockly.JavaScript.variableDB_.getDistinctName(b+"_start",Blockly.Variables.NAME_TYPE),a+="var "+g+" = "+c+";\n"),c=d,d.match(/^\w+$/)||Blockly.isNumber(d)||(c=Blockly.JavaScript.variableDB_.getDistinctName(b+"_end",Blockly.Variables.NAME_TYPE),a+="var "+ -c+" = "+d+";\n"),d=Blockly.JavaScript.variableDB_.getDistinctName(b+"_inc",Blockly.Variables.NAME_TYPE),a+="var "+d+" = ",a=Blockly.isNumber(e)?a+(Math.abs(e)+";\n"):a+("Math.abs("+e+");\n"),a=a+("if ("+g+" > "+c+") {\n")+(Blockly.JavaScript.INDENT+d+" = -"+d+";\n"),a+="}\n",a+="for ("+b+" = "+g+"; "+d+" >= 0 ? "+b+" <= "+c+" : "+b+" >= "+c+"; "+b+" += "+d+") {\n"+f+"}\n";return a}; -Blockly.JavaScript.controls_forEach=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_ASSIGNMENT)||"[]",d=Blockly.JavaScript.statementToCode(a,"DO");d=Blockly.JavaScript.addLoopTrap(d,a);a="";var e=c;c.match(/^\w+$/)||(e=Blockly.JavaScript.variableDB_.getDistinctName(b+"_list",Blockly.Variables.NAME_TYPE),a+="var "+e+" = "+c+";\n");c=Blockly.JavaScript.variableDB_.getDistinctName(b+ -"_index",Blockly.Variables.NAME_TYPE);d=Blockly.JavaScript.INDENT+b+" = "+e+"["+c+"];\n"+d;return a+("for (var "+c+" in "+e+") {\n"+d+"}\n")}; -Blockly.JavaScript.controls_flow_statements=function(a){var b="";Blockly.JavaScript.STATEMENT_PREFIX&&(b+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX,a));Blockly.JavaScript.STATEMENT_SUFFIX&&(b+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX,a));if(Blockly.JavaScript.STATEMENT_PREFIX){var c=Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(a);c&&!c.suppressPrefixSuffix&&(b+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX, -c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break;\n";case "CONTINUE":return b+"continue;\n"}throw Error("Unknown flow statement.");};Blockly.JavaScript.math={};Blockly.JavaScript.math_number=function(a){a=Number(a.getFieldValue("NUM"));return[a,0<=a?Blockly.JavaScript.ORDER_ATOMIC:Blockly.JavaScript.ORDER_UNARY_NEGATION]}; -Blockly.JavaScript.math_arithmetic=function(a){var b={ADD:[" + ",Blockly.JavaScript.ORDER_ADDITION],MINUS:[" - ",Blockly.JavaScript.ORDER_SUBTRACTION],MULTIPLY:[" * ",Blockly.JavaScript.ORDER_MULTIPLICATION],DIVIDE:[" / ",Blockly.JavaScript.ORDER_DIVISION],POWER:[null,Blockly.JavaScript.ORDER_COMMA]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=Blockly.JavaScript.valueToCode(a,"A",b)||"0";a=Blockly.JavaScript.valueToCode(a,"B",b)||"0";return c?[d+c+a,b]:["Math.pow("+d+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"==b)return a=Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_UNARY_NEGATION)||"0","-"==a[0]&&(a=" "+a),["-"+a,Blockly.JavaScript.ORDER_UNARY_NEGATION];a="SIN"==b||"COS"==b||"TAN"==b?Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_DIVISION)||"0":Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_NONE)||"0";switch(b){case "ABS":var c="Math.abs("+a+")";break;case "ROOT":c="Math.sqrt("+ -a+")";break;case "LN":c="Math.log("+a+")";break;case "EXP":c="Math.exp("+a+")";break;case "POW10":c="Math.pow(10,"+a+")";break;case "ROUND":c="Math.round("+a+")";break;case "ROUNDUP":c="Math.ceil("+a+")";break;case "ROUNDDOWN":c="Math.floor("+a+")";break;case "SIN":c="Math.sin("+a+" / 180 * Math.PI)";break;case "COS":c="Math.cos("+a+" / 180 * Math.PI)";break;case "TAN":c="Math.tan("+a+" / 180 * Math.PI)"}if(c)return[c,Blockly.JavaScript.ORDER_FUNCTION_CALL];switch(b){case "LOG10":c="Math.log("+a+ -") / Math.log(10)";break;case "ASIN":c="Math.asin("+a+") / Math.PI * 180";break;case "ACOS":c="Math.acos("+a+") / Math.PI * 180";break;case "ATAN":c="Math.atan("+a+") / Math.PI * 180";break;default:throw Error("Unknown math operator: "+b);}return[c,Blockly.JavaScript.ORDER_DIVISION]}; -Blockly.JavaScript.math_constant=function(a){return{PI:["Math.PI",Blockly.JavaScript.ORDER_MEMBER],E:["Math.E",Blockly.JavaScript.ORDER_MEMBER],GOLDEN_RATIO:["(1 + Math.sqrt(5)) / 2",Blockly.JavaScript.ORDER_DIVISION],SQRT2:["Math.SQRT2",Blockly.JavaScript.ORDER_MEMBER],SQRT1_2:["Math.SQRT1_2",Blockly.JavaScript.ORDER_MEMBER],INFINITY:["Infinity",Blockly.JavaScript.ORDER_ATOMIC]}[a.getFieldValue("CONSTANT")]}; -Blockly.JavaScript.math_number_property=function(a){var b=Blockly.JavaScript.valueToCode(a,"NUMBER_TO_CHECK",Blockly.JavaScript.ORDER_MODULUS)||"0",c=a.getFieldValue("PROPERTY");if("PRIME"==c)return[Blockly.JavaScript.provideFunction_("mathIsPrime",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(n) {"," // https://en.wikipedia.org/wiki/Primality_test#Naive_methods"," if (n == 2 || n == 3) {"," return true;"," }"," // False if n is NaN, negative, is 1, or not whole."," // And false if n is divisible by 2 or 3.", -" if (isNaN(n) || n <= 1 || n % 1 != 0 || n % 2 == 0 || n % 3 == 0) {"," return false;"," }"," // Check all the numbers of form 6k +/- 1, up to sqrt(n)."," for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) {"," if (n % (x - 1) == 0 || n % (x + 1) == 0) {"," return false;"," }"," }"," return true;","}"])+"("+b+")",Blockly.JavaScript.ORDER_FUNCTION_CALL];switch(c){case "EVEN":var d=b+" % 2 == 0";break;case "ODD":d=b+" % 2 == 1";break;case "WHOLE":d=b+" % 1 == 0";break;case "POSITIVE":d= -b+" > 0";break;case "NEGATIVE":d=b+" < 0";break;case "DIVISIBLE_BY":a=Blockly.JavaScript.valueToCode(a,"DIVISOR",Blockly.JavaScript.ORDER_MODULUS)||"0",d=b+" % "+a+" == 0"}return[d,Blockly.JavaScript.ORDER_EQUALITY]};Blockly.JavaScript.math_change=function(a){var b=Blockly.JavaScript.valueToCode(a,"DELTA",Blockly.JavaScript.ORDER_ADDITION)||"0";a=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE);return a+" = (typeof "+a+" == 'number' ? "+a+" : 0) + "+b+";\n"}; -Blockly.JavaScript.math_round=Blockly.JavaScript.math_single;Blockly.JavaScript.math_trig=Blockly.JavaScript.math_single; -Blockly.JavaScript.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case "SUM":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_MEMBER)||"[]";a+=".reduce(function(x, y) {return x + y;})";break;case "MIN":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_COMMA)||"[]";a="Math.min.apply(null, "+a+")";break;case "MAX":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_COMMA)||"[]";a="Math.max.apply(null, "+a+")";break;case "AVERAGE":b=Blockly.JavaScript.provideFunction_("mathMean", -["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(myList) {"," return myList.reduce(function(x, y) {return x + y;}) / myList.length;","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MEDIAN":b=Blockly.JavaScript.provideFunction_("mathMedian",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(myList) {"," var localList = myList.filter(function (x) {return typeof x == 'number';});"," if (!localList.length) return null;", -" localList.sort(function(a, b) {return b - a;});"," if (localList.length % 2 == 0) {"," return (localList[localList.length / 2 - 1] + localList[localList.length / 2]) / 2;"," } else {"," return localList[(localList.length - 1) / 2];"," }","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MODE":b=Blockly.JavaScript.provideFunction_("mathModes",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(values) {"," var modes = [];", -" var counts = [];"," var maxCount = 0;"," for (var i = 0; i < values.length; i++) {"," var value = values[i];"," var found = false;"," var thisCount;"," for (var j = 0; j < counts.length; j++) {"," if (counts[j][0] === value) {"," thisCount = ++counts[j][1];"," found = true;"," break;"," }"," }"," if (!found) {"," counts.push([value, 1]);"," thisCount = 1;"," }"," maxCount = Math.max(thisCount, maxCount);"," }"," for (var j = 0; j < counts.length; j++) {", -" if (counts[j][1] == maxCount) {"," modes.push(counts[j][0]);"," }"," }"," return modes;","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "STD_DEV":b=Blockly.JavaScript.provideFunction_("mathStandardDeviation",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(numbers) {"," var n = numbers.length;"," if (!n) return null;"," var mean = numbers.reduce(function(x, y) {return x + y;}) / n;"," var variance = 0;", -" for (var j = 0; j < n; j++) {"," variance += Math.pow(numbers[j] - mean, 2);"," }"," variance = variance / n;"," return Math.sqrt(variance);","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "RANDOM":b=Blockly.JavaScript.provideFunction_("mathRandomList",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(list) {"," var x = Math.floor(Math.random() * list.length);"," return list[x];","}"]);a=Blockly.JavaScript.valueToCode(a, -"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;default:throw Error("Unknown operator: "+b);}return[a,Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_modulo=function(a){var b=Blockly.JavaScript.valueToCode(a,"DIVIDEND",Blockly.JavaScript.ORDER_MODULUS)||"0";a=Blockly.JavaScript.valueToCode(a,"DIVISOR",Blockly.JavaScript.ORDER_MODULUS)||"0";return[b+" % "+a,Blockly.JavaScript.ORDER_MODULUS]}; -Blockly.JavaScript.math_constrain=function(a){var b=Blockly.JavaScript.valueToCode(a,"VALUE",Blockly.JavaScript.ORDER_COMMA)||"0",c=Blockly.JavaScript.valueToCode(a,"LOW",Blockly.JavaScript.ORDER_COMMA)||"0";a=Blockly.JavaScript.valueToCode(a,"HIGH",Blockly.JavaScript.ORDER_COMMA)||"Infinity";return["Math.min(Math.max("+b+", "+c+"), "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.math_random_int=function(a){var b=Blockly.JavaScript.valueToCode(a,"FROM",Blockly.JavaScript.ORDER_COMMA)||"0";a=Blockly.JavaScript.valueToCode(a,"TO",Blockly.JavaScript.ORDER_COMMA)||"0";return[Blockly.JavaScript.provideFunction_("mathRandomInt",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(a, b) {"," if (a > b) {"," // Swap a and b to ensure a is smaller."," var c = a;"," a = b;"," b = c;"," }"," return Math.floor(Math.random() * (b - a + 1) + a);", -"}"])+"("+b+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_random_float=function(a){return["Math.random()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_atan2=function(a){var b=Blockly.JavaScript.valueToCode(a,"X",Blockly.JavaScript.ORDER_COMMA)||"0";return["Math.atan2("+(Blockly.JavaScript.valueToCode(a,"Y",Blockly.JavaScript.ORDER_COMMA)||"0")+", "+b+") / Math.PI * 180",Blockly.JavaScript.ORDER_DIVISION]};Blockly.JavaScript.procedures={}; -Blockly.JavaScript.procedures_defreturn=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("NAME"),Blockly.Procedures.NAME_TYPE),c="";Blockly.JavaScript.STATEMENT_PREFIX&&(c+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX,a));Blockly.JavaScript.STATEMENT_SUFFIX&&(c+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX,a));c&&(c=Blockly.JavaScript.prefixLines(c,Blockly.JavaScript.INDENT));var d="";Blockly.JavaScript.INFINITE_LOOP_TRAP&&(d=Blockly.JavaScript.prefixLines(Blockly.JavaScript.injectId(Blockly.JavaScript.INFINITE_LOOP_TRAP, -a),Blockly.JavaScript.INDENT));var e=Blockly.JavaScript.statementToCode(a,"STACK"),f=Blockly.JavaScript.valueToCode(a,"RETURN",Blockly.JavaScript.ORDER_NONE)||"",g="";e&&f&&(g=c);f&&(f=Blockly.JavaScript.INDENT+"return "+f+";\n");for(var k=[],h=0;h",GTE:">="}[a.getFieldValue("OP")],c=Blockly.Lua.valueToCode(a,"A",Blockly.Lua.ORDER_RELATIONAL)||"0";a=Blockly.Lua.valueToCode(a,"B",Blockly.Lua.ORDER_RELATIONAL)||"0";return[c+" "+b+" "+a,Blockly.Lua.ORDER_RELATIONAL]}; -Blockly.Lua.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"and":"or",c="and"==b?Blockly.Lua.ORDER_AND:Blockly.Lua.ORDER_OR,d=Blockly.Lua.valueToCode(a,"A",c);a=Blockly.Lua.valueToCode(a,"B",c);if(d||a){var e="and"==b?"true":"false";d||(d=e);a||(a=e)}else a=d="false";return[d+" "+b+" "+a,c]};Blockly.Lua.logic_negate=function(a){return["not "+(Blockly.Lua.valueToCode(a,"BOOL",Blockly.Lua.ORDER_UNARY)||"true"),Blockly.Lua.ORDER_UNARY]}; -Blockly.Lua.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"true":"false",Blockly.Lua.ORDER_ATOMIC]};Blockly.Lua.logic_null=function(a){return["nil",Blockly.Lua.ORDER_ATOMIC]};Blockly.Lua.logic_ternary=function(a){var b=Blockly.Lua.valueToCode(a,"IF",Blockly.Lua.ORDER_AND)||"false",c=Blockly.Lua.valueToCode(a,"THEN",Blockly.Lua.ORDER_AND)||"nil";a=Blockly.Lua.valueToCode(a,"ELSE",Blockly.Lua.ORDER_OR)||"nil";return[b+" and "+c+" or "+a,Blockly.Lua.ORDER_OR]};Blockly.Lua.loops={};Blockly.Lua.CONTINUE_STATEMENT="goto continue\n";Blockly.Lua.addContinueLabel_=function(a){return-1!=a.indexOf(Blockly.Lua.CONTINUE_STATEMENT)?a+Blockly.Lua.INDENT+"::continue::\n":a}; -Blockly.Lua.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):Blockly.Lua.valueToCode(a,"TIMES",Blockly.Lua.ORDER_NONE)||"0";b=Blockly.isNumber(b)?parseInt(b,10):"math.floor("+b+")";var c=Blockly.Lua.statementToCode(a,"DO");c=Blockly.Lua.addLoopTrap(c,a);c=Blockly.Lua.addContinueLabel_(c);return"for "+Blockly.Lua.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE)+" = 1, "+b+" do\n"+c+"end\n"};Blockly.Lua.controls_repeat=Blockly.Lua.controls_repeat_ext; -Blockly.Lua.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.Lua.valueToCode(a,"BOOL",b?Blockly.Lua.ORDER_UNARY:Blockly.Lua.ORDER_NONE)||"false",d=Blockly.Lua.statementToCode(a,"DO");d=Blockly.Lua.addLoopTrap(d,a);d=Blockly.Lua.addContinueLabel_(d);b&&(c="not "+c);return"while "+c+" do\n"+d+"end\n"}; -Blockly.Lua.controls_for=function(a){var b=Blockly.Lua.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.Lua.valueToCode(a,"FROM",Blockly.Lua.ORDER_NONE)||"0",d=Blockly.Lua.valueToCode(a,"TO",Blockly.Lua.ORDER_NONE)||"0",e=Blockly.Lua.valueToCode(a,"BY",Blockly.Lua.ORDER_NONE)||"1",f=Blockly.Lua.statementToCode(a,"DO");f=Blockly.Lua.addLoopTrap(f,a);f=Blockly.Lua.addContinueLabel_(f);a="";if(Blockly.isNumber(c)&&Blockly.isNumber(d)&&Blockly.isNumber(e))var g=(Number(c)<= -Number(d)?"":"-")+Math.abs(Number(e));else a="",g=Blockly.Lua.variableDB_.getDistinctName(b+"_inc",Blockly.Variables.NAME_TYPE),a+=g+" = ",a=Blockly.isNumber(e)?a+(Math.abs(e)+"\n"):a+("math.abs("+e+")\n"),a=a+("if ("+c+") > ("+d+") then\n")+(Blockly.Lua.INDENT+g+" = -"+g+"\n"),a+="end\n";return a+("for "+b+" = "+c+", "+d+", "+g)+(" do\n"+f+"end\n")}; -Blockly.Lua.controls_forEach=function(a){var b=Blockly.Lua.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.Lua.valueToCode(a,"LIST",Blockly.Lua.ORDER_NONE)||"{}",d=Blockly.Lua.statementToCode(a,"DO");d=Blockly.Lua.addLoopTrap(d,a);d=Blockly.Lua.addContinueLabel_(d);return"for _, "+b+" in ipairs("+c+") do \n"+d+"end\n"}; -Blockly.Lua.controls_flow_statements=function(a){var b="";Blockly.Lua.STATEMENT_PREFIX&&(b+=Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX,a));Blockly.Lua.STATEMENT_SUFFIX&&(b+=Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX,a));if(Blockly.Lua.STATEMENT_PREFIX){var c=Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(a);c&&!c.suppressPrefixSuffix&&(b+=Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX,c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break\n";case "CONTINUE":return b+ -Blockly.Lua.CONTINUE_STATEMENT}throw Error("Unknown flow statement.");};Blockly.Lua.math={};Blockly.Lua.math_number=function(a){a=Number(a.getFieldValue("NUM"));return[a,0>a?Blockly.Lua.ORDER_UNARY:Blockly.Lua.ORDER_ATOMIC]}; -Blockly.Lua.math_arithmetic=function(a){var b={ADD:[" + ",Blockly.Lua.ORDER_ADDITIVE],MINUS:[" - ",Blockly.Lua.ORDER_ADDITIVE],MULTIPLY:[" * ",Blockly.Lua.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",Blockly.Lua.ORDER_MULTIPLICATIVE],POWER:[" ^ ",Blockly.Lua.ORDER_EXPONENTIATION]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=Blockly.Lua.valueToCode(a,"A",b)||"0";a=Blockly.Lua.valueToCode(a,"B",b)||"0";return[d+c+a,b]}; -Blockly.Lua.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"==b)return a=Blockly.Lua.valueToCode(a,"NUM",Blockly.Lua.ORDER_UNARY)||"0",["-"+a,Blockly.Lua.ORDER_UNARY];if("POW10"==b)return a=Blockly.Lua.valueToCode(a,"NUM",Blockly.Lua.ORDER_EXPONENTIATION)||"0",["10 ^ "+a,Blockly.Lua.ORDER_EXPONENTIATION];a="ROUND"==b?Blockly.Lua.valueToCode(a,"NUM",Blockly.Lua.ORDER_ADDITIVE)||"0":Blockly.Lua.valueToCode(a,"NUM",Blockly.Lua.ORDER_NONE)||"0";switch(b){case "ABS":b="math.abs("+a+")";break; -case "ROOT":b="math.sqrt("+a+")";break;case "LN":b="math.log("+a+")";break;case "LOG10":b="math.log("+a+", 10)";break;case "EXP":b="math.exp("+a+")";break;case "ROUND":b="math.floor("+a+" + .5)";break;case "ROUNDUP":b="math.ceil("+a+")";break;case "ROUNDDOWN":b="math.floor("+a+")";break;case "SIN":b="math.sin(math.rad("+a+"))";break;case "COS":b="math.cos(math.rad("+a+"))";break;case "TAN":b="math.tan(math.rad("+a+"))";break;case "ASIN":b="math.deg(math.asin("+a+"))";break;case "ACOS":b="math.deg(math.acos("+ -a+"))";break;case "ATAN":b="math.deg(math.atan("+a+"))";break;default:throw Error("Unknown math operator: "+b);}return[b,Blockly.Lua.ORDER_HIGH]};Blockly.Lua.math_constant=function(a){return{PI:["math.pi",Blockly.Lua.ORDER_HIGH],E:["math.exp(1)",Blockly.Lua.ORDER_HIGH],GOLDEN_RATIO:["(1 + math.sqrt(5)) / 2",Blockly.Lua.ORDER_MULTIPLICATIVE],SQRT2:["math.sqrt(2)",Blockly.Lua.ORDER_HIGH],SQRT1_2:["math.sqrt(1 / 2)",Blockly.Lua.ORDER_HIGH],INFINITY:["math.huge",Blockly.Lua.ORDER_HIGH]}[a.getFieldValue("CONSTANT")]}; -Blockly.Lua.math_number_property=function(a){var b=Blockly.Lua.valueToCode(a,"NUMBER_TO_CHECK",Blockly.Lua.ORDER_MULTIPLICATIVE)||"0",c=a.getFieldValue("PROPERTY");if("PRIME"==c)return[Blockly.Lua.provideFunction_("math_isPrime",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(n)"," -- https://en.wikipedia.org/wiki/Primality_test#Naive_methods"," if n == 2 or n == 3 then"," return true"," end"," -- False if n is NaN, negative, is 1, or not whole."," -- And false if n is divisible by 2 or 3.", -" if not(n > 1) or n % 1 ~= 0 or n % 2 == 0 or n % 3 == 0 then"," return false"," end"," -- Check all the numbers of form 6k +/- 1, up to sqrt(n)."," for x = 6, math.sqrt(n) + 1.5, 6 do"," if n % (x - 1) == 0 or n % (x + 1) == 0 then"," return false"," end"," end"," return true","end"])+"("+b+")",Blockly.Lua.ORDER_HIGH];switch(c){case "EVEN":var d=b+" % 2 == 0";break;case "ODD":d=b+" % 2 == 1";break;case "WHOLE":d=b+" % 1 == 0";break;case "POSITIVE":d=b+" > 0";break;case "NEGATIVE":d= -b+" < 0";break;case "DIVISIBLE_BY":a=Blockly.Lua.valueToCode(a,"DIVISOR",Blockly.Lua.ORDER_MULTIPLICATIVE);if(!a||"0"==a)return["nil",Blockly.Lua.ORDER_ATOMIC];d=b+" % "+a+" == 0"}return[d,Blockly.Lua.ORDER_RELATIONAL]};Blockly.Lua.math_change=function(a){var b=Blockly.Lua.valueToCode(a,"DELTA",Blockly.Lua.ORDER_ADDITIVE)||"0";a=Blockly.Lua.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE);return a+" = "+a+" + "+b+"\n"};Blockly.Lua.math_round=Blockly.Lua.math_single; -Blockly.Lua.math_trig=Blockly.Lua.math_single; -Blockly.Lua.math_on_list=function(a){function b(){return Blockly.Lua.provideFunction_("math_sum",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)"," local result = 0"," for _, v in ipairs(t) do"," result = result + v"," end"," return result","end"])}var c=a.getFieldValue("OP");a=Blockly.Lua.valueToCode(a,"LIST",Blockly.Lua.ORDER_NONE)||"{}";switch(c){case "SUM":c=b();break;case "MIN":c=Blockly.Lua.provideFunction_("math_min",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)", -" if #t == 0 then"," return 0"," end"," local result = math.huge"," for _, v in ipairs(t) do"," if v < result then"," result = v"," end"," end"," return result","end"]);break;case "AVERAGE":c=Blockly.Lua.provideFunction_("math_average",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)"," if #t == 0 then"," return 0"," end"," return "+b()+"(t) / #t","end"]);break;case "MAX":c=Blockly.Lua.provideFunction_("math_max",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+ -"(t)"," if #t == 0 then"," return 0"," end"," local result = -math.huge"," for _, v in ipairs(t) do"," if v > result then"," result = v"," end"," end"," return result","end"]);break;case "MEDIAN":c=Blockly.Lua.provideFunction_("math_median",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)"," -- Source: http://lua-users.org/wiki/SimpleStats"," if #t == 0 then"," return 0"," end"," local temp={}"," for _, v in ipairs(t) do",' if type(v) == "number" then'," table.insert(temp, v)", -" end"," end"," table.sort(temp)"," if #temp % 2 == 0 then"," return (temp[#temp/2] + temp[(#temp/2)+1]) / 2"," else"," return temp[math.ceil(#temp/2)]"," end","end"]);break;case "MODE":c=Blockly.Lua.provideFunction_("math_modes",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)"," -- Source: http://lua-users.org/wiki/SimpleStats"," local counts={}"," for _, v in ipairs(t) do"," if counts[v] == nil then"," counts[v] = 1"," else"," counts[v] = counts[v] + 1", -" end"," end"," local biggestCount = 0"," for _, v in pairs(counts) do"," if v > biggestCount then"," biggestCount = v"," end"," end"," local temp={}"," for k, v in pairs(counts) do"," if v == biggestCount then"," table.insert(temp, k)"," end"," end"," return temp","end"]);break;case "STD_DEV":c=Blockly.Lua.provideFunction_("math_standard_deviation",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)"," local m"," local vm"," local total = 0"," local count = 0", -" local result"," m = #t == 0 and 0 or "+b()+"(t) / #t"," for _, v in ipairs(t) do"," if type(v) == 'number' then"," vm = v - m"," total = total + (vm * vm)"," count = count + 1"," end"," end"," result = math.sqrt(total / (count-1))"," return result","end"]);break;case "RANDOM":c=Blockly.Lua.provideFunction_("math_random_list",["function "+Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_+"(t)"," if #t == 0 then"," return nil"," end"," return t[math.random(#t)]","end"]);break; -default:throw Error("Unknown operator: "+c);}return[c+"("+a+")",Blockly.Lua.ORDER_HIGH]};Blockly.Lua.math_modulo=function(a){var b=Blockly.Lua.valueToCode(a,"DIVIDEND",Blockly.Lua.ORDER_MULTIPLICATIVE)||"0";a=Blockly.Lua.valueToCode(a,"DIVISOR",Blockly.Lua.ORDER_MULTIPLICATIVE)||"0";return[b+" % "+a,Blockly.Lua.ORDER_MULTIPLICATIVE]}; -Blockly.Lua.math_constrain=function(a){var b=Blockly.Lua.valueToCode(a,"VALUE",Blockly.Lua.ORDER_NONE)||"0",c=Blockly.Lua.valueToCode(a,"LOW",Blockly.Lua.ORDER_NONE)||"-math.huge";a=Blockly.Lua.valueToCode(a,"HIGH",Blockly.Lua.ORDER_NONE)||"math.huge";return["math.min(math.max("+b+", "+c+"), "+a+")",Blockly.Lua.ORDER_HIGH]}; -Blockly.Lua.math_random_int=function(a){var b=Blockly.Lua.valueToCode(a,"FROM",Blockly.Lua.ORDER_NONE)||"0";a=Blockly.Lua.valueToCode(a,"TO",Blockly.Lua.ORDER_NONE)||"0";return["math.random("+b+", "+a+")",Blockly.Lua.ORDER_HIGH]};Blockly.Lua.math_random_float=function(a){return["math.random()",Blockly.Lua.ORDER_HIGH]}; -Blockly.Lua.math_atan2=function(a){var b=Blockly.Lua.valueToCode(a,"X",Blockly.Lua.ORDER_NONE)||"0";return["math.deg(math.atan2("+(Blockly.Lua.valueToCode(a,"Y",Blockly.Lua.ORDER_NONE)||"0")+", "+b+"))",Blockly.Lua.ORDER_HIGH]};Blockly.Lua.procedures={}; -Blockly.Lua.procedures_defreturn=function(a){var b=Blockly.Lua.variableDB_.getName(a.getFieldValue("NAME"),Blockly.Procedures.NAME_TYPE),c="";Blockly.Lua.STATEMENT_PREFIX&&(c+=Blockly.Lua.injectId(Blockly.Lua.STATEMENT_PREFIX,a));Blockly.Lua.STATEMENT_SUFFIX&&(c+=Blockly.Lua.injectId(Blockly.Lua.STATEMENT_SUFFIX,a));c&&(c=Blockly.Lua.prefixLines(c,Blockly.Lua.INDENT));var d="";Blockly.Lua.INFINITE_LOOP_TRAP&&(d=Blockly.Lua.prefixLines(Blockly.Lua.injectId(Blockly.Lua.INFINITE_LOOP_TRAP,a),Blockly.Lua.INDENT)); -var e=Blockly.Lua.statementToCode(a,"STACK"),f=Blockly.Lua.valueToCode(a,"RETURN",Blockly.Lua.ORDER_NONE)||"",g="";e&&f&&(g=c);f?f=Blockly.Lua.INDENT+"return "+f+"\n":e||(e="");for(var h=[],k=0;k \ No newline at end of file diff --git a/lib/blockly/msg/js/ab.js b/lib/blockly/msg/js/ab.js deleted file mode 100644 index eee45ed..0000000 --- a/lib/blockly/msg/js/ab.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Иацҵатәуп ахцәажәара"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ишәыҧсах аҵакы"; -Blockly.Msg["CLEAN_UP"] = "Иқәгатәуп аблокқәа"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Иеикәрҳәтәуп Аблокқәа"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Иеикәрҳәтәуп Аблокқәа"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "аҧштәы 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "аҧштәы 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "аҧштәы 1 ахәҭа"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "еилаҵатәуп"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ru.wikipedia.org/wiki/Аҧштәы"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Иалышәх аҧштәы"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "иарбанзаалакь аҧштәы"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Иалнахуеит аҧштәы машәыршақә"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "жәҩангәҧштәы"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "аиаҵәа"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "аҟаҧшь"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "аҧштәы аҟынтәи"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ацикл иҭыҵтәуп"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ииастәуп ацикл анаҩстәи ашьаҿахьы"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Иааннакылоит абри ацикл."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Агәҽанҵара:Ари аблок ахархәара амоуп ацикл аҩныҵҟа мацара."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "ацикл %1 ала %2 инаркны %3 рҟынӡа ашьаҿа %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Иацнаҵоит аҭагыазаашьа аблок \"акәзар\" ахь"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "акәымзар"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "акәымзар"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "акәзар"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Аҭагылазаашьа иашазар, инанагӡоит акомандақәа."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Аҭагылазаашьа иашазар, инанагӡоит актәи аблок акомандақәа. Акәымзар инанагӡоит аҩбатәи аблок акомандақәа."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ru.wikipedia.org/wiki/Ацикл_(апрограммаркра)"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "инагӡатәуп"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "инагӡалатәуп %1 - нтә"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Инанагӡоит акомандақәа кырынтә"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "инагӡалатәуп акәымзар"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "инагӡалатәуп акәзар"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Аҭагылазаашьа мцнаҵы, инанагӡалоит акомандақәа."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Аҭагылазаашьа иашанаҵ, инанагӡалоит акомандақәа."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ианыхтәуп аблокқәа (%1) зегьы?"; -Blockly.Msg["DELETE_BLOCK"] = "Ианыхтәуп аблок"; -Blockly.Msg["DELETE_VARIABLE"] = "Ианыхтәуп аҽеиҭак '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Ианыхтәуп %1 блокк"; -Blockly.Msg["DISABLE_BLOCK"] = "Иаҿыхтәуп Аблок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Акопиа ахыхтәуп"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Иаҿыхтәуп Аблокқәа"; -Blockly.Msg["EXPAND_ALL"] = "Иаарҧштәуп Аблокқәа"; -Blockly.Msg["EXPAND_BLOCK"] = "Иаарҧштәуп Аблокқәа"; -Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; // untranslated -Blockly.Msg["HELP"] = "Ацхыраара"; -Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated -Blockly.Msg["IOS_CANCEL"] = "Аҟәыхра"; -Blockly.Msg["IOS_ERROR"] = "Агха"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Иацҵатәуп аҭагаларатә ҽеиҭак"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Аоператорқәа азин рыҭара"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "Аҭаларҭа"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Иацҵатәуп"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Иацҵатәуп аҽеиҭак"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Ианыхтәуп"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Шәара ишәылшом аҽеиҭак азы иҭацәу ахьӡ ахархәара"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Ахьӡ аҧсахра"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Аҽеиҭак ахьӡ"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "иаҧцатәуп иҭацәу ахьӡынҵа"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "ахьӡынҵа"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "иаҧҵатәуп ахьӡынҵа аҟынтәи"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Иацнаҵоит аелемент ахьӡынҵахьы"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "актәи"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "№ анҵәамнҭа аҟынтәи"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "игатәуп"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "иалхны ианыхтәуп"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "аҵыхәтәантәи"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "иарбанзаалакь"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ианыхтәуп"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Иҳанаҭоит ахьӡынҵа актәи аелемент."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Иҳанаҭоит ахьӡынҵа аҵыхәтәантәи аелемент."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Иҳанаҭоит ахьӡынҵа иарбанзаалакь елементк."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Ианнахәуеит ахьӡынҵа актәи аелемент."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Ианнахәуеит ахьӡынҵа аҵыхәтәантәи аелемент."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Ианнахәуеит ахьӡынҵа иарбанзаалакь елементк."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "№ ала"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 - аҵыхәтәантәи аелемент."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 - актәи аелемент."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "ахьӡынҵа аҟны"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ҭацәуп"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Иҳанаҭоит аиаша, ахьӡынҵа ҭацәызар."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "аура %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Иҳанаҭоит ахьӡынҵа аура."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "="; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ибжьаргылатәуп"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "иаҭатәуп"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Иацнаҵоит аелемент ахьӡынҵа анҵәамҭахь."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "еиҵоу-еиҳауала"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "еиҳау-еиҵоуала"; -Blockly.Msg["LISTS_SORT_TITLE"] = "еилыҧшаатәуп %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Еилыҧшаатәуп ахьӡынҵа акопиа."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "ахыҧхьаӡаратәи"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "алфавитла"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "еизгатәуп атеқст ахьӡынҵа аҟынтәи"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "амц"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Иҳанаҭоит аҵакы аиаша ма амц"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "аиаша"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://ru.wikipedia.org/wiki/Аиҟарамра"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Иҳанаҭоит иҵоуроу аҵакы, иҭагалақәоу еиҟаразар."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Иҳанаҭоит аҵакы аиаша, актәи иҭагалоу аҩбатәи аасҭа еиҳазар."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Иҳанаҭоит аҵакы аиаша, актәи иҭагалоу аҩбатәи аасҭа еиҳазар ма иаҟаразар."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Иҳанаҭоит иҵоуроу аҵакы, актәи иҭагалоу аҩбатәи аасҭа еиҵазар."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Иҳанаҭоит аҵакы аиаша, актәи иҭагалоу аҩбатәи аасҭа еиҵазар ма иаҟаразар."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Иҳанаҭоит иҵоуроу аҵакы, иҭагалақәоу еиҟарамзар."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 акәӡам"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Иҳанаҭоит аҵакы аиаша, иҭагалоу мцызар. Иҳанаҭоит аҵакы амц, иҭагалоу иашазар."; -Blockly.Msg["LOGIC_NULL"] = "акагьы"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Иҳанаҭоит акагьы"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "и"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ма"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Иҳанаҭоит аҵакы аиаша, иҭагалоу аҩбагьы иашазар."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Иҳанаҭоит аҵакы аиаша, иҭагалоу руак иашазар."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "иалхтәуп ала"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "амц акәзар"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "аиаша акәзар"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ru.wikipedia.org/wiki/Арифметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Иҳанаҭоит ҩ-хыҧхьаӡарак реицҵалыҵ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Иҳанаҭоит ҩ-хыҧхьаӡарак ршалыҵ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Иҳанаҭоит ҩ-хыҧхьаӡарак реигырхалыҵ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Иҳанаҭоит ҩ-хыҧхьаӡарак рышьҭыхлыҵ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "иеизырҳатәуп %1 %2 рыла"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Иацнаҵоит ахыҧхьаӡара аҽеиҭак'%1' ахь."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ru.wikipedia.org/wiki/Аматематикатә_константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Иҳанаҭооит аконстантақәа руак: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) ма ∞ (аҵыхәаҧҵәарадара)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ишоит ала"; -Blockly.Msg["MATH_IS_EVEN"] = "еиҩшо"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "иҵоурам"; -Blockly.Msg["MATH_IS_ODD"] = "еиҩымшо"; -Blockly.Msg["MATH_IS_POSITIVE"] = "иҵоуроу"; -Blockly.Msg["MATH_IS_PRIME"] = "имариоу"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "аибга"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://ru.wikipedia.org/wiki/Ашара_цәынхала"; -Blockly.Msg["MATH_MODULO_TITLE"] = "ацәынха %1 : %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Иҳанаҭоит ацәынха ҩ-хыҧхьаӡарак ршараан."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ru.wikipedia.org/wiki/Ахыҧхьаӡара"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Ахыҧхьаӡара."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "ахьӡынҵа арифметикатә бжьара"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "ахьӡынҵа аҟны иреиҳау"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "ахьӡынҵа амедиана"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "ахьӡынҵа аҟны иреиҵо"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "ахьӡынҵа амода"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "ахьӡынҵа иарбанзаалакь аелемент"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "ахьӡынҵа аицҵалыҵ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Иҳанаҭоит ахьӡынҵа аҟны ахыҧхьаӡарақәа зегьы рарифметикатә бжьара."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Иҳанаҭоит ахьӡынҵа аҟны иреиҳау ахыҧхьаӡара."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Иҳанаҭоит ахьӡынҵа аҟны ахыҧхьаӡарақәа зегьы рмедиана."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Иҳанаҭоит ахьӡынҵа аҟны иреицо ахыҧхьаӡара."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Иҳанаҭоит ахьӡынҵа аҟны иарбанзаалакь елементк."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Иҳанаҭоит ахьӡынҵа иаҵанакуа ахыҧхьаӡарақәа зегьы реицҵалыҵ."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "иарбанзаалакь ахыҧхьашара 0 инаркны (иалаҵаны) 1 аҟынӡа"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Иҳанаҭоит иарбанзаалакь ахыҧхьаӡара 0.0 инаркны (иалаҵаны) 1.0 аҟынӡа."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "иарбанзаалакь еибгоу ахыҧхьаӡара %1 инаркны %2 нӡа"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ru.wikipedia.org/wiki/Ахыркәшара"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "ихыркәшатәуп"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ихыркәшатәуп еиҵоу ахь"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ихыркәшатәуп еиҳау ахь"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "амодуль"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Иҳанаҭоит ахыҧхьаӡара амодуль."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Иҳанаҭоит ахыҧхьаӡара иҧсабаратәу алагорифм."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Иҳанаҭоит ахыҧхьаӡара ажәабатә логари̓фм"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Иҳанаҭоит иаҿагыло ахыҧхьаӡара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ru.wikipedia.org/wiki/Атригонометриатә_функциақәа"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Иҳанаҭоит арккосинус градусла."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Иҳанаҭоит арксинус градусла."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Иҳанаҭоит арктангенс градусла."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Иҳанаҭоит акосинус градусла."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Иҳанаҭоит асинус градусла."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Иҳанаҭоит атангенс градусла."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Иаҧҵатәуп аҽеиҭак"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Аҽеиҭак ахьӡ ҿыц:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "Аоператорқәа азин рыҭара"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "аҟынтәи:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ru.wikipedia.org/wiki/Ацхыраагӡатә программа"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ru.wikipedia.org/wiki/Ацхыраагӡатә программа"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "аҟынтәи:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Иаҧҵатәуп ааҧхьара'%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Абри афункциа ахҳәа азыҟашәҵа..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "иҟаҵатәуп џьара акы"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "азы"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Иаҧнаҵоит апроцедура, аҵакы ҳазымҭо."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "ирхынҳәтәуп"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Иаҧнаҵоит апроцедура, аҵакы ҳазҭо."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Актәи аҵакы иашазар, иҳанаҭоит аҩбатәи аҵакы."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Агәаҽанҵара: Ари аблок ахархәара ауеит афункциа аҧҵара аҟны."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "апараметр ахьӡ:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "апараметрқәа"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Аиҭаҟаҵара"; -Blockly.Msg["REMOVE_COMMENT"] = "Ианыхтәуп ахцәажәара"; -Blockly.Msg["RENAME_VARIABLE"] = "Аҽеиҭак ахьӡ ҧсахтәуп"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Аҽеиҭакқәа'%1' зегь рыхьӡ ҧсахтәуп аҟны:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "%1 ахьы иацҵатәуп атеқст %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Иацҵатәуп атеқст аҽеиҭак «%1» ахь."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "игатәуп актәи анбан"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "игатәуп анбан № анҵәамҭа аҟынтәи"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "игатәуп анбан №"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "игатәуп аҵыхәтәантәи анбан"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "игатәуп иарбанзаалакь нбанк"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "атеқст %1 %2 аҟны"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Иҳанаҭоит анбан иарбоу апозициа аҟны"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Иацҵатәуп аелемент атеқст ахь."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "иеиҧшьтәуп"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "анбан № ала"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "аҵыхәтәантәи анбан ала"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "атеқст аҟны"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Иҳанаҭоит атеқст аҟны иарбоу ахәҭа."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "атеқст %1 %2 %3 аҟны"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ҭацәуп"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Иҳанаҭоит аҵакы аиаша, иҟоу атеқст ҭацәызар."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "иаҧҵатәуп атеқст аҟынтәи"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "аура %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Иҳанаҭоит асимволқәа рхыҧхьаӡара (апробелқәа алаҵаны) иҟоу атеқст аҟны."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "икьыҧхьтәуп %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Иакьыҧхьуеит атеқст, ахыҧхьаӡара ма даҽа обиеқтк."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "иҧсахтәуп %1 %2 ала %3 аҟны"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ru.wikipedia.org/wiki/Ацәаҳәатә_хкы"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Анбан, ажәа ма ацәаҳәа атеқст аҟны."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Иахьа"; -Blockly.Msg["UNDO"] = "Иаҟәыхтәуп"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "аелемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Иаҧҵатәуп аблок \"иаҭатәуп\" %1 азы"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Иҳанаҭоит аҽеиҭак аҵакы."; -Blockly.Msg["VARIABLES_SET"] = "иаҭатәуп %1 = %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Аҽеиҭак ахьӡ '%1' змоу ыҟоуп."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ar.js b/lib/blockly/msg/js/ar.js deleted file mode 100644 index 4c8a8fa..0000000 --- a/lib/blockly/msg/js/ar.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "أضف تعليقًا"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "لايمكن حذف متغير \"%1\" بسبب انه جزء من الدالة \"%2\""; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "تغيير قيمة:"; -Blockly.Msg["CLEAN_UP"] = "ترتيب القطع"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "الكتل المطوية تحتوي على تحذيرات."; -Blockly.Msg["COLLAPSE_ALL"] = "إخفاء القطع"; -Blockly.Msg["COLLAPSE_BLOCK"] = "إخفاء القطعة"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "اللون 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "اللون 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نسبة"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "دمج"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "دمج لونين ببعضهما البعض بنسبة (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ar.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "اختر لون من اللوحة."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "لون عشوائي"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "اختر لون بشكل عشوائي."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "أزرق"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "أخضر"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "أحمر"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "لون مع"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "إنشئ لون بالكمية المحددة من الأحمر, الأخضر والأزرق. بحيث يجب تكون كافة القيم بين 0 و 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "اخرج من الحلقة"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "استمر ابتداءا من التكرار التالي من الحلقة"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "اخرج من الحلقة الحالية."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "تخط ما تبقى من هذه الحلقة، واستمر ابتداءا من التكرار التالي."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "تحذير: يمكن استخدام هذه القطعة فقط داخل حلقة."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "لكل عنصر %1 في قائمة %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "لكل عنصر في قائمة ما، عين المتغير '%1' لهذا الغنصر، ومن ثم نفذ بعض الأوامر."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "عد بـ %1 من %2 إلى %3 بمعدل %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "اجعل المتغير %1 يأخذ القيم من رقم البداية الى رقم النهاية، وقم بالعد داخل المجال المحدد، وطبق أوامر القطع المحددة."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "إضف شرطا إلى القطعة الشرطية \"إذا\"."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "أضف شرط \"نهاية، إجمع\" إلى القطعة الشرطية \"إذا\"."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "أضف, إزل, أو أعد ترتيب المقاطع لإعادة تكوين القطعة الشرطية \"إذا\"."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "والا"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "وإﻻ إذا"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "إذا"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "إذا كانت قيمة ما تساوي صحيح, إذن قم بتنفيذ أمر ما."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "إذا كانت قيمة ما تساوي \"صحيح\"، إذن قم بتنفيذ أول قطعة من الأوامر. والا ،قم بتنفيذ القطعة الثانية من الأوامر."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "إذا كانت القيمة الأولى تساوي \"صحيح\", إذن قم بتنفيذ القطعة الأولى من الأوامر. والا, إذا كانت القيمة الثانية تساوي \"صحيح\", قم بتنفيذ القطعة الثانية من الأوامر."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "إذا كانت القيمة الأولى تساوي \"صحيح\", إذن قم بتنفيذ القطعة الأولى من الأوامر. والا , إذا كانت القيمة الثانية تساوي \"صحيح\", قم بتنفيذ القطعة الثانية من الأوامر. إذا لم تكن هناك أي قيمة تساوي صحيح, قم بتنفيذ آخر قطعة من الأوامر."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "نفّذ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "كرر %1 مرات"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "نفّذ بعض الأوامر عدة مرات."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "اكرّر حتى"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "اكرّر طالما"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "بما ان القيمة خاطئة, نفّذ بعض الأوامر."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "بما ان القيمة صحيحة, نفّذ بعض الأوامر."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "حذف %1 قطعة؟"; -Blockly.Msg["DELETE_BLOCK"] = "احذف القطعة"; -Blockly.Msg["DELETE_VARIABLE"] = "حذف المتغير %1"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "حذف%1 1 استخدامات المتغير '%2'؟"; -Blockly.Msg["DELETE_X_BLOCKS"] = "احذف %1 قطع"; -Blockly.Msg["DISABLE_BLOCK"] = "عطّل القطعة"; -Blockly.Msg["DUPLICATE_BLOCK"] = "مكرر"; -Blockly.Msg["DUPLICATE_COMMENT"] = "تعليق مكرر"; -Blockly.Msg["ENABLE_BLOCK"] = "أعد تفعيل القطعة"; -Blockly.Msg["EXPAND_ALL"] = "وسٌّع القطع"; -Blockly.Msg["EXPAND_BLOCK"] = "وسٌّع القطعة"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ادخال خارجي"; -Blockly.Msg["HELP"] = "مساعدة"; -Blockly.Msg["INLINE_INPUTS"] = "ادخال خطي"; -Blockly.Msg["IOS_CANCEL"] = "إلغاء"; -Blockly.Msg["IOS_ERROR"] = "خطأ"; -Blockly.Msg["IOS_OK"] = "أوافق"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+اضافة ادخال"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "العبارات المسموحة"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "هذه الدالة لها مدخلات مكررة."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "المدخلات"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "أضف"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+اضف متغير"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "احذف"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "لا يمكنك استخدام اسم متغير فارغ."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "أعد التسمية"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "اسم المتغير"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "إنشئ قائمة فارغة"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "تقوم بإرجاع قائمة، طولها 0, لا تحتوي على أية سجلات البيانات"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "قائمة"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "أضف, إزل, أو أعد ترتيب المقاطع لإعادة تكوين القطعة قائمة القطع التالية."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "أتشئ قائمة مع"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "أضف عنصرا إلى القائمة."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "أنشىء قائمة من أي عدد من العناصر."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "أول"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# من نهاية"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "احصل على"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "احصل على و ازل"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "أخير"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "عشوائي"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ازل"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "يرجع العنصر الأول في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "يقوم بإرجاع العنصر في الموضع المحدد في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "يرجع العنصر الأخير في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "يرجع عنصرا عشوائيا في قائمة."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "يزيل ويرجع العنصر الأول في قائمة."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "يزيل ويقوم بإرجاع العنصر في الموضع المحدد في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "يزيل ويرجع العنصر الأخير في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "يزيل و يرجع عنصرا عشوائيا في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "يزيل العنصر الأول في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "يزيل العنصر الموجود في الموضع المحدد في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "يزيل العنصر الأخير في قائمة ما."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "يزيل عنصرا عشوائيا في قائمة ما."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "إلى # من نهاية"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "إلى #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "إلى الأخير"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "احصل على قائمة فرعية من الأول"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "احصل على قائمة فرعية من # من نهاية"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "احصل على قائمة فرعية من #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "يقوم بإنشاء نسخة من الجزء المحدد من قائمة ما."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 هو العنصر الأخير."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 هو العنصر الأول."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "ابحث على على التواجد الأول للعنصر"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "ابحث على التواجد الأخير للعنصر"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "تقوم بإرجاع مؤشر التواجد الأول/الأخير في القائمة. تقوم بإرجاع %1 إذا لم يتم العثور على النص."; -Blockly.Msg["LISTS_INLIST"] = "في قائمة"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 فارغ"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "يرجع \"صحيح\" إذا كانت القائمة فارغة."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "الطول من %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "تقوم بإرجاع طول قائمة."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "إنشئ قائمة مع العنصر %1 %2 مرات"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "انشئ قائمة تتألف من القيمة المعطاة متكررة لعدد محدد من المرات."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "عكس %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "عكس نسخة من القائمة."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "مثل"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "أدخل في"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "تعيين"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "يقوم بإدراج هذا العنصر في بداية قائمة."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "يقوم بإدخال العنصر في الموضع المحدد في قائمة ما."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "ألصق هذا العنصر بنهاية قائمة."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "ادخل العنصر عشوائياً في القائمة."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "يحدد العنصر الأول في قائمة."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "يحدد العنصر في الموضع المحدد في قائمة ما."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "يحدد العنصر الأخير في قائمة."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "يحدد عنصرا عشوائيا في قائمة."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "تصاعديا"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "تنازليا"; -Blockly.Msg["LISTS_SORT_TITLE"] = "رتب %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "فرز نسخة من القائمة."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "أبجديا، وتجاهل الحالة"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "رقمي"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "أبجديًا"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "إعداد قائمة من النصوص"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "إعداد نص من القائمة"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "ضم قائمة النصوص في نص واحد، مفصولة بواسطة محدد."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "تقسيم النص إلى قائمة من النصوص، وكسر في كل محدد"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "مع محدد"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "خاطئ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "يرجع صحيح أو خاطئ."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "صحيح"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "يرجع صحيح إذا كان كلا المدخلات مساوية بعضها البعض."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "يرجع صحيح إذا كان الإدخال الأول أكبر من الإدخال الثاني."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "يرجع صحيح إذا كان الإدخال الأول أكبر من أو يساوي الإدخال الثاني."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "يرجع صحيح إذا كان الإدخال الأول أصغر من الإدخال الثاني."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "يرجع صحيح إذا كان الإدخال الأول أصغر من أو يساوي الإدخال الثاني."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "يرجع صحيح إذا كانت كلا المدخلات غير مساوية لبعضها البعض."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ليس %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "يرجع صحيح إذا كان الإدخال خاطئ . يرجع خاطئ إذا كان الإدخال صحيح."; -Blockly.Msg["LOGIC_NULL"] = "فارغ"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "ترجع ملغى."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "و"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "أو"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "ترجع صحيح إذا كان كلا المٌدخلات صحيح."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "ترجع صحيح إذا كان واحد على الأقل من المدخلات صحيح."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "اختبار"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "إذا كانت العبارة خاطئة"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "إذا كانت العبارة صحيحة"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "تحقق الشرط في 'الاختبار'. إذا كان الشرط صحيح، يقوم بإرجاع قيمة 'اذا كانت العبارة صحيحة'؛ خلاف ذلك يرجع قيمة 'اذا كانت العبارة خاطئة'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "يرجع مجموع الرقمين."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "يرجع حاصل قسمة الرقمين."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "يرجع الفرق بين الرقمين."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "يرجع حاصل ضرب الرقمين."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "يرجع الرقم الأول مرفوع إلى تربيع الرقم الثاني."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 من X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "عودة قوس ظل النقطة (س، ص) بالدرجات من -180 إلى 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "غير %1 بـ %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "إضف رقم إلى متغير '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "ير جع واحد من الثوابت الشائعة : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "تقيد %1 منخفض %2 مرتفع %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "تقييد العددليكون بين الحدود المحددة (ضمناً)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "قابل للقسمة"; -Blockly.Msg["MATH_IS_EVEN"] = "هو زوجي"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "هو سالب"; -Blockly.Msg["MATH_IS_ODD"] = "هو فرذي"; -Blockly.Msg["MATH_IS_POSITIVE"] = "هو موجب"; -Blockly.Msg["MATH_IS_PRIME"] = "هو أولي"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "تحقق إذا كان عدد ما زوجيا، فرذيا, أوليا، صحيحا،موجبا أو سالبا، أو إذا كان قابلا للقسمة على عدد معين. يرجع صحيح أو خاطئ."; -Blockly.Msg["MATH_IS_WHOLE"] = "هو صحيح"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "باقي %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "يرجع الباقي من قسمة الرقمين."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ar.wikipedia.org/wiki/%D8%B9%D8%AF%D8%AF"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "عدد ما."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "متوسط القائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "الحد الأقصى لقائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "متوسط القائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "الحد الأدنى من قائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "منوال القائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "عنصر عشوائي من القائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "الانحراف المعياري للقائمة"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "مجموع القائمة"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "يرجع المعدل (الوسط الحسابي) للقيم الرقمية في القائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "يرجع أكبر عدد في القائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "يرجع وسيط العدد في القائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "يرجع أصغر رقم في القائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "يرجع قائمة من العنصر أو العناصر الأكثر شيوعاً في القائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "يرجع عنصر عشوائي من القائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "يرجع الانحراف المعياري للقائمة."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "يرجع مجموع كافة الأرقام الموجودة في القائمة."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "كسر عشوائي"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "يرجع جزء عشوائي بين 0.0 (ضمنياً) و 1.0 (خارجيا)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = " عدد صحيح عشوائي من %1 إلى %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "يرجع عدد صحيح عشوائي بين حدين محددين, ضمنيا."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "تقريب"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "تقريب إلى اصغر عدد صحيح"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "تقريب الى اكبر عدد صحيح"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "تقريب الى اكبر عدد صحيح أو الى اصغر عدد صحيح."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "مطلق"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "الجذر التربيعي"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "يرجع القيمة المطلقة لرقم."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "يرجع ه‍ (e) مرفوعا لأس بقيمة الرقم المدخل."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "يرجع اللوغاريتم الطبيعي لرقم."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "يرجع لوغاريتم عدد معين للاساس 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "يرجع عدد سالب."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "يرجع مضروب الرقم 10 في نفسه ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "يرجع الجذر التربيعي للرقم."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "جيب تمام"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "جيب"; -Blockly.Msg["MATH_TRIG_TAN"] = "ظل"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "يرجع قوس جيب التمام لرقم."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "يرجع قوس الجيب للرقم."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "يرجع قوس الظل للرقم."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "يرجع جيب التمام لدرجة (لا زواية نصف قطرية)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "يرجع جيب التمام لدرجة (لا زواية نصف قطرية)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "يرجع الظل لدرجة (لا دائرة نصف قطرية)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "انشاء متغير لوني..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "انشاء متغير رقمي..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "انشاء متغير نصي..."; -Blockly.Msg["NEW_VARIABLE"] = "إنشاء متغير..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "اسم المتغير الجديد:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "نوع متغير جديد:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "اسمح بالبيانات"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "مع:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "تشغيل الدالة المعرفة من قبل المستخدم '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "تشغيل الدالة المعرفة من قبل المستخدم %1 واستخدام مخرجاتها."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "مع:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "إنشئ '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "صف هذه الوظيفة..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "القيام بشيء ما"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "إلى"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "انشئ دالة بدون مخرجات ."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "يرجع"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "انشئ دالة مع المخرجات."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "تحذير: هذه الدالة تحتوي على معلمات مكررة."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "تسليط الضوء على تعريف الدالة"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "إذا كانت القيمة صحيحة ، اذان قم بارجاع القيمة الثانية."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "تحذير:هذه القطعة تستخدم فقط داخل تعريف دالة."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "اسم الإدخال:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "أضف مدخلا إلى الوظيفة."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "المدخلات"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "إضافة أو إزالة أو إعادة ترتيب المدخلات لهذه المهمة."; -Blockly.Msg["REDO"] = "إعادة"; -Blockly.Msg["REMOVE_COMMENT"] = "أزل التعليق"; -Blockly.Msg["RENAME_VARIABLE"] = "إعادة تسمية المتغير..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "إعادة تسمية كافة المتغيرات '%1' إلى:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "إلى %1 إلصق نص %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "إلصق جزءا من النص إلى متغير '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "الى حروف صغيرة"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "الى حروف العنوان"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "الى حروف كبيرة"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "يرجع نسخة من النص في حالة مختلفة."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "احصل على الحرف الأول"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "الحصول على الحرف # من نهاية"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "الحصول على الحرف #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "احصل على آخر حرف"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "الحصول على حرف عشوائي"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "في النص %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "يرجع حرف ما في الموضع المحدد."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "العدد %1 في %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "احسب كم عدد بعض النصوص تتكرر ضمن نص اخر."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "إضف عنصر إلى النص."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "الانضمام إلى"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "أضف, إحذف, أو أعد ترتيب المقاطع لإعادة تكوين النص من القطع التالية."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "إلى حرف # من نهاية"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "إلى حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "إلى آخر حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "في النص"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "الحصول على سلسلة فرعية من الحرف الأول"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "الحصول على سلسلة حروف فرعية من الحرف # من نهاية"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "الحصول على سلسلة حروف فرعية من الحرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "يرجع جزء معين من النص."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "ابحث عن التواجد الأول للنص"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "ابحث عن التواجد الأخير للنص"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "في النص %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "تقوم بإرجاع مؤشر التواجد الأول/الأخير للنص الأول في النص الثاني. تقوم بإرجاع %1 إذا لم يتم العثور على النص."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 فارغ"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "يرجع \"صحيح\" إذا كان النص المقدم فارغ."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "انشئ نص مع"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "أنشئ جزء من النص بالصاق أي عدد من العناصر ببعضها البعض."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "تقوم بإرجاع عدد الاحرف (بما في ذلك الفراغات) في النص المقدم."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "اطبع %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "اطبع النص المحدد أو العدد أو قيمة أخرى."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "انتظر ادخال المستخذم لرقم ما."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "انتظر ادخال المستخدم لنص ما."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "انتظر ادخال المستخدم لرقم ما مع اظهار رسالة"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "انتظر ادخال المستخدم لنص ما مع اظهار رسالة"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "بدل %1 ب %2 في %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "استبدل جميع حالات حدوث بعض النصوص داخل نص آخر."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "عكس %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "يعكس ترتيب حروف النص"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "حرف أو كلمة أو سطر من النص."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "إزالة الفراغات من كلا الجانبين"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "إزالة الفراغات من الجانب الأيسر من"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "إزالة الفراغات من الجانب الأيمن من"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "يرجع نسخة من النص مع حذف من أحد أو كلا الفراغات من أطرافه."; -Blockly.Msg["TODAY"] = "اليوم"; -Blockly.Msg["UNDO"] = "رجوع"; -Blockly.Msg["UNNAMED_KEY"] = "غير مسمى"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "البند"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "انشئ 'التعيين %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "يرجع قيمة هذا المتغير."; -Blockly.Msg["VARIABLES_SET"] = "تعيين %1 إلى %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "انشئ 'احصل على %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "تعيين هذا المتغير لتكون مساوية للقيمة المدخلة."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "المتغير '%1' موجود بالفعل"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "متغير بأسم '%1' معرف من نوع اخر : '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "قل شيئا..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/az.js b/lib/blockly/msg/js/az.js deleted file mode 100644 index c621101..0000000 --- a/lib/blockly/msg/js/az.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Şərh əlavə et"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "'%1' dəyişənini silmək mümkün deyil, çünki o '%2' funksiyasının təyin hissəsidir"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Qiyməti dəyiş:"; -Blockly.Msg["CLEAN_UP"] = "Blokları təmizlə"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Blokları yığ"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Bloku yığ"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "rəng 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "rəng 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "nisbət"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "qarışdır"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "İki rəngi verilmiş nisbətdə (0,0 - 1,0) qarışdırır."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://az.wikipedia.org/wiki/Rəng"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Palitradan bir rəng seçin."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "təsadüfi rəng"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Təsadüfi bir rəng seçin."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "mavi"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "yaşıl"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "qırmızı"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "rənglə"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Qırmızı, yaşıl və mavinin göstərilən miqdarı ilə bir rəng düzəlt. Bütün qiymətlər 0 ilə 100 arasında olmalıdır."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "dövrdən çıx"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "dövrün növbəti addımından davam et"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Cari dövrdən çıx."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Bu dövrün qalanını ötür və növbəti addımla davam et."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Xəbərdarlıq: Bu blok ancaq dövr daxilində istifadə oluna bilər."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "hər element üçün %1 siyahıda %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Siyahıdakı hər element üçün \"%1\" dəyişənini elementə mənimsət və bundan sonra bəzi əmrləri yerinə yetir."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "say: %1 %2 ilə başlayıb, %3 qiymətinə kimi %4 qədər dəyiş"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "\"%1\" dəyişəni başlanğıc ədəddən son ədədə qədər göstərilən aralıqla qiymətlər aldıqca göstərilən blokları yerinə yetir."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "\"Əgər\" blokuna bir şərt əlavə et."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "\"Əgər\" blokuna qalan bütün halları əhatə edəb son bir şərt əlavə et."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Bu \"əgər\" blokunu dəyişdirmək üçün bölümlərin yenisini əlavə et, sil və ya yerini dəyiş."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "əks halda"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "əks halda əgər"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "əgər"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Əgər qiymət doğrudursa, onda bəzi əmrləri yerinə yetir."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Əgər qiymət doğrudursa, onda birinci əmrlər blokunu yerinə yetir. Əks halda isə ikinci əmrlər blokunu yerinə yetir."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Əgər birinci qiymət doğrudursa, onda birinci əmrlər blokunu yerinə yetir. Əks halda əgər ikinci qiymət doğrudursa, onda ikinci əmrlər blokunu yerinə yetir."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Əgər birinci qiymət doğrudursa, onda birinci əmrlər blokunu yerinə yetir. Əks halda əgər ikinci qiymət doğrudursa, onda ikinci əmrlər blokunu yerinə yetir. Əgər qiymətlərdən heç biri doğru deyilsə, onda axırıncı əmrlər blokunu yerinə yetir."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://az.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "icra et"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 dəfə təkrar et"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Bəzi əmrləri bir neçə dəfə yerinə yetir."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "təkrar et, ta ki"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "təkrar et, hələ ki"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Hələ ki, qiymət \"yalan\"dır, bəzi əmrləri yerinə yetir."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Hələ ki, qiymət \"doğru\"dur, bəzi əmrləri yerinə yetir."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Bütün %1 blok silinsin?"; -Blockly.Msg["DELETE_BLOCK"] = "Bloku sil"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' adlı dəyişəni sil"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' dəyişəninin %1 istifadəsini silək?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 bloku sil"; -Blockly.Msg["DISABLE_BLOCK"] = "Bloku söndür"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Dublikat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Şərhin nüsxəsini yarat"; -Blockly.Msg["ENABLE_BLOCK"] = "Bloku aktivləşdir"; -Blockly.Msg["EXPAND_ALL"] = "Blokları aç"; -Blockly.Msg["EXPAND_BLOCK"] = "Bloku aç"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Xarici girişlər"; -Blockly.Msg["HELP"] = "Kömək"; -Blockly.Msg["INLINE_INPUTS"] = "Sətiriçi girişlər"; -Blockly.Msg["IOS_CANCEL"] = "Ləğv et"; -Blockly.Msg["IOS_ERROR"] = "Xəta"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Giriş əlavə et"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Operatorlara icazə"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Bu funksiyada təkrarlanan giriş dəyişənləri vardır."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "GİRİŞ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Əlavə et"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Dəyişən əlavə et"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Sil"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Adsız dəyişən istifadə edə bilməzsiniz."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Adını dəyiş"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Dəyişənin adı"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "boş siyahı düzəlt"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Heç bir verilən qeyd olunmamış, uzunluğu 0 olan bir siyahı verir"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "siyahı"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Bu siyahı blokunu yenidən konfigurasiya etmək üçün bölmələri əlavə edin, silin və ya yerlərini dəyişin."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "bunlardan siyahı düzəlt"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Siyahıya element əlavə edin."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "İstənilən ölçülü siyahı yaradın."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "birinci"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "axırdan # nömrəli"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "götür"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "götür və sil"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "axırıncı"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "təsadüfi"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "yığışdır"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Siyahının ilk elementini qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Siyahıdan təyin olunmuş indeksli elementi qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Siyahının son elementini qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Siyahıdan hər hansı təsadüfi elementi qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Siyahıdan ilk elementi silir və qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Siyahıdan təyin olunmuş indeksli elementi silir və qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Siyahıdan son elementi silir və qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Siyahıdan təsadufi elementi silir və qaytarır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Siyahıdan ilk elementi silir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Siyahıdan təyin olunmuş indeksli elementi silir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Siyahıdan son elementi silir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Siyahıdan təsadüfi bir elementi silir."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "sondan # nömrəliyə"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "# nömrəliyə"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "Sonuncuya"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "Birincidən alt-siyahını alın"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "# sonuncudan alt-siyahını alın"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "# - dən alt-siyahını alın"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Siyahının təyin olunmuş hissəsinin surətini yaradın."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 son elementdir."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ilk elementdir."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "Element ilə ilk rastlaşma indeksini müəyyən edin"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "Element ilə son rastlaşma indeksini müəyyən edin"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Elementin siyahıda ilk/son rastlaşma indeksini qaytarır. Əgər siyahıda mətn tapılmadısa, %1 qaytarılır."; -Blockly.Msg["LISTS_INLIST"] = "siyahıda"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 boşdur"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Siyahı boşdursa \"doğru\" cavabını qaytarır."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 siyahısının uzunluğu"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Siyahının uzunluğunu verir."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "%1 elementinin %2 dəfə təkrarlandığı siyahı düzəlt"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Təyin olunmuş elementin/qiymətin təyin olunmuş sayda təkrarlandığı siyahını yaradır."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "əksinə dəyiş %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Siyahının nüsxəsini əksinə dəyiş."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "Kimi"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "daxil et"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "təyin et"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Elementi siyahının əvvəlinə daxil edir."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Elementi siyahıda göstərilən yerə daxil edir."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Elementi siyahının sonuna artırır."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Elementi siyahıda təsadüfi seçilmiş bir yerə atır."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Siyahıda birinci elementi təyin edir."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Siyahının göstərilən yerdəki elementini təyin edir."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Siyahının sonuncu elementini təyin edir."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Siyahının təsadüfi seçilmiş bir elementini təyin edir."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "artan üzrə"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "azalan üzrə"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 sortlaşdır"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Siyahının nüsxəsini sortlaşdır."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "əlifba üzrə, registrı nəzərə almadan"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "say üzrə"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "əlifba üzrə"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "mətndən siyahı düzəlt"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "siyahıdan mətn düzəlt"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Mətnlər siyahısından ayırıcılarla birgə bir mətn yaradır."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Mətni ayırıcılara görə bölərək mətnlər siyahısı yaradır."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "ayırıcıyla"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "səhf"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "\"doğru\" və ya \"səhf\" cavanını qaytarır."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "doğru"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://az.wikipedia.org/wiki/bərabərsizlik_(riyazi)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Girişlər bir birinə bərabərdirsə \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Birinci giriş ikincidən böyükdürsə \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Birinci giriş ikincidən böyük və ya bərarbərdirsə \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Birinci giriş ikincidən kiçikdirsə \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Birinci giriş ikincidən kiçik və ya bərarbərdirsə \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Girişlər bərabər deyillərsə \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 deyil"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Giriş \"yalan\"-dursa \"doğru\" cavabını qaytarır. Giriş \"doğru\"-dursa \"səhf\" cavabını qaytarır."; -Blockly.Msg["LOGIC_NULL"] = "boş"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Boş cavab qaytarır."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "və"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "və ya"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Hər iki giriş \"doğru\"-dursa \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Girişlərdən heç olmasa biri \"doğru\"-dursa \"doğru\" cavabını qaytarır."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "əgər səhfdirsə"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "əgər doğrudursa"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'Yoxla' əmrindəki şərtə nəzər yetirin. Əgər şərt \"doğru\"-dursa \"əgər doğru\", əks halda isə \"əgər yalan\" cavabını qaytarır."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://az.wikipedia.org/wiki/Hesab"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "İki ədədin cəmini qaytarır."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "İki ədədin nisbətini qaytarır."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "İki ədədin fərqini qaytarır."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "İki ədədin hasilini verir."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Birinci ədədin ikinci ədəd dərəcəsindən qüvvətini qaytarır."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "(X,Y) nöqtələrinin -180 - 180 dərəcədə arktangensini hesabla."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "dəyiş: %1 buna: %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "'%1' dəyişəninin üzərinə bir ədəd artır."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://az.wikipedia.org/wiki/Riyazi_sabitlər"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Ümumi sabitlərdən birini qaytarır π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), və ya ∞ (sonsuzluq)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1 üçün ən aşağı %2, ən yuxarı %3 olmağı tələb et"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Bir ədədin verilmiş iki ədəd arasında olmasını tələb edir (sərhədlər də daxil olmaqla)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "bölünür"; -Blockly.Msg["MATH_IS_EVEN"] = "cütdür"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "mənfidir"; -Blockly.Msg["MATH_IS_ODD"] = "təkdir"; -Blockly.Msg["MATH_IS_POSITIVE"] = "müsbətdir"; -Blockly.Msg["MATH_IS_PRIME"] = "sadədir"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Bir ədədin cüt, tək, sadə, tam, müsbət, mənfi olmasını və ya müəyyən bir ədədə bölünməsini yoxlayır. \"Doğru\" və ya \"yalan\" qiymətini qaytarır."; -Blockly.Msg["MATH_IS_WHOLE"] = "tamdır"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 bölməsinin qalığı"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "İki ədədin nisbətindən alınan qalığı qaytarır."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://az.wikipedia.org/wiki/Ədəd"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Ədəd."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "siyahının ədədi ortası"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "siyahının maksimumu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "siyahının medianı"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "siyahının minimumu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "Siyahı modları( Ən çox rastlaşılan elementləri)"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "siyahıdan təsadüfi seçilmiş bir element"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "Siyahının standart deviasiyası"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Siyahının cəmi"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Siyahıdaki ədədlərin ədədi ortasını qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Siyahıdaki ən böyük elementi qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Siyahının median elementini qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Siyahıdaki ən kiçik ədədi qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Siyahıdaki ən çox rastlanan element(lər)dən ibarət siyahı qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Siyahıdan təsadüfi bir element qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Siyahının standart deviasiyasını qaytarır."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Siyahıdakı bütün ədədlərin cəmini qaytarır."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "təsadüfi kəsr"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "0.0 (daxil olmaqla) və 1.0 (daxil olmamaqla) ədədlərinin arasından təsadüfi bir kəsr ədəd qaytarır."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "%1 ilə %2 arasından təsadüfi tam ədəd"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Verilmiş iki ədəd arasından (ədədrlər də daxil olmaqla) təsadüfi bir tam ədəd qaytarır."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "yuvarlaqlaşdır"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "aşağı yuvarlaqlaşdır"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "yuxarı yuvarlaqlaşdır"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Ədədi aşağı və ya yuxari yuvarlaqşdır."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://az.wikipedia.org/wiki/Kvadrat_kökləri"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "modul"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadrat kök"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Ədədin modulunu qaytarır."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "e sabitinin verilmiş ədədə qüvvətini qaytarır."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Ədədin natural loqarifmini tapır."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Ədədin 10-cu dərəcədən loqarifmini tapır."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Ədədin əksini qaytarır."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "10-un verilmiş ədədə qüvvətini qaytarır."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Ədədin kvadrat kökünü qaytarır."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "arccos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://az.wikipedia.org/wiki/Triqonometrik_funksiyalar"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tg"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Ədədin arccosinusunu qaytarır."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Ədədin arcsinusunu qaytarır."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Ədədin arctanqensini qaytarır."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Dərəcənin kosinusunu qaytarır (radianın yox)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Dərəcənin sinusunu qaytar (radianın yox)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Dərəcənin tangensini qaytar (radianın yox)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Yeni rəng dəyişəni..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Yeni rəqəm dəyişəni..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Yeni sətir dəyişəni..."; -Blockly.Msg["NEW_VARIABLE"] = "Yeni dəyişən..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Yeni dəyişənin adı:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Yeni dəyişənin tipi:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "operatorlara icazə"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ilə:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Yaradılmış '%1' funksiyasını çalışdır."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Yaradılmış '%1' funksiyasını çalışdır və nəticəni istifadə et."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ilə:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' yarat"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Bu funksiyanı təsvir et"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "hansısa əməliyyat"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "icra et:"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Nəticəsi olmayan funksiya yaradır."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "qaytar"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Nəticəsi olan funksiya yaradır."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Xəbərdarlıq: Bu funksiyanın təkrar olunmuş parametrləri var."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Funksiyanın təyinatını vurğula"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Əgər bir dəyər \"doğru\"-dursa onda ikinci dəyəri qaytar."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Xəbərdarlıq: Bu blok ancaq bir funksiyanın təyinatı daxilində işlədilə bilər."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Giriş adı:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Funksiyaya giriş parametrləri əlavə et."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "girişlər"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Bu funksiyanın giriş parametrləri üçün əlavə et, sil, və ya yenilə."; -Blockly.Msg["REDO"] = "İrəli"; -Blockly.Msg["REMOVE_COMMENT"] = "Şərhi sil"; -Blockly.Msg["RENAME_VARIABLE"] = "Dəyişənin adını dəyiş..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Bütün '%1' dəyişənlərinin adını buna dəyiş:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "bu mətnin sonuna: %1 bu mətni əlavə et: %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "'%1' dəyişəninin sonuna nəsə əlavə et."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "kiçik hərflərlə"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Baş Hərflərlə"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "BÖYÜK HƏRFLƏRLƏ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Mətndə hərflərin böyük-kiçikliyini dəyiş."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "birinci hərfi götür"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "axırdan bu nömrəli hərfi götür"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "bu nömrəli hərfi götür"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "axırıncı hərfi götür"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "təsadüfi hərf götür"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "mətndə %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Göstərilən mövqedəki hərfi qaytarır."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%2 içindən %1 sayını hesabla"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Hesablayaq, mətnin bu hissəsi başqa mətndə neçə dəfə rast gəlinir."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Mətnə bir element əlavə et."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "birləşdir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Bu mətn blokunu yenidən konfigurasiya etmək üçün bölmələri əlavə edin, silin və ya yerlərini dəyişin."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "axırdan bu nömrəli hərfə qədər"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "bu nömrəli hərfə qədər"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "son hərfə qədər"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "mətndə"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "Mətnin surətini ilk hərfdən"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "Mətnin surətini sondan bu nömrəli # hərfdən"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "Mətnin surətini bu nömrəli hərfdən"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Mətnin təyin olunmuş hissəsini qaytarır."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "Bu mətn ilə ilk rastlaşmanı tap:"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "Bu mətn ilə son rastlaşmanı tap:"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "mətndə %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Birinci mətnin ikinci mətndə ilk/son rastlaşma indeksini qaytarır. Əgər rastlaşma baş verməzsə, %1 qaytarır."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 boşdur"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Verilmiş mətn boşdursa, doğru qiymətini qaytarır."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "Verilmişlərlə mətn yarat"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "İxtiyari sayda elementlərinin birləşməsi ilə mətn parçası yarat."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 - ın uzunluğu"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Verilmiş mətndəki hərflərin(sözlər arası boşluqlar sayılmaqla) sayını qaytarır."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 - i çap elə"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Təyin olunmuş mətn, ədəd və ya hər hansı bir başqa elementi çap elə."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "İstifadəçiyə ədəd daxil etməsi üçün sorğu/tələb göndərin."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "İstifadəçiyə mətn daxil etməsi üçün sorğu/tələb göndərin."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "İstifadəçiyə ədəd daxil etməsi üçün sorğunu/tələbi ismarıc kimi göndərin"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "İstifadəçiyə mətn daxil etməsi üçün sorğunu/tələbi ismarıc ilə göndərin"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%3 -də %1 əvəz et %2"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Bütün uyğunluqlu bəzi mətnlərin digər bəzi mətnlərə dəyişdirilməsi."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "əksinə dəyiş %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Mətndəki simvolların ardıcıllığını əksinə dəyiş."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Mətndəki hərf, söz və ya sətir."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "boşluqları hər iki tərəfdən pozun"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "boşluqlari yalnız sol tərəfdən pozun"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "boşluqları yalnız sağ tərəfdən pozun"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Mətnin hər iki və ya yalnız bir tərəfdən olan boşluqları pozulmuş surətini qaytarın."; -Blockly.Msg["TODAY"] = "Bugün"; -Blockly.Msg["UNDO"] = "Geri"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'%1 - i təyin et' - i yarat"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Bu dəyişənin qiymətini qaytarır."; -Blockly.Msg["VARIABLES_SET"] = "%1 - i bu qiymət ilə təyin et: %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'%1 - i götür' - ü yarat"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Bu dəyişəni daxil edilmiş qiymətə bərabər edir."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' adlı dəyişən artıq mövcuddur."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%1' adlı dəyişən artıq '%2': tipində istifadə edilir ."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Buraya nə isə yaz..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ba.js b/lib/blockly/msg/js/ba.js deleted file mode 100644 index 1429177..0000000 --- a/lib/blockly/msg/js/ba.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Фекер өҫтәргә"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Мәғәнәне үҙгәртегеҙ:"; -Blockly.Msg["CLEAN_UP"] = "Блоктарҙы таҙартырға"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Блоктарҙы төрөргә"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Блокты төрөргә"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "1-се төҫ"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "2-се төҫ"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "1-се төҫтөң өлөшө"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ҡатнаштырырға"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Ике төҫтө бирелгән нисбәттә болғата (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Төҫ"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Палитранан төҫ һайлағыҙ."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "осраҡлы төҫ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Төҫтө осраҡлылыҡ буйынса һайлай."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "зәңгәр"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "йәшелдән"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ҡыҙылдан"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ошонан төҫ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Бирелгән нисбәттәрҙә ҡыҙылдан, йәшелдән һәм зәңгәрҙән төҫ барлыҡҡа килә. Бөтә мәғәнәләр 0 менән 100 араһында булырға тейеш."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "циклдан сығырға"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "циклдың киләһе аҙымына күсергә"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Был циклды өҙә."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Циклдың ҡалдығын төшөрөп ҡалдыра һәм киләһе аҙымға күсә."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Иҫкәртеү: был блок цикл эсендә генә ҡулланыла ала."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "һәр элемент өсөн %1 исемлектә %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Исемлектәге һәр элемент өсөн үҙгәреүсәнгә элементтың '%1' мәғәнәһен бирә һәм күрһәтелгән командаларҙы үтәй."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Үҙгәреүсәнгә башынан аҙағына тиклем тәғәйен аҙым менән %1 мәғәнәне бирә һәм күрһәтелгән командаларҙы үтәй."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "\"Әгәр\" блогына шарт өҫтәй"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Бер шарт та дөрөҫ булмаған осраҡҡа йомғаҡлау ярҙамсы блогын өҫтәргә."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "\"Әгәр\" блогын ҡабаттан төҙөү өсөн киҫәктәрҙе өҫтәгеҙ, юйҙырығыҙ, урындарын алмаштырығыҙ."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "юғиһә"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "юғиһә, әгәр"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "әгәр"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Мәғәнә дөрөҫ булғанда, командаларҙы үтәй."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Шарт дөрөҫ булғанда, командаларҙың беренсе блогын үтәй. Улай булмаһа, командаларҙың икенсе блогы үтәлә."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Беренсе шарт дөрөҫ булһа, командаларҙың беренсе блогын үтәй. Икенсе шарт дөрөҫ булһа, командаларҙың икенсе блогын үтәй."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Беренсе шарт дөрөҫ булһа, командаларҙың беренсе блогын үтәй. Әгәр икенсе шарт дөрөҫ булһа, командаларҙың икенсе блогын үтәй. Бер шарт та дөрөҫ булмаһа, команда блоктарының һуңғыһын үтәй."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/Цикл_(программалау)"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "үтәргә"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = " %1 тапҡыр ҡабатларға"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Командаларҙы бер нисә тапҡыр үтәй."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ҡабатларға, әлегә юҡ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ҡабатларға, әлегә"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Мәғәнә ялған булғанда, командаларҙы ҡабатлай."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Мәғәнә дөрөҫ булғанда, командаларҙы ҡабатлай."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Бөтә %1 блоктарҙы юйырғамы?"; -Blockly.Msg["DELETE_BLOCK"] = "Блокты юйҙырырға"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = " %1 блокты юйҙырырға"; -Blockly.Msg["DISABLE_BLOCK"] = "Блокты һүндерергә"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Күсереп алырға"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Блокты тоҡандырырға"; -Blockly.Msg["EXPAND_ALL"] = "Блоктарҙы йәйергә"; -Blockly.Msg["EXPAND_BLOCK"] = "Блокты йәйергә"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Тышҡы өҫтәлмә"; -Blockly.Msg["HELP"] = "Ярҙам"; -Blockly.Msg["INLINE_INPUTS"] = "Эске өҫтәлмә"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "исемлек"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "менән исемлек төҙөргә"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "беренсе"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# аҙағынан"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "алырға"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "алырға һәм юйырға"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "аҙаҡҡы"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "осраҡлы"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "юйырға"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "исемлеккә"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 буш"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "оҙонлоғо %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "кеүек"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "өҫтәп ҡуйырға"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "йыйылма"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ялған"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Дөрөҫ йәки ялғанды ҡайтара."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "дөрөҫ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(математика)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Өҫтәмәләр тигеҙ булһа, дөрөҫ мәғәнәһен кире ҡайтара."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Беренсе өҫтәмә икенсеһенән ҙурыраҡ булһа, дөрөҫ мәғәнәһен кире ҡайтара."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Беренсе өҫтәмә икенсеһенән бәләкәйерәк йә уға тиң булһа, дөрөҫ мәғәнәһен кире ҡайтара."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Беренсе өҫтәмә икенсеһенән бәләкәйерәк булһа, дөрөҫ мәғәнәһен кире ҡайтара."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Беренсе өҫтәмә икенсеһенән бәләкәйерәк йә уға тиң булһа, дөрөҫ мәғәнәһен кире ҡайтара."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Өҫтәмәләр тигеҙ булмаһа, дөрөҫ мәғәнәһен кире ҡайтара."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 түгел"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Өҫтәлмә ялған булһа, дөрөҫ аңлатманы ҡайтара. Өҫтәлмә дөрөҫ булһа, ялған аңлатманы ҡайтара."; -Blockly.Msg["LOGIC_NULL"] = "нуль"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Нулде ҡайтара."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "һәм"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "йәки"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Әгәр ҙә ике өҫтәлмә лә тап килһә, дөрөҫ аңлатманы кире ҡайтара."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Өҫтәлмәләрҙең береһе генә дөрөҫ булһа, дөрөҫ аңлатманы ҡайтара."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "тест"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "әгәр ялған булһа"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "әгәр дөрөҫ булһа"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Һайлау шартын тикшерә. Әгәр ул дөрөҫ булһа, беренсе мәғәнәне, хата булһа, икенсе мәғәнәне ҡайтара."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ba.wikipedia.org/wiki/Арифметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Ике һандың суммаһын ҡайтара."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Ике һандың бүлендеген ҡайтара."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Ике һандың айырмаһын ҡайтара."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Ике һандың ҡабатландығын ҡайтара."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Дәрәжәгә күтәрелгән икенсе һандан тәүгеһенә ҡайтара."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://ba.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1 тан %2 ҡа арттырырға"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Үҙгәреүсән һанға өҫтәй '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ba.wikipedia.org/wiki/Математик_константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Таралған константаның береһен күрһәтә: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) йәки ∞ (сикһеҙлек)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "сикләргә %1 аҫтан %2 өҫтән %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Һанды аҫтан һәм өҫтән сикләй (сиктәгеләрен индереп)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "бүленә"; -Blockly.Msg["MATH_IS_EVEN"] = "тағы"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "тиҫкәре"; -Blockly.Msg["MATH_IS_ODD"] = "сәйер"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ыңғай"; -Blockly.Msg["MATH_IS_PRIME"] = "ябай"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Һандың йоп, таҡ, ябай, бөтөн, ыңғай, кире йәки билдәле һанға ҡарата ниндәй булыуын тикшерә. Дөрөҫ йә ялған мәғәнәһен күрһәтә."; -Blockly.Msg["MATH_IS_WHOLE"] = "бөтөн"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://ba.wikipedia.org/wiki/Ҡалдыҡ_менән_бүлеү"; -Blockly.Msg["MATH_MODULO_TITLE"] = "ҡалдыҡ %1 : %2 араһында"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Ике һанды бүлеү ҡалдығын күрһәтә."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ba.wikipedia.org/wiki/Һан"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Рәт."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "исемлектең уртаса арифметик дәүмәле"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "исемлектәге иң ҙуры"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "исемлек медианаһы"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Исемлектәге иң бәләкәйе"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "исемлек модалары"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "исемлектең осраҡлы элементы"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "исемлекте стандарт кире ҡағыу"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "исемлек суммаһы"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Исемлектең уртаса арифметик дәүмәле күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Исемлектең иң ҙур һанын күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Исемлек медианаһын күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Исемлектәге иң бәләкәй һанды күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Исемлектең иң күп осраған элементтарын күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Исемлектең осраҡлы элементын күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Исемлекте стандарт кире ҡағыуҙы күрһәтә."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Исемлектәрҙәге һандар суммаһын күрһәтә."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://ba.wikipedia.org/wiki/Ялған осраҡлы_һандар_генераторы"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "0 (үҙен дә индереп) һәм 1 араһындағы осраҡлы һан"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://ba.wikipedia.org/wiki/Ялған осраҡлы_һандар_генераторы"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "%1-ҙән %2-гә тиклем осраҡлы бөтөн һан"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Ике бирелгән һан араһындағы (үҙҙәрен дә индереп) осраҡлы һанды күрһәтә."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ba.wikipedia.org/wiki/Т=Түңәрәкләү"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "түңәрәк"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "бәләкәйгә тиклем түңәрәкләргә"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ҙурына тиклем түңәрәкләргә"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Һанды ҙурына йә бәләкәйенә тиклем түңәрәкләргә."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ba.wikipedia.org/wiki/Квадрат_тамыр"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "абсолют"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "квадрат тамыр"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Һандың модулен ҡайтара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Күрһәтелгән дәрәжәлә ҡайтара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Һандың натураль логаритмын ҡайтара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Һандың унынсы логаритмын ҡайтара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Кире һанды ҡайтара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Күрһәтелгән 10-сы дәрәжәлә ҡайтара."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Һандың квадрат тамырын ҡайтара."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ba..wikipedia.org/wiki/Тригонометрик_функциялар"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Арккосинусты градустарҙа күрһәтә."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Арксинусты градустарҙа күрһәтә."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Арктангенсты градустарҙа күрһәтә."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Мөйөштөң косинусын градустарҙа ҡайтара."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Мөйөштөң синусын градустарҙа ҡайтара."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Мөйөштөң тангенсын градустарҙа күрһәтә."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Яңы үҙгәреүсән..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Яңы үҙгәреүсәндең исеме:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' төҙөргә"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "кире ҡайтарыу"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "инеү исеме:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "инеү"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "документтарҙы үҙгәртергә"; -Blockly.Msg["REMOVE_COMMENT"] = "Аңлатмаларҙы юйырға"; -Blockly.Msg["RENAME_VARIABLE"] = "Үҙгәреүсәндең исемен алмаштырырға..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Бөтә '%1' үҙгәреүсәндәрҙең исемен ошолай алмаштырырға:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Үҙгәреүсән «%1»-гә текст өҫтәргә."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "тәүге хәрефте алырға"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "№ хәрефен аҙаҡтан алырға"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "хат алырға #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "һуңғы хәрефте алырға"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "осраҡлы хәрефте алырға"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Текстҡа элемент өҫтәү."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "ҡушылығыҙ"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "# хатҡа"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "һуңғы хәрефкә тиклем"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "текста"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "текстың тәүге инеүен табырға"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "Текстың һуңғы инеүен табырға"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "текстҡа %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 буш"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "текст төҙөргә"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Элементтарҙың теләһә күпме һанын берләштереп текст фрагментын булдыра."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "оҙонлоғо %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Бирелгән текстағы символдар һанын (буш урындар менән бергә) кире ҡайтара."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 баҫтырырға"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Текстың хәрефе, һүҙе йәки юлы."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Бөгөн"; -Blockly.Msg["UNDO"] = "Кире алырға"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "элемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/bcc.js b/lib/blockly/msg/js/bcc.js deleted file mode 100644 index 9c8c598..0000000 --- a/lib/blockly/msg/js/bcc.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "افزودن نظر"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "تغییر مقدار:"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "فروپاشی بلوک‌ها"; -Blockly.Msg["COLLAPSE_BLOCK"] = "فروپاشی بلوک"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رنگ ۱"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رنگ ۲"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نسبت"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "مخلوط"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "دو رنگ را با نسبت مشخص‌شده مخلوط می‌کند (۰٫۰ - ۱٫۰)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%86%DA%AF"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "انتخاب یک رنگ از تخته‌رنگ."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "رنگ تصادفی"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "انتخاب یک رنگ به شکل تصادفی."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "آبی"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "سبز"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "قرمز"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "رنگ با"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ساخت یک رنگ با مقدار مشخص‌شده‌ای از قرمز، سبز و آبی. همهٔ مقادیر باید بین ۰ تا ۱۰۰ باشند."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "شکستن حلقه"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ادامه با تکرار بعدی حلقه"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "شکستن حلقهٔ شامل."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "پریدن از بقیهٔ حلقه و ادامه با تکرار بعدی."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "اخطار: این بلوک ممکن است فقط داخل یک حلقه استفاده شود."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "برای هر مورد %1 در فهرست %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "با تعداد %1 از %2 به %3 با گام‌های %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "افزودن یک شرط به بلوک اگر."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "اضافه‌کردن نهایی، گرفتن همهٔ شرایط به بلوک اگر."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "اضافه، حذف یا ترتیب‌سازی قسمت‌ها برای تنظیم مجدد این بلوک اگر مسدود است."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "آنگاه"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "اگر آنگاه"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "اگر"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "اگر یک مقدار صحیح است، سپس چند عبارت را انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "اگر یک مقدار صحیح است، اول بلوک اول عبارات را انجام بده. در غیر این صورت بلوک دوم عبارات انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "اگر مقدار اول صحیح بود، از آن بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم صحیح است، بلوک دوم عبارات را انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "اگر مقدار اول درست است، بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم درست باشد بلوک دوم عبارات را انجام بده. اگر هیچ از مقادیر درست نبود، آخرین بلوک عبارات را انجام بده."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AD%D9%84%D9%82%D9%87_%D9%81%D9%88%D8%B1"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "انجام"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 بار تکرار"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "انجام چند عبارت چندین بار."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تکرار تا"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "تکرار در حالی که"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; // untranslated -Blockly.Msg["DELETE_BLOCK"] = "حذف بلوک"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "حذف بلوک‌های %1"; -Blockly.Msg["DISABLE_BLOCK"] = "غیرفعال‌سازی بلوک"; -Blockly.Msg["DUPLICATE_BLOCK"] = "تکراری"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "فعال‌سازی بلوک"; -Blockly.Msg["EXPAND_ALL"] = "گسترش بلوک‌ها"; -Blockly.Msg["EXPAND_BLOCK"] = "گسترش بلوک"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ورودی‌های خارجی"; -Blockly.Msg["HELP"] = "کومک"; -Blockly.Msg["INLINE_INPUTS"] = "ورودی‌های درون خطی"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ایجاد فهرست خالی"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "فهرستی با طول صفر شامل هیچ رکورد داده‌ای بر می‌گرداند."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "لیست"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "اضافه‌کردن، حذف‌کردن یا ترتیب‌سازی مجدد بخش‌ها این بلوک فهرستی."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ایجاد فهرست با"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "اضافه‌کردن یک مورد به فهرست."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "فهرستی از هر عددی از موارد می‌سازد."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "اولین"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# از انتها"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "گرفتن"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "گرفتن و حذف‌کردن"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "اهرین"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "تصادفی"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "حذف‌کردن"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "اولین مورد یک فهرست را بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "موردی در محل مشخص‌شده بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "آخرین مورد در یک فهرست را بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "یک مورد تصادفی در یک فهرست بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "اولین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "مورد در محل مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "آخرین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "مورد تصادفی‌ای را در فهرست حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "اولین مورد را در یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "مورد مشخص‌شده در موقعیت مشخص در یک فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "آخرین مورد را در یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "یک مورد تصادفی را یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "به # از انتها"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "به #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "به آخرین"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "گرفتن زیرمجموعه‌ای از ابتدا"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "گرفتن زیرمجموعه‌ای از # از انتها"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "گرفتن زیرمجموعه‌ای از #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "کپی از قسمت مشخص‌شدهٔ لیست درست می‌کند."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 آخرین مورد است."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 اولین مورد است."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "آخرین رخداد متن را بیاب"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "یافتن آخرین رخ‌داد مورد"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "شاخصی از اولین/آخرین رخ‌داد مورد در فهرست را بر می‌گرداند. %1 بر می‌گرداند اگر متن موجود نبود."; -Blockly.Msg["LISTS_INLIST"] = "مہ لیست‌ئا"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 خالی است"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "اگر فهرست خالی است مقدار صجیج بر می‌گرداند."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "طول یک فهرست را برمی‌گرداند."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "فهرستی با %1 تکرارشده به اندازهٔ %2 می‌سازد"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "فهرستی شامل مقادیر داده‌شدهٔ تکرار شده عدد مشخص‌شده می‌سازد."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "به‌عنوان"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "جاہ دیگ مہ"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "مجموعه"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "موردی به ته فهرست اضافه می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "موردی در موقعیت مشخص‌شده در یک فهرست اضافه می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "موردی به ته فهرست الحاق می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "مورد را به صورت تصادفی در یک فهرست می‌افزاید."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "اولین مورد در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "مورد مشخص‌شده در یک فهرست را قرار می‌دهد."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "آخرین مورد در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "یک مورد تصادفی در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ناصحیح"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "بازگرداندن یکی از صحیح یا ناصحیح."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "صحیح"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://fa.wikipedia.org/wiki/%D9%86%D8%A7%D8%A8%D8%B1%D8%A7%D8%A8%D8%B1%DB%8C"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "بازگشت صحیح اگر هر دو ورودی با یکدیگر برابر باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "بازگرداندن صحیح اگر ورودی اول بزرگتر از ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "بازگرداندن صحیح اگر ورودی اول بزرگتر یا مساوی یا ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "بازگرداندن صحیح اگر ورودی اول کوچکتر از ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "بازگرداندن صحیح اگر ورودی اول کوچکتر یا مساوی با ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "برگرداندن صحیح اگر هر دو ورودی با یکدیگر برابر نباشند."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "نه %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "صجیج باز می‌گرداند اگر ورودی نا صحیح باشند. ناصحیح بازمی‌گرداند اگر ورودی صحیح باشد."; -Blockly.Msg["LOGIC_NULL"] = "تهی"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "تهی بازمی‌گرداند."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "و"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "یا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "بازگرداندن صحیح اگر هر دو ورودی صحیح باشد."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "بازگرداندن صحیح اگر یکی از دو ورودی صحیح باشد."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "آزمایش"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "اگر ناصحیح"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "اگر صحیح"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "بررسی وضعیت در «آزمایش». اگر وضعیت صحیح باشد، مقدار «اگر صحیح» را بر می‌گرداند در غیر اینصورت مقدار «اگر ناصحیح» را."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AD%D8%B3%D8%A7%D8%A8"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "بازگرداندن مقدار جمع دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "بازگرداندن باقی‌ماندهٔ دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "بازگرداندن تفاوت دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "بازگرداندن حاصلضرب دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "بازگرداندن اولین عددی که از توان عدد دوم حاصل شده باشد."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C#.D8.A7.D9.81.D8.B2.D8.A7.DB.8C.D8.B4_.D8.B4.D9.85.D8.A7.D8.B1.D9.86.D8.AF.D9.87"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "تغییر %1 با %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "افزودن یک عدد به متغیر '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AB%D8%A7%D8%A8%D8%AA_%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "یکی از مقادیر مشترک را برمی‌گرداند: π (۳٫۱۴۱…)، e (۲٫۷۱۸...)، φ (۱٫۶۱۸)، sqrt(۲) (۱٫۴۱۴)، sqrt(۱/۲) (۰٫۷۰۷...) و یا ∞ (بی‌نهایت)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "محدودکردن %1 پایین %2 بالا %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "محدودکردن یک عدد بین محدودیت‌های مشخص‌شده (بسته)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "تقسیم شده بر"; -Blockly.Msg["MATH_IS_EVEN"] = "زوج است"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "منفی است"; -Blockly.Msg["MATH_IS_ODD"] = "فرد است"; -Blockly.Msg["MATH_IS_POSITIVE"] = "مثبت است"; -Blockly.Msg["MATH_IS_PRIME"] = "عدد اول است"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "بررسی می‌کند که آیا یک عدد زوج، فرد، اول، کامل، مثبت، منفی یا بخش‌پذیر عدد خاصی باشد را بررسی می‌کند. درست یا نادرست باز می‌گرداند."; -Blockly.Msg["MATH_IS_WHOLE"] = "کامل است"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%BE%DB%8C%D9%85%D8%A7%D9%86%D9%87"; -Blockly.Msg["MATH_MODULO_TITLE"] = "باقی‌ماندهٔ %1 + %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "باقی‌ماندهٔ تقسیم دو عدد را بر می‌گرداند."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B9%D8%AF%D8%AF"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "یک عدد."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "میانگین فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "بزرگ‌ترین فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "میانهٔ فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "کوچکترین فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "مد فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "مورد تصادفی از فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "انحراف معیار فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "جمع فهرست"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "میانگین (میانگین ریاضی) مقادیر عددی فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "بزرگ‌ترین عدد در فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "میانهٔ عدد در فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "کوچک‌ترین عدد در فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "شایع‌ترین قلم(های) در فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "موردی تصادفی از فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "انحراف معیار فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "جمع همهٔ عددهای فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "کسر تصادفی"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "بازگرداندن کسری تصادفی بین ۰٫۰ (بسته) تا ۱٫۰ (باز)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "عدد صحیح تصادفی بین %1 تا %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "یک عدد تصادفی بین دو مقدار مشخص‌شده به صورت بسته باز می‌گرداند."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "گردکردن"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "گرد به پایین"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "گرد به بالا"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "گردکردن یک عدد به بالا یا پایین."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%DB%8C%D8%B4%D9%87_%D8%AF%D9%88%D9%85"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "مطلق"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "ریشهٔ دوم"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "قدر مطلق یک عدد را بازمی‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "بازگرداندن توان e یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "لوگاریتم طبیعی یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "بازگرداندن لگاریتم بر پایهٔ ۱۰ یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "منفی‌شدهٔ یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "بازگرداندن توان ۱۰ یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "ریشهٔ دوم یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AA%D8%A7%D8%A8%D8%B9%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%85%D8%AB%D9%84%D8%AB%D8%A7%D8%AA%DB%8C"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "بازگرداندن آرک‌کسینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "بازگرداندن آرک‌سینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "بازگرداندن آرک‌تانژانت درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "بازگرداندن کسینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "بازگرداندن سینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "بازگرداندن تانژانت یک درجه (نه رادیان)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "متغیر تازه..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "نام متغیر تازه:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "اجازه اظهارات"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "با:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "اجرای تابع تعریف‌شده توسط کاربر «%1»."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "اجرای تابع تعریف‌شده توسط کاربر «%1» و استفاده از خروجی آن."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "با:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "ساختن «%1»"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "انجام چیزی"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "به"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "تابعی می‌سازد بدون هیچ خروجی."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "بازگشت"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "تابعی با یک خروجی می‌سازد."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "اخطار: این تابعی پارامتر تکراری دارد."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "برجسته‌سازی تعریف تابع"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "اگر یک مقدار صحیح است، مقدار دوم را برگردان."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "اخطار: این بلوک احتمالاً فقط داخل یک تابع استفاده می‌شود."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "نام ورودی:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "اضافه کردن ورودی به تابع."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ورودی‌ها"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "افزودن، حذف یا دوباره مرتب‌کردن ورودی این تابع."; -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "حذف نظر"; -Blockly.Msg["RENAME_VARIABLE"] = "تغییر نام متغیر..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "تغییر نام همهٔ متغیرهای «%1» به:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "به %1 الحاق متن %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "الحاق متنی به متغیر «%1»."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "به حروف کوچک"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "به حروف بزرگ عنوان"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "به حروف بزرگ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "بازگرداندن کپی متن در حالتی متفاوت."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "گرفتن اولین حرف"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "گرفتن حرف # از آخر"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "گرفتن حرف #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "گرفتن آخرین حرف"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "گرفتن حرف تصادفی"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "حرفی در موقعیت مشخص‌شده بر می‌گرداند."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "افزودن یک مورد به متن."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "عضویت"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "اضافه، حذف یا ترتیب‌سازی قسمت‌ها برای تنظیم مجدد این بلوک اگر مسدود است."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "به حرف # از انتها"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "به حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "گرفتن آخرین حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "مہ نبشتہ‌ئا"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "گرفتن زیرمتن از اولین حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "گرفتن زیرمتن از حرف # به انتها"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "گرفتن زیرمتن از حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "قسمت مشخصی‌شده‌ای از متن را بر می‌گرداند."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "اولین رخداد متن را بیاب"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "آخرین رخداد متن را بیاب"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "در متن %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "شاخصی از اولین آخرین رخ‌داد متن اول در متن دوم بر می‌گرداند. اگر متن یافت نشد %1 باز می‌گرداند."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 خالی است"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "اضافه‌کردن صحیح اگر متن فراهم‌شده خالی است."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ایجاد متن با"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "یک تکه‌ای از متن را با چسپاندن همهٔ تعداد از موارد ایجاد می‌کند."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "بازگرداندن عددی از حروف (شامل فاصله‌ها) در متن فراهم‌شده."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "چاپ %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "اعلان برای کاربر با یک عدد."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "اعلان برای کاربر برای یک متن."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "اعلان برای عدد با پیام"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "اعلان برای متن با پیام"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D8%B4%D8%AA%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "یک حرف، کلمه یا خطی از متن."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "تراشیدن فاصله‌ها از هر دو طرف"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "تراشیدن فاصله‌ها از طرف چپ"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "تراشیدن فاصله‌ها از طرف چپ"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند."; -Blockly.Msg["TODAY"] = "Today"; // untranslated -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "مورد"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "درست‌کردن «تنظیم %1»"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "مقدار این متغیر را بر می‌گرداند."; -Blockly.Msg["VARIABLES_SET"] = "مجموعه %1 به %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "درست‌کردن «تنظیم %1»"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "متغیر برابر با خروجی را مشخص می‌کند."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/be-tarask.js b/lib/blockly/msg/js/be-tarask.js deleted file mode 100644 index 41c2a8e..0000000 --- a/lib/blockly/msg/js/be-tarask.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Дадаць камэнтар"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Немагчыма выдаліць зьменную «%1», таму што яна зьяўляецца часткай вызначэньня функцыі «%2»"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Зьмяніць значэньне:"; -Blockly.Msg["CLEAN_UP"] = "Ачысьціць блёкі"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Згорнутыя блёкі ўтрымліваюць папярэджаньні."; -Blockly.Msg["COLLAPSE_ALL"] = "Згарнуць блёкі"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Згарнуць блёк"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "колер 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "колер 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "дзеля"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "зьмяшаць"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Зьмешвае два колеры ў дадзенай прапорцыі (0.0 — 1.0)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D0%B5%D1%80"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Абярыце колер з палітры."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "выпадковы колер"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Абраць выпадковы колер."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "сіняга"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зялёнага"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "чырвонага"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "колер з"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Стварыць колер з абранымі прапорцыямі чырвонага, зялёнага і сіняга. Усе значэньні павінны быць ад 0 да 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "перарваць цыкль"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "працягнуць з наступнага кроку цыклю"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Спыніць гэты цыкль."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Прапусьціць рэшту цыклю і перайсьці да наступнага кроку."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Увага: гэты блёк можа быць выкарыстаны толькі ў цыклі."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "для кожнага элемэнта %1 у сьпісе %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Для кожнага элемэнту сьпісу прысвойвае зьменнай '%1' ягонае значэньне і выконвае пэўныя апэрацыі."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "лічыць з %1 ад %2 да %3 па %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Прысвойвае зьменнай \"%1\" значэньні ад пачатковага да канчатковага значэньня, улічваючы зададзены крок, і выконвае абраныя блёкі."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Дадаць умову да блёку «калі»."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Дадаць заключную ўмову для ўсіх астатніх варыянтаў блёку «калі»."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Дадаць, выдаліць ці пераставіць сэкцыі для пераканфігураваньня гэтага блёку «калі»."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "інакш"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "інакш, калі"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "калі"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Калі значэньне ісьціна, выканаць пэўныя апэрацыі."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Калі значэньне ісьціна, выканаць першы блёк апэрацыяў, інакш выканаць другі блёк."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Калі першае значэньне ісьціна, выканаць першы блёк апэрацыяў. Інакш, калі другое значэньне ісьціна, выканаць другі блёк апэрацыяў."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Калі першае значэньне ісьціна, выканаць першы блёк апэрацыяў. Інакш, калі другое значэньне ісьціна, выканаць другі блёк апэрацыяў. Калі ніводнае з значэньняў не сапраўднае, выканаць апошні блёк апэрацыяў."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "выканаць"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "паўтарыць %1 раз(ы)"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Выконвае апэрацыі некалькі разоў."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "паўтараць, пакуль не"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "паўтараць, пакуль"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Пакуль значэньне хлусьня, выконваць пэўныя апэрацыі."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Пакуль значэньне ісьціна, выконваць пэўныя апэрацыі."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Выдаліць усе блёкі %1?"; -Blockly.Msg["DELETE_BLOCK"] = "Выдаліць блёк"; -Blockly.Msg["DELETE_VARIABLE"] = "Выдаліць зьменную «%1»"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Выдаліць %1 выкарыстаньняў зьменнай «%2»?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Выдаліць %1 блёкі"; -Blockly.Msg["DISABLE_BLOCK"] = "Адключыць блёк"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Капіяваць"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Прадубляваць камэнтар"; -Blockly.Msg["ENABLE_BLOCK"] = "Уключыць блёк"; -Blockly.Msg["EXPAND_ALL"] = "Разгарнуць блёкі"; -Blockly.Msg["EXPAND_BLOCK"] = "Разгарнуць блёк"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Зьнешнія ўваходы"; -Blockly.Msg["HELP"] = "Дапамога"; -Blockly.Msg["INLINE_INPUTS"] = "Унутраныя ўваходы"; -Blockly.Msg["IOS_CANCEL"] = "Адмяніць"; -Blockly.Msg["IOS_ERROR"] = "Памылка"; -Blockly.Msg["IOS_OK"] = "Добра"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Дадаць уваходныя зьвесткі"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Дазволіць сьцьверджаньні"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Уваходныя зьвесткі гэтай функцыі дублююцца."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "УВАХОДНЫЯ ЗЬВЕСТКІ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Дадаць"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Дадаць зьменную"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Выдаліць"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Вы ня можаце выкарыстоўваць пустую назву зьменнай."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Перайменаваць"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Назва зьменнай"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "стварыць пусты сьпіс"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Вяртае сьпіс даўжынёй 0, які ня ўтрымлівае запісаў зьвестак"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "сьпіс"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Дадаць, выдаліць ці пераставіць сэкцыі для пераканфігураваньня гэтага блёку."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "стварыць сьпіс з"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Дадаць элемэнт да сьпісу."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Ставарае сьпіс зь любой колькасьцю элемэнтаў."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "першы"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "№ з канца"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "атрымаць"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "атрымаць і выдаліць"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "апошні"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "выпадковы"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "выдаліць"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Вяртае першы элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Вяртае элемэнт у пазначанай пазыцыі ў сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Вяртае апошні элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Вяртае выпадковы элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Выдаляе і вяртае першы элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Выдаляе і вяртае элемэнт у пазначанай пазыцыі ў сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Выдаляе і вяртае апошні элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Выдаляе і вяртае выпадковы элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Выдаляе першы элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Выдаляе элемэнт у пазначанай пазыцыі ў сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Выдаляе апошні элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Выдаляе выпадковы элемэнт у сьпісе."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "па № з канца"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "да #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "да апошняга"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "атрымаць падсьпіс зь першага"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "атрымаць падсьпіс з № з канца"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "атрымаць падсьпіс з №"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Стварае копію пазначанай часткі сьпісу."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "№%1 — апошні элемэнт."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "№%1 — першы элемэнт."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "знайсьці першае ўваходжаньне элемэнту"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "знайсьці апошняе ўваходжаньне элемэнту"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Вяртае індэкс першага/апошняга ўваходжаньня элемэнту ў сьпіс. Вяртае %1, калі элемэнт ня знойдзены."; -Blockly.Msg["LISTS_INLIST"] = "у сьпісе"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 пусты"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Вяртае значэньне ісьціна, калі сьпіс пусты."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "даўжыня %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Вяртае даўжыню сьпісу."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "стварыць сьпіс з элемэнту %1, які паўтараецца %2 разоў"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Стварае сьпіс, які ўтрымлівае пададзеную колькасьць копіяў элемэнту."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "адваротна %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Зьмяняе парадак копіі сьпісу на адваротны."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "як"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "уставіць у"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "усталяваць"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Устаўляе элемэнт у пачатак сьпісу."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Устаўляе элемэнт у пазначанай пазыцыі ў сьпісе."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Дадае элемэнт у канец сьпісу."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Выпадковым чынам устаўляе элемэнт у сьпіс."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Задае першы элемэнт у сьпісе."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Задае элемэнт у пазначанай пазыцыі ў сьпісе."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Задае апошні элемэнт у сьпісе."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Задае выпадковы элемэнт у сьпісе."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "па павелічэньні"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "па зьмяншэньні"; -Blockly.Msg["LISTS_SORT_TITLE"] = "сартаваць %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Сартаваць копію сьпісу."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "паводле альфабэту, ігнараваць рэгістар"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "як лікі"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "паводле альфабэту"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "стварыць сьпіс з тэксту"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "стварыць тэкст са сьпісу"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Аб’ядноўвае сьпіс тэкстаў у адзін тэкст па падзяляльніках."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Падзяліць тэкст у сьпіс тэкстаў, па падзяляльніках."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "з падзяляльнікам"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "хлусьня"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Вяртае «ісьціна» ці «хлусьня»."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ісьціна"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%9D%D1%8F%D1%80%D0%BE%D1%9E%D0%BD%D0%B0%D1%81%D1%8C%D1%86%D1%8C"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Вяртае «ісьціна», калі абодва ўводы роўныя."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Вяртае «ісьціна», калі першы ўвод большы за другі."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Вяртае «ісьціна», калі першы ўвод большы ці роўны другому."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Вяртае «ісьціна», калі першы ўвод меншы за другі."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Вяртае «ісьціна», калі першы ўвод меншы ці роўны другому."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Вяртае «ісьціна», калі абодва ўводы ня роўныя."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "не %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Вяртае «ісьціна», калі ўвод непраўдзівы. Вяртае «хлусьня», калі ўвод праўдзівы."; -Blockly.Msg["LOGIC_NULL"] = "нічога"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Вяртае нічога."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "і"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ці"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Вяртае «ісьціна», калі абодва ўводы праўдзівыя."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Вяртае «ісьціна», калі прынамсі адзін з уводаў праўдзівы."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "тэст"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "калі хлусьня"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "калі ісьціна"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Праверыць умову ў 'тэст'. Калі ўмова праўдзівая, будзе вернутае значэньне «калі ісьціна»; інакш будзе вернутае «калі хлусьня»."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%90%D1%80%D1%8B%D1%82%D0%BC%D1%8D%D1%82%D1%8B%D0%BA%D0%B0"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Вяртае суму двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Вяртае дзель двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Вяртае рознасьць двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Вяртае здабытак двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Вяртае першы лік у ступені другога ліку."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 ад X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Вяртае арктангенс пункту (X, Y) у градусах ад -180 да 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "зьмяніць %1 на %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Дадае лічбу да зьменнай '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%8D%D0%BC%D0%B0%D1%82%D1%8B%D1%87%D0%BD%D0%B0%D1%8F_%D0%BA%D0%B0%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B0"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Вяртае адну з агульных канстантаў: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0,707...) або ∞ (бясконцасьць)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "абмежаваць %1 зьнізу %2 зьверху %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Абмяжоўвае колькасьць ніжняй і верхняй межамі (уключна)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "дзяліць на"; -Blockly.Msg["MATH_IS_EVEN"] = "парная"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "адмоўная"; -Blockly.Msg["MATH_IS_ODD"] = "няпарная"; -Blockly.Msg["MATH_IS_POSITIVE"] = "станоўчая"; -Blockly.Msg["MATH_IS_PRIME"] = "простая"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Правярае, ці зьяўляецца лік парным, няпарным, простым, станоўчым, адмоўным, ці ён дзеліцца на пэўны лік без астатку. Вяртае значэньне ісьціна або няпраўда."; -Blockly.Msg["MATH_IS_WHOLE"] = "цэлая"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "рэшта дзяленьня %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Вяртае рэшту дзяленьня двух лікаў."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%9B%D1%96%D0%BA"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Лік."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "сярэдняя ў сьпісе"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "мінімальная ў сьпісе"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "мэдыяна сьпісу"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "мінімальная ў сьпісе"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "рэжымы сьпісу"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "выпадковы элемэнт сьпісу"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "стандартнае адхіленьне сьпісу"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Сума сьпісу"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Вяртае сярэднеарытмэтычнае значэньне лікавых значэньняў у сьпісе."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Вяртае найменшы лік у сьпісе."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Вяртае мэдыяну сьпісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Вяртае найменшы лік у сьпісе."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Вяртае сьпіс самых распаўсюджаных элемэнтаў у сьпісе."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Вяртае выпадковы элемэнт сьпісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Вяртае стандартнае адхіленьне сьпісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Вяртае суму ўсіх лікаў у сьпісе."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "выпадковая дроб"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Вяртае выпадковую дроб у дыяпазоне ад 0,0 (уключна) да 1,0."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "выпадковая цэлая з %1 для %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Вяртае выпадковы цэлы лік паміж двума зададзенымі абмежаваньнямі ўключна."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "акругліць"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "акругліць да меншага"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "акругліць да большага"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Акругленьне ліку да большага ці меншага."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BD%D1%8B_%D0%BA%D0%BE%D1%80%D0%B0%D0%BD%D1%8C"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "модуль"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "квадратны корань"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Вяртае модуль ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Вяртае e ў ступені ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Вяртае натуральны лягарытм ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Вяртае дзесятковы лягарытм ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Вяртае супрацьлеглы лік."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Вяртае 10 у ступені ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Вяртае квадратны корань ліку."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://be-x-old.wikipedia.org/wiki/%D0%A2%D1%80%D1%8B%D0%B3%D0%B0%D0%BD%D0%B0%D0%BC%D1%8D%D1%82%D1%80%D1%8B%D1%8F#.D0.A2.D1.80.D1.8B.D0.B3.D0.B0.D0.BD.D0.B0.D0.BC.D1.8D.D1.82.D1.80.D1.8B.D1.87.D0.BD.D1.8B.D1.8F_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D1.8B.D1.96"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Вяртае арккосынус ліку."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Вяртае арксынус ліку."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Вяртае арктангэнс ліку."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Вяртае косынус кута ў градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Вяртае сынус кута ў градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Вяртае тангэнс кута ў градусах."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Стварыць зьменную колеру…"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Стварыць лікавую зьменную…"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Стварыць радковую зьменную…"; -Blockly.Msg["NEW_VARIABLE"] = "Стварыць зьменную…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Імя новай зьменнай:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Новы тып зьменнай:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "дазволіць зацьвярджэньне"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "з:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Запусьціць функцыю вызначаную карыстальнікам '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Запусьціць функцыю вызначаную карыстальнікам '%1' і выкарыстаць яе вынік."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "з:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Стварыць '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Апішыце гэтую функцыю…"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "зрабіць што-небудзь"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "да"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Стварае функцыю бяз выніку."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "вярнуць"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Стварае функцыю з вынікам."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Увага: гэтая функцыя мае парамэтры-дублікаты."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Падсьвяціць вызначэньне функцыі"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Калі значэньне ісьціна, вярнуць другое значэньне."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Папярэджаньне: гэты блёк можа выкарыстоўвацца толькі ў вызначанай функцыі."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "назва парамэтру:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Дадаць уваходныя парамэтры ў функцыю."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "парамэтры"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Дадаць, выдаліць ці запісаць чаргу ўваходных парамэтраў для гэтай функцыі."; -Blockly.Msg["REDO"] = "Паўтарыць"; -Blockly.Msg["REMOVE_COMMENT"] = "Выдаліць камэнтар"; -Blockly.Msg["RENAME_VARIABLE"] = "Перайменаваць зьменную…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Перайменаваць усе назвы зьменных '%1' на:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "да %1 дадаць тэкст %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Дадаць які-небудзь тэкст да зьменнай '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "да ніжняга рэгістру"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Вялікія Першыя Літары"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "да ВЕРХНЯГА РЭГІСТРУ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Вярнуць копію тэксту зь іншай велічынёй літар."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "узяць першую літару"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "узяць літару № з канца"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "узяць літару №"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "узяць апошнюю літару"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "узяць выпадковую літару"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "у тэксьце %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Вяртае літару ў пазначанай пазыцыі."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "падлічыць %1 сярод %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Падлічвае колькі разоў нейкі тэкст сустракаецца ўнутры нейкага іншага тэксту."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Дадаць элемэнт да тэксту."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "далучыць"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Дадайце, выдаліце ці зьмяніце парадак разьдзелаў для перадачы тэкставага блёку."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "да літары № з канца"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "да літары №"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "да апошняй літары"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "у тэксьце"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "атрымаць падрадок зь першай літары"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "узяць падрадок зь літары № з канца"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "узяць падрадок зь літары №"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Вяртае пазначаную частку тэксту."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "знайсьці першае ўваходжаньне тэксту"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "знайсьці апошняе ўваходжаньне тэксту"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "у тэксьце %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Вяртае індэкс першага/апошняга ўваходжаньня першага тэксту ў другі тэкст. Вяртае %1, калі тэкст ня знойдзены."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 пусты"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Вяртае значэньне ісьціна, калі тэкст пусты."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "стварыць тэкст з"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Стварае фрагмэнт тэксту аб’яднаньнем любой колькасьці элемэнтаў."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "даўжыня %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Вяртае колькасьць літараў (у тым ліку прабелы) у пададзеным тэксьце."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "друкаваць %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Надрукаваць пазначаны тэкст, лічбу ці іншыя сымбалі."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Запытаць у карыстальніка лічбу."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Запытаць у карыстальніка тэкст."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "запытаць лічбу з падказкай"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "запытаць тэкст з падказкай"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "замяніць %1 на %2 у %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Замяняе ўсе выпадкі нейкага тэксту на іншы тэкст."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "адваротна %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Мяняе парадак сымбаляў у тэксьце на адваротны."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Літара, слова ці радок тэксту."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "абрэзаць прабелы з абодвух бакоў"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "абрэзаць прабелы зь левага боку"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "абрэзаць прабелы з правага боку"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Вяртае копію тэксту з прабеламі, выдаленымі ад аднаго ці абодвух бакоў."; -Blockly.Msg["TODAY"] = "Сёньня"; -Blockly.Msg["UNDO"] = "Скасаваць"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "аб’ект"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Стварыць блёк «усталяваць %1»"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Вяртае значэньне гэтай зьменнай."; -Blockly.Msg["VARIABLES_SET"] = "усталяваць %1 да %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Стварыць блёк «атрымаць %1»"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Надаць гэтай зьменнай значэньне ўстаўкі."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Зьменная з назвай «%1» ужо існуе."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Зьменная з назвай «%1» ужо існуе зь іншым тыпам: «%2»."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Напішыце што-небудзь…"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/be.js b/lib/blockly/msg/js/be.js deleted file mode 100644 index f1a6bab..0000000 --- a/lib/blockly/msg/js/be.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Дадаць каментарый"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Немагчыма выдаліць пераменную '%1', паколькі яна з'яўляецца часткай вызначэння функцыі '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Змяніць значэння:"; -Blockly.Msg["CLEAN_UP"] = "Выраўнаваць блокі"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Згарнуць блокі"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Згарнуць блок"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "колер 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "колер 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "суадносіны"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "змяшаць"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Змешвае два колеры разам у паказаных суадносінах (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://be.wikipedia.org/wiki/Колер"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Выбраць колер з палітры."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "выпадковы колер"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Выбраць колер наўздагад."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "сіні"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зялёны"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "чырвоны"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "колер з"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Стварыць колер з названымі ўзроўнямі чырвонага, зялёнага і сіняга. Усе значэння павінны быць ад 0 да 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "перарваць цыкл"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "прадоўжыць з наступнай ітэрацыі цыклу"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Перарваць выкананне цыкла."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Прапусціць рэшту гэтага цыкла і перайсці да выканання наступнай ітэрацыі."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Папярэджанне: гэты блок можа быць выкарыстаны толькі ў межах цыклу."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "для кожнага элемента %1 у спісе %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Для кожнага элемента ў спісе пераменная '%1' атрымлівае значэнне элемента, а затым выконваюцца пэўныя дзеянні."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "лічыць з %1 ад %2 да %3 праз %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Наяўная пераменная '%1' прымае значэнні ад пачатковага да канчатковага, улічваючы зададзены інтэрвал, і выконваюцца названыя блокі."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Дадайце ўмову да блоку 'калі'"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Дадаць канчатковую, ўсёабдымную ўмову ў блок 'калі'."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Дадайце, выдаліце або змяніце парадак секцыяў, каб пераналадзіць гэты блок 'калі'."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "інакш"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "інакш калі"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "калі"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Калі значэнне ісцінае, то выканаць пэўныя дзеянні."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Калі значэнне ісцінае, то выконваецца першы блок аператараў. У адваротным выпадку выконваецца другі блок аператараў."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Калі першае значэнне ісцінае, то выконваецца першы блок аператараў. У адваротным выпадку, калі другое значэнне ісцінае, то выконваецца другі блок аператараў."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Калі першае значэнне ісцінае, то выконваецца першы блок аператараў. У адваротным выпадку, калі другое значэнне ісцінае, то выконваецца другі блок аператараў. Калі ні адно з значэнняў не з'яўляецца ісціным, то выконваецца апошні блок аператараў."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://be.wikipedia.org/wiki/Цыкл_(праграмаванне)"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "выканаць"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "паўтарыць %1 разоў"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Выканаць пэўныя дзеянні некалькі разоў."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "паўтараць, пакуль не"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "паўтараць, пакуль"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Пакуль значэнне ілжывае, выконваць пэўныя дзеянні."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Пакуль значэнне ісцінае, выконваць пэўныя дзеянні."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Выдаліць усе блокі %1?"; -Blockly.Msg["DELETE_BLOCK"] = "Выдаліць блок"; -Blockly.Msg["DELETE_VARIABLE"] = "Выдаліць пераменную '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Выдаліць %1 выкарыстання пераменнай '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Выдаліць %1 блокаў"; -Blockly.Msg["DISABLE_BLOCK"] = "Адключыць блок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Дубляваць"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Уключыць блок"; -Blockly.Msg["EXPAND_ALL"] = "Разгарнуць блокі"; -Blockly.Msg["EXPAND_BLOCK"] = "Разгарнуць блок"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Знешнія ўваходы"; -Blockly.Msg["HELP"] = "Даведка"; -Blockly.Msg["INLINE_INPUTS"] = "Убудаваныя ўваходы"; -Blockly.Msg["IOS_CANCEL"] = "Адмяніць"; -Blockly.Msg["IOS_ERROR"] = "Памылка"; -Blockly.Msg["IOS_OK"] = "Добра"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Дадаць уваходную пераменную"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Дазволіць аператары"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "У гэтай функцыі ёсць уваходныя пераменныя, якія дубліруюцца."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "УВАХОД"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Дадаць"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Дадаць пераменную"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Выдаліць"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Вы не можаце выкарыстоўваць пустое імя пераменнай."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Перайменаваць"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Назва пераменнай"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "стварыць пусты спіс"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Вяртае спіс даўжыні 0, які не ўтрымлівае дадзеных"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "спіс"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Дадайце, выдаліце, перастаўце элементы для пераробкі блока спісу."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "стварыць спіс з"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Дадае элемент да спісу."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Стварае спіс з любым лікам элементаў."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "першы"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# з канца"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "узяць"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "узяць і выдаліць"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "апошні"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "адвольны"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "выдаліць"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Вяртае першы элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Вяртае элемент ва ўказанай пазіцыі спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Вяртае апошні элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Вяртае выпадковы элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Видаляє і повертає перший елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Выдаляе і вяртае элемент ва ўказанай пазіцыі спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Видаляє і повертає апошні элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Видаляє і повертає выпадковы элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Видаляє першы элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Видаляє элемент ва ўказанай пазіцыі спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Видаляє апошні элемент спіса."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Видаляє выпадковы элемент спіса."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "па # з канца"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "па #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "па апошні"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "узяць падспіс з першага"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "узяць падспіс з # з канца"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "узяць падспіс з #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Стварае копію ўказанай частцы спісу."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 - апошні элемент."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 - першы элемент."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "знайсці першае ўваходжанне элемента"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "знайсці апошняе ўваходжанне элемента"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Вяртае нумар пазіцыі першага/апошняга ўваходжання элемента ў спісе. Вяртае %1, калі элемент не знойдзены."; -Blockly.Msg["LISTS_INLIST"] = "у спісе"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 пусты"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Вяртае значэнне ісціна, калі спіс пусты."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "даўжыня %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Вяртае даўжыню спісу."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "стварыць спіс з элемента %1, паўтаральнага %2 разоў"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Стварае спіс, які складаецца з зададзенага ліку копій элемента."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "змяніць парадак на зваротны %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Змяніць парадак спісу на адваротны."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "="; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "уставіць у"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "прысабечыць"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Устаўляе элемент у пачатак спіса."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Устаўляе элемент ва ўказанай пазіцыі спіса."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Дадае элемент у канец спісу."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Устаўляе элемент у выпадковае месца ў спісе."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Прысабечвае значэнне элемента спісу."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Прысабечвае значэнне элемента ва ўказанай пазіцыі спіса."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Прысабечвае значэнне элемента спісу."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Прысабечвае значэнне элемента спісу."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "па ўзрастанню"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "па спаданню"; -Blockly.Msg["LISTS_SORT_TITLE"] = "сартаваць %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Сартаваць копію спісу."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "па алфавіце, без уліку рэгістра"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "лікавая"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "па алфавіце"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "зрабіць спіс з тэксту"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "сабраць тэкст са спісу"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Злучае спіс тэкстаў у адзін тэкст з падзельнікамі."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Разбівае тэкст у спіс тэкстаў па падзельнікам."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "з падзельнікам"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "хлусня"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Вяртае значэнне ісціна або хлусня."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ісціна"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://be.wikipedia.org/wiki/Няроўнасць"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Вяртае станоўчае значэнне, калі абодва ўводы роўныя адзін аднаму."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Вяртае значэнне ісціна, калі першая ўстаўка больш другой."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Вяртае значэнне ісціна, калі першая ўстаўка больш або роўная другой."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Вяртае станоўчае значэнне, калі першы ўвод менш другога."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Вяртае значэнне ісціна, калі першая ўстаўка менш або роўная другі."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Вяртае станоўчае значэнне, калі ўводы не роўныя."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "не %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Вяртае значэнне ісціна, калі устаўка ілжывая. Вяртае значэнне хлусня, калі устаўка ісцінная."; -Blockly.Msg["LOGIC_NULL"] = "нішто"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Вяртае нішто."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "і"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ці"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Вяртае значэнне ісціна, калі абедзве ўстаўкі ісцінныя."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Вяртае значэнне ісціна, калі хаця б адна з уставак ісцінная."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "абраць па"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "калі хлусня"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "калі ісціна"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Правярае ўмову выбару. Калі ўмова ісцінная, вяртае першае значэнне, у адваротным выпадку вяртае другое значэнне."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://be.wikipedia.org/wiki/Арыфметыка"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Вяртае суму двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Вяртае дзель ад дзялення першага ліку на другое."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Вяртае рознасць двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Вяртае твор двух лікаў."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Вяртае першы лік, узведзены ў ступень другога ліку."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://be.wikipedia.org/wiki/Ідыёма (праграмаванне)"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "павялічыць %1 на %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Дадае лік да пераменнай '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://be.wikipedia.org/wiki/Матэматычная_канстанта"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Вяртае адну з распаўсюджаных канстант: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), або ∞ (бясконцасць)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "абмежаваць %1 знізу %2 зверху %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Абмяжоўвае лік ніжняй і верхняй межамі (уключна)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "дзеліцца на"; -Blockly.Msg["MATH_IS_EVEN"] = "цотнае"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "адмоўнае"; -Blockly.Msg["MATH_IS_ODD"] = "няцотнае"; -Blockly.Msg["MATH_IS_POSITIVE"] = "станоўчае"; -Blockly.Msg["MATH_IS_PRIME"] = "простае"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Правярае, ці з'яўляецца лік цотным, няцотным, простым, цэлым, станоўчым, адмоўным ці яно кратнае пэўнаму ліку. Вяртае значэнне ісціна або хлусня."; -Blockly.Msg["MATH_IS_WHOLE"] = "цэлае"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://be.wikipedia.org/wiki/Дзяленне_з_астаткам"; -Blockly.Msg["MATH_MODULO_TITLE"] = "астатак ад %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Вяртае астатак ад дзялення двух лікаў."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://be.wikipedia.org/wiki/Лік"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Лік."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "сярэдняе арыфметычнае спісу"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "найбольшы ў спісе"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "медыяна спіса"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "найменшы ў спісе"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "моды спіса"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "выпадковы элемент спіса"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "стандартнае адхіленне спіса"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "сума спіса"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Вяртае сярэдняе арыфметычнае спісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Вяртае найбольшы лік спісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Вяртае медыяну спісуа."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Вяртае найменшы лік спісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Вяртае спіс найбольш часта сустракаемых элементаў спісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Вяртае выпадковы элемент спіса."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Вяртае стандартнае адхіленне спісу."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Вяртае суму ўсіх лікаў у спісе."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://be.wikipedia.org/wiki/Генератар_псевдослучайных_лікаў"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "выпадковы лік ад 0 (уключна) да 1"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Вяртае выпадковы лік ад 0.0 (уключна) да 1.0."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://be.wikipedia.org/wiki/Генератар_псевдослучайных_лікаў"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "выпадковы цэлы лік ад %1 для %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Вяртае выпадковы лік паміж двума зададзенымі межамі (уключаючы і іх)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://be.wikipedia.org/wiki/Акругленне"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "акругліць"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "акругліць да меншага"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "акругліць да большага"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Акругляе лік да большага ці меншага."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://be.wikipedia.org/wiki/Квадратны_корань"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "модуль"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "квадратны корань"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Вяртае модуль ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Вяртае е ва ўказанай ступені."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Вяртае натуральны лагарыфм ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Вяртае дзесятковы лагарыфм ліку."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Вяртае супрацьлеглы лік."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Вяртае 10 ва ўказанай ступені."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Вяртае квадратны корань ліку."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://be.wikipedia.org/wiki/Трыганаметрычныя_функцыі"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Вяртае арккосінус у градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Вяртае арксінус у градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Вяртае арктангенс у градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Вяртае косінус рага ў градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Вяртае сінус рага ў градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Вяртае тангенс рага ў градусах."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Стварыць пераменную..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Новая назва пераменнай:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "дазволіць аператары"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "з:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://be.wikipedia.org/wiki/Падпраграма"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Выконвае вызначаную карыстальнікам працэдуру '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://be.wikipedia.org/wiki/Падпраграма"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Выконвае вызначаную карыстальнікам працэдуру '%1' і вяртае вылічанае значэнне."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "з:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Стварыць выклік '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Апішыце гэтую функцыю..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "выканаць нешта"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "каб"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Стварыць працэдуру, якая ня вяртае значэнне."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "вярнуць"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Стварыць працэдуру, якая вяртае значэнне."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Папярэджанне: гэтая функцыя мае паўтаральныя параметры."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Вылучыць вызначэнне працэдуры"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Калі першае значэнне ісцінае, вяртае другое значэнне."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Папярэджанне: гэты блок можа выкарыстоўвацца толькі ўнутры вызначэння функцыі."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "імя параметра:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Дадаць уваходны параметр ў функцыю."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "параметры"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Дадаць, выдаліць або змяніць парадак уваходных параметраў для гэтай функцыі."; -Blockly.Msg["REDO"] = "Паўтарыць"; -Blockly.Msg["REMOVE_COMMENT"] = "Выдаліць каментар"; -Blockly.Msg["RENAME_VARIABLE"] = "Перайменаваць пераменную..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Перайменаваць усе пераменныя '%1' да:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "да %1 дадаць тэкст %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Дадаць тэкст да пераменнай '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "у малыя літары"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "у Загалоўныя Пачатковыя Літары"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "у ВЯЛІКІХ ЛІТАРАЎ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Вяртае копію тэксту з ВЯЛІКІМІ або малымі літарамі."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "узяць першую літару"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "узяць літару # з канца"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "узяць літару #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "узяць апошнюю літару"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "узяць выпадковую літару"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "у тэксце %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Вяртае літару ў названай пазіцыі."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "падлічыць колькасць %1 у %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Падлічыць колькі разоў урывак тэксту з'яўляецца ў іншым тэксце."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Дадаць элемент да тэксту."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "спалучыць"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Дадайце, выдаліце, перастаўце фрагменты для пераробкі тэкставага блока."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "па літару # з канца"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "па літару #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "па апошнюю літару"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "у тэксце"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "узяць падрадок з першай літары"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "узяць падрадок з літары # з канца"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "узяць падрадок з літары #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Вяртае указаную частку тэксту."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "знайсці першае ўваходжанне тэксту"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "знайсці апошняе ўваходжанне тэксту"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "у тэксце %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Вяртае нумар пазіцыі першага/апошняга ўваходжання першага тэксту ў другім. Вяртае %1, калі тэкст не знойдзены."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 пусты"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Вяртае значэнне ісціна, калі пададзены тэкст пусты."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "стварыць тэкст з"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Стварае фрагмент тэксту, аб'ядноўваючы любы лік элементаў."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "даўжыня %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Вяртае колькасць сімвалаў (уключаючы прабелы) у зададзеным тэксце."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "надрукаваць %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Друкуе тэкст, лік або іншы аб'ект."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Запытаць у карыстальніка лік."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Запытаць у карыстальніка тэкст."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "запытаць лік з падказкай"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "запытаць тэкст з падказкай"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "замяніць %1 на %2 у %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Замяніць усе ўваходжанні некаторага тэксту іншым тэкстам."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "змяніць парадак на зваротны %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Мяняе парадак знакаў у тэксце на адваротны."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://be.wikipedia.org/wiki/Радковы_тып"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Літара, слова або радок тэксту."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "абрэзаць прагалы з двух бакоў"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "абрэзаць прагалы злева"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "абрэзаць прагалы справа"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Вяртае копію тэксту з прагаламі, выдаленымі з аднаго або абодвух канцоў."; -Blockly.Msg["TODAY"] = "Сёння"; -Blockly.Msg["UNDO"] = "Адкаціць"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "элемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Стварыць блок \"прысабечыць\" для %1"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Вяртае значэнне гэтай пераменнай."; -Blockly.Msg["VARIABLES_SET"] = "прысабечыць %1 = %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Стварыць устаўку %1"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Прысабечвае пераменнай значэнне ўстаўкі."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Пераменная з назвай '%1' ужо існуе."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Назва пераменнай '%1' ужо выкарыстоўваецца іншай пераменнай тыпу '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/bg.js b/lib/blockly/msg/js/bg.js deleted file mode 100644 index 8cb3b67..0000000 --- a/lib/blockly/msg/js/bg.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Добави коментар"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Променливата '%1' не може да бъде изтрита, защото е част от определението на функцията '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Промени стойността:"; -Blockly.Msg["CLEAN_UP"] = "Премахни блокове"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Свитите блокове съдържат предупреждения."; -Blockly.Msg["COLLAPSE_ALL"] = "Скрий блокове"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Скрий блок"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "цвят 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "цвят 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "съотношение"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "смеси"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Смесва два цвят в дадено съотношение (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://bg.wikipedia.org/wiki/Цвят_(оптика)"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Избери цвят от палитрата."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "случаен цвят"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Избери цвят на случаен принцип."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "син"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зелен"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "червен"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "оцвети с"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Създай цвят с избраните пропорции, червено, зелено и синьо. Всички стойности трябва да бъдат от 0 до 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "прекъсни цикъла"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "премини към следващата стъпка от цикъла"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Прекъсни цикъла, в който се съдържа тази команда."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Премини към следващата стъпка от цикъла"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Предупреждение: Този блок може да се използва само в цикъл."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "за всеки елемент %1 в списъка %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "За всеки елемент в даден списък, присвои елемента на променливата „%1“ и след това изпълни командите."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "преброй чрез %1 от %2 до %3 през %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Нека променлива '%1' премине през стойностите от началното до крайното число през зададената стъпка и изпълни избраните блокове."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Добави условие към „ако“ блока."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Добави окончателно, прихващащо всички останали случаи условие към блок „ако“."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Добави, премахни или пренареди частите, за да промениш този „ако“ блок."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "иначе"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "иначе ако"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ако"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ако стойността е вярна, изпълни операциите."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ако стойността е вярна, изпълни първият блок. Иначе, изпълни вторият блок."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ако първата стойност е вярна, изпълни първия блок. Иначе, ако втората стойност е вярна, изпълни втория блок."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ако първата стойност е вярна, изпълни първия блок. В противен случай, ако втората стойност е вярна, изпълни втория блок. Ако нито една от стойностите не е вярна, изпълни последния блок."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://bg.wikipedia.org/wiki/Цикъл_(програмиране)#For_.D1.86.D0.B8.D0.BA.D1.8A.D0.BB.D1.8A.D1.82"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "изпълни"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "Повтори %1 пъти"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Изпълнява команди няколко пъти."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "повтаряй докато"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "повтаряй докато е вярно, че"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Изпълни командите, ако стойността не е вярна."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Изпълни командите, ако стойността е вярна."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Изтриване на всички 1% блокове?"; -Blockly.Msg["DELETE_BLOCK"] = "Изтрий блок"; -Blockly.Msg["DELETE_VARIABLE"] = "Изтриване на променливата \"%1\""; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Изтриване на %1 използване на променлива '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Изтрий %1 блока"; -Blockly.Msg["DISABLE_BLOCK"] = "Деактивирай блок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Копирай"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Дублиране на коментара"; -Blockly.Msg["ENABLE_BLOCK"] = "Активирай блок"; -Blockly.Msg["EXPAND_ALL"] = "Покажи блокове"; -Blockly.Msg["EXPAND_BLOCK"] = "Покажи блок"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Външни входове"; -Blockly.Msg["HELP"] = "Помощ"; -Blockly.Msg["INLINE_INPUTS"] = "Вътрешни входове"; -Blockly.Msg["IOS_CANCEL"] = "Отказ"; -Blockly.Msg["IOS_ERROR"] = "Грешка"; -Blockly.Msg["IOS_OK"] = "Добре"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Добавяне на данни"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Позволи твърденията"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Тази функция има дублирани входни данни."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "Входни данни"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Добавяне"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Добавяне на променлива"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Изтриване"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Не може да използвате празно име за променлива"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Преименуване"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Име на променливата"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "създай празен списък"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Връща списък с дължина 0, не съдържащ данни"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "списък"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Добави, премахни или пренареди частите, за да промениш този списъчен блок."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "създай списък с"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Добави елемент към текста."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Създай списък с произволен брой елементи."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "първия"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "№ от края"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "вземи"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "вземи и премахни"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "последния"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "произволен"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "премахни"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Връща първия елемент в списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Връща елемента на определената позиция в списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Връща последния елемент в списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Връща случаен елемент от списъка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Премахва и връща първия елемент в списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Премахва и връща елемента на определена позиция в списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Премахва и връща последния елемент в списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Премахва и връща случаен елемент от списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Премахва първия елемент от списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Премахва елемент на определена позиция от списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Премахва последния елемент от списък."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Премахва случаен елемент от списък."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "до № открая"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "до №"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "до края"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "вземи подсписък от първия"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "вземи подсписък от № от края"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "вземи подсписък от №"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Копира част от списък."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 е последният елемент."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 е първият елемент."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "намери първата поява на елемента"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "намери последната поява на елемента"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Връща индекса на първото/последното появяване на елемента в списъка. Връща %1, ако елементът не е намерен."; -Blockly.Msg["LISTS_INLIST"] = "в списъка"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 е празен"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Връща стойност вярно, ако списъкът е празен."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "дължината на %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Връща дължината на списък."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "създай списък от %1 повторен %2 пъти"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Създава списък, състоящ се от определен брой копия на елемента."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "промени реда на обратно %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Промени реда на списъка на обратно."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "следното"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "вмъкни на позиция"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "промени"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Вмъква елемент в началото на списъка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Вмъква елемент на определена позиция в списък."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Добави елемент в края на списък."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Вмъква елемент на произволно място в списък."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Променя първия елемент в списък."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Променя елемента на определена позиция в списък."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Променя последния елемент в списък."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Променя случаен елемент от списък."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "възходящо"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "низходящо"; -Blockly.Msg["LISTS_SORT_TITLE"] = "сортиране по %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Подреди копие на списъка."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "по азбучен ред, без отчитане на малки и главни букви"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "в числов ред"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "по азбучен ред"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "Направи списък от текст"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "направи текст от списък"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Събира списък от текстове в един текст, раделени с разделител."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Разделя текст в списък на текстове, по всеки разделител."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "с разделител"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "невярно"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Връща вярно или невярно."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "вярно"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Върни вярно, ако двата параметъра са еднакви."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Върни истина, ако първия параметър е по-голям от втория."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Върни истина, ако първия параметър е по-голям или равен на втория."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Върни вярно, ако първият параметър е по-малък от втория."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Върни истина, ако първия параметър е по-малък или равен на втория."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Върни вярно, ако двата параметъра са различни."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "не %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Върни вярно, ако параметърът е неверен. Върни невярно, ако параметърът е верен."; -Blockly.Msg["LOGIC_NULL"] = "нула"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Връща нула."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "и"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "или"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Върни вярно, ако и двата параметъра са верни."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Върни „вярно“, ако поне един от входовете е верен."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "тест"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "Ако е невярно"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "Ако е вярно"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Провери условието в „тест“. Ако условието е истина, върни стойността „ако е вярно“, иначе върни стойността „ако е невярно“."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://bg.wikipedia.org/wiki/Аритметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Върни сумата на двете числа."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Върни частното на двете числа."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Върни разликата на двете числа."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Върни произведението на двете числа."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Върни първото число, повдигнато на степен на второто число."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 от X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Връща аркустангенс на точка (X, Y) в градуси от -180 до 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://bg.wikipedia.org/wiki/Събиране"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "промени %1 на %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Добави число към променлива „%1“."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "http://bg.wikipedia.org/wiki/Константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Връща една от често срещаните константи: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (безкрайност)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ограничи %1 между %2 и %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ограничи число да бъде в определените граници (включително)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "се дели на"; -Blockly.Msg["MATH_IS_EVEN"] = "е четно"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "е отрицателно"; -Blockly.Msg["MATH_IS_ODD"] = "е нечетно"; -Blockly.Msg["MATH_IS_POSITIVE"] = "е положително"; -Blockly.Msg["MATH_IS_PRIME"] = "е просто"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Проверете дали дадено число е четно, нечетно, просто, цяло, положително, отрицателно или дали се дели на друго число. Връща вярно или невярно."; -Blockly.Msg["MATH_IS_WHOLE"] = "е цяло"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "http://bg.wikipedia.org/wiki/Остатък"; -Blockly.Msg["MATH_MODULO_TITLE"] = "остатъка от делението на %1 на %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Върни остатъка от деление на две числа."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://bg.wikipedia.org/wiki/Число"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Число."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "средната стойност на числата в списъка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "най-голямата стойност в списъка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "медианата на списък"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "най-малката стойност в списъка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "режими на списъка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "случаен елемент от списъка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "стандартно отклонение на списък"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "сума на списъка"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Върни средната стойност (аритметичното средно) на числата в списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Върни най-голямото число в списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Върни медианата в списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Върни най-малкото число в списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Върни списък на най-често срещаните елементи в списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Върни случаен елемент от списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Връща стандартното отклонение на списъка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Върни сумата на всички числа в списъка."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://bg.wikipedia.org/wiki/Генератор_на_случайни_числа"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "случайно дробно число"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Върни случайно дробно число между 0.0 (включително) и 1.0 (без да го включва)"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://bg.wikipedia.org/wiki/Генератор_на_случайни_числа"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "случайно цяло число между %1 и %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Върни случайно число в определените граници (включително)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "закръгли"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "закръгли надолу"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "закръгли нагоре"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Закръгли число нагоре или надолу."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "абсолютна"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "корен квадратен"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Връща абсолютната стойност на число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Върни е (неперовото число) на степен зададеното число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Върни натуралния логаритъм от число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Върни десетичния логаритъм на число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Върни числото с обърнат знак."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Върни 10 на степен зададеното число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Връща корен квадратен от число."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://bg.wikipedia.org/wiki/Тригонометрична_функция"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Върни аркускосинус от число."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Върни аркуссинус от число."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Върни аркустангенс от число."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Върни косинус от ъгъл в градуси (не в радиани)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Върни синус от ъгъл в градуси (не в радиани)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Върни тангенс от ъгъл в градуси (не в радиани)"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Създаване на цветова променлива..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Създаване на числова променлива..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Създаване на низова променлива..."; -Blockly.Msg["NEW_VARIABLE"] = "Създаване на променлива..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Ново име на променливата:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Тип на новата променлива:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "позволи операциите"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "с:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://bg.wikipedia.org/wiki/Подпрограма"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Изпълни дефинирана от потребителя функция „%1“."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://bg.wikipedia.org/wiki/Подпрограма"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Изпълни дефинирана от потребителя функция „%1“ и използвай резултата."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "с:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Създай '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Опишете тази функция..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "направиш"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "за да"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Създава функция, която не връща резултат."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "върни"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Създава функция, която връща резултат."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Предупреждение: Тази функция има дублиращи се параметри."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Покажи дефиницията на функцията"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ако стойността е вярна, върни втората стойност."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Предупреждение: Този блок може да се използва само във функция."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "име на параметър:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Добавяне на параметър към функцията."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "вход"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Добави, премахни или пренареди входните параметри за тази функция."; -Blockly.Msg["REDO"] = "Повторение"; -Blockly.Msg["REMOVE_COMMENT"] = "Премахни коментар"; -Blockly.Msg["RENAME_VARIABLE"] = "Преименувай променливата..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Преименувай всички '%1' променливи на:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "добавете текст %2 към %1"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Добави текст към променливата „%1“."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "с малки букви"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "с Главна Буква На Всяка Дума"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "с ГЛАВНИ БУКВИ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Връща копие на текста със сменени малки и главни букви."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "вземи първата буква"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "вземи буква № от края"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "вземи буква №"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "вземи последната буква"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "вземи произволна буква"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "в текст %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Връща буквата в определена позиция."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "пресмята броя на %1 в %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Преброй колко пъти даден текст се среща в друг текст."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Добави елемент към текста."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "свържи"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Добави, премахни или пренареди частите, за да промениш този текстов блок."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "до буква № от края"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "до буква №"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "до последната буква."; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "в текста"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "вземи текста от първата буква"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "вземи текста от буква № (броено отзад-напред)"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "вземи текста от буква №"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Връща определена част от текста."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "намери първата поява на текста"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "намери последната поява на текста"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "в текст %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Връща индекса на първото/последното срещане на първия текст във втория текст. Връща %1, ако текстът не е намерен."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 е празен"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Връща вярно, ако текста е празен."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "създай текст с"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Създай текст като съчетаеш няколко елемента."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "дължината на %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Връща броя на символите (включително и интервалите) в текста."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "отпечатай %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Отпечатай текста, числото или друга стойност."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Питай потребителя за число."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Питай потребителя за текст."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "питай за число със съобщение"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "питай за текст със съобщение"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "замяна на %1 с %2 в %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Замени всички появи на даден текст в друг текст."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "промени реда на обратно %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Промени реда на знаците в текста на обратно."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://bg.wikipedia.org/wiki/Низ"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Буква, дума или ред"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "премахни интервалите от двете страни"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "премахни интервалите отляво"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "премахни интервалите отдясно"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Връща копие на текста с премахнати интервали от единия или двата края."; -Blockly.Msg["TODAY"] = "Днес"; -Blockly.Msg["UNDO"] = "Отмяна"; -Blockly.Msg["UNNAMED_KEY"] = "без име"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "елемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Създай „промени стойността на %1“"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Връща стойността на тази променлива."; -Blockly.Msg["VARIABLES_SET"] = "нека %1 бъде %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Създай „вземи стойността на %1“"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Установява променливата със стойността на входа."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Променлива с име '%1' вече съществува."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Променлива с име '%1' вече съществува за друг тип: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Коментирайте нещо..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/bn.js b/lib/blockly/msg/js/bn.js deleted file mode 100644 index efd1de4..0000000 --- a/lib/blockly/msg/js/bn.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "মন্তব্য যোগ করুন"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "'%1' চলক অপসারণ করা যাবে না কারণ এটি '%2' কার্যপ্রণালীর সংজ্ঞার অংশ"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "মান পরিবর্তন করুন:"; -Blockly.Msg["CLEAN_UP"] = "ব্লকসমূহ পরিস্কার করুন"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ব্লকসমূহ সঙ্কুচিত করুন"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ব্লক সঙ্কুচিত করুন"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "রং ১"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "রং ২"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "অনুপাত"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "মিশ্রণ"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "প্রদত্ত অনুপাত(০.০ - ১.০) অনুসারে দুটি রং একসাথে মিশ্রিত করুন।"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://bn.wikipedia.org/wiki/রং"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "প্যালেট থেকে একটি রং পছন্দ করুন"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "এলোমেলো রং"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "এলোমেলোভাবে একটি রং পছন্দ করুন।"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "নীল"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "সবুজ"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "লাল"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "রং সহ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "একটি রং তৈরি করুন নির্দিষ্ট পরিমাণে লাল, সবুজ এবং নীল রং মিশ্রিত করে। প্রত্যেকটির মান অবশ্যই ০ থেকে ১০০ এর মধ্যে হতে হবে।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "প্রবেশপথ থেকে চলে অাসুন"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "পুনরাবৃত্তি চালিয়ে যান পরবর্তী প্রবেশপথে"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "সংশ্লিষ্ট প্রবেশপথ থেকে চলে অাসুন"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "এই প্রবেশপথের অবশিষ্ট অংশ বাদ দিন এবং পরবর্তী প্রচেষ্টা চালিয়ে যান।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "সর্তকীবার্তা: এই ব্লকটি শুধুমাত্র লুপের মধ্যে ব্যবহার করা যাবে।"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "প্রত্যেকটি পদের জন্য %1 তালিকার মধ্যে %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "কোন তালিকায় প্রতিবারের জন্য, আইটেমের সাথে চলক '%1' বসান এবং কিছু বিবরণ দিন।"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "গণনা কর %1 %4 দিয়ে %2 থেকে %3"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "চলক %1 প্রস্তুত করুন, শুরু থেকে শেষ পর্যন্ত সংখ্যা গ্রহন করতে যা নির্দেশিত বিরতি গণনা করছে এবং নির্দেশিত ব্লক সমূহ সম্পন্ন করতে।"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "যদি নামক ব্লক এ একটি শর্ত যোগ করুন।"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "নতুবা"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "নতুবা যদি"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "যদি"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "যদি একটি মূল্যমাস সত্য হয়, তবে কিছু বিবরণ দিন"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "যদি একটি মূল্যমান সত্য হয়, তবে বিবৃতিসমূহের প্রথম ব্লকটা অন্যথায় বিবৃতির দ্বিতীয় ব্লক।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "যদি প্রথম মূল্যমান সঠিক হয়, তবে বর্ণিত প্রথম ব্লকটি সম্পন্ন করুন। অন্যথায়, দ্বিতীয় মূল্যমান সঠিক হয়, দ্বিতীয় ব্লক সম্পন্ন করুন।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://bn.wikipedia.org/wiki/প্রবেশ_পথ"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "করুন"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 বার পুনরাবৃত্তি করো"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "কিছু বিবরণ বারবার দিন।"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "অাবার করুন যতক্ষণ না"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "অাবার করুন যখন"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "যখন একটি মূল্যমান মিথ্যা, তখন কিছু বিবৃতি দিন।"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "যখন একটি মূল্যমান সঠিক, তখন কিছু বিবরণ দিন।"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "সব %1টি ব্লক অপসারণ করবেন?"; -Blockly.Msg["DELETE_BLOCK"] = "ব্লকটি মুছে ফেল"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' চলকটি অপসারণ করুন"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' চলকের '%1'টি ব্যবহার অপসারণ করবেন?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 ব্লক অপসারণ কর"; -Blockly.Msg["DISABLE_BLOCK"] = "ব্লকটি বিকল কর"; -Blockly.Msg["DUPLICATE_BLOCK"] = "প্রতিলিপি"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ব্লকটি সচল কর"; -Blockly.Msg["EXPAND_ALL"] = "ব্লকগুলো সম্প্রসারিত কর"; -Blockly.Msg["EXPAND_BLOCK"] = "ব্লকটি সম্প্রসারিত কর"; -Blockly.Msg["EXTERNAL_INPUTS"] = "বহি:স্থ ইনপুট"; -Blockly.Msg["HELP"] = "সাহায্য"; -Blockly.Msg["INLINE_INPUTS"] = "সারি ইনপুট"; -Blockly.Msg["IOS_CANCEL"] = "বাতিল"; -Blockly.Msg["IOS_ERROR"] = "ত্রুটি"; -Blockly.Msg["IOS_OK"] = "ঠিক আছে"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "যোগ"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "অপসারণ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "অাপনি চলকের নাম খালি রাখতে পারেননা।"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "পুনরায় শুরু"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "চলকের নাম"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "খালি তালিকা তৈরি করুন"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "পাঠাবে একটি তালিকা, দের্ঘ্য হবে ০, কোন উপাত্ত থাকবে না"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "তালিকা"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "তালিকায় একটি পদ যোগ করুন।"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "যেকোন সংখ্যক পদ নিয়ে একটি তালিকা তৈরি করুন।"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "প্রথম"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# শেষ থেকে"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "নিন"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "নিন ও সরান"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "শেষ"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "এলোমেলো"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "অপসারণ"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "তালিকার প্রথম পদটি পাঠাবে।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "তালিকার শেষ পদটি পাঠাবে।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "এলোমেলোভাবে তালিকার যেকোন একটি পদ পাঠাবে।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "অপসারণ করুন এবং তালিকার প্রথম পদটি পাঠান।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "অপসারণ করুন এবং তালিকার শেষ পদটি পাঠান।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "অপসারণ করুন এবং তালিকার এলোমেলো একটি পদ পাঠান।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "তালিকার প্রথম পদটি অপসারণ করা হয়েছে।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "তালিকার শেষ পদটি অপসারণ করা হয়েছে।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "তালিকা থেকে এলোমেলো একটি পদ অপসারণ করা হয়েছে।"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "আইটেমের প্রথম সংঘটন খুঁজুন"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "আইটেমের শেষ সংঘটন খুঁজুন"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "তালিকার মধ্যে"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 খালি"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "পাঠাবে সত্য যদি তালিকাটি খালি হয়।"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1-এর দৈর্ঘ্য"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "একটি তালিকার দৈর্ঘ্য পাঠাবে।"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "একটি তালিকার একটি অনুলিপি উল্টান"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "লিখা থেকে তালিকা তৈরি করুন"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "তালিকা থেকে লিখা তৈরি করুন"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "মিথ্যা"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "পাঠাবে হয় সত্য অথবা মিথ্যা।"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "সত্য"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "পাঠাবে সত্য যদি উভয় ইনপুটই সমান হয়।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে বড় হয়।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে বড় অথবা সমান হয়।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে ছোট হয়।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে ছোট অথবা সমান হয়।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "পাঠাবে সত্য যদি উভয় ইনপুটই সমান না হয়।"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 নয়"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "পাঠাবে সত্য যদি ইনপুট মিথ্যা হয়। পাঠাবে মিথ্যা যদি ইনপুট সত্য হয়।"; -Blockly.Msg["LOGIC_NULL"] = "কিছু না"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "কিছু ফেরত দিবে না।"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "এবং"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "অথবা"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "পাঠাবে সত্য যদি উভয় ইনপুটই সত্য হয়।"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "পাঠাবে সত্য যদি অন্ততপক্ষে যেকোন একটি ইনপুট সত্য হয়।"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "পরীক্ষা"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "যদি মিথ্যা হয়"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "যদি সত্য হয়"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "পাঠাবে দুটি সংখ্যার যোগফল।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "পাঠাবে দুটি সংখ্যার ভাগফল।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "পাঠাবে দুটি সংখ্যার বিয়োগফল।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "পাঠাবে দুটি সংখ্যার গুণফল।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "%2 দ্বারা %1 পরিবর্তন"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "দ্বারা বিভাজ্য"; -Blockly.Msg["MATH_IS_EVEN"] = "জোড় সংখ্যা"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "নেতিবাচক"; -Blockly.Msg["MATH_IS_ODD"] = "বিজোড় সংখ্যা"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ইতিবাচক"; -Blockly.Msg["MATH_IS_PRIME"] = "মৌলিক সংখ্যা"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 এর ভাগশেষ"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://bn.wikipedia.org/wiki/সংখ্যা"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "একটি সংখ্যা।"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "তালিকার গড়"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "তালিকার মধ্যে সর্বোচ্চ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "তালিকার মধ্যমা"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "তালিকার মধ্যে সর্বনিম্ন"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "তালিকার এলোমেলো পদ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "তালিকার যোগফল"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "পাঠাবে তালিকার সব সংখ্যার গড়।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "তালিকার মধ্যে সর্বোচ্চ সংখ্যাটি পাঠাও"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "তালিকার মধ্যমা সংখ্যাটি পাঠাবে।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "তালিকার মধ্যে সর্বনিম্ন সংখ্যাটি পাঠাও"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "তালিকা থেকে এলোমেলোভাবে একটি পদ পাঠাবে।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "পাঠাবে তালিকার সব সংখ্যার যোগফল।"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "এলোমেলো ভগ্নাংশ"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "পরম"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "বর্গমূল"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "পাঠাবে সংখ্যার পরমমান।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "পাঠাবে একটি সংখ্যার বর্গমূল।"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "চলক তৈরি করুন..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "নতুন চলকের নাম:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "এতে"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "আউটপুট ছাড়া একটি ক্রিয়া তৈরি করুন।"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "পাঠাবে"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "আউটপুট সহ একটি ক্রিয়া তৈরি করুন।"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "ক্রিয়ার সংজ্ঞা উজ্জল করুন"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "যদি মান সত্য হয় তাহলে দ্বিতীয় মান পাঠাবে।"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "ইনপুটের নাম:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "ক্রিয়াতে একটি ইনপুট যোগ করুন।"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "পুনরায় করুন"; -Blockly.Msg["REMOVE_COMMENT"] = "মন্তব্য সরাও"; -Blockly.Msg["RENAME_VARIABLE"] = "চলকের নাম পরিবর্তন..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "'%1' চলকগুলোর নতুন নাম দিন:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "ছোটহাতের অক্ষরে"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "বড়হাতের অক্ষরে"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "লেখাটিতে একটি পদ যোগ করুন।"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "যোগ"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 খালি"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "পাঠাবে সত্য যদি সরবরাহকৃত লেখাটি খালি হয়।"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1-এর দৈর্ঘ্য"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 মুদ্রণ করুন"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1 উল্টান"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "একটি অক্ষর, শব্দ অথবা বাক্য।"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "উভয় পাশ থেকে খালি অংশ ছাটাই"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "বামপাশ থেকে খালি অংশ ছাটাই"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "ডানপাশ থেকে খালি অংশ ছাটাই"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "আজ"; -Blockly.Msg["UNDO"] = "পূর্বাবস্থা"; -Blockly.Msg["UNNAMED_KEY"] = "নামহীন"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "পদ"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'%1 নিন' তৈরি করুন"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' নামের চলক পূর্ব থেকে অাছে।"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%1' নামের চলক '%2' ধরনের চলকের জন্য পূর্ব থেকেই অাছে।"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/br.js b/lib/blockly/msg/js/br.js deleted file mode 100644 index 6d8b63b..0000000 --- a/lib/blockly/msg/js/br.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Ouzhpennañ un evezhiadenn"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ne ch'aller ket dilemel an argemmenn \"%1\" dre m'eo lod eus dielfennadur an arc'hwel \"%2\""; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Kemmañ an dalvoudenn :"; -Blockly.Msg["CLEAN_UP"] = "Naetaat ar bloc'hoù"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Kemennoù-diwall zo er bloc'hadoù pleget."; -Blockly.Msg["COLLAPSE_ALL"] = "Bihanaat ar bloc'hoù"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Bihanaat ar bloc'h"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "liv 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "liv 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "feur"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "meskañ"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "a gemmesk daou liv gant ur feur roet(0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "http://br.wikipedia.org/wiki/Liv"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Dibab ul liv diwar al livaoueg."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "liv dargouezhek"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Tennañ ul liv d'ar sord"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "glas"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "gwer"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ruz"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "liv gant"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Krouiñ ul liv gant ar c'hementad spisaet a ruz, a wer hag a c'hlas. Etre 0 ha 100 e tle bezañ an holl dalvoudoù."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "Mont e-maez an adlañsañ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "Kenderc'hel gant iteradur nevez ar rodell"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Mont e-maez ar boukl engronnus."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Lammat ar rest eus ar rodell, ha kenderc'hel gant an iteradur war-lerc'h."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Diwallit : ne c'hall ar bloc'h-mañ bezañ implijet nemet e-barzh ur boukl."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "evit pep elfenn %1 er roll %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Evit pep elfenn en ur roll, reiñ talvoud an elfenn d'an argemmenn '%1', ha seveniñ urzhioù zo da c'houde."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "kontañ gant %1 eus %2 da %3 dre %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Ober e doare ma kemero an argemmenn \"%1\" an talvoudennoù adalek niverenn an deroù betek niverenn an dibenn, en ur inkremantiñ an esaouenn, ha seveniñ an urzhioù spisaet."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Ouzhpennañ un amplegad d'ar bloc'h ma."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Ouzhpennañ un amplegad dibenn lak-pep-tra d'ar bloc'h ma."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Ouzhpennañ, lemel pe adurzhiañ ar rannoù evit kefluniañ ar bloc'h ma."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "a-hend-all"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "mod all ma"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ma"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ma vez gwir un dalvoudenn, seveniñ urzhioù zo neuze."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ma vez gwir un dalvoudenn, seveniñ ar c'henañ bloc'had urzhioù neuze. Anez seveniñ an eil bloc'had urzhioù."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ma vez gwir an dalvoudenn gentañ, seveniñ ar c'hentañ bloc'had urzhioù neuze. Anez ma vez gwir an eil talvoudenn, seveniñ an eil bloc'had urzhioù."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ma vez gwir an dalvoudenn gentañ, seveniñ ar c'hentañ bloc'had. Anez, ma vez gwir an eil talvoudenn, seveniñ an eil bloc'had urzhioù. Ma ne vez gwir talvoudenn ebet, seveniñ ar bloc'had diwezhañ a urzhioù."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ober"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "adober %1 gwech"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Seveniñ urzhioù zo meur a wech"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "adober betek"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "adober keit ha ma"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Keit ha ma vez faos un dalvoudenn, seveniñ urzhioù zo neuze."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Keit ha ma vez gwir un dalvoudenn, seveniñ urzhioù zo neuze."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Diverkañ an holl vloc'hoù %1 ?"; -Blockly.Msg["DELETE_BLOCK"] = "Dilemel ar bloc'h"; -Blockly.Msg["DELETE_VARIABLE"] = "Lemel an argemm '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Lemel %1 implij eus an argemm '%2' ?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Dilemel %1 bloc'h"; -Blockly.Msg["DISABLE_BLOCK"] = "Diweredekaat ar bloc'h"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Eiladuriñ"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Eiladiñ an eilenn"; -Blockly.Msg["ENABLE_BLOCK"] = "Gweredekaat ar bloc'h"; -Blockly.Msg["EXPAND_ALL"] = "Astenn ar bloc'hoù"; -Blockly.Msg["EXPAND_BLOCK"] = "Astenn ar bloc'h"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Monedoù diavaez"; -Blockly.Msg["HELP"] = "Skoazell"; -Blockly.Msg["INLINE_INPUTS"] = "Monedoù enlinenn"; -Blockly.Msg["IOS_CANCEL"] = "Nullañ"; -Blockly.Msg["IOS_ERROR"] = "Fazi"; -Blockly.Msg["IOS_OK"] = "Mat eo"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Ouzhpennañ ur moned"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Urzhioù aotreet"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "An arc'hwel-mañ en deus monedoù eiladet."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "MONEDOÙ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Ouzhpennañ"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Ouzhpennañ un argemmenn"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Diverkañ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ne c'hallit ket implijout un anv argemmenn c'houllo."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Adenvel"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Anv an argemmenn"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "krouiñ ur roll goullo"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Distreiñ ul listenn, 0 a hirder, n'eus enrolladenn ebet enni"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "roll"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Ouzhpennañ, lemel pe adurzhiañ ar rannoù evit kefluniañ ar bloc'h listenn-mañ."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "krouiñ ur roll gant"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Ouzhpennañ un elfenn d'ar roll"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Krouiñ ur roll gant un niver bennak a elfennoù."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "kentañ"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# adalek ar fin"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "tapout"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "tapout ha lemel"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "diwezhañ"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "dre zegouezh"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "lemel"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Distreiñ an elfenn gentañ en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Distreiñ an elfenn el lec'h meneget en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Distreiñ un elfenn diwezhañ en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Distreiñ un elfenn dre zegouezh en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Lemel ha distreiñ a ra an elfenn gentañ en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Lemel ha distreiñ a ra an elfenn el lec'h meneget en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Lemel ha distreiñ a ra an elfenn diwezhañ en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Lemel ha distreiñ a ra an elfenn dre zegouezh en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Lemel a ra an elfenn gentañ en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Lemel a ra an elfenn el lec'h meneget en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Lemel a ra an elfenn diwezhañ en ul listenn."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Lemel a ra un elfenn dre zegouezh en ul listenn."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "betek # adalek an dibenn"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "da #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "betek ar fin"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "Kaout an islistenn adalek an deroù"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "Kaout an islistenn adalek # adalek an dibenn"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "Kaout an islistenn adalek #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Krouiñ un eilad eus lodenn spisaet ul listenn."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 eo an elfenn gentañ."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 eo an elfenn gentañ."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "kavout reveziadenn gentañ un elfenn"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "kavout reveziadenn diwezhañ un elfenn"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Distreiñ meneger ar c'hentañ/an eil reveziadenn eus an elfenn en ul listenn. Distreiñ %1 ma n'eo ket kavet an destenn."; -Blockly.Msg["LISTS_INLIST"] = "el listenn"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 zo goullo"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Distreiñ gwir m'eo goullo al listenn."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "hirder %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Distreiñ hirder ul listenn."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Krouiñ ul listenn gant an elfenn %1 arreet %2 div wech"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Krouiñ ul listenn a c'hoarvez eus an dalvoudenn roet arreet an niver a wech meneget"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "eilpennañ %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Eilpennañ un eilskrid eus ur roll."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "evel"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ensoc'hañ evel"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "termenañ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Ensoc'hañ a ra an elfenn e deroù ul listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Ensoc'hañ a ra an elfenn el lec'h meneget en ul listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Ouzhpennañ a ra an elfenn e fin al listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Ensoc'hañ a ra an elfenn dre zegouezh en ul listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Termenañ a ra an elfenn gentañ en ul listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Termenañ a ra an elfenn el lec'h meneget en ul listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Termenañ a ra an elfenn diwezhañ en ul listenn."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Termenañ a ra un elfenn dre zegouezh en ul listenn."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "war gresk"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "war zigresk"; -Blockly.Msg["LISTS_SORT_TITLE"] = "Rummañ%1,%2,%3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Rummañ un eilenn eus ar roll"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "Dre urzh al lizherenneg, hep derc'hel kont eus an direnneg"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "niverel"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "Dre urzh al lizherenneg"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "Krouiñ ul listenn diwar an destenn"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "Krouiñ un destenn diwar al listenn"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Bodañ ul listennad testennoù en ul listenn hepken, o tispartiañ anezho gant un dispartier."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Troc'hañ un destenn en ul listennad testennoù, o troc'hañ e pep dispartier."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "gant an dispartier"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "gaou"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Distreiñ pe gwir pe faos"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "gwir"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Distreiñ gwir m'eo par an daou voned."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Distreiñ gwir m'eo brasoc'h ar moned kentañ eget an eil."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Distreiñ gwir m'eo brasoc'h ar moned kentañ eget an eil pe par dezhañ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Distreiñ gwir m'eo bihanoc'h ar moned kentañ eget an eil."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Distreiñ gwir m'eo bihanoc'h ar moned kentañ eget an eil pe m'eo par dezhañ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Distreiñ gwir ma n'eo ket par an daou voned."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nann %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Distreiñ gwir m'eo faos ar moned. Distreiñ faos m'eo gwir ar moned."; -Blockly.Msg["LOGIC_NULL"] = "Null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Distreiñ null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ha(g)"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "pe"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Distreiñ gwir m'eo gwir an da daou voned."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Distreiñ gwir m'eo gwir unan eus an daou voned da nebeutañ."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "amprouad"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "m'eo gaou"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "m'eo gwir"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Gwiriañ an amplegad e 'prouad'. M'eo gwir an amplegad, distreiñ an dalvoudenn 'm'eo gwir'; anez distreiñ ar moned 'm'eo faos'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://br.wikipedia.org/wiki/Aritmetik"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Distreiñ sammad daou niver."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Distreiñ rannad daou niver."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Distreiñ diforc'h daou niver"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Distreiñ liesad daou niver."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Distreiñ an niver kentañ lakaet dindan gallouter an eil niver."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://fr.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 eus X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Adkas a ra ark tangent ar poent (X, Y) e derezioù etre -180 ha 180"; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "kemmañ %1 gant %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Ouzhpennañ un niver d'an argemmenn '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Distreiñ unan eus digemmennoù red : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (anvevenn)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "destrizhañ %1 etre %2 ha %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Destrizhañ un niver da vezañ etre ar bevennoù spisaet (enlakaet)"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "a zo rannadus dre"; -Blockly.Msg["MATH_IS_EVEN"] = "zo par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "a zo negativel"; -Blockly.Msg["MATH_IS_ODD"] = "zo ampar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "a zo pozitivel"; -Blockly.Msg["MATH_IS_PRIME"] = "zo kentañ"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Gwiriañ m'eo par, anpar, kentañ, muiel, leiel un niverenn pe ma c'haller rannañ anezhi dre un niver roet zo. Distreiñ gwir pe faos."; -Blockly.Msg["MATH_IS_WHOLE"] = "zo anterin"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "rest eus %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Distreiñ dilerc'h rannadur an div niver"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://br.wikipedia.org/wiki/Niver"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un niver."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "Keitat al listenn"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Uc'hegenn al listenn"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Kreizad al listenn"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Izegenn al listenn"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modoù stankañ el listenn"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Elfennn eus al listenn tennet d'ar sord"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "forc'had standart eus al listenn"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Sammad al listenn"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Distreiñ keitad (niveroniel) an talvoudennoù niverel el listenn."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Distreiñ an niver brasañ el listenn."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Distreiñ an niver kreiz el listenn"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Distreiñ an niver bihanañ el listenn"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Distreiñ ul listennad elfennoù stankoc'h el listenn."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Distreiñ un elfenn zargouezhek el listenn"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Distreiñ forc'had standart al listenn."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Distreiñ sammad an holl niveroù zo el listenn."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "Rann dargouezhek"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Distreiñ ur rann dargouezhek etre 0.0 (enkaelat) hag 1.0 (ezkaelat)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "anterin dargouezhek etre %1 ha %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Distreiñ un anterin dargouezhek etre an div vevenn spisaet, endalc'het."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "Rontaat"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "Rontaat dindan"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "Rontaat a-us"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Rontaat un niver dindan pe a-us"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://br.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "dizave"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "gwrizienn garrez"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Distreiñ talvoud dizave un niver."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Distreiñ galloudad un niver."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Distreiñ logaritm naturel un niver"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Distreiñ logaritm diazez 10 un niver"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Distreiñ enebad un niver"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Distreiñ 10 da c'halloudad un niver."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Distreiñ gwrizienn garrez un niver"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://br.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Distreiñ ark kosinuz un niver"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Distreiñ ark sinuz un niver"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Distreiñ ark tangent un niver"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Distreiñ kosinuz ur c'horn (ket e radianoù)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Distreiñ sinuz ur c'horn (ket e radianoù)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Distreiñ tangent ur c'horn (ket e radianoù)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Krouiñ un argemmenn liv..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Krouiñ un argemm niver..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Krouiñ un argemmenn chadenn..."; -Blockly.Msg["NEW_VARIABLE"] = "Krouiñ un argemmenn nevez..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Anv an argemmenn nevez :"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Doare nevez a argemm:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "aotren an disklêriadurioù"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "gant :"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Seveniñ an arc'hwel '%1' termenet gant an implijer."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Seveniñ an arc'hwel '%1' termenet gant an implijer hag implijout e zisoc'h."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "gant :"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Krouiñ '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Deskrivañ an arc'hwel-mañ..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "ober un dra bennak"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "da"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Krouiñ un arc'hwel hep mont er-maez."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "distreiñ"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Kouiñ un arc'hwel gant ur mont er-maez"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Diwallit : an arc'hwel-mañ en deus arventennoù eiladet."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Dreislinennañ termenadur an arc'hwel"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ma'z eo gwir un dalvoudenn, distreiñ un eil talvoudenn neuze."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Diwallit : Gallout a rafe ar bloc'h bezañ implijet e termenadur un arc'hwel hepken."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Anv ar moned"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Ouzhpennañ ur moned d'an arc'hwel."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "Monedoù"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Ouzhpennañ, lemel, pe adkempenn monedoù an arc'hwel-mañ."; -Blockly.Msg["REDO"] = "Adober"; -Blockly.Msg["REMOVE_COMMENT"] = "Lemel an evezhiadenn kuit"; -Blockly.Msg["RENAME_VARIABLE"] = "Adenvel an argemmenn..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Adenvel an holl argemmennoù '%1' e :"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "Ouzhpennañ an destenn %2 da %1"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Ouzhpennañ testenn d'an argemmenn'%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "e lizherennoù bihan"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Gant Ur Bennlizherenn E Deroù Pep Ger"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "e PENNLIZHERENNOÙ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Distreiñ un eilenn eus an eilenn en un direnneg all"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "tapout al lizherenn gentañ"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "Kaout al lizherenn # adalek an dibenn."; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "Kaout al lizherenn #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "tapout al lizherenn ziwezhañ"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "Kaout ul lizherenn dre zegouezh"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "en destenn %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Distreiñ al lizherenn d'al lec'h spisaet."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "niver %1 war %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Kontañ pet gwech e c'hoarvez un destenn bennak en un destenn bennak all."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Ouzhpennañ un elfenn d'an destenn."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "stagañ"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Ouzhpennañ, lemel pe adurzhiañ ar rannoù evit kefluniañ ar bloc'h testenn-mañ."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "Betek al lizherenn # adalek an dibenn."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "betek al lizherenn #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "d'al lizherenn diwezhañ"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "en destenn"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "Kaout an ischadenn adalek al lizherenn gentañ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "Kaout an ischadenn adalek al lizherenn # betek an dibenn"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "Kaout an ischadenn adalek al lizherenn #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Distreiñ un tamm spisaet eus an destenn."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "kavout reveziadenn gentañ an destenn"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "kavout reveziadenn diwezhañ an destenn"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "en destenn %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Distreiñ meneger ar c'hentañ/an eil reveziadenn eus ar chadenn gentañ en eil chadenn. Distreiñ %1 ma n'eo ket kavet ar chadenn."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 zo goullo"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Adkas gwir m'eo goullo an destenn roet."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "krouiñ un destenn gant"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Krouit un tamm testenn en ur gevelstrollañ un niver bennak a elfennoù"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "hirder %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Distreiñ an niver a lizherennoù(en ur gontañ an esaouennoù e-barzh) en destenn roet."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "moullañ %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Moullañ an destenn, an niverenn pe un dalvoudenn spisaet all"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Goulenn un niver gant an implijer."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Goulenn un destenn gant an implijer."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "pedadenn evit un niver gant ur c'hemennad"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "pedadenn evit un destenn gant ur c'hemennad"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "erlec'hiañ %1 gant %2 e %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Erlec'hiañ holl reveziadennoù un destenn bennak gant un destenn all."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "eilpennañ %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Eilpennañ urzh an arouezennoù en destenn."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Ul lizherenn, ur ger pe ul linennad testenn."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "Lemel an esaouennoù en daou du"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "Lemel an esaouennoù eus an tu kleiz"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "Lemel an esaouennoù eus an tu dehou"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Distreiñ un eilenn eus an destenn gant an esaouennoù lamet eus un tu pe eus an daou du"; -Blockly.Msg["TODAY"] = "Hiziv"; -Blockly.Msg["UNDO"] = "Dizober"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elfenn"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Krouiñ 'termenañ %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Distreiñ talvoud an argemm-mañ."; -Blockly.Msg["VARIABLES_SET"] = "termenañ %1 da %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Krouiñ 'kaout %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Termenañ a ra argemm-mañ evit ma vo par da dalvoudenn ar moned."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Un argemmenn anvet '%1' zo anezhi dija."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Un argemenn anvet '%1' zo c'hoazh evit un argemenn all eus ar seurt : '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Lavaret un dra bennak..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ca.js b/lib/blockly/msg/js/ca.js deleted file mode 100644 index 3032727..0000000 --- a/lib/blockly/msg/js/ca.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Afegeix un comentari"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "No podem esborrar la variable '%1' perquè forma part de la definició de la funció '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Canvia valor:"; -Blockly.Msg["CLEAN_UP"] = "Netejar blocs"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Contraure blocs"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Contraure bloc"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "color 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "color 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporció"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "barreja"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Barreja dos colors amb una proporció donada (0,0 - 1,0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ca.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Escolliu un color de la paleta."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "color aleatori"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Escolliu un color a l'atzar."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blau"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verd"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "vermell"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "color amb"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Crear un color amb les quantitats especificades de vermell, verd i blau. Tots els valors han de ser entre 0 i 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "sortir del bucle"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continuar amb la següent iteració del bucle"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Sortir del bucle interior."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Ometre la resta d'aquest bucle, i continuar amb la següent iteració."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Advertència: Aquest bloc només es pot utilitzar dins d'un bucle."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "per a cada element %1 en la llista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Per a cada element en la llista, desar l'element dins la variable '%1', i llavors executar unes sentències."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "comptar amb %1 des de %2 fins a %3 en increments de %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Fer que la variable \"%1\" prengui els valors des del nombre inicial fins al nombre final, incrementant a cada pas l'intèrval indicat, i executar els blocs especificats."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Afegeix una condició al bloc 'si'."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Afegeix una condició final, que recull qualsevol altra possibilitat, al bloc 'si'."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Afegeix, esborra o reordena seccions per reconfigurar aquest bloc 'si'."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "si no"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "si no, si"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "si"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Si un valor és cert, llavors executar unes sentències."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Si un valor és cert, llavors executar el primer bloc de sentències. En cas contrari, executar el segon bloc de sentències."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Si el primer valor és cert, llavors executar el primer bloc de sentències. En cas contrari, si el segon valor és cert, executar el segon bloc de sentències."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Si el primer valor és cert, llavors executar el primer bloc de sentències. En cas contrari, si el segon valor és cert, executar el segon bloc de sentències. Si cap dels valors és cert, executar l'últim bloc de sentències."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ca.wikipedia.org/wiki/Bucle_For"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "fer"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repetir %1 vegades"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Executar unes sentències diverses vegades."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repetir fins que"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repetir mentre"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Mentre un valor sigui fals, llavors executar unes sentències."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Mentre un valor sigui cert, llavors executar unes sentències."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Esborrar els %1 blocs?"; -Blockly.Msg["DELETE_BLOCK"] = "Esborra bloc"; -Blockly.Msg["DELETE_VARIABLE"] = "Esborrar la variable '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Esborrar '%1' crides de la variable '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Esborra %1 blocs"; -Blockly.Msg["DISABLE_BLOCK"] = "Desactiva bloc"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplica"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Comentari duplicat"; -Blockly.Msg["ENABLE_BLOCK"] = "Activa bloc"; -Blockly.Msg["EXPAND_ALL"] = "Expandir blocs"; -Blockly.Msg["EXPAND_BLOCK"] = "Expandir bloc"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entrades externes"; -Blockly.Msg["HELP"] = "Ajuda"; -Blockly.Msg["INLINE_INPUTS"] = "Entrades en línia"; -Blockly.Msg["IOS_CANCEL"] = "Cancel·lar"; -Blockly.Msg["IOS_ERROR"] = "Error"; -Blockly.Msg["IOS_OK"] = "D'acord"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Afegeix Entrada"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permetre instruccions"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Aquesta funció té entrades duplicades."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRADES"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Afegir"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Afegeix Variable"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Esborrar"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Reanomena"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "crear llista buida"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Retorna una llista, de longitud 0, que no conté cap dada."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "llista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Afegeix, esborra o reordena seccions per reconfigurar aquest bloc de llista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "crear llista amb"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Afegeix un element a la llista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Crea una llista amb qualsevol nombre d'elements."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primer"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "núm.# des del final"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "recupera"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "recupera i esborra"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "últim"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "a l'atzar"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "esborra"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Retorna el primer element d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Retorna l'element de la posició especificada a la llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Retorna l'últim element d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Retorna un element a l'atzar d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Esborra i retorna el primer element d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Esborra i retorna l'element de la posició especificada de la llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Esborra i retorna l'últim element d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Esborra i retorna un element a l'atzar d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Esborra el primer element d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Esborra l'element de la posició especificada de la llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Esborra l'últim element d'una llista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Esborra un element a l'atzar d'una llista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "fins # des del final"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "fins #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "fins l'últim"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "recupera sub-llista des del principi"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "recupera sub-llista des de # des del final"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "recupera sub-llista des de #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Crea una còpia de la part especificada d'una llista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 és l'últim element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 és el primer element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "buscar primera aparició d'un element"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "buscar última aparició d'un element"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Retorna l'índex de la primera/última aparició d'un element a la llista. Retorna %1 si no s'hi troba el text."; -Blockly.Msg["LISTS_INLIST"] = "en la llista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 és buida"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Retorna cert si la llista és buida."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longitud de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Retorna la longitud d'una llista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "crea llista amb element %1 repetit %2 vegades"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Crea una llista formada pel valor donat, repetit tantes vegades com s'indiqui."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "com"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insereix a"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "modifica"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Insereix l'element al principi d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Insereix l'element a la posició especificada d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Afegeix l'element al final d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Insereix l'element en una posició a l'atzar d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Modifica el primer element d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Modifica l'element de la posició especificada d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Modifica l'últim element d'una llista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Modifica un element a l'atzar d'una llista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabètic"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "amb delimitador"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "fals"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Retorna o bé cert o bé fals."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "cert"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://ca.wikipedia.org/wiki/Inequaci%C3%B3"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Retorna cert si totes dues entrades són iguals."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Retorna cert si la primera entrada és més gran que la segona entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Retorna cert si la primera entrada és més gran o igual a la segona entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Retorna cert si la primera entrada és més petita que la segona entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Retorna cert si la primera entra és més petita o igual a la segona entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Retorna cert si totes dues entrades són diferents."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "no %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Retorna cert si l'entrada és falsa. Retorna fals si l'entrada és certa."; -Blockly.Msg["LOGIC_NULL"] = "nul"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Retorna nul."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "i"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Retorna cer si totes dues entrades són certes."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Retorna cert si almenys una de les entrades és certa."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "condició"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "si és fals"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "si és cert"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Comprova la condició de 'condició'. Si la condició és certa, retorna el valor 'si és cert'; en cas contrari, retorna el valor 'si és fals'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ca.wikipedia.org/wiki/Aritm%C3%A8tica"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Retorna la suma dels dos nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Retorna el quocient dels dos nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Retorna la diferència entre els dos nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Retorna el producte del dos nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Retorna el primer nombre elevat a la potència indicada pel segon nombre."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://ca.wikipedia.org/wiki/Suma"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "canvia %1 per %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Afegeix un nombre a la variable '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ca.wikipedia.org/wiki/Constant_matem%C3%A0tica"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Retorna una de les constants més habituals: π (3,141…), e (2,718…), φ (1,618…), sqrt(2) (1,414…), sqrt(½) (0,707…), o ∞ (infinit)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "limitar %1 entre %2 i %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Limita un nombre perquè estigui entre els límits especificats (inclosos)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "és divisible per"; -Blockly.Msg["MATH_IS_EVEN"] = "és parell"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "és negatiu"; -Blockly.Msg["MATH_IS_ODD"] = "és senar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "és positiu"; -Blockly.Msg["MATH_IS_PRIME"] = "és primer"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Comprova si un nombre és parell, senar, enter, positium negatiu, o si és divisible per un cert nombre. Retorna cert o fals."; -Blockly.Msg["MATH_IS_WHOLE"] = "és enter"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://ca.wikipedia.org/wiki/Residu_%28aritm%C3%A8tica%29"; -Blockly.Msg["MATH_MODULO_TITLE"] = "residu de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Retorna el residu de dividir els dos nombres."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ca.wikipedia.org/wiki/Nombre"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un nombre."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "mitjana de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "màxim de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "mínim de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "moda de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "element aleatori de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "desviació estàndard de llista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma de llista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Retorna la mitjana (mitjana aritmètica) dels valors numèrics de la llista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Retorna el nombre més gran de la llista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Retorna la mediana de la llista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Retorna el nombre més petit de la llista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Retorna una llista dels elements que apareixen més vegades a la llista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Retorna un element aleatori de la lllista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Retorna la desviació estàndard de la llista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Retorna la suma de tots els nombres de la llista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://ca.wikipedia.org/wiki/Generaci%C3%B3_de_nombres_aleatoris"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fracció aleatòria"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Retorna una fracció aleatòria entre 0,0 (inclòs) i 1,0 (exclòs)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://ca.wikipedia.org/wiki/Generaci%C3%B3_de_nombres_aleatoris"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "nombre aleatori entre %1 i %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Retorna un nombre aleatori entre els dos límits especificats, inclosos."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ca.wikipedia.org/wiki/Arrodoniment"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arrodonir"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arrodonir cap avall"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arrodonir cap amunt"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arrodonir un nombre cap amunt o cap avall."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ca.wikipedia.org/wiki/Arrel_quadrada"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "arrel quadrada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Retorna el valor absolut d'un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Retorna ''e'' elevat a la potència del nombre indicat."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Retorna el logaritme natural d'un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Retorna el logaritme en base 10 d'un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Retorna l'oposat d'un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Retorna 10 elevat a la potència del nombre indicat."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Retorna l'arrel quadrada d'un nombre."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ca.wikipedia.org/wiki/Funci%C3%B3_trigonom%C3%A8trica"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Retorna l'arccosinus d'un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Retorna l'arcsinus d'un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Retorna l'arctangent d'un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Retorna el cosinus d'un grau (no radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Retorna el sinus d'un grau (no radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Retorna la tangent d'un grau (no radiant)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crear variable de color..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crea variable numèrica..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Crear variable de cadena…"; -Blockly.Msg["NEW_VARIABLE"] = "Crea una variable…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nou nom de variable:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nou tipus de variable:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permetre declaracions"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "amb:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ca.wikipedia.org/wiki/Procediment_%28Programació%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Executa la funció definida per usuari '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ca.wikipedia.org/wiki/Procediment_%28Programació%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Executa la funció definida per l'usuari '%1' i utilitza la seva sortida."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "amb:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Crear '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Descriure aquesta funció..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fes alguna cosa"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "a"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Crea una funció sense sortida."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retorna"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Crea una funció amb una sortida."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Advertència: Aquesta funció té paràmetres duplicats."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Iluminar la definició de la funció"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Si el valor és cert, llavors retorna un segon valor."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Advertència: Aquest bloc només es pot utilitzar dins de la definició d'una funció."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nom d'entrada:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Afegir una entrada per la funció."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entrades"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Afegir, eliminar o canviar l'ordre de les entrades per aquesta funció."; -Blockly.Msg["REDO"] = "Refer"; -Blockly.Msg["REMOVE_COMMENT"] = "Elimina el comentari"; -Blockly.Msg["RENAME_VARIABLE"] = "Reanomena variable..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Reanomena totes les variables '%1' a:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 afegir text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Afegir un text a la variable '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "a minúscules"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "a Text De Títol"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "a MAJÚSCULES"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Retorna una còpia del text amb diferents majúscules/minúscules."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "recupera la primera lletra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "recupera la lletra núm.# des del final"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "recupera la lletra núm.#"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "recupera l'última lletra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "recupera una lletra a l'atzar"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Recupera la lletra de la posició especificada."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Afegeix un element al text."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Afegeix, esborrar o reordenar seccions per reconfigurar aquest bloc de text."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "fins a la lletra núm.# des del final"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "fins a la lletra núm.#"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "fins a l'última lletra"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "en el text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "recupera subcadena des de la primera lletra"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "recupera subcadena des de la lletra núm.# des del final"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "recupera subcadena des de la lletra núm.#"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Recupera una part especificada del text."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "trobar la primera aparició del text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "trobar l'última aparició del text"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "en el text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Retorna l'índex de la primera/última aparició del primer text dins el segon. Retorna %1 si no es troba el text."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 està buit"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Retorna cert si el text proporcionat està buit."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "crear text amb"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Crea un tros de text per unió de qualsevol nombre d'elements."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "llargària de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Retorna el nombre de lletres (espais inclosos) en el text proporcionat."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "imprimir %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Imprimir el text, el nombre o altre valor especificat."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Demana que l'usuari introdueixi un nombre."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Demana que l'usuari introdueixi un text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "demanar un nombre amb el missatge"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "demanar text amb el missatge"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ca.wikipedia.org/wiki/Cadena_%28inform%C3%A0tica%29"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Una lletra, paraula o línia de text."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "retalla espais de tots dos extrems de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "retalla espais de l'esquerra de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "retalla espais de la dreta de"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Retorna una còpia del text on s'han esborrat els espais d'un o dels dos extrems."; -Blockly.Msg["TODAY"] = "Avui"; -Blockly.Msg["UNDO"] = "Desfer"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crea 'modifica %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Retorna el valor d'aquesta variable."; -Blockly.Msg["VARIABLES_SET"] = "modifica %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crear 'recupera %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Modifica aquesta variable al valor introduït."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Ja existeix una variable anomenada '%1'."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Una variable anomenada '%1' ja existeix per al tipus '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Digues alguna cosa..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/cs.js b/lib/blockly/msg/js/cs.js deleted file mode 100644 index 218c9e1..0000000 --- a/lib/blockly/msg/js/cs.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Přidat komentář"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Změnit hodnotu:"; -Blockly.Msg["CLEAN_UP"] = "Uspořádat bloky"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Sbalit bloky"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Sbalit blok"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "barva 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "barva 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "poměr"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "smíchat"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Smíchá dvě barvy v daném poměru (0.0–1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://cs.wikipedia.org/wiki/Barva"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Vyberte barvu z palety."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "náhodná barva"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Zvolte barvu náhodně."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "modrá"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zelená"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "červená"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "obarvěte barvou"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Vytvoř barvu se zadaným množstvím červené, zelené a modré. Všechny hodnoty musí být mezi 0 a 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "vyskočit ze smyčky"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "pokračuj dalším opakováním smyčky"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Vyskoč z vnitřní smyčky."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Přeskoč zbytek této smyčky a pokračuj dalším opakováním."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Upozornění: Tento blok může být použit pouze uvnitř smyčky."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "pro každou položku %1 v seznamu %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Pro každou položku v seznamu nastavte do proměnné '%1' danou položku a proveďte nějaké operace."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "počítat s %1 od %2 do %3 po %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Nechá proměnnou '%1' nabývat hodnot od počátečního do koncového čísla po daném přírůstku a provádí s ní příslušné bloky."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Přidat podmínku do \"pokud\" bloku."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Přidej konečnou podmínku zahrnující ostatní případy do bloku \"pokud\"."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Přidej, odstraň či uspořádej sekce k přenastavení tohoto bloku \"pokud\"."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "jinak"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "nebo pokud"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "pokud"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Je-li hodnota pravda, proveď určité příkazy."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Je-li hodnota pravda, proveď první blok příkazů. V opačném případě proveď druhý blok příkazů."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Je-li první hodnota pravdivá, proveď první blok příkazů. V opačném případě, je-li pravdivá druhá hodnota, proveď druhý blok příkazů."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Je-li první hodnota pravda, proveď první blok příkazů. Je-li druhá hodnota pravda, proveď druhý blok příkazů. Pokud žádná hodnota není pravda, proveď poslední blok příkazů."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://cs.wikipedia.org/wiki/Cyklus_pro"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "dělej"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "opakuj %1 krát"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Proveď určité příkazy několikrát."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "opakovat dokud"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "opakovat když"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Dokud je hodnota nepravdivá, prováděj určité příkazy."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Dokud je hodnota pravdivá, prováděj určité příkazy."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Smazat všech %1 bloků?"; -Blockly.Msg["DELETE_BLOCK"] = "Smazat blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Smazat %1 bloků"; -Blockly.Msg["DISABLE_BLOCK"] = "Deaktivovat blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplikovat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Povolit blok"; -Blockly.Msg["EXPAND_ALL"] = "Rozbalit bloky"; -Blockly.Msg["EXPAND_BLOCK"] = "Rozbalit blok"; -Blockly.Msg["EXTERNAL_INPUTS"] = "vnější vstupy"; -Blockly.Msg["HELP"] = "Nápověda"; -Blockly.Msg["INLINE_INPUTS"] = "Vložené vstupy"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Chyba"; -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "vstupy"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Přidat"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Smazat"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Přejmenovat"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "vytvořit prázdný seznam"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Vrátí seznam nulové délky, který neobsahuje žádné datové záznamy"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "seznam"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Přidat, odebrat nebo změnit pořadí oddílů tohoto seznamu bloku."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "vytvořit seznam s"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Přidat položku do seznamu."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Vytvoř seznam s libovolným počtem položek."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "první"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# od konce"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "získat"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "získat a odstranit"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "poslední"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "náhodné"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "odstranit"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Vrátí první položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Získá položku z určené pozice v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Vrátí poslední položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Vrátí náhodnou položku ze seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Odstraní a vrátí první položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Odstraní a získá položku z určené pozice v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Odstraní a vrátí poslední položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Odstraní a vrátí náhodnou položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Odstraní první položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Odebere položku na konkrétním místě v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Odstraní poslední položku v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Odstraní náhodou položku v seznamu."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "do # od konce"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "do #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "jako poslední"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "získat podseznam od první položky"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "získat podseznam od # od konce"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "získat podseznam od #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Vytvoří kopii určené části seznamu."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 je poslední položka."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 je první položka."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "najít první výskyt položky"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "najít poslední výskyt položky"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Vrací index prvního/posledního výskytu položky v seznamu. Vrací %1, pokud položka nebyla nalezena."; -Blockly.Msg["LISTS_INLIST"] = "v seznamu"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 je prázdné"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Vrátí hodnotu pravda, pokud je seznam prázdný."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "délka %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Vrací počet položek v seznamu."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "vytvoř seznam s položkou %1 opakovanou %2 krát"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Vytváří seznam obsahující danou hodnotu n-krát."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "jako"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "vložit na"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "nastavit"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Vložit položku na začátek seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Vloží položku na určenou pozici v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Připojí položku na konec seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Připojí položku náhodně do seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Nastaví první položku v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Nastaví položku na konkrétní místo v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Nastaví poslední položku v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Nastaví náhodnou položku v seznamu."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "vzestupně"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "sestupně"; -Blockly.Msg["LISTS_SORT_TITLE"] = "seřadit %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Seřadit kopii seznamu."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "abecedně, na velikosti písmen nezáleží"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "číselné"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "abecedně"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "udělat z textu seznam"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "udělat ze seznamu text"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Spojit seznam textů do jednoho textu, rozdělaného oddělovači."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Rozdělit text do seznamu textů, lámání na oddělovačích."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "s oddělovačem"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "nepravda"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Vrací pravda nebo nepravda."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "pravda"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://cs.wikipedia.org/wiki/Nerovnost_(matematika)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Vrátí hodnotu pravda, pokud se oba vstupy rovnají jeden druhému."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Navrátí hodnotu pravda, pokud první vstup je větší než druhý vstup."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Navrátí hodnotu pravda, pokud je první vstup větší a nebo rovný druhému vstupu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Navrátí hodnotu pravda, pokud je první vstup menší než druhý vstup."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Navrátí hodnotu pravda, pokud je první vstup menší a nebo rovný druhému vstupu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Vrátí hodnotu pravda, pokud se oba vstupy nerovnají sobě navzájem."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ne %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Navrátí hodnotu pravda, pokud je vstup nepravda. Navrátí hodnotu nepravda, pokud je vstup pravda."; -Blockly.Msg["LOGIC_NULL"] = "prázdný"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Vrátí prázdnou hodnotu"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "a"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "nebo"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Vrátí hodnotu pravda, pokud oba dva vstupy jsou pravdivé."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Vrátí hodnotu pravda, pokud alespoň jeden ze vstupů má hodnotu pravda."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://cs.wikipedia.org/wiki/Ternární operátor (programování)"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "pokud nepravda"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "pokud pravda"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Zkontroluje podmínku v \"testu\". Když je podmínka pravda, vrátí hodnotu \"pokud pravda\"; v opačném případě vrátí hodnotu \"pokud nepravda\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://cs.wikipedia.org/wiki/Aritmetika"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Vrátí součet dvou čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Vrátí podíl dvou čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Vrátí rozdíl dvou čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Vrátí součin dvou čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Vrátí první číslo umocněné na druhé číslo."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "zaměň %1 za %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Přičti číslo k proměnné '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Vraťte jednu z následujících konstant: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (nekonečno)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "omez %1 na rozmezí od %2 do %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Omezí číslo tak, aby bylo ve stanovených mezích (včetně)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "je dělitelné číslem"; -Blockly.Msg["MATH_IS_EVEN"] = "je sudé"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "je záporné"; -Blockly.Msg["MATH_IS_ODD"] = "je liché"; -Blockly.Msg["MATH_IS_POSITIVE"] = "je kladné"; -Blockly.Msg["MATH_IS_PRIME"] = "je prvočíslo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kontrola, zda je číslo sudé, liché, prvočíslo, celé, kladné, záporné nebo zda je dělitelné daným číslem. Vrací pravdu nebo nepravdu."; -Blockly.Msg["MATH_IS_WHOLE"] = "je celé"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://cs.wikipedia.org/wiki/Modul%C3%A1rn%C3%AD_aritmetika"; -Blockly.Msg["MATH_MODULO_TITLE"] = "zbytek po dělení %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Vrátí zbytek po dělení dvou čísel."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://cs.wikipedia.org/wiki/Číslo"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Číslo."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "průměr v seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "největší v seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "medián v seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "nejmenší v seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "nejčastější ze seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "náhodná položka seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "směrodatná odchylka ze seznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma seznamu"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Vrátí průměr (aritmetický průměr) číselných hodnot v seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Vrátí největší číslo v seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Vrátí medián seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Vrátí nejmenší číslo v seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Vrátí seznam nejčastějších položek seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Vrátí náhodnou položku ze seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Vrátí směrodatnou odchylku seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Vrátí součet všech čísel v seznamu."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://cs.wikipedia.org/wiki/Gener%C3%A1tor_n%C3%A1hodn%C3%BDch_%C4%8D%C3%ADsel"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "náhodné číslo mezi 0 (včetně) do 1"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Vrátí náhodné číslo mezi 0,0 (včetně) až 1,0"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://cs.wikipedia.org/wiki/Gener%C3%A1tor_n%C3%A1hodn%C3%BDch_%C4%8D%C3%ADsel"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "náhodné celé číslo od %1 do %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Vrací náhodné celé číslo mezi dvěma určenými mezemi, včetně mezních hodnot."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "zaokrouhlit"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "zaokrouhlit dolů"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "zaokrouhlit nahoru"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Zaokrouhlit číslo nahoru nebo dolů."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://cs.wikipedia.org/wiki/Druhá_odmocnina"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolutní hodnota"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "druhá odmocnina"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Vrátí absolutní hodnotu čísla."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Vrátí mocninu čísla e."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Vrátí přirozený logaritmus čísla."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Vrátí desítkový logaritmus čísla."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Vrátí zápornou hodnotu čísla."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Vrátí mocninu čísla 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Vrátí druhou odmocninu čísla."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Vrátí arkus kosinus čísla."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Vrátí arkus sinus čísla."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Vrátí arkus tangens čísla."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Vrátí kosinus úhlu ve stupních."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Vrátí sinus úhlu ve stupních."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Vrátí tangens úhlu ve stupních."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Vytvořit barvu proměnné..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Vytvořit číselnou proměnnou..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Vytvořit řetězcovou proměnnou..."; -Blockly.Msg["NEW_VARIABLE"] = "Vytvořte proměnnou..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nový název proměnné:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nový typ proměnné:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "povolit příkazy"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "s:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://cs.wikipedia.org/wiki/Podprogram"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Spustí uživatelem definovanou funkci '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://cs.wikipedia.org/wiki/Podprogram"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Spustí uživatelem definovanou funkci '%1' a použije její výstup."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "s:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Vytvořit '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Popište tuto funkci..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://cs.wikipedia.org/w/index.php?title=Funkce_(programování)"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "proveď něco"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "k provedení"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Vytvořit funkci bez výstupu."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://cs.wikipedia.org/w/index.php?title=Funkce_(programování)"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "navrátit"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Vytvořit funkci s výstupem."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Upozornění: Tato funkce má duplicitní parametry."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Zvýraznit definici funkce"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Je-li hodnota pravda, pak vrátí druhou hodnotu."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Varování: Tento blok může být použit pouze uvnitř definici funkce."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "vstupní jméno:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Přidat vstupy do funkce."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "vstupy"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Přidat, odebrat nebo změnit pořadí vstupů této funkce."; -Blockly.Msg["REDO"] = "Znovu"; -Blockly.Msg["REMOVE_COMMENT"] = "Odstranit komentář"; -Blockly.Msg["RENAME_VARIABLE"] = "Přejmenovat proměnnou..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Přejmenuj všech '%1' proměnných na:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "do %1 přidat text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Přidá určitý text k proměnné '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "na malá písmena"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "na Počáteční Velká Písmena"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "na VELKÁ PÍSMENA"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Vrátí kopii textu s jinou velikostí písmen."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "získat první písmeno"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "získat # písmeno od konce"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "získat písmeno #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "získat poslední písmeno"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "získat náhodné písmeno"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Získat písmeno na konkrétní pozici."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Přidat položku do textu."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "spojit"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Přidat, odebrat nebo změnit pořadí oddílů tohoto textového bloku."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "do # písmene od konce"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "do písmene #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "do posledního písmene"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "v textu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "získat podřetězec od prvního písmene"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "získat podřetězec od písmene # od konce"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "získat podřetězec od písmene #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Získat zadanou část textu."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "najít první výskyt textu"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "najít poslední výskyt textu"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "v textu %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Vrátí index prvního/posledního výskytu prvního textu v druhém textu. Pokud text není nalezen, vypíše %1."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 je prázdný"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Vrátí pravda pokud je zadaný text prázdný."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "vytvořit text s"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Vytvoří kousek textu spojením libovolného počtu položek."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "délka %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Vrátí počet písmen (včetně mezer) v zadaném textu."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "tisk %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Tisk zadaného textu, čísla nebo jiné hodnoty."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Výzva pro uživatele k zadání čísla."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Výzva pro uživatele k zadání nějakého textu."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "výzva k zadání čísla se zprávou"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "výzva k zadání textu se zprávou"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://cs.wikipedia.org/wiki/Textov%C3%BD_%C5%99et%C4%9Bzec"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Písmeno, slovo nebo řádek textu."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "odstranit mezery z obou stran"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "odstranit mezery z levé strany"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "odstranit mezery z pravé strany"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Vrátí kopii textu s odstraněnými mezerami z jednoho nebo obou konců."; -Blockly.Msg["TODAY"] = "Dnes"; -Blockly.Msg["UNDO"] = "Zpět"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "položka"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Vytvořit \"nastavit %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Vrátí hodnotu této proměnné."; -Blockly.Msg["VARIABLES_SET"] = "nastavit %1 na %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Vytvořit \"získat %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Nastaví tuto proměnnou, aby se rovnala vstupu."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Proměnná pojmenovaná jako '%1' již existuje pro jiný typ: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/da.js b/lib/blockly/msg/js/da.js deleted file mode 100644 index 2fa06c9..0000000 --- a/lib/blockly/msg/js/da.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Tilføj Kommentar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Kan ikke slette variablen »%1« da den er en del af definitionen af funktionen »%2«"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Skift værdi:"; -Blockly.Msg["CLEAN_UP"] = "Ryd op i blokke"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Fold blokkene sammen"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Fold blokken sammen"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "farve 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "farve 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "i forholdet"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "bland"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blander to farver sammen i et bestemt forhold (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://da.wikipedia.org/wiki/Farve"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Vælg en farve fra paletten."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "tilfældig farve"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Vælg en tilfældig farve."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blå"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "grøn"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "rød"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "farve med"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Lav en farve med den angivne mængde af rød, grøn og blå. Alle værdier skal være mellem 0 og 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "bryd ud af løkken"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "fortsæt med den næste gentagelse i løkken"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Bryd ud af den omgivende løkke."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Spring resten af denne løkke over, og fortsæt med den næste gentagelse."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Advarsel: Denne blok kan kun bruges i en løkke."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for hvert element %1 i listen %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For hvert element i en liste, sæt variablen '%1' til elementet, og udfør derefter nogle kommandoer."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "tæl med %1 fra %2 til %3 med %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Få variablen \"%1\" til at have værdierne fra startværdien til slutværdien, mens der tælles med det angivne interval, og udfør de angivne blokke."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Tilføj en betingelse til denne \"hvis\" blok."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Tilføj en sidste fang-alt betingelse, til denne \"hvis\" blok."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Tilføj, fjern eller byt om på rækkefølgen af delene for at konfigurere denne \"hvis\" blok."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ellers"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ellers hvis"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "hvis"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Hvis en værdi er sand, så udfør nogle kommandoer."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Hvis en værdi er sand, så udfør den første blok af kommandoer. Ellers udfør den anden blok af kommandoer."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Hvis den første værdi er sand, så udfør den første blok af kommandoer. Ellers, hvis den anden værdi er sand, så udfør den anden blok af kommandoer."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Hvis den første værdi er sand, så udfør den første blok af kommandoer. Ellers, hvis den anden værdi er sand, så udfør den anden blok af kommandoer. Hvis ingen af værdierne er sande, så udfør den sidste blok af kommandoer."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://da.wikipedia.org/wiki/For-l%C3%B8kke"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "udfør"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "gentag %1 gange"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Udfør nogle kommandoer flere gange."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "gentag indtil"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "gentag sålænge"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Udfør nogle kommandoer, sålænge en værdi er falsk."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Udfør nogle kommandoer, sålænge en værdi er sand."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Slet alle %1 blokke?"; -Blockly.Msg["DELETE_BLOCK"] = "Slet blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Slet variablen »%1«"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Slet %1's brug af variablen »%2«?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Slet %1 blokke"; -Blockly.Msg["DISABLE_BLOCK"] = "Deaktivér blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplikér"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplikér Kommentar"; -Blockly.Msg["ENABLE_BLOCK"] = "Aktivér blok"; -Blockly.Msg["EXPAND_ALL"] = "Fold blokkene ud"; -Blockly.Msg["EXPAND_BLOCK"] = "Fold blokken ud"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Udvendige inputs"; -Blockly.Msg["HELP"] = "Hjælp"; -Blockly.Msg["INLINE_INPUTS"] = "Indlejrede inputs"; -Blockly.Msg["IOS_CANCEL"] = "Annuller"; -Blockly.Msg["IOS_ERROR"] = "Fejl"; -Blockly.Msg["IOS_OK"] = "O.k."; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Tilføj inddata"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Tillad udsagn"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Denne funktion har duplikerede inddata."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INDDATA"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Tilføj"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Tilføj variabel"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Slet"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Du kan ikke bruge et tomt variabelnavn."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Omdøb"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variabelnavn"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "opret en tom liste"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returnerer en liste af længde 0, som ikke indeholder nogen data"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "liste"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Tilføj, fjern eller byt om på rækkefølgen af delene for at konfigurere denne blok."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "opret liste med"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Føj et element til listen."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Opret en liste med et vilkårligt antal elementer."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "første"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# fra slutningen"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "hent"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "hent og fjern"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "sidste"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "tilfældig"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "fjern"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returnerer det første element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returnerer elementet på den angivne position på en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returnerer den sidste element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returnerer et tilfældigt element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Fjerner og returnerer det første element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Fjerner og returnerer elementet på den angivne position på en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Fjerner og returnerer det sidste element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Fjerner og returnerer et tilfældigt element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Fjerner det første element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Fjerner elementet på den angivne position på en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Fjerner sidste element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Fjerner et tilfældigt element i en liste."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "til # fra slutningen"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "til #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "til sidste"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "hent underliste fra første"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "hent underliste fra # fra slutningen"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "hent underliste fra #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Opretter en kopi af den angivne del af en liste."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 er det sidste element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 er det første element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find første forekomst af elementet"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find sidste forekomst af elementet"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returnerer indeks for første/sidste forekomst af elementet i listen. Returnerer %1, hvis elementet ikke kan findes."; -Blockly.Msg["LISTS_INLIST"] = "i listen"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 er tom"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returnerer sand, hvis listen er tom."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "længden af %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returnerer længden af en liste."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "opret liste med elementet %1 gentaget %2 gange"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Opretter en liste bestående af den givne værdi gentaget et bestemt antal gange."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "vend %1 om"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Vend en kopi af en liste om."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "som"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "indsæt ved"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "sæt"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Indsætter elementet i starten af en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Indsætter elementet på den angivne position i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Føj elementet til slutningen af en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Indsætter elementet tilfældigt i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sætter det første element i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sætter elementet på den angivne position i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sætter det sidste element i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sætter et tilfældigt element i en liste."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "stigende"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "faldende"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sorter %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sorter en kopi af en liste."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetisk, ignorer store/små bogstaver"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "nummerorden"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetisk"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "lav tekst til liste"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "lav liste til tekst"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Saml en liste af tekster til én tekst, der er adskilt af et skilletegn."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Bryd tekst op i en liste af tekster med brud ved hvert skilletegn."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "med skilletegn"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falsk"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returnerer enten sand eller falsk."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "sand"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://da.wikipedia.org/wiki/Ulighed_(matematik)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Returnere sand, hvis begge inputs er lig med hinanden."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Returnere sand, hvis det første input er større end det andet input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Returnere sand, hvis det første input er større end eller lig med det andet input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Returnere sand, hvis det første input er mindre end det andet input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Returnere sand, hvis det første input er mindre end eller lig med det andet input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Returnere sand, hvis begge inputs ikke er lig med hinanden."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ikke %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returnerer sand, hvis input er falsk. Returnerer falsk, hvis input er sandt."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returnerer null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "og"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "eller"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Returnere sand, hvis begge inputs er sande."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Returnere sand, hvis mindst et af inputtene er sande."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "hvis falsk"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "hvis sand"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kontrollér betingelsen i 'test'. Hvis betingelsen er sand, returnér \"hvis sand\" værdien; ellers returnér \"hvis falsk\" værdien."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://da.wikipedia.org/wiki/Aritmetik"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Returnere summen af de to tal."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Returnere kvotienten af de to tal."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Returnere forskellen mellem de to tal."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Returnere produktet af de to tal."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Returnere det første tal opløftet til potensen af det andet tal."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 af X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "skift %1 med %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Læg et tal til variablen '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://da.wikipedia.org/wiki/Matematisk_konstant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Returnere en af de ofte brugte konstanter: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(2) (1.414…), sqrt(½) (0.707…) eller ∞ (uendeligt)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "begræns %1 til mellem %2 og %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Begræns et tal til at være mellem de angivne grænser (inklusiv)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = ":"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "er deleligt med"; -Blockly.Msg["MATH_IS_EVEN"] = "er lige"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "er negativt"; -Blockly.Msg["MATH_IS_ODD"] = "er ulige"; -Blockly.Msg["MATH_IS_POSITIVE"] = "er positivt"; -Blockly.Msg["MATH_IS_PRIME"] = "er et primtal"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kontrollere, om et tal er lige, ulige, primtal, helt, positivt, negativt, eller om det er deleligt med bestemt tal. Returnere sandt eller falskt."; -Blockly.Msg["MATH_IS_WHOLE"] = "er helt"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://da.wikipedia.org/wiki/Modulo"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resten af %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Returner resten fra at dividere de to tal."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://da.wikipedia.org/wiki/Tal"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Et tal."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "gennemsnit af listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "største tal i listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "listens median"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "mindste tal i listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "listens typetal"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "tilfældigt element fra listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standardafvigelsen for listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summen af listen"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Returner gennemsnittet (middelværdien) af de numeriske værdier i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Returner det største tal i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Returner listens median."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Returner det mindste tal i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Returner en liste over de mest almindelige elementer på listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Returner et tilfældigt element fra listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Returner standardafvigelsen for listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Returner summen af alle tal i listen."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://da.wikipedia.org/wiki/Tilfældighedsgenerator"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "tilfældigt decimaltal (mellem 0 og 1)"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Returner et tilfældigt decimaltal mellem 0,0 (inklusiv) og 1,0 (eksklusiv)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://da.wikipedia.org/wiki/Tilfældighedsgenerator"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "tilfældigt heltal mellem %1 og %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Returner et tilfældigt heltal mellem de to angivne grænser (inklusiv)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://da.wikipedia.org/wiki/Afrunding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "afrund"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "rund ned"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "rund op"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Runde et tal op eller ned."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://da.wikipedia.org/wiki/Kvadratrod"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadratrod"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Returnere den absolutte værdi af et tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Returnere e til potensen af et tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Returnere den naturlige logaritme af et tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Returnere 10-talslogaritmen af et tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Returnere negationen af et tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Returnere 10 til potensen af et tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Returnere kvadratroden af et tal."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://da.wikipedia.org/wiki/Trigonometrisk_funktion"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Returnere arcus cosinus af et tal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Returnere arcus sinus af et tal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Returnere arcus tangens af et tal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Returnere cosinus af en vinkel (i grader)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Returnere sinus af en vinkel (i grader)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Returnere tangens af en vinkel (i grader)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Opret farvevariabel ..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Opret nummervariabel ..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Opret strengvariabel ..."; -Blockly.Msg["NEW_VARIABLE"] = "Opret variabel ..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Navn til den nye variabel:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Ny variabeltype:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "tillad erklæringer"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "med:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Kør den brugerdefinerede funktion '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Kør den brugerdefinerede funktion '%1' og brug dens returværdi."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "med:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Opret '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Beskriv denne funktion..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "gøre noget"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "for at"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Opretter en funktion der ikke har nogen returværdi."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "returnér"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Opretter en funktion der har en returværdi."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Advarsel: Denne funktion har dublerede parametre."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Markér funktionsdefinitionen"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Hvis en værdi er sand, så returnér en anden værdi."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Advarsel: Denne blok kan kun anvendes inden for en funktionsdefinition."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "parameternavn:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Tilføj en parameter til funktionen."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "parametre"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Tilføje, fjerne eller ændre rækkefølgen af parametre til denne funktion."; -Blockly.Msg["REDO"] = "Omgør"; -Blockly.Msg["REMOVE_COMMENT"] = "Fjern Kommentar"; -Blockly.Msg["RENAME_VARIABLE"] = "Omdøb variabel..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Omdøb alle '%1' variabler til:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "til %1 tilføj tekst %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Tilføj noget tekst til variablen '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "til små bogstaver"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "til Stort Begyndelsesbogstav"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "til STORE BOGSTAVER"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Returner en kopi af teksten hvor bogstaverne enten er udelukkende store eller små, eller hvor første bogstav i hvert ord er stort."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hent første bogstav"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hent bogstav # fra slutningen"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "hent bogstav #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hent sidste bogstav"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "hent tilfældigt bogstav"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "i tekst %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returnerer bogstavet på den angivne placering."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "tæl %1 i %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Tæl hvor mange gange noget tekst fremgår i en anden tekst."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Føj et element til teksten."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "sammenføj"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Tilføj, fjern eller byt om på rækkefølgen af delene for at konfigurere denne tekstblok."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "til bogstav # fra slutningen"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "til bogstav #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "til sidste bogstav"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "i teksten"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "hent delstreng fra første bogstav"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "hent delstreng fra bogstav # fra slutningen"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "hent delstreng fra bogstav #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returnerer den angivne del af teksten."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find første forekomst af teksten"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find sidste forekomst af teksten"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "i tekst %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returnerer indeks for første/sidste forekomst af første tekst i den anden tekst. Returnerer %1, hvis teksten ikke kan findes."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 er tom"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returnerer sand, hvis den angivne tekst er tom."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "lav en tekst med"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Lav et stykke tekst ved at sætte et antal elementer sammen."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "længden af %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returnerer antallet af bogstaver (herunder mellemrum) i den angivne tekst."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "skriv %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Skriv den angivne tekst, tal eller anden værdi."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Spørg brugeren efter et tal"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Spørg brugeren efter en tekst"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "spørg efter et tal med meddelelsen"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "spørg efter tekst med meddelelsen"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "erstat %1 med %2 i %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Erstat alle forekomster af noget tekst i en anden tekst."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "vend %1 om"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Vender rækkefølgen om for tegnene i teksten."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://da.wikipedia.org/wiki/Tekststreng"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "En bogstav, et ord eller en linje med tekst."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "fjern mellemrum fra begge sider af"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "fjern mellemrum fra venstre side af"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "fjern mellemrum fra højre side af"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Returner en kopi af teksten med mellemrum fjernet fra den ene eller begge sider."; -Blockly.Msg["TODAY"] = "I dag"; -Blockly.Msg["UNDO"] = "Fortryd"; -Blockly.Msg["UNNAMED_KEY"] = "unavngivet"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Opret 'sæt %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returnerer værdien af denne variabel."; -Blockly.Msg["VARIABLES_SET"] = "sæt %1 til %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Opret 'hent %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sætter denne variabel til at være lig med input."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "En variabel med navnet »%1« findes allerede."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "En variabel med navnet »%1« findes allerede for en anden type: »%2«."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Sig noget ..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/de.js b/lib/blockly/msg/js/de.js deleted file mode 100644 index 34a0871..0000000 --- a/lib/blockly/msg/js/de.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Kommentar hinzufügen"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Die Variable „%1“ kann nicht gelöscht werden, da sie Teil der Definition der Funktion „%2“ ist."; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Wert ändern:"; -Blockly.Msg["CLEAN_UP"] = "Bausteine aufräumen"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Eingeklappte Blöcke enthalten Warnungen."; -Blockly.Msg["COLLAPSE_ALL"] = "Alle Bausteine zusammenfalten"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Baustein zusammenfalten"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "Farbe 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "und Farbe 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "im Verhältnis"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mische"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Vermischt 2 Farben mit konfigurierbarem Farbverhältnis (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://de.wikipedia.org/wiki/Farbe"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Wählt eine Farbe aus der Palette aus."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "zufällige Farbe"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Erzeugt eine Farbe nach dem Zufallsprinzip."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blau"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "grün"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "rot"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "Farbe aus"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Erzeugt eine Farbe mit selbst definierten Rot-, Grün- und Blauwerten. Alle Werte müssen zwischen 0 und 100 liegen."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://de.wikipedia.org/wiki/Kontrollstruktur"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "die Schleife abbrechen"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "sofort mit nächstem Schleifendurchlauf fortfahren"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Die umgebende Schleife beenden."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Diese Anweisung abbrechen und mit dem nächsten Schleifendurchlauf fortfahren."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warnung: Dieser Baustein kann nur in einer Schleife verwendet werden."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://de.wikipedia.org/wiki/For-Schleife"; -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "für jeden Wert %1 aus der Liste %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Führt eine Anweisung für jeden Wert in der Liste aus und setzt dabei die Variable \"%1\" auf den aktuellen Listenwert."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://de.wikipedia.org/wiki/For-Schleife"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "zähle %1 von %2 bis %3 in Schritten von %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Zählt die Variable \"%1\" von einem Startwert bis zu einem Endwert und führt für jeden Wert eine Anweisung aus."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Eine weitere Bedingung hinzufügen."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Eine sonst-Bedingung hinzufügen. Führt eine Anweisung aus, falls keine Bedingung zutrifft."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Hinzufügen, entfernen oder sortieren von Sektionen"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "sonst"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "sonst falls"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "falls"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Führt eine Anweisung aus, falls eine Bedingung wahr ist."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Führt die erste Anweisung aus, falls eine Bedingung wahr ist. Führt ansonsten die zweite Anweisung aus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Führt die erste Anweisung aus, falls die erste Bedingung wahr ist. Führt ansonsten die zweite Anweisung aus, falls die zweite Bedingung wahr ist."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Führe die erste Anweisung aus, falls die erste Bedingung wahr ist. Führt ansonsten die zweite Anweisung aus, falls die zweite Bedingung wahr ist. Führt die dritte Anweisung aus, falls keine der beiden Bedingungen wahr ist"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://de.wikipedia.org/wiki/For-Schleife"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "mache"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "wiederhole %1 mal:"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Eine Anweisung mehrfach ausführen."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://de.wikipedia.org/wiki/Schleife_%28Programmierung%29"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "wiederhole bis"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "wiederhole solange"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Führt Anweisungen aus solange die Bedingung unwahr ist."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Führt Anweisungen aus solange die Bedingung wahr ist."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Alle %1 Bausteine löschen?"; -Blockly.Msg["DELETE_BLOCK"] = "Baustein löschen"; -Blockly.Msg["DELETE_VARIABLE"] = "Die Variable „%1“ löschen"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "%1 Verwendungen der Variable „%2“ löschen?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 Bausteine löschen"; -Blockly.Msg["DISABLE_BLOCK"] = "Baustein deaktivieren"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Kopieren"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Kommentar kopieren"; -Blockly.Msg["ENABLE_BLOCK"] = "Baustein aktivieren"; -Blockly.Msg["EXPAND_ALL"] = "Alle Bausteine entfalten"; -Blockly.Msg["EXPAND_BLOCK"] = "Baustein entfalten"; -Blockly.Msg["EXTERNAL_INPUTS"] = "externe Eingänge"; -Blockly.Msg["HELP"] = "Hilfe"; -Blockly.Msg["INLINE_INPUTS"] = "interne Eingänge"; -Blockly.Msg["IOS_CANCEL"] = "Abbrechen"; -Blockly.Msg["IOS_ERROR"] = "Fehler"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Parameter hinzufügen"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Anweisungen erlauben"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Diese Funktion hat doppelte Parameter."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "PARAMETER"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Hinzufügen"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Variable hinzufügen"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Löschen"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Du kannst keinen leeren Variablennamen verwenden."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Umbenennen"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Name der Variable"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "erzeuge eine leere Liste"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Erzeugt eine leere Liste ohne Inhalt."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "Liste"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Hinzufügen, entfernen und sortieren von Elementen."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "erzeuge Liste mit"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Ein Element zur Liste hinzufügen."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Erzeugt eine Liste aus den angegebenen Elementen."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "Erste"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "von hinten das"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "das"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "nimm"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "nimm und entferne"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "Letzte"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "Zufällig"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "entferne"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = "Element"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Extrahiert das erste Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Extrahiert das Element an der angegebenen Position in der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Extrahiert das letzte Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Extrahiert ein zufälliges Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Extrahiert und entfernt das erste Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Extrahiert und entfernt das Element an der angegebenen Position aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Extrahiert und entfernt das letzte Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Extrahiert und entfernt ein zufälliges Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Entfernt das erste Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Entfernt das Element an der angegebenen Position aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Entfernt das letzte Element aus der Liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Entfernt ein zufälliges Element aus der Liste."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "bis von hinten"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "bis"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "bis letztes"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "nimm Teilliste ab erstes"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "nimm Teilliste ab von hinten"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "nimm Teilliste ab"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = "Element"; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Erstellt eine Kopie mit dem angegebenen Abschnitt der Liste."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ist das letzte Element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ist das erste Element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "suche erstes Auftreten von"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "suche letztes Auftreten von"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Sucht die Position (Index) eines Elementes in der Liste. Gibt %1 zurück, falls kein Element gefunden wurde."; -Blockly.Msg["LISTS_INLIST"] = "in der Liste"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ist leer"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Ist wahr, falls die Liste leer ist."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "Länge von %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Die Anzahl von Elementen in der Liste."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "erzeuge Liste mit %2 mal dem Element %1​"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Erzeugt eine Liste mit einer variablen Anzahl von Elementen"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "kehre %1 um"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Kehre eine Kopie einer Liste um."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "ein"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "füge als"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "setze für"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Fügt das Element an den Anfang der Liste an."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Fügt das Element an der angegebenen Position in die Liste ein."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Fügt das Element ans Ende der Liste an."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Fügt das Element zufällig in die Liste ein."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Setzt das erste Element in der Liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Setzt das Element an der angegebenen Position in der Liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Setzt das letzte Element in die Liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Setzt ein zufälliges Element in der Liste."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "aufsteigend"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "absteigend"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 sortieren"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Eine Kopie einer Liste sortieren."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetisch, Großschreibung ignorieren"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numerisch"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetisch"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "Liste aus Text erstellen"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "Text aus Liste erstellen"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Liste mit Texten in einen Text vereinen, getrennt durch ein Trennzeichen."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Text in eine Liste mit Texten aufteilen, unterbrochen bei jedem Trennzeichen."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "mit Trennzeichen"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falsch"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Ist entweder wahr oder falsch"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "wahr"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://de.wikipedia.org/wiki/Vergleich_%28Zahlen%29"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Ist wahr, falls beide Werte gleich sind."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Ist wahr, falls der erste Wert größer als der zweite Wert ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Ist wahr, falls der erste Wert größer als oder gleich groß wie der zweite Wert ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Ist wahr, falls der erste Wert kleiner als der zweite Wert ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Ist wahr, falls der erste Wert kleiner als oder gleich groß wie der zweite Wert ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Ist wahr, falls beide Werte unterschiedlich sind."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nicht %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Ist wahr, falls der Eingabewert unwahr ist. Ist unwahr, falls der Eingabewert wahr ist."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://de.wikipedia.org/wiki/Nullwert"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Ist \"null\"."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "und"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "oder"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Ist wahr, falls beide Werte wahr sind."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Ist wahr, falls einer der beiden Werte wahr ist."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "prüfe"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://de.wikipedia.org/wiki/%3F:#Auswahloperator"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "falls falsch"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "falls wahr"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Überprüft eine Bedingung \"prüfe\". Falls die Bedingung wahr ist, wird der \"falls wahr\" Wert zurückgegeben, andernfalls der \"falls unwahr\" Wert"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://de.wikipedia.org/wiki/Grundrechenart"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Ist die Summe zweier Zahlen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Ist der Quotient zweier Zahlen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Ist die Differenz zweier Zahlen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Ist das Produkt zweier Zahlen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Ist die erste Zahl potenziert mit der zweiten Zahl."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://de.wikipedia.org/wiki/Arctan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 von X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Gibt den Arkustangens des Punktes (X, Y) in Grad von -180 bis 180 zurück."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://de.wikipedia.org/wiki/Inkrement_und_Dekrement"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "erhöhe %1 um %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Addiert eine Zahl zu \"%1\"."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://de.wikipedia.org/wiki/Mathematische_Konstante"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Mathematische Konstanten wie: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) oder ∞ (unendlich)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "begrenze %1 zwischen %2 und %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Begrenzt eine Zahl auf den Wertebereich zwischen zwei anderen Zahlen (inklusiv)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ist teilbar durch"; -Blockly.Msg["MATH_IS_EVEN"] = "ist gerade"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ist negativ"; -Blockly.Msg["MATH_IS_ODD"] = "ist ungerade"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ist positiv"; -Blockly.Msg["MATH_IS_PRIME"] = "ist eine Primzahl"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Überprüft ob eine Zahl gerade, ungerade, eine Primzahl, ganzzahlig, positiv, negativ oder durch eine zweite Zahl teilbar ist. Gibt wahr oder falsch zurück."; -Blockly.Msg["MATH_IS_WHOLE"] = "ist eine ganze Zahl"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://de.wikipedia.org/wiki/Modulo"; -Blockly.Msg["MATH_MODULO_TITLE"] = "Rest von %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Der Rest nach einer Division."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://de.wikipedia.org/wiki/Zahl"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Eine Zahl."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = "http://www.sysplus.ch/einstieg.php?links=menu&seite=4125&grad=Crash&prog=Excel"; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "Mittelwert der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Maximalwert der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Median der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Minimalwert der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "am häufigsten in der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Zufallswert aus der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "Standardabweichung der Liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Summe über die Liste"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Ist der Durchschnittswert aller Zahlen in einer Liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Ist die größte Zahl in einer Liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Ist der Median aller Zahlen in einer Liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Ist die kleinste Zahl in einer Liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Findet die Werte mit dem häufigstem Vorkommen in der Liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Gibt einen zufälligen Wert aus der Liste zurück."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Ist die Standardabweichung aller Werte in der Liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Ist die Summe aller Zahlen in einer Liste."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://de.wikipedia.org/wiki/Zufallszahlen"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "Zufallszahl (0.0 - 1.0)"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Erzeugt eine Zufallszahl zwischen 0.0 (inklusiv) und 1.0 (exklusiv)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://de.wikipedia.org/wiki/Zufallszahlen"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "ganzzahlige Zufallszahl zwischen %1 und %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Erzeugt eine ganzzahlige Zufallszahl zwischen zwei Zahlen (inklusiv)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://de.wikipedia.org/wiki/Runden"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "runde"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "runde ab"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "runde auf"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Eine Zahl auf- oder abrunden."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://de.wikipedia.org/wiki/Quadratwurzel"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "Betrag"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Quadratwurzel"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Ist der Betrag einer Zahl."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Ist Wert der Exponentialfunktion einer Zahl."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Ist der natürliche Logarithmus einer Zahl."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Ist der dekadische Logarithmus einer Zahl."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Negiert eine Zahl."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Rechnet 10 hoch eine Zahl."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Ist die Quadratwurzel einer Zahl."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://de.wikipedia.org/wiki/Trigonometrie"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Ist der Arkuskosinus des Eingabewertes."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Ist der Arkussinus des Eingabewertes."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Ist der Arkustangens des Eingabewertes."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Ist der Kosinus des Winkels."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Ist der Sinus des Winkels (nicht Radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Ist der Tangens des Winkels (nicht Radiant)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Farbvariable erstellen …"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Zahlenvariable erstellen …"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Zeichenfolgenvariable erstellen …"; -Blockly.Msg["NEW_VARIABLE"] = "Variable erstellen …"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Name der neuen Variable:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Neuer Variablentyp:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = "."; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "Anweisungen erlauben"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "mit:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://de.wikipedia.org/wiki/Unterprogramm"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Rufe einen Funktionsblock ohne Rückgabewert auf."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://de.wikipedia.org/wiki/Unterprogramm"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Rufe einen Funktionsblock mit Rückgabewert auf."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "mit:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Erzeuge \"Aufruf %1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Beschreibe diese Funktion …"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "etwas tun"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "nach"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Ein Funktionsblock ohne Rückgabewert."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "gib zurück"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Ein Funktionsblock mit Rückgabewert."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warnung: Dieser Funktionsblock hat zwei gleich benannte Parameter."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Markiere Funktionsblock"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Gibt den zweiten Wert zurück und verlässt die Funktion, falls der erste Wert wahr ist."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warnung: Dieser Block darf nur innerhalb eines Funktionsblocks genutzt werden."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Variable:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Eine Eingabe zur Funktion hinzufügen."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "Parameter"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Die Eingaben zu dieser Funktion hinzufügen, entfernen oder neu anordnen."; -Blockly.Msg["REDO"] = "Wiederholen"; -Blockly.Msg["REMOVE_COMMENT"] = "Kommentar entfernen"; -Blockly.Msg["RENAME_VARIABLE"] = "Variable umbenennen …"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Alle \"%1\" Variablen umbenennen in:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "zu %1 Text %2 anhängen"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Text an die Variable \"%1\" anhängen."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "wandel um in kleinbuchstaben"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "wandel um in Substantive"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "wandel um in GROSSBUCHSTABEN"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Wandelt Schreibweise von Texten um, in Großbuchstaben, Kleinbuchstaben oder den ersten Buchstaben jedes Wortes groß und die anderen klein."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "nimm ersten"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "nimm von hinten"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "nimm"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "nimm letzten"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "nimm zufälligen"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = "Buchstaben"; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "im Text %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Extrahiert einen Buchstaben von einer bestimmten Position."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "zähle %1 in %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Zähle, wie oft ein Text innerhalb eines anderen Textes vorkommt."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Ein Element zum Text hinzufügen."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "verbinden"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Hinzufügen, entfernen und sortieren von Elementen."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "bis von hinten"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "bis"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "bis letzter"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "im Text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "nimm Teil ab erster"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "nimm Teil ab von hinten"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "nimm Teil ab"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = "Buchstabe"; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Gibt den angegebenen Textabschnitt zurück."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "suche erstes Auftreten des Begriffs"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "suche letztes Auftreten des Begriffs"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "im Text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Findet das erste / letzte Auftreten eines Suchbegriffs in einem Text. Gibt die Position des Begriffs zurück oder %1 falls der Suchbegriff nicht gefunden wurde."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ist leer"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Ist wahr, falls der Text keine Zeichen enthält."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = ""; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "erstelle Text aus"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Erstellt einen Text durch das Verbinden von mehreren Textelementen."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "Länge von %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Die Anzahl von Zeichen in einem Text (inkl. Leerzeichen)."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "gib aus %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Gibt den Text aus."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Fragt den Benutzer nach einer Zahl."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Fragt den Benutzer nach einem Text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "frage nach Zahl mit Hinweis"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "frage nach Text mit Hinweis"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "ersetze %1 durch %2 in %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Ersetze alle Vorkommen eines Textes innerhalb eines anderen Textes."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "kehre %1 um"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Kehre die Reihenfolge der Zeichen im Text um."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://de.wikipedia.org/wiki/Zeichenkette"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Ein Buchstabe, Text oder Satz."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "entferne Leerzeichen vom Anfang und vom Ende (links und rechts)"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "entferne Leerzeichen vom Anfang (links)"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "entferne Leerzeichen vom Ende (rechts)"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Entfernt Leerzeichen vom Anfang und / oder Ende eines Textes."; -Blockly.Msg["TODAY"] = "Heute"; -Blockly.Msg["UNDO"] = "Rückgängig"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Erzeuge \"Schreibe %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29"; -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Gibt den Wert der Variable zurück."; -Blockly.Msg["VARIABLES_SET"] = "setze %1 auf %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Erzeuge \"Lese %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29"; -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Setzt den Wert einer Variable."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Eine Variable namens „%1“ ist bereits vorhanden."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Eine Variable namens „%1“ ist bereits für einen anderen Typ vorhanden: „%2“."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Teile etwas mit…"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/diq.js b/lib/blockly/msg/js/diq.js deleted file mode 100644 index 071ecea..0000000 --- a/lib/blockly/msg/js/diq.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Tefsir cı ke"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Erci bıvurne:"; -Blockly.Msg["CLEAN_UP"] = "Blokan pak ke"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Blokan teng ke"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Bloki teng ke"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "reng 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "reng 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "nısbet"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "tewde"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://diq.wikipedia.org/wiki/Reng"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Şıma palet ra yew reng weçinê."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "rengo rastameye"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Tesadufi yu ren bıweçin"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "kewe"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "kıho"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "sur"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "komponentên rengan"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Şıma renganê sûr, aşıl u kohoy ra rengê do spesifik vırazê. Gani ê pêro 0 u 100 miyan de bıbê."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "Çerxen ra vec"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "Gama bin da çerxeni ra dewam ke"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Öujtewada çerxeni ra bıvıci"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Diqat: No bloke şeno teyna yew çerxiyayış miyan de bıgırweyo."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "Lista %2 de her item %1 rê"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Yew lista de her item rê, varyansê '%1' itemi rê vırazê, u dıma tayê akerdışi (beyani) bıdê"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Bloq da if'i rê yu şert dekerê de."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "eke çıniyo"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "eke nêyo"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "eke"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Eger yew vaye raşto, o taw şıma tayê akerdışi kerê."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "bıke"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 fıni tekrar ke"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Şıma tayêna reyi akerdışi kerê."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "hend tekrar ke"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "Tekrar kerdış de"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Yew erc xırabo se tay beyanati bıd"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Yew erc raşto se yu beyanat bıd."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Pêro %1 bloki besteriyê?"; -Blockly.Msg["DELETE_BLOCK"] = "Bloki bestere"; -Blockly.Msg["DELETE_VARIABLE"] = "Şıma vırnaoğê '%1'i besterê"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "%1 ke vırnayışê '%2'i gırweneno, besteriyo?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 blokan bestere"; -Blockly.Msg["DISABLE_BLOCK"] = "Çengi devre ra vec"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Zewnc"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Mışewreyo zewnc"; -Blockly.Msg["ENABLE_BLOCK"] = "Bloki feal ke"; -Blockly.Msg["EXPAND_ALL"] = "Blokan hera ke"; -Blockly.Msg["EXPAND_BLOCK"] = "Bloki hera ke"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Cıkewtışê xarıciy"; -Blockly.Msg["HELP"] = "Peşti"; -Blockly.Msg["INLINE_INPUTS"] = "Cıkerdışê xomiyani"; -Blockly.Msg["IOS_CANCEL"] = "Bıtexelne"; -Blockly.Msg["IOS_ERROR"] = "Xeta"; -Blockly.Msg["IOS_OK"] = "TEMAM"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Beyan cı ke"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "İfade rê mısade bıde"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "BEYANİ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Cı ke"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Vurnekari cı kerê"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Bestere"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Heruna nameyê curnekari veng mevıradê."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Reyna name ke"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Namê vurriyayışi"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "lista venge vıraze"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "liste"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "Liste ya vıraz"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Yew işaret liste ke."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "verên"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# peyniye ra"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "bıgê"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "Bıgi u wedarne"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "peyên"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "raştameye"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "wedare"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "Peyni # ra hetana"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "#'ya"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "Hetana pey"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 objeyo peyên o"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 objeyo sıfteyên o"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "vıraştışê işaretê verêni bıvêne"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "vıraştışê nuşteyê verêni bıvêne"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "lista de"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 vengo"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Eger kı lista venga se raşt keno çerğ"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "dergiya %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Derganiya yu lister dano."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 dimlaşt kerê"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Yew kopyaya yew lista dimlaşt kerê."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "zey"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "De fi"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ca ke"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "zeydıyen"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "Kemeyen"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 weçine"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "Amoriyal"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "Alfabetik"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "Hududoxi ya"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ğelet"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Raşt yana çep erc dano"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "raşt"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Debiyaye dı erci zey pêyêse ercê \"True\" dane."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 niyo"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "veng"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Veng çarneno ra."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "û"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ya zi"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Eger her dı cıkewtışi zi raştê, şıma ageyrê."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "eke ğeleto"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "eke raşto"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Şerta'test'i test keno. Eger ke şert raşta se erca 'raşt'i çarneno, çepo se erca 'çep' çarneno."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Aritmetik"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://diq.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2, X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%2, keno %1 vurneno"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Sabitanê wertağan ra yew açarne: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (bêpeyniye)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "Leteyêno"; -Blockly.Msg["MATH_IS_EVEN"] = "zewnco"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "negatifo"; -Blockly.Msg["MATH_IS_ODD"] = "kıto"; -Blockly.Msg["MATH_IS_POSITIVE"] = "pozitifo"; -Blockly.Msg["MATH_IS_PRIME"] = "bıngehên"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "tamo"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 ra menden"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Mendeyan ra teqsimkerdışê dı amaran açarne."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://diq.wikipedia.org/wiki/Numre"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Yew numre."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "Averacê lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Tewr gırdê lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Wertey lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Tewr qıcê lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "listey modi"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Raştamaye objeya lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "koma liste"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Liste ra yew elemento rastameye açarne."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "Raştamaye nimande amor"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "gılor ke"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "Loğê cêri ke"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "Loğê cori ke"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Yu amorer loğê cêri yana cori ke"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "mutlaq"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "karekok"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "E quwetê yew amar tadano."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Nêrazibiyena yew amari açarne."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Quweta yew amariya 10ıne tade."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://diq.wikipedia.org/wiki/Fonksiyonê_trigonometriye"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Arkkosinusê yew amari açarne."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Arksinusê yew amari açarne."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Arktangensê yew amari açarne."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Vurriyayoğê rengi vıraze..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Vurriyayoğê amari vıraze..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Vurriyayoğê rêze vıraze..."; -Blockly.Msg["NEW_VARIABLE"] = "Vuriyayeyo bıvıraz..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Tewrê vurriyayoğê neweyi:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tewrê vurriyayoğê neweyi:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "ifade rê mısade bıde"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ebe:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ebe:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' vıraze"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Nê fonksiyoni beyan ke..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "Çıyê bık"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "rê"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Yew fonksiyono çap nêdate vırazeno"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "peyser biya"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Yew fonksiyono çap daye vırazeno"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Tembe: Nê fonksiyoni de parametreyê dıleti estê."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "namey cıkewtışi:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "cıkewtışi"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Newe ke"; -Blockly.Msg["REMOVE_COMMENT"] = "Tefsiri Wedare"; -Blockly.Msg["RENAME_VARIABLE"] = "Vuriyayey fına name ke..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Pêro vırnayışê '%1' reyna name ke:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "rê %1 Metin dek %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "Herfanê werdiyana"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Ser herf gırd"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "HERFANÊ GIRDANA"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "Herfa sıfti bıgi"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "herfa # peyêne ra bıgê"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "Herfa # bıgi"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "herfa peyêne bıgê"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "Raştamaye yu herf bıgi"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "metın de %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Şınasnaye pozisyon de yu herfer çerğ keno"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%1 miyan de %2 bımare"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Yew işaret nuşteyi ke."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "gıre de"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "heta herfa # peyêne"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "heta herfa #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "heta herfa peyêne"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "metın de"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "rêza bınêne herfa # peyêne ra bıgê"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "rêza bınêne herfa # ra bıgê"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Tay letey metini çerğ keno"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "vıraştışê nuşteyê verêni bıvêne"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "vıraştışê nuşteyê verêni bıvêne"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "metın de %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 vengo"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ya metin vıraz"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "dergiya %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 çap"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "karakteranê %1 weçarne"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Yu herfa, satır yana çekuya metini"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Ewro"; -Blockly.Msg["UNDO"] = "Peyser bıgê"; -Blockly.Msg["UNNAMED_KEY"] = "bêname"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "unsur"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'%1 bınuse' vıraze"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "%1 ra %2 rê eyar kerê"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'%1 bıwane' vıraze"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Yew vırnayış be namey '%1' xora est."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Çiyê vace..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/dty.js b/lib/blockly/msg/js/dty.js deleted file mode 100644 index 35a1bfe..0000000 --- a/lib/blockly/msg/js/dty.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "टिप्पणी थप्दे"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "मान बदल"; -Blockly.Msg["CLEAN_UP"] = "ब्लकनलाई हटाओ"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ब्लक भत्काओ"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ब्लक भत्का"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "रंग 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "रंग 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "अनुपात"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "मिश्रण गर"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "दियाका अनुपात (0.0 - 1.0) का साथ दुई रंगहरूको मिश्रण गरन्छ ।"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "पैलेट बाट एक रंग चुन ।"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "जुनसुकै रङ्ग"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "रैन्डम्ली एक रंग चयन गर ।"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "निलो"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "हरियो"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "रातो"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "यै रङ्गको"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "रातो, हरियो और नीलोको निर्दिष्ट मात्राकी साथ एक रंग बनाओ । सबै मान ० देखि १०० का बीच हुनु पडन्छ ।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "लूप बाट भाइर निकलौं"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "लूपको अर्को आईटरेशन जारी राख"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "भीत्री लूप बाट बाहिर निस्कने"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "बचेका लूपलाई छोड, और अर्को आईटरेशन जारी राख ।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "सावधान: यो ब्लक केवल लूप भित्रमात्र प्रयोग गद्द सकिन्छ ।"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "%2 सूचीमी भयाः प्रत्येक आइटम %1 खिलाइ"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "सूचीको प्रत्येक आइटमको लागी, आइटममी चरको मान '%1' राखौं और पाछा क्यै कथन लेख ।"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "गन्ती गर %1 देखी %2 %3 %4 सम्म"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "यदि ब्लकमा एक शर्त जोडौं ।"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "एल्स"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "एल्स इफ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "इफ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "जब तलक मान सत्य छ, तब तलक क्यै स्टेट्मेंट चलाओ ।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "यदि एक मान सत्य छ भण्या कथनहरूको प्रथम खण्ड बणाओ । अन्यथा कथनहरूको अर्को भाग निर्मित गर ।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "डू"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 पल्ट दोसराओ"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "क्यै स्टेट्मन्ट कैयों पल्ट चलाओ ।"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "दोहराओ जब तलक"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "दोहराओ जब की"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "जब तक मान फॉल्स छ, तब तक क्यै स्टेट्मेंट्स चलाओ ।"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "जब तलक मान सत्य छ, तब तलक क्यै स्टेट्मेंट चलाओ ।"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "सबै %1 ब्लकनलाई हटाउन्या ?"; -Blockly.Msg["DELETE_BLOCK"] = "ब्लक हटाउन्या"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' भेरिएबल मेट:"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' भेरिएबला %1 प्रयोग मेट्ट्या?"; -Blockly.Msg["DELETE_X_BLOCKS"] = " %1 ब्लकहरू हटाउन्या"; -Blockly.Msg["DISABLE_BLOCK"] = "ब्लकलाई निश्क्रिय पाड्डे"; -Blockly.Msg["DUPLICATE_BLOCK"] = "कपी गर"; -Blockly.Msg["DUPLICATE_COMMENT"] = "हूबहू टिप्पणी"; -Blockly.Msg["ENABLE_BLOCK"] = "ब्लकलाई सक्रिय पाड्डे"; -Blockly.Msg["EXPAND_ALL"] = "ब्लकनलाई फैलाओ"; -Blockly.Msg["EXPAND_BLOCK"] = "ब्लकनलाई फैलाओ"; -Blockly.Msg["EXTERNAL_INPUTS"] = "भाइरका इन्पुटहरू"; -Blockly.Msg["HELP"] = "सहायता"; -Blockly.Msg["INLINE_INPUTS"] = "इनलाइन इन्पुटहरू"; -Blockly.Msg["IOS_CANCEL"] = "खारेजी"; -Blockly.Msg["IOS_ERROR"] = "गल्ती"; -Blockly.Msg["IOS_OK"] = "हुन्छ"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ इनपुट थपः"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "इनपुटन"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "जोड़ऽ"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "मेटः"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "तम खाली चल नाउँ प्रयोग अरीनाइसक्दाः।"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "पुनर्नामकरण"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "चल(भेरिएबल) नाउँ"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "असत्य"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "सत्य या असत्य फिर्ता अरन्छ।"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "सत्य"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "यदी दुवै इनपुट एक अर्काका बराबर छन् भण्या टु रिटर्न गर ।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "पैल्लो इनपुट दोसरा इनपुट है ठुलो भया ट्रू फिर्ता अर:।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "पैल्लो इनपुट दोसरा इनपुट है ठुलो या उइ सित बराबर भया ट्रू फिर्ता अर:।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "पैल्लो इनपुट दोसरा इनपुट है नानो भया ट्रू फिर्ता अर:।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "पैल्लो इनपुट दोसरा इनपुट है नानो या उइ सित बराबर भया ट्रू फिर्ता अर:।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "यदी दुवै इनपुट एक अर्काको बराबर नाइथिन् भणया टु रिटर्न गर ।"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "not %1"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "इनपुट असत्य भयाले सन्य फिर्ता अरन्छ। इनपुट सत्य भयाले असत्य फिर्ता अरन्छ।"; -Blockly.Msg["LOGIC_NULL"] = "शू्य"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "शून्य फिर्ता अरन्छ।"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "रे"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "या"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "दुएइ इनपुट ट्रू भया ट्रू फिर्ता अर:।"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "कम्तीमी लै १ इनपुट सत्य भयाले सत्य फिर्ता अर।"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; // untranslated -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "if false"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "if true"; // untranslated -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; // untranslated -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; // untranslated -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "A number."; // untranslated -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "भेरिएवल बना:"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "नयाँ भेरिबलको नाम:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "पुन: कायम गद्दे"; -Blockly.Msg["REMOVE_COMMENT"] = "टिप्पणी हटाउन्या"; -Blockly.Msg["RENAME_VARIABLE"] = "भेरिबललाई पुनः नामांकन गर..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "सबै भेरिबलनका %1 नाम बदल्न्या:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "आज"; -Blockly.Msg["UNDO"] = "रद्द गर्न्या"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "वस्तु"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' नाउँ अरियाऽ भेरिएबल पैली बठेइ छ।"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "केयि भँण..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ee.js b/lib/blockly/msg/js/ee.js deleted file mode 100644 index 003474c..0000000 --- a/lib/blockly/msg/js/ee.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Ŋlɔ Numeɖeɖe"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Mate ŋu atutu teaŋutrɔna '%1' o elabe ewɔ akpa aɖe le teaŋutrɔna '%2' me."; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Trɔ nuŋlɔdzesiawo:"; -Blockly.Msg["CLEAN_UP"] = "Tutu Nuawo"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Hatsotsoawo Me Nuwo Nebu"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Hatsotso Me Nuwo Nebu"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "amedede 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "amadede 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "agbɔsɔsɔ"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "tsaka"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Tsaka amadede eve kple agbɔsɔsɔ si nye (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ee.wikipedia.org/wiki/Amadede"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Tia amadede ɖeka le amadedetiaƒea."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "amadede aɖe ko"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Tia amadede aɖe ko."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blɔ"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "gbemumu"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "dzĩ"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "de amae kple"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "tsaka"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "Nedo le wɔtiaɖenua me"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "neyi edzi kple wɔtiaɖenua si kplɔe ɖo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Nedo le wɔtiaɖenua si me wòlea me."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Neto wɔtiaɖenu sia susɔea ta wòayi bubu dzi."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Nuxlɔ̃ame: Wɔtiaɖenu me ko woate ŋu azã ƒuƒoƒo sia le."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "nu sia nu natso %2 me ayi %1 me"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Tia teaŋutrɔna '%1' na nuawo dometɔ ɖe sia ɖe si li, eye nàŋlɔ gbedeasi aɖe."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "Xlẽ %1 tso %2 yi %3 to %4 dzi"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Xexlẽdzesi tɔtrɔ '%1' nenye xexlẽdzesi si dze egɔme kple esiwo kplɔe ɖo va se ɖe mamlɛtɔ dzi, nebu dometsotso si wofia kple nyatakaka suetɔ siwo wofia asii."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Tsɔ biabia aɖe kpe ne ƒuƒoƒo la."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Tsɔ lé wo katã ƒe ne ƒe ƒuƒoƒo kpe biabia mamlɛa."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Tsɔ kpee, ɖee le eme alo gbugbɔ akpawo ɖo nàtsɔ asi le ne ƒe ƒuƒoƒoa ŋu."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ke boŋ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "Ke boŋ ne"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "Ne"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ne asime aɖe le eme la, ke taɖodzinya aɖewo neva eme."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ne asime aɖe le eme la, ke taɖodzinyawo ƒe ƒuƒoƒo gbãtɔ neva eme. Ne menye nenem o la, ke taɖodzinyawo ƒe ƒuƒoƒo evelia neva eme."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ne asime gbãtɔe le eme la, ke taɖodzinyawo ƒe ƒuƒoƒo gbãtɔ neva eme. Gake ne asime eveliae le eme la, taɖodzinyawo ƒe ƒuƒoƒo evelia boŋ neva eme."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ne asime gbãtɔ le eme la, ke taɖodzinyawo ƒe ƒuƒoƒo gbãtɔ neva eme. Ke ne taɖodzinyawo ƒe ƒuƒoƒo evelia boŋue le eme la, taɖodzinyawo ƒe ƒuƒoƒo evelia neva eme. Ne taɖodzinya aɖeke mele eme o la,taɖodzinyawo ƒe ƒuƒoƒo mamlɛtɔ neva eme."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ee.wikipedia.org/wiki/Na_nogo"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "wɔ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "Wɔe zi %1"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Gbugbɔ biabia aɖewo zi geɖe."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "gbugbɔ wɔe va se ɖe"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "gbugbɔ wɔe ne"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Ne nyatakaka dea, ke wɔ biabia aɖewo."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Ne nyatakaka dea, ke wɔ biabia aɖewo."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Èdi be netutu nu %1 katã?"; -Blockly.Msg["DELETE_BLOCK"] = "Tutu Hatsotsoa"; -Blockly.Msg["DELETE_VARIABLE"] = "Tutu teaŋutrɔna '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Netutu %1 ŋkɔ si nètsɔ na teaŋutrɔna '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Tutu Hatsotso %1"; -Blockly.Msg["DISABLE_BLOCK"] = "Tsi Hatsotsoa"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Gbugbɔe Wɔ"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Kɔpi Numeɖeɖea"; -Blockly.Msg["ENABLE_BLOCK"] = "Si Hatsotsoa"; -Blockly.Msg["EXPAND_ALL"] = "Hatsotsoawo Me Nuwo Nedze"; -Blockly.Msg["EXPAND_BLOCK"] = "Hatsotsoa Me Nuwo Nedze"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Gotakpeɖeŋunuwo"; -Blockly.Msg["HELP"] = "Kpekpeɖeŋu"; -Blockly.Msg["INLINE_INPUTS"] = "Interdzikpeɖeŋuwo"; -Blockly.Msg["IOS_CANCEL"] = "Natasii"; -Blockly.Msg["IOS_ERROR"] = "Vodada"; -Blockly.Msg["IOS_OK"] = "YOO"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Tsɔ nu kpe Nudemea"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Ɖe mɔ ɖe taɖodzinyawo ŋu"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Nudeme evee le wɔƒe sia si."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "NUDEMEWO"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Tsɔ kpee"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Tsɔ nugba kpee"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Tutui"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Màte ŋu azã nugba si mena ŋkɔe o."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Gbugbɔ na ŋkɔe"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nugba ŋkɔ"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "gbãtɔ"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# tso nuwuwu"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "mamlɛtɔ"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "ɖe sia ɖe ko"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ɖee ɖa"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Aʋu nu gbãtɔ."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Aʋu nua le afi si wòle le nuwo dome."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Aʋu nu mamlɛtɔ."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Aʋu nu ɖe sia ɖe aɖe ko."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Eɖea nu gbãtɔ ɖa eye eya kee gaʋua nu gbãtɔ."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Aɖe nua ɖa eye wòaʋu nua le afi si wòle le nuawo dome."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Eɖea nu mamlɛtɔ ɖa eye eya kee gaʋua nu mamlɛtɔ."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "yi # tso nuwuwu"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "yi #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "yi mamlɛtɔ"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 nye nu mamlɛtɔ."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 nye nu gbãtɔ."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 le ƒuƒlu"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "dzi yim"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "ɖiɖim"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "mademadea"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Nefia dedia alo mademadea."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "dedia"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Masɔmasɔ_(akɔntabubu)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme eveawo sɔ kple wo nɔewo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ lolo wu evelia."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ lolo wu evelia alo sɔ kplii."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ mede evelia nu o."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ mede evelia nu o alo sɔ kplii."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme eveawo mesɔ kple wo nɔewo o."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "menye %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Ŋuɖoɖoa nenye nyateƒe ne nudemea menye nyateƒe o. Ŋuɖoɖoa nenye aʋatso ne nudemea nye nyateƒe."; -Blockly.Msg["LOGIC_NULL"] = "ɖeke o"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Mekpɔ ɖeke o."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "eye"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "alo"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme eveawo nye nyateƒe."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Ŋuɖoɖoa nenye nyateƒe ne nudeme ɖeka teti nye nyateƒe."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "dodokpɔ"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "nenye dedietɔ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "nenye nyuitɔ"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kpɔ nu si dze le \"dodokpɔ\" me. Ne dediae dze la, tia \"ne dedia\"; ke ne manyomanyotɔe la, tia \"ne mademadea.\""; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ee.wikipedia.org/wiki/Xexlẽdzesibubu"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Bu xexlẽdzesi evea ƒoƒo ƒu ƒe akɔnta."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Bu xexlẽdzesi ɖeka mama ɖe xexlẽdzesi evelia me ƒe akɔnta."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Bu xexlẽdzesi ɖeka ɖeɖe le evelia me ƒe akɔnta."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Bu xexlẽdzesi gbãtɔ teƒe evelia ƒe akɔnta."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Na be xexlẽdzesi gbãtɔ nadzi eɖokui ɖe edzi zigbɔzi xexlẽdzesi evelia."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "woate ŋu amae ɖe"; -Blockly.Msg["MATH_IS_EVEN"] = "enye eve ƒomevi"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "enye xexlẽme megbeyitɔ"; -Blockly.Msg["MATH_IS_ODD"] = "enye etɔ̃ ƒomevi"; -Blockly.Msg["MATH_IS_POSITIVE"] = "enye xexlẽme ŋgɔgbeyitɔ"; -Blockly.Msg["MATH_IS_PRIME"] = " enye xexlẽme blibo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "enye blibo"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ee.wikipedia.org/wiki/Xexlẽdzesi"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Xexlẽdzesi aɖe"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "gãtɔ le nuwo dome"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "suetɔ le wo dome"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Neʋu xexlẽdzesi gãtɔ."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Neʋu suetɔ le nuwo dome."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/dzidziɖedzi_eɖokui zigbɔzi eve"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "xexlẽ blibo"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "eƒe teƒe eve"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Nena xexlẽdzesi aɖe nanye xexlẽ blibo."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Nebu e-teƒe-e zigbɔzi xexlẽdzesia."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Xexlẽdzesia nedzi ɖe edzi eɖokui zigbzi e."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Nebu zigbɔzi neni 10-teƒe-10 awɔ xexlẽdzesia."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Nena xexlẽdzesi aɖe nanye xexlẽdzesi madenanekeo."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = " Nebu ewo-teƒe-ewo zigbɔzi xexlẽdzesia."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Xexlẽdzesia nedzi ɖe edzi teƒe eɖokui"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Nebu dzogɔe le digri me (menye radiã o)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Wɔ amadede teaŋutrɔna..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Wɔ xexlẽdzesi teaŋutrɔna..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Wɔ nya teaŋutrɔna..."; -Blockly.Msg["NEW_VARIABLE"] = "Wɔ teaŋutrɔna..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nuŋlɔdzesi tɔtrɔa yeye ƒe ŋkɔ:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Teaŋutrɔna ƒomevi yeye:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "kple:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "kple:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Trɔ Wɔe"; -Blockly.Msg["REMOVE_COMMENT"] = "Ɖe Numeɖeɖea Ɖa"; -Blockly.Msg["RENAME_VARIABLE"] = "Na ŋkɔ bubu nuŋlɔdzesi tɔtrɔa..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Na ŋkɔ bubu nuŋlɔdzesi tɔtrɔa '%1' yi:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Egbe"; -Blockly.Msg["UNDO"] = "Gbugbɔe"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "nu"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Teaŋutrɔna si ŋkɔe nye '%1' li xoxo."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Teaŋutrɔna '%1' li xoxo eye wotsɔ ŋkɔ sia xoxo na bubu si nye: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/el.js b/lib/blockly/msg/js/el.js deleted file mode 100644 index 1a2cc41..0000000 --- a/lib/blockly/msg/js/el.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Πρόσθεσε Το Σχόλιο"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Δεν μπορώ να διαγράψω την μεταβλητή '%1' διότι είναι μέρος του ορισμού της λειτουργίας '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Άλλαξε την τιμή:"; -Blockly.Msg["CLEAN_UP"] = "Ταξινομείστε τα Μπλοκ"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Υπάρχουν προειδοποιήσεις για συμπτυγμένα μπλοκ."; -Blockly.Msg["COLLAPSE_ALL"] = "Σύμπτυξε Όλα Τα Μπλοκ"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Σύμπτυξε Το Μπλοκ"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "χρώμα 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "χρώμα 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "αναλογία"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "μείγμα"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Συνδυάζει δύο χρώματα μαζί με μια δεδομένη αναλογία (0.0 - 1,0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%A7%CF%81%CF%8E%CE%BC%CE%B1"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Επιτρέπει επιλογή χρώματος από την παλέτα."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "τυχαίο χρώμα"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Επιλέγει χρώμα τυχαία."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "μπλε"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "πράσινο"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "κόκκινο"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "χρώμα με"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Δημιουργεί χρώμα με το συγκεκριμένο ποσό του κόκκινου, πράσινου και μπλε που ορίζεις. Όλες οι τιμές πρέπει να είναι μεταξύ 0 και 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "φεύγει από το μπλοκ επαναλήψεως"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "συνέχισε με την επόμενη επανάληψη του μπλοκ επαναλήψεως"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Ξεφεύγει (βγαίνει έξω) από την επανάληψη."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Παραλείπει το υπόλοιπο τμήμα αυτού του μπλοκ επαναλήψεως, και συνεχίζει με την επόμενη επανάληψη."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Προειδοποίηση: Αυτό το μπλοκ μπορεί να χρησιμοποιηθεί μόνο μέσα σε μια επανάληψη."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "για κάθε στοιχείο %1 στη λίστα %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Για κάθε στοιχείο σε μια λίστα, ορίζει τη μεταβλητή «%1» στο στοιχείο και, στη συνέχεια, εκτελεί κάποιες εντολές."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "Blockly"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "μέτρησε με %1 από το %2 έως το %3 ανά %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Η μεταβλητή «%1» παίρνει τιμές ξεκινώντας από τον αριθμό έναρξης μέχρι τον αριθμό τέλους αυξάνοντας κάθε φορά με το καθορισμένο βήμα και εκτελώντας το καθορισμένο μπλοκ."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Πρόσθετει μια κατάσταση/συνθήκη στο μπλοκ «εάν»."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Προσθέτει μια τελική κατάσταση/συνθήκη, που πιάνει όλες τις άλλες περιπτώσεις, στο μπλοκ «εάν»."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Προσθέτει, αφαιρεί ή αναδιατάσσει τα τμήματα για να αναδιαμορφώσει αυτό το μπλοκ «εάν»."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "αλλιώς"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "εναλλακτικά εάν"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "εάν"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Αν μια τιμή είναι αληθής, τότε εκτελεί κάποιες εντολές."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Αν μια τιμή είναι αληθής, τότε εκτελεί το πρώτο τμήμα εντολών. Διαφορετικά, εκτελεί το δεύτερο τμήμα εντολών."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Αν η πρώτη τιμή είναι αληθής, τότε εκτελεί το πρώτο τμήμα εντολών. Διαφορετικά, αν η δεύτερη τιμή είναι αληθής, εκτελεί το δεύτερο μπλοκ εντολών."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Αν η πρώτη τιμή είναι αληθής, τότε εκτελεί το πρώτο τμήμα εντολών. Διαφορετικά, αν η δεύτερη τιμή είναι αληθής, εκτελεί το δεύτερο τμήμα εντολών. Αν καμία από τις τιμές δεν είναι αληθής, εκτελεί το τελευταίο τμήμα εντολών."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "κάνε"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "επανάλαβε %1 φορές"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Εκτελεί κάποιες εντολές αρκετές φορές."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "επανάλαβε μέχρι"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "επανάλαβε ενώ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Ενόσω μια τιμή είναι ψευδής, τότε εκτελεί κάποιες εντολές."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Ενόσω μια τιμή είναι αληθής, τότε εκτελεί κάποιες εντολές."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Να διαγραφούν και τα %1 μπλοκ;"; -Blockly.Msg["DELETE_BLOCK"] = "Διάγραψε Το Μπλοκ"; -Blockly.Msg["DELETE_VARIABLE"] = "Διαγράψτε την μεταβλητή '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Θέλετε να διαγράψετε το %1 που χρησιμοποιείτε της μεταβλητής '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Διάγραψε %1 Μπλοκ"; -Blockly.Msg["DISABLE_BLOCK"] = "Απενεργοποίησε Το Μπλοκ"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Διπλότυπο"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Διπλότυπο σχόλιο"; -Blockly.Msg["ENABLE_BLOCK"] = "Ενεργοποίησε Το Μπλοκ"; -Blockly.Msg["EXPAND_ALL"] = "Επέκτεινε Όλα Τα Μπλοκ"; -Blockly.Msg["EXPAND_BLOCK"] = "Επέκτεινε Το Μπλοκ"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Εξωτερικές Είσοδοι"; -Blockly.Msg["HELP"] = "Βοήθεια"; -Blockly.Msg["INLINE_INPUTS"] = "Εσωτερικές Είσοδοι"; -Blockly.Msg["IOS_CANCEL"] = "Ακυρώστε"; -Blockly.Msg["IOS_ERROR"] = "Σφάλμα"; -Blockly.Msg["IOS_OK"] = "ΟΚ"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "Εισάγετε στοιχείο"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Να επιτρέπονται οι δηλώσεις"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Αυτή η παράμετρος απαιτεί διπλή εισαγωγή στοιχείων"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ΕΙΣΑΓΟΜΕΝΑ ΣΤΟΙΧΕΙΑ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Προσθήκη"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "Προσθέσατε Μεταβλητή"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Διαγραφή"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Δεν μπορείτε να χρησιμοποιήσετε μια μεταβλητή δίχως όνομα"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Αλλάξετε το όνομα του αρχείου"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Όνομα μεταβλητής"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "δημιούργησε κενή λίστα"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Επιστρέφει μια λίστα, με μήκος 0, η οποία δεν περιέχει εγγραφές δεδομένων"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "λίστα"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Προσθέτει, αφαιρεί ή αναδιατάσσει τα τμήματα για να αναδιαμορφώσει αυτό το μπλοκ λίστας."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "δημιούργησε λίστα με"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Προσθέτει αντικείμενο στη λίστα."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Δημιουργεί λίστα με οποιονδήποτε αριθμό αντικειμένων."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "πρώτο"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# από το τέλος"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "πάρε"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "πάρε και αφαίρεσε"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "τελευταίο"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "τυχαίο"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "αφαίρεσε"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Επιστρέφει το πρώτο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Επιστρέφει το στοιχείο στην καθορισμένη θέση σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Επιστρέφει το τελευταίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Επιστρέφει ένα τυχαίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Καταργεί και επιστρέφει το πρώτο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Καταργεί και επιστρέφει το στοιχείο στην καθορισμένη θέση σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Καταργεί και επιστρέφει το τελευταίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Καταργεί και επιστρέφει ένα τυχαίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Καταργεί το πρώτο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Καταργεί το στοιχείο στην καθορισμένη θέση σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Καταργεί το τελευταίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Καταργεί ένα τυχαίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "έως # από το τέλος"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "έως #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "έως το τελευταίο"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "Blockly"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "πάρε υπολίστα από την αρχή"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "πάρε υπολίστα από # από το τέλος"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "πάρε υπολίστα από #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Δημιουργεί ένα αντίγραφο του καθορισμένου τμήματος μιας λίστας."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "Το %1 είναι το τελευταίο στοιχείο."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "Το %1 είναι το πρώτο στοιχείο."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "βρες την πρώτη εμφάνιση του στοιχείου"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "Blockly"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "βρες την τελευταία εμφάνιση του στοιχείου"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Επιστρέφει τον δείκτη της πρώτης/τελευταίας εμφάνισης του στοιχείου στη λίστα. Επιστρέφει τιμή %1, αν το στοιχείο δεν βρεθεί."; -Blockly.Msg["LISTS_INLIST"] = "στη λίστα"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "το %1 είναι κενό"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Επιστρέφει αληθής αν η λίστα είναι κενή."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "Blockly"; -Blockly.Msg["LISTS_LENGTH_TITLE"] = "το μήκος του %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Επιστρέφει το μήκος μιας λίστας."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "Blockly"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "δημιούργησε λίστα με το στοιχείο %1 να επαναλαμβάνεται %2 φορές"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Δημιουργεί μια λίστα που αποτελείται από την δεδομένη τιμή που επαναλαμβάνεται για συγκεκριμένο αριθμό επαναλήψεων."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "ανάκληση %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Α"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "σε"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "είσαγε στο"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "όρισε"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Εισάγει το στοιχείο στην αρχή μιας λίστας."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Εισάγει το στοιχείο στην καθορισμένη θέση σε μια λίστα."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Αναθέτει το στοιχείο στο τέλος μιας λίστας."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Εισάγει το στοιχείο τυχαία σε μια λίστα."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Ορίζει το πρώτο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Ορίζει το στοιχείο στην καθορισμένη θέση σε μια λίστα."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Ορίζει το τελευταίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Ορίζει ένα τυχαίο στοιχείο σε μια λίστα."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "Αύξουσα"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "Φθίνουσα"; -Blockly.Msg["LISTS_SORT_TITLE"] = "επιλογή %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Επιλέξετε ένα αντίγραφο της λίστας."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "αλφαβητικά, αγνοήστε το στοιχείο"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "αριθμητικό"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "Αλφαβητικά"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "κάνετε λίστα από το κείμενο"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "κάνετε κείμενο από τη λίστα"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Ενώστε μια λίστα κειμένων σε ένα κείμενο, που χωρίζονται από ένα διαχωριστικό."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Διαίρεση του κειμένου σε μια λίστα κειμένων, με σπάσιμο σε κάθε διαχωριστικό."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "με διαχωριστικό"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ψευδής"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Επιστρέφει είτε αληθής είτε ψευδής."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "αληθής"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Επιστρέφει αληθής αν και οι δύο είσοδοι είναι ίσες μεταξύ τους."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μεγαλύτερη από τη δεύτερη είσοδο."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μικρότερη ή ίση με τη δεύτερη είσοδο."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μικρότερη από τη δεύτερη είσοδο."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μικρότερη από ή ίση με τη δεύτερη είσοδο."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Επιστρέφει αληθής αν και οι δύο είσοδοι δεν είναι ίσες μεταξύ τους."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "όχι %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Επιστρέφει αληθής αν η είσοδος είναι ψευδής. Επιστρέφει ψευδής αν η είσοδος είναι αληθής."; -Blockly.Msg["LOGIC_NULL"] = "κενό"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Επιστρέφει κενό."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "και"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ή"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Επιστρέφει αληθής αν και οι δύο είσοδοι είναι αληθής."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Επιστρέφει αληθής αν τουλάχιστον μια από τις εισόδους είναι αληθής."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "έλεγχος"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "εάν είναι ψευδής"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "εάν είναι αληθής"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Ελέγχει την κατάσταση/συνθήκη στον «έλεγχο». Αν η κατάσταση/συνθήκη είναι αληθής, επιστρέφει την τιμή «εάν αληθής», διαφορετικά επιστρέφει την τιμή «εάν ψευδής»."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CE%B7%CF%84%CE%B9%CE%BA%CE%AE"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Επιστρέφει το άθροισμα των δύο αριθμών."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Επιστρέφει το πηλίκο των δύο αριθμών."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Επιστρέφει τη διαφορά των δύο αριθμών."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Επιστρέφει το γινόμενο των δύο αριθμών."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Επιστρέφει τον πρώτο αριθμό υψωμένο στη δύναμη του δεύτερου αριθμού."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%A0%CF%81%CF%8C%CF%83%CE%B8%CE%B5%CF%83%CE%B7"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "άλλαξε %1 από %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Προσθέτει έναν αριθμό στη μεταβλητή «%1»."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Επιστρέφει μία από τις κοινές σταθερές: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...), ή ∞ (άπειρο)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "περιόρισε %1 χαμηλή %2 υψηλή %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Περιορίζει έναν αριθμό μεταξύ των προβλεπόμενων ορίων (χωρίς αποκλεισμούς)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "είναι διαιρετός από το"; -Blockly.Msg["MATH_IS_EVEN"] = "είναι άρτιος"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "είναι αρνητικός"; -Blockly.Msg["MATH_IS_ODD"] = "είναι περιττός"; -Blockly.Msg["MATH_IS_POSITIVE"] = "είναι θετικός"; -Blockly.Msg["MATH_IS_PRIME"] = "είναι πρώτος"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Ελέγχει αν ένας αριθμός είναι άρτιος, περιττός, πρώτος, ακέραιος, θετικός, αρνητικός, ή αν είναι διαιρετός από έναν ορισμένο αριθμό. Επιστρέφει αληθής ή ψευδής."; -Blockly.Msg["MATH_IS_WHOLE"] = "είναι ακέραιος"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "υπόλοιπο της %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Επιστρέφει το υπόλοιπο της διαίρεσης των δύο αριθμών."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Ένας αριθμός."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "μέσος όρος λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "μεγαλύτερος λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "διάμεσος λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "μικρότερος λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "μορφές λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "τυχαίο στοιχείο λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "τυπική απόκλιση λίστας"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "άθροισμα λίστας"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Επιστρέφει τον αριθμητικό μέσο όρο από τις αριθμητικές τιμές στη λίστα."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Επιστρέφει τον μεγαλύτερο αριθμό στη λίστα."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Επιστρέφει τον διάμεσο της λίστας."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Επιστρέφει τον μικρότερο αριθμό στη λίστα."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Επιστρέφει μια λίστα με τα πιο κοινά στοιχεία στη λίστα."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Επιστρέφει ένα τυχαίο στοιχείο από τη λίστα."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Επιστρέφει την τυπική απόκλιση της λίστας."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Επιστρέφει το άθροισμα όλων των αριθμών στη λίστα."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^ ύψωση σε δύναμη"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%93%CE%B5%CE%BD%CE%BD%CE%AE%CF%84%CF%81%CE%B9%CE%B1_%CE%A4%CF%85%CF%87%CE%B1%CE%AF%CF%89%CE%BD_%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8E%CE%BD"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "τυχαίο κλάσμα"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Επιστρέψει ένα τυχαία κλάσμα μεταξύ 0,0 (κλειστό) και 1,0 (ανοικτό)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "τυχαίος ακέραιος από το %1 έως το %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Επιστρέφει έναν τυχαίο ακέραιο αριθμό μεταξύ δύο συγκεκριμένων ορίων (εντός - συμπεριλαμβανομένων και των ακραίων τιμών)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "στρογγυλοποίησε"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "στρογγυλοποίησε προς τα κάτω"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "στρογγυλοποίησε προς τα πάνω"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Στρογγυλοποιεί έναν αριθμό προς τα πάνω ή προς τα κάτω."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%A4%CE%B5%CF%84%CF%81%CE%B1%CE%B3%CF%89%CE%BD%CE%B9%CE%BA%CE%AE_%CF%81%CE%AF%CE%B6%CE%B1"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "απόλυτη"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "τετραγωνική ρίζα"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Επιστρέφει την απόλυτη τιμή ενός αριθμού."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Επιστρέφει το e υψωμένο στη δύναμη ενός αριθμού."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Επιστρέφει τον νεπέρειο λογάριθμο ενός αριθμού."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Επιστρέφει τον λογάριθμο με βάση το 10 ενός αριθμού."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Επιστρέφει την αρνητική ενός αριθμού."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Επιστρέφει το 10 υψωμένο στη δύναμη ενός αριθμού."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Επιστρέφει την τετραγωνική ρίζα ενός αριθμού."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "συν"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%A4%CF%81%CE%B9%CE%B3%CF%89%CE%BD%CE%BF%CE%BC%CE%B5%CF%84%CF%81%CE%B9%CE%BA%CE%AE_%CF%83%CF%85%CE%BD%CE%AC%CF%81%CF%84%CE%B7%CF%83%CE%B7"; -Blockly.Msg["MATH_TRIG_SIN"] = "ημ"; -Blockly.Msg["MATH_TRIG_TAN"] = "εφ"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Επιστρέφει το τόξο συνημίτονου ενός αριθμού."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Επιστρέφει το τόξο ημίτονου ενός αριθμού."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Επιστρέφει το τόξο εφαπτομένης ενός αριθμού."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Επιστρέφει το συνημίτονο ενός βαθμού (όχι ακτινίου)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Επιστρέφει το ημίτονο ενός βαθμού (όχι ακτινίου)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Επιστρέφει την εφαπτομένη ενός βαθμού (όχι ακτινίου)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Δημιουργία μεταβλητής χρώματος..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Δημιουργία μεταβλητής αριθμού..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Δημιουργία μεταβλητή συμβολοσειράς..."; -Blockly.Msg["NEW_VARIABLE"] = "Δημιουργήστε μεταβλητή"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Νέο όνομα μεταβλητής:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Νέος τύπος μεταβλητής:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "να επιτρέπονται οι δηλώσεις"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "με:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%94%CE%B9%CE%B1%CE%B4%CE%B9%CE%BA%CE%B1%CF%83%CE%AF%CE%B1_%28%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Εκτελεί την ορισμένη από τον χρήστη συνάρτηση «%1»."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%94%CE%B9%CE%B1%CE%B4%CE%B9%CE%BA%CE%B1%CF%83%CE%AF%CE%B1_%28%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Εκτελεί την ορισμένη από τον χρήστη συνάρτηση «%1» και χρησιμοποίησε την έξοδό της."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "με:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Δημιούργησε «%1»"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Περιγράψετε αυτήν την ιδιότητα.."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "κάνε κάτι"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "στο"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Δημιουργεί μια συνάρτηση χωρίς έξοδο."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "επέστρεψε"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Δημιουργεί μια συνάρτηση με μια έξοδο."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Προειδοποίηση: Αυτή η συνάρτηση έχει διπλότυπες παραμέτρους."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Επισημάνετε τον ορισμό συνάρτησης"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Αν μια τιμή είναι αληθής, τότε επιστρέφει τη δεύτερη τιμή."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Προειδοποίηση: Αυτό το μπλοκ μπορεί να χρησιμοποιηθεί μόνο στον ορισμό μιας συνάρτησης."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "όνομα εισόδου:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Πρόσθεσε μια είσοδος στη συνάρτηση"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "είσοδοι"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Προσθέτει, αφαιρεί ή αναδιατάσσει εισόδους σε αυτήν τη λειτουργία"; -Blockly.Msg["REDO"] = "Ακύρωση αναίρεσης"; -Blockly.Msg["REMOVE_COMMENT"] = "Αφαίρεσε Το Σχόλιο"; -Blockly.Msg["RENAME_VARIABLE"] = "Μετονόμασε τη μεταβλητή..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Μετονόμασε όλες τις μεταβλητές «%1» σε:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "έως %1 ανάθεσε κείμενο %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Αναθέτει κείμενο στη μεταβλητή «%1»."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "σε πεζά"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "σε Λέξεις Με Πρώτα Κεφαλαία"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "σε ΚΕΦΑΛΑΙΑ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Επιστρέφει ένα αντίγραφο του κειμένου σε διαφορετική μορφή γραμμάτων."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "πάρε το πρώτο γράμμα"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "πάρε το γράμμα # από το τέλος"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "πάρε το γράμμα #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "πάρε το τελευταίο γράμμα"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "πάρε τυχαίο γράμμα"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "στο κείμενο %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Επιστρέφει το γράμμα στην καθορισμένη θέση."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "αριθμός %1 σε %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Μετρά πόσες φορές κάποιο κείμενο εμφανίζεται μέσα σε ένα άλλο κείμενο."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Προσθέτει ένα στοιχείο στο κείμενο."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "ένωσε"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Προσθέτει, αφαιρεί ή αναδιατάσσει τους τομείς για να αναδιαμορφώσει αυτό το μπλοκ κειμένου."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "μέχρι το # γράμμα από το τέλος"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "μέχρι το # γράμμα"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "μέχρι το τελευταίο γράμμα"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "στο κείμενο"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "πάρε τη δευτερεύουσα συμβολοσειρά από το πρώτο γράμμα"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "πάρε τη δευτερεύουσα συμβολοσειρά από το # γράμμα από το τέλος"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "πάρε τη δευτερεύουσα συμβολοσειρά από το # γράμμα"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Επιστρέφει ένα συγκεκριμένο τμήμα του κειμένου."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "βρες την πρώτη εμφάνιση του κειμένου"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "βρες την τελευταία εμφάνιση του κειμένου"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "στο κείμενο %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Επιστρέφει τον δείκτη της πρώτης/τελευταίας εμφάνισης του πρώτου κειμένου στο δεύτερο κείμενο. Επιστρέφει τιμή %1, αν δε βρει το κείμενο."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "το %1 είναι κενό"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Επιστρέφει αληθής αν το παρεχόμενο κείμενο είναι κενό."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "δημιούργησε κείμενο με"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Δημιουργεί ένα κομμάτι κειμένου ενώνοντας έναν απεριόριστο αριθμό αντικειμένων."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "το μήκος του %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Επιστρέφει το πλήθος των γραμμάτων (συμπεριλαμβανομένων και των κενών διαστημάτων) στο παρεχόμενο κείμενο."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "εκτύπωσε %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Εκτυπώνει το καθορισμένο κείμενο, αριθμό ή άλλη τιμή."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Δημιουργεί προτροπή για τον χρήστη για να δώσει ένα αριθμό."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Δημιουργεί προτροπή για το χρήστη για να δώσει κάποιο κείμενο."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "πρότρεψε με μήνυμα για να δοθεί αριθμός"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "πρότρεψε με μήνυμα για να δοθεί κείμενο"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "αντικαταστήσετε το %1 με %2 σε %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Αντικαταστήστε όλα τα ήδη υπάρχοντα στοιχεία μέρους του κειμένου με κάποιο άλλο κείμενο"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "ανάκληση %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Αναγραμματισμός των χαρακτήρων του κειμένου"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://el.wikipedia.org/wiki/%CE%A3%CF%85%CE%BC%CE%B2%CE%BF%CE%BB%CE%BF%CF%83%CE%B5%CE%B9%CF%81%CE%AC"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Ένα γράμμα, μια λέξη ή μια γραμμή κειμένου."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "περίκοψε τα κενά και από τις δυο πλευρές του"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "περίκοψε τα κενά από την αριστερή πλευρά του"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "περίκοψε τα κενά από την δεξιά πλευρά του"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Επιστρέφει ένα αντίγραφο του κειμένου με αφαιρεμένα τα κενά από το ένα ή και τα δύο άκρα."; -Blockly.Msg["TODAY"] = "Σήμερα"; -Blockly.Msg["UNDO"] = "Αναίρεση"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "αντικείμενο"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Δημιούργησε «όρισε %1»"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Επιστρέφει την τιμή αυτής της μεταβλητής."; -Blockly.Msg["VARIABLES_SET"] = "όρισε %1 μέχρι το %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Δημιούργησε «πάρε %1»"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Ορίζει αυτή τη μεταβλητή να είναι ίση με την είσοδο."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Η μεταβλητή με το όνομα \"%1\" υπάρχει ήδη"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Μια μεταβλητή με όνομα '%1' υπάρχει πάντα για έναν άλλο τύπο: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Πείτε κάτι..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/en-gb.js b/lib/blockly/msg/js/en-gb.js deleted file mode 100644 index af2bd4e..0000000 --- a/lib/blockly/msg/js/en-gb.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Add Comment"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Change value:"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Collapse Blocks"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Collapse Block"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "colour 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "colour 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ratio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "blend"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Colour"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Choose a colour from the palette."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "random colour"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Choose a colour at random."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blue"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "green"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "red"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colour with"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "break out of loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "else"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "else if"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "if"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "do"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repeat %1 times"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repeat until"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repeat while"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; -Blockly.Msg["DELETE_BLOCK"] = "Delete Block"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Delete %1 Blocks"; -Blockly.Msg["DISABLE_BLOCK"] = "Disable Block"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicate"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Enable Block"; -Blockly.Msg["EXPAND_ALL"] = "Expand Blocks"; -Blockly.Msg["EXPAND_BLOCK"] = "Expand Block"; -Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; -Blockly.Msg["HELP"] = "Help"; -Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; -Blockly.Msg["IOS_ERROR"] = "Error"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descendente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "false"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "true"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "not %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "and"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "or"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "if false"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "if true"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; -Blockly.Msg["MATH_IS_EVEN"] = "is even"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; -Blockly.Msg["MATH_IS_ODD"] = "is odd"; -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "A number."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Create variable..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "New variable name:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Redo"; -Blockly.Msg["REMOVE_COMMENT"] = "Remove Comment"; -Blockly.Msg["RENAME_VARIABLE"] = "Rename variable..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; -Blockly.Msg["TODAY"] = "Today"; -Blockly.Msg["UNDO"] = "Undo"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another variable of type '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/en.js b/lib/blockly/msg/js/en.js deleted file mode 100644 index 44c602b..0000000 --- a/lib/blockly/msg/js/en.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Add Comment"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Change value:"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; -Blockly.Msg["COLLAPSE_ALL"] = "Collapse Blocks"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Collapse Block"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "colour 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "colour 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ratio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "blend"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Choose a colour from the palette."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "random colour"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Choose a colour at random."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blue"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "green"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "red"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colour with"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "break out of loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "else"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "else if"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "if"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "do"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repeat %1 times"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repeat until"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repeat while"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; -Blockly.Msg["DELETE_BLOCK"] = "Delete Block"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Delete %1 Blocks"; -Blockly.Msg["DISABLE_BLOCK"] = "Disable Block"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicate"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; -Blockly.Msg["ENABLE_BLOCK"] = "Enable Block"; -Blockly.Msg["EXPAND_ALL"] = "Expand Blocks"; -Blockly.Msg["EXPAND_BLOCK"] = "Expand Block"; -Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; -Blockly.Msg["HELP"] = "Help"; -Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; -Blockly.Msg["IOS_ERROR"] = "Error"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; -Blockly.Msg["LISTS_INLIST"] = "in list"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "false"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "true"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "not %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "and"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; -Blockly.Msg["LOGIC_OPERATION_OR"] = "or"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "if false"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "if true"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; -Blockly.Msg["MATH_IS_EVEN"] = "is even"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; -Blockly.Msg["MATH_IS_ODD"] = "is odd"; -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "A number."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; -Blockly.Msg["NEW_VARIABLE"] = "Create variable..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "New variable name:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; -Blockly.Msg["REDO"] = "Redo"; -Blockly.Msg["REMOVE_COMMENT"] = "Remove Comment"; -Blockly.Msg["RENAME_VARIABLE"] = "Rename variable..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; -Blockly.Msg["TODAY"] = "Today"; -Blockly.Msg["UNDO"] = "Undo"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/eo.js b/lib/blockly/msg/js/eo.js deleted file mode 100644 index d177a33..0000000 --- a/lib/blockly/msg/js/eo.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Aldoni komenton"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ne povas forigi la variablon '%1' ĉar ĝi estas parto de la difino de la funkcio '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ŝangi valoron:"; -Blockly.Msg["CLEAN_UP"] = "Purigi blokojn"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Falditaj blokoj enhavas avertojn."; -Blockly.Msg["COLLAPSE_ALL"] = "Faldi blokojn"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Faldi blokon"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "koloro 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "koloro 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporcio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "miksi"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Kunmiksas du kolorojn laŭ specifita proporcio (0,0 - 1,0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://eo.wikipedia.org/wiki/Koloro"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Elekti koloron el la paletro."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "hazarda koloro"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Elekti hazardan koloron."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blua"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verda"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ruĝa"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "kolorigi per"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Kreas koloron kun specifita kvanto de ruĝo, verdo, kaj bluo. Ĉiuj valoroj devas esti inter 0 kaj 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "eliri el la ciklo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "daŭrigi je la venonta ripeto de la ciklo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Eliri el la enhava ciklo."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Pretersalti la ceteron de tiu ĉi ciklo kaj daŭrigi je la venonta ripeto."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Averto: tiu ĉi bloko uzeblas nur ene de ciklo."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "por ĉiu elemento %1 en la listo %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Pri ĉiu elemento en listo, difinas la variablon '%1' al la elemento, kaj faras kelkajn ordonojn."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "kalkuli kun variablo %1 ekde %2 ĝis %3 per diferenco %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Varias la variablon '%1', ekde la komenca nombro ĝis la fina nombro, laŭ la specifita diferenco; dume rulas la specifitajn blokojn."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Aldoni kondiĉon al la bloko 'se'"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Aldoni 'aliokaze' kondiĉon al la 'se' bloko."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Aldoni, forigi aŭ reorganizi partojn por reagordi la 'se'-blokon."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "alie"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "alie se"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "se"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Plenumi ordonojn se la valoro estas vero."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Plenumi la unuan blokon de ordonoj se la valoro estas vero, se ne, la duan."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Se la unua valoro estas vero, do faras la unuan blokon de ordonoj. Alie, se la dua valoro estas vero, do faras la duan blokon de ordonoj."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Se la unua valoro estas vero, do faras la unuan blokon de ordonoj. Alie, se la dua valoro estas vero, do faras la duan blokon de ordonoj. Se neniu el la du valoroj estas vero, do faras la lastan blokon de ordonoj."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://eo.wikipedia.org/wiki/Iteracio"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "fari"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ripeti %1 fojojn"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Plenumas kelkajn ordonojn plurfoje."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ripeti ĝis"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ripeti dum"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Plenumi ordonojn dum valoro egalas malvero."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Plenumi ordonojn dum la valoro egalas veron."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ĉu forigi ĉiujn %1 blokojn?"; -Blockly.Msg["DELETE_BLOCK"] = "Forigi blokon"; -Blockly.Msg["DELETE_VARIABLE"] = "Forigi la variablon '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Ĉu forigi %1 uzojn de la variablo '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Forigi %1 blokojn"; -Blockly.Msg["DISABLE_BLOCK"] = "Malŝalti blokon"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duobligi"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duobligi Komenton"; -Blockly.Msg["ENABLE_BLOCK"] = "Ŝalti blokon"; -Blockly.Msg["EXPAND_ALL"] = "Malfaldi blokojn"; -Blockly.Msg["EXPAND_BLOCK"] = "Malfaldi blokon"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Eksteraj eniroj"; -Blockly.Msg["HELP"] = "Helpo"; -Blockly.Msg["INLINE_INPUTS"] = "Entekstaj eniroj"; -Blockly.Msg["IOS_CANCEL"] = "Nuligi"; -Blockly.Msg["IOS_ERROR"] = "Eraro"; -Blockly.Msg["IOS_OK"] = "Bone"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Aldoni eniron"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permesi ordonojn"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ĉi tiu funkcio havas du samnomajn enirojn."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENIROJ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Aldoni"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Aldoni Variablon"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Forigi"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "La nomo de la variablo devas esti ne malplena."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Alinomigi"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nomo de variablo"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "krei malplenan liston"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Liveri liston, de longo 0, sen datenaj rikordoj"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "listo"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Aldoni, forigi aŭ ordigi partojn por reagordi la listan blokon."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "krei liston kun"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Aldoni elementon al la listo."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Krei liston kun ajna nombro de elementoj."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "unuan"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "#el la fino"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "akiri"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "akiri kaj forigi"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "lastan"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "hazardan"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "forigi"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "La unua elemento en la listo esto liverita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Liveri la elementon ĉe la specifita pozicio en listo."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Liveri la lastan elementon en la listo."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Hazarda elemento en la listo estos liverita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "La unua elemento en la listo estos liverita kaj forigita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Liveri kaj forigi la elementon en la specifita pozicio de la listo."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Forigi kaj liveri la lastan elementon en listo."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Hazarda elemento en la listo estos liverita kaj forigita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "La unua elemento en la listo estos forigita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "La elemento en la specifita pozicio en la listo estos forigita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "La lasta elemento en la listo estos forigita."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Hazarda elemento en la listo estos forigita."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ĝis elemento de inversa numero"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ĝis elemento de numero"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ĝis la lasta elemento"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "akiri subliston ekde la unua elemento"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "akiri subliston ekde elemento de inversa numero"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "akiri subliston ekde elemento de numero"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Kreas kopion de la specifita parto de listo."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 estas la lasta elemento."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 estas la unua elemento."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "trovi la unuan aperon de elemento"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "trovi la lastan aperon de elemento"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "La indekso de la unua/lasta apero de la elemento en la listo estos liverita. %1 estos liverita se la elemento ne estas trovita."; -Blockly.Msg["LISTS_INLIST"] = "en la listo"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 malplenas"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Liveri veron, se la listo malplenas."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longo de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Liveri la longon de listo."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "krei liston kun elemento %1 ripetita %2 fojojn"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Listo kun la specifita nombro de elementoj, kiuj havos la donitan valoron, estos kreita."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inversigi liston %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inversigi kopion de listo."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "kiel"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "enmeti je"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "difini"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Antaŭaldonas la elementon ĉe la komenco de listo."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Enigas la elementon ĉe specifita pozicio en listo."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Postaldonas la elementon ĉe la fino de listo."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Enigas la elementon hazarde en listo."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Difinas la unua elementon en listo."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Difinas la elementon ĉe la specifita pozicio en listo"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Difinas la lastan elementon en listo."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Difinas hazardan elementon en listo."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "kreskante"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "malkreskante"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ordigi %1 %2 liston %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordigas kopion de listo."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabete, ignorante usklon"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "nombre"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabete"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "fari liston el teksto"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "fari tekston el listo"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Kunigas liston de tekstoj en unu tekston, kun apartigilo inter la elementoj."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Disdividas tekston en liston da tekstoj, laŭ apartigilo."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "kun apartigilo"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falsa"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Liveri ĉu veron ĉu malveron."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "vera"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://eo.wikipedia.org/wiki/Neegala%C4%B5o_(pli_granda,_malpli_granda)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Liveri veron, se la du eniroj egalas."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Liveri veron, se la unua eniro estas pli granda ol la dua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Vero estos liverita, se la unua eniro estas pli granda aŭ egala al la dua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Liveri veron, se la unua eniro estas pli malgranda ol la dua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Vero estos liverita, se la unua eniro estas pli eta aŭ egala al la dua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Liveri veron, se la du eniroj ne egalas."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "maligi %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Liveri veron, se la eniro egalas malveron. Liveri malveron, se la eniro egalas veron."; -Blockly.Msg["LOGIC_NULL"] = "senvalora"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Liveras senvaloron."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "kaj"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "aŭ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Liveri veron, se la du eniroj egalas veron."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Liveri veron, se almenaŭ unu el la eniroj egalas veron."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "testi"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se estas malvero"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se estas vero"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kontroli la kondiĉon en 'testo'. Se la kondiĉo egalas veron, liveri la valoron 'se estas vero', aliokaze liveri la valoron 'se estas malvero'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://eo.wikipedia.org/wiki/Aritmetiko"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Liveri la sumon de la du nombroj."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Liveri la kvocienton de la du nombroj."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Liveri la diferencon inter la du nombroj."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "La produto de la du numeroj estos liverita."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Livero la tian potencon de la unua nombro, kia la dua nombro estas"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://eo.wikipedia.org/wiki/Inversa_trigonometria_funkcio#Duargumenta_varianto_de_tangentarko"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 de X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Liveras la arkotangenton de punkto (X, Y) en gradoj inter -180 kaj 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://eo.wikipedia.org/wiki/Kremento"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "krementi %1 per %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Aldoni nombron al variablo '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://eo.wikipedia.org/wiki/Matematika_konstanto"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Liveras unu el la ofte uzataj konstantoj: π (3,141…), e (2,718…), φ (1,618…), √2 (1,414…), √½ (0,707…), aŭ ∞ (malfinio)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "limigi %1 inter %2 kaj %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "La nombro estos limigita tiel ke ĝi egalas la limojn aŭ troviĝas inter ili."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "estas dividebla de"; -Blockly.Msg["MATH_IS_EVEN"] = "estas para"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "estas negativa"; -Blockly.Msg["MATH_IS_ODD"] = "estas nepara"; -Blockly.Msg["MATH_IS_POSITIVE"] = "estas pozitiva"; -Blockly.Msg["MATH_IS_PRIME"] = "estas primo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Vero aŭ malvero estos liverita, depende de la rezulto de kontrolo, ĉu nombro estas para, nepara, pozitiva, negativa, aŭ dividebla de iu nombro."; -Blockly.Msg["MATH_IS_WHOLE"] = "estas entjero"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://eo.wikipedia.org/wiki/Resto"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resto de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Liveri la reston de la divido de la du nombroj."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://eo.wikipedia.org/wiki/Nombro"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Nombro."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "listmezumo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "listmaksimumo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediano de listo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "listminimumo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modoj de listo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "hazarda elemento el la listo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "Norma devio de la listo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sumo de listo"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Liveri la aritmetikan meznombron de la nombroj en la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Liveri la plej grandan nombron en la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Liveras la medianan nombron en la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Liveri la plej malgrandan nombron en la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Liveras liston de la plej ofta(j) elemento(j) en la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Liveri hazardan elementon el la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Liveri la norman devion de la listo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Liveri la sumon de ĉiuj nombroj en la listo."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://eo.wikipedia.org/wiki/Hazardo"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "hazarda frakcio"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Liveras hazardan frakcion inter 0,0 (inkluzive) kaj 1,0 (ekskluzive)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "hazarda entjero inter %1 kaj %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Nombro estos hazarde liverita, tiel ke ĝi egalas la limojn aŭ troviĝas inter ili."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "rondigi"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "rondigi malsupren"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "Rondigi supren"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Rondigi nombroj, supren aŭ malsupren."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://eo.wikipedia.org/wiki/Kvadrata_radiko"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluta"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadrata radiko"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Liveri la absolutan valoron de nombro."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Liveri potencon de e."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Liveri la naturan logaritmon de nombro."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "La dekbaza logaritmo de numero estos liverita."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "La negativigo de numero estos liverita."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Liveri tian potencon de 10, kia la eniro estas."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Liveri la kvadratan radikon de nombro."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://eo.wikipedia.org/wiki/Trigonometria_funkcio"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Liveras la arkokosinuson de nombro."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "La sinusarko de nombro estos liverita."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "La targentarko de nombro estos liverita."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Liveras la kosinuson de angulo en gradoj (ne radianoj)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Liveras la sinuson de angulo en gradoj (ne radianoj)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Liveras la tangenton de angulo en gradoj (ne radianoj)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Krei koloran variablon..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Krei nombran variablon..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Krei signoĉenan variablon..."; -Blockly.Msg["NEW_VARIABLE"] = "Nova variablo..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nova nomo de variablo:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tipo de nova variablo:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permesi ordonojn"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "kun:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://eo.wikipedia.org/wiki/Subprogramo"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Ruli la uzanto-difinitan funkcion '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://eo.wikipedia.org/wiki/Subprogramo"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Ruli la uzanto-difinitan funkcion '%1' kaj uzi ĝian eliron."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "kun:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Krei '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Priskribi ĉi tiun funkcion..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fari ion"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "por"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Krei funkcion sen eliro."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "liveri"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Krei funkcion kun unu eliro."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Averto: la funkcio havas du parametrojn kun la sama nomo."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Emfazi difinon de funkcio"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Se valoro estas vero, do liveras duan valoron."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Averto: Ĉi tiu bloko estas uzebla nur en difino de funkcio."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nomo de enigo:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Aldoni eniron al la funkcio."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "eniroj"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Aldoni, forigi, aŭ reorganizi enirojn je ĉi tiu funkcio."; -Blockly.Msg["REDO"] = "Refari"; -Blockly.Msg["REMOVE_COMMENT"] = "Forigi komenton"; -Blockly.Msg["RENAME_VARIABLE"] = "Renomi variablon..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renomi ĉiujn '%1' variablojn kiel:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "al %1 postaldoni tekston %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Postapendi iom da teksto al variablo '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "minuskligi"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Nomuskligi"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "MAJUSKLIGI"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Liveras kopion de la teksto je alia usklo."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "akiri unuan literon"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "akiri literon de inversa numero"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "akiri literon de numero"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "akiri lastan literon"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "akiri hazardan literon"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "en la teksto %1, %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Liveras literon ĉe specifita loko."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "kalkuli la okazojn de %1 en %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Kalkuli kiomfoje iu teksto okazas en iu alia teksto."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Aldoni eron al la teksto."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "kunigi"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Aldonu, forigu, aŭ reorganizu partojn por reagordi la tekstan blokon."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "ĝis litero de inversa numero"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "ĝis litero de numero"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "ĝis lasta litero"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "en la teksto"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "akiri subsignoĉenon ekde la unua litero"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "akiri subsignoĉenon ekde litero de inversa numero"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "akiri subsignoĉenon ekde litero de numero"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Liveri specifitan parto de la teksto."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "trovi la unuan okazon de teksto"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "trovi la lastan okazon de teksto"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "en la teksto %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Liveras indekson de la unua/lasta okazo de la unua teksto en la dua teksto. Liveras %1 se la unua teksto ne okazas en la dua teksto."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 malplenas"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Liveras veron, se la provizita teksto estas malplena."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "krei tekston kun"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Krei pecon de teksto per kunigi ajnan nombron de eroj."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longo de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Liveras la nombron de literoj (inkluzive de spacetoj) en la provizita teksto."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "presi %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Presi la specifitan tekston, nombron aŭ alian valoron."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Peti nombron al uzanto."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Peti tekston al uzanto."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "ricevi nombron per mesaĝo"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "ricevi tekston per mesaĝo"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "anstataŭigi tekston %1 per %2 en %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Anstataŭigi ĉiujn okazojn de iu teksto en alia teksto."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inversigi tekston %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inversigi la ordon de la skribsignoj en la teksto."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://eo.wikipedia.org/wiki/Signoĉeno"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Litero, vorto, aŭ linio da teksto."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "forigi spacetojn for de ambaŭ finoj de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "forigi spacetojn for de maldekstra fino de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "forigi spacetojn for de dekstra fino de"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Liveras kopion de teksto, de kies fino(j) spacetoj foriĝis."; -Blockly.Msg["TODAY"] = "Hodiaŭ"; -Blockly.Msg["UNDO"] = "Malfari"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elemento"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Krei blokon 'difini variablon %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Liveras la valoron de ĉi tiu variablo."; -Blockly.Msg["VARIABLES_SET"] = "difini %1 kiel %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Krei blokon 'akiri variablon %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Difinas ĉi tiun variablon kiel la eniron."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Jam ekzistas variablo kun la nomo '%1'."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Jam ekzistas variablo kun la nomo '%1' por alia tipo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Diru ion…"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/es.js b/lib/blockly/msg/js/es.js deleted file mode 100644 index cbb6022..0000000 --- a/lib/blockly/msg/js/es.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Añadir comentario"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "No se puede eliminar la variable '%1' porque es parte de la definición de la función '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Cambiar el valor:"; -Blockly.Msg["CLEAN_UP"] = "Limpiar los bloques"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Bloques colapsados contienen advertencias."; -Blockly.Msg["COLLAPSE_ALL"] = "Contraer bloques"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Contraer bloque"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "color 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "color 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporción"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "combinar"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Combina dos colores con una proporción determinada (0,0-1,0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://es.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Elige un color de la paleta."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "color aleatorio"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Elige un color al azar."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "azul"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "rojo"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colorear con"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Crea un color con cantidades específicas de rojo, verde y azul. Todos los valores deben encontrarse entre 0 y 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "romper el bucle"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continuar con la siguiente iteración del bucle"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Romper el bucle que lo contiene."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Saltar el resto de este bucle, y continuar con la siguiente iteración."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Atención: este bloque puede usarse solamente dentro de un bucle."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://es.wikipedia.org/wiki/Foreach"; -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "para cada elemento %1 en la lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Para cada elemento en una lista, establecer la variable '%1' al elemento y luego hacer algunas declaraciones."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "contar con %1 desde %2 hasta %3 de a %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Hacer que la variable \"%1\" tome los valores desde el número de inicio hasta el número final, contando con el intervalo especificado, y hacer los bloques especificados."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Agregar una condición a este bloque."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Agregar una condición general final a este bloque."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Agregar, eliminar o reordenar las secciones para reconfigurar este bloque."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "sino"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "sino si"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "si"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Si un valor es verdadero, entonces hacer algunas declaraciones."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Si un valor es verdadero, entonces hacer el primer bloque de declaraciones. De lo contrario, hacer el segundo bloque de declaraciones."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Si el primer valor es verdadero, entonces hacer el primer bloque de declaraciones. De lo contrario, si el segundo valor es verdadero, hacer el segundo bloque de declaraciones."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Si el primer valor es verdadero, entonces hacer el primer bloque de declaraciones. De lo contrario, si el segundo valor es verdadero, hacer el segundo bloque de declaraciones. Si ninguno de los valores son verdaderos, hacer el último bloque de declaraciones."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "hacer"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repetir %1 veces"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Hacer algunas declaraciones varias veces."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repetir hasta"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repetir mientras"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Mientras un valor sea falso, entonces hacer algunas declaraciones."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Mientras un valor sea verdadero, entonces hacer algunas declaraciones."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "¿Eliminar todos los %1 bloques?"; -Blockly.Msg["DELETE_BLOCK"] = "Eliminar bloque"; -Blockly.Msg["DELETE_VARIABLE"] = "Borrar la variable \"%1\""; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "¿Borrar %1 usos de la variable '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Eliminar %1 bloques"; -Blockly.Msg["DISABLE_BLOCK"] = "Desactivar bloque"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicar"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicar comentario"; -Blockly.Msg["ENABLE_BLOCK"] = "Activar bloque"; -Blockly.Msg["EXPAND_ALL"] = "Expandir bloques"; -Blockly.Msg["EXPAND_BLOCK"] = "Expandir bloque"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entradas externas"; -Blockly.Msg["HELP"] = "Ayuda"; -Blockly.Msg["INLINE_INPUTS"] = "Entradas en línea"; -Blockly.Msg["IOS_CANCEL"] = "Cancelar"; -Blockly.Msg["IOS_ERROR"] = "Error"; -Blockly.Msg["IOS_OK"] = "Aceptar"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Añadir entrada"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permitir declaraciones"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Esta función tiene entradas duplicadas."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRADAS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Añadir"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Añadir variable"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Borrar"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "No puedes usar un nombre de variable vacío."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Renombrar"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nombre de la variable"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "crear lista vacía"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Devuelve una lista, de longitud 0, sin ningún dato"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Agregar, eliminar o reorganizar las secciones para reconfigurar este bloque de lista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "crear lista con"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Agregar un elemento a la lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Crear una lista con cualquier número de elementos."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primero"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# del final"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "obtener"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obtener y eliminar"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "último"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aleatorio"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "eliminar"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Devuelve el primer elemento de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Devuelve el elemento en la posición especificada en una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Devuelve el último elemento de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Devuelve un elemento aleatorio en una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Elimina y devuelve el primer elemento de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Elimina y devuelve el elemento en la posición especificada en una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Elimina y devuelve el último elemento de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Elimina y devuelve un elemento aleatorio en una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Elimina el primer elemento de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Elimina el elemento en la posición especificada en una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Elimina el último elemento de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Elimina un elemento aleatorio en una lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "hasta # del final"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "hasta #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "hasta el último"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "obtener sublista desde el primero"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "obtener sublista desde # del final"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "obtener sublista desde #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Crea una copia de la parte especificada de una lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 es el último elemento."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 es el primer elemento."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "encontrar la primera aparición del elemento"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "encontrar la última aparición del elemento"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Devuelve el índice de la primera/última aparición del elemento en la lista. Devuelve %1 si el elemento no se encuentra."; -Blockly.Msg["LISTS_INLIST"] = "en la lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 está vacía"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Devuelve verdadero si la lista está vacía."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longitud de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Devuelve la longitud de una lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "crear lista con el elemento %1 repetido %2 veces"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Crea una lista que consta de un valor dado repetido el número de veces especificado."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "invertir %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Invertir una copia de una lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "como"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insertar en"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "establecer"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserta el elemento al inicio de una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserta el elemento en la posición especificada en una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Añade el elemento al final de una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserta el elemento aleatoriamente en una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Establece el primer elemento de una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Establece el elemento en la posición especificada en una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Establece el último elemento de una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Establece un elemento aleatorio en una lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascendente"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descendente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "orden %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordenar una copia de una lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabético, ignorar mayúscula/minúscula"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numérico"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabético"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "hacer lista a partir de texto"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "hacer texto a partir de lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Unir una lista de textos en un solo texto, separado por un delimitador."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Dividir el texto en una lista de textos, separando en cada delimitador."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "con delimitador"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falso"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Devuelve verdadero o falso."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "verdadero"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://es.wikipedia.org/wiki/Desigualdad_matemática"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Devuelve verdadero si ambas entradas son iguales."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Devuelve verdadero si la primera entrada es mayor que la segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Devuelve verdadero si la primera entrada es mayor o igual a la segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Devuelve verdadero si la primera entrada es menor que la segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Devuelve verdadero si la primera entrada es menor que o igual a la segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Devuelve verdadero si ambas entradas son distintas."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "no %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Devuelve verdadero si la entrada es falsa. Devuelve falso si la entrada es verdadera."; -Blockly.Msg["LOGIC_NULL"] = "nulo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Devuelve nulo."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "y"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Devuelve verdadero si ambas entradas son verdaderas."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Devuelve verdadero si al menos una de las entradas es verdadera."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "prueba"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "si es falso"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "si es verdadero"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Comprueba la condición en \"prueba\". Si la condición es verdadera, devuelve el valor \"si es verdadero\"; de lo contrario, devuelve el valor \"si es falso\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://es.wikipedia.org/wiki/Aritmética"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Devuelve la suma de ambos números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Devuelve el cociente de ambos números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Devuelve la diferencia de ambos números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Devuelve el producto de ambos números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Devuelve el primer número elevado a la potencia del segundo."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://es.wikipedia.org/wiki/Arcotangente_de_dos_par%C3%A1metros"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "Arcotangente de X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Regresar el arcotangente del punto (X,Y) en grados de -180 a 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "añadir %2 a %1"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Añadir un número a la variable «%1»."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://es.wikipedia.org/wiki/Anexo:Constantes_matemáticas"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Devuelve una de las constantes comunes: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) o ∞ (infinito)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "limitar %1 entre %2 y %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Limitar un número entre los límites especificados (inclusive)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "es divisible por"; -Blockly.Msg["MATH_IS_EVEN"] = "es par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "es negativo"; -Blockly.Msg["MATH_IS_ODD"] = "es impar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "es positivo"; -Blockly.Msg["MATH_IS_PRIME"] = "es primo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Comprueba si un número es par, impar, primo, entero, positivo, negativo, o si es divisible por un número determinado. Devuelve verdadero o falso."; -Blockly.Msg["MATH_IS_WHOLE"] = "es entero"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resto de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Devuelve el resto al dividir los dos números."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://es.wikipedia.org/wiki/Número"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un número."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "promedio de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "máximo de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "mínimo de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modas de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "elemento aleatorio de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "desviación estándar de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma de la lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Devuelve el promedio (media aritmética) de los valores numéricos en la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Devuelve el número más grande en la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Devuelve la mediana en la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Devuelve el número más pequeño en la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Devuelve una lista de los elementos más comunes en la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Devuelve un elemento aleatorio de la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Devuelve la desviación estándar de la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Devuelve la suma de todos los números en la lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://es.wikipedia.org/wiki/Generador_de_números_aleatorios"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fracción aleatoria"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Devuelve una fracción aleatoria entre 0,0 (ambos inclusive) y 1.0 (exclusivo)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://es.wikipedia.org/wiki/Generador_de_números_aleatorios"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "entero aleatorio de %1 a %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Devuelve un entero aleatorio entre los dos límites especificados, inclusive."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://es.wikipedia.org/wiki/Redondeo"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "redondear"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "redondear a la baja"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "redondear al alza"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Redondear un número al alza o a la baja."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://es.wikipedia.org/wiki/Ra%C3%ADz_cuadrada"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluto"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "raíz cuadrada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Devuelve el valor absoluto de un número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Devuelve e a la potencia de un número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Devuelve el logaritmo natural de un número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Devuelve el logaritmo base 10 de un número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Devuelve la negación de un número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Devuelve 10 a la potencia de un número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Devuelve la raíz cuadrada de un número."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://es.wikipedia.org/wiki/Función_trigonométrica"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Devuelve el arcocoseno de un número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Devuelve el arcoseno de un número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Devuelve el arcotangente de un número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Devuelve el coseno de un grado (no radián)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Devuelve el seno de un grado (no radián)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Devuelve la tangente de un grado (no radián)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crear una variable de color..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crear una variable de número..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Crear una cadena variable..."; -Blockly.Msg["NEW_VARIABLE"] = "Crear variable…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nombre de variable nueva:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nuevo tipo de variable:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permitir declaraciones"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://es.wikipedia.org/wiki/Subrutina"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Ejecuta la función definida por el usuario '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://es.wikipedia.org/wiki/Subrutina"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Ejecuta la función definida por el usuario '%1' y usa su salida."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Crear '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe esta función..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "hacer algo"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "para"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Crea una función sin salida."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "devuelve"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Crea una función con una salida."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Advertencia: Esta función tiene parámetros duplicados."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Destacar definición de la función"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Si un valor es verdadero, entonces devuelve un segundo valor."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Advertencia: Este bloque solo puede ser utilizado dentro de la definición de una función."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nombre de entrada:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Añadir una entrada a la función."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entradas"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Añadir, eliminar o reordenar entradas para esta función."; -Blockly.Msg["REDO"] = "Rehacer"; -Blockly.Msg["REMOVE_COMMENT"] = "Eliminar comentario"; -Blockly.Msg["RENAME_VARIABLE"] = "Cambiar nombre de variable…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renombrar todas las variables «%1» a:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 añade el texto %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Añadir texto a la variable '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "a minúsculas"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "a Mayúsculas Cada Palabra"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "a MAYÚSCULAS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Devuelve una copia del texto en un tamaño diferente."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "obtener la primera letra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "obtener la letra # del final"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "obtener la letra #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "obtener la última letra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "obtener letra aleatoria"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "en el texto %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Devuelve la letra en la posición especificada."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "contar %1 en %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Cuantas veces aparece un texto dentro de otro texto."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Agregar un elemento al texto."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Agregar, eliminar o reordenar las secciones para reconfigurar este bloque de texto."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "hasta la letra # del final"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "hasta la letra #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "hasta la última letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "en el texto"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "obtener subcadena desde la primera letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "obtener subcadena desde la letra # del final"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "obtener subcadena desde la letra #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Devuelve una porción determinada del texto."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "encontrar la primera aparición del texto"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "encontrar la última aparición del texto"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "en el texto %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Devuelve el índice de la primera/última aparición del primer texto en el segundo texto. Devuelve %1 si el texto no se encuentra."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 está vacío"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Devuelve verdadero si el texto proporcionado está vacío."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "crear texto con"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Crear un fragmento de texto al unir cualquier número de elementos."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longitud de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Devuelve el número de letras (espacios incluidos) del texto proporcionado."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "imprimir %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Imprimir el texto, número u otro valor especificado."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Solicitar al usuario un número."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Solicitar al usuario un texto."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "solicitar número con el mensaje"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "solicitar texto con el mensaje"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "reemplazar %1 con %2 en %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Reemplazar todas las veces que un texto dentro de otro texto."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "invertir %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Invierte el orden de los caracteres en el texto."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://es.wikipedia.org/wiki/Cadena_de_caracteres"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Una letra, palabra o línea de texto."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "quitar espacios de ambos lados de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "quitar espacios iniciales de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "quitar espacios finales de"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Devuelve una copia del texto sin los espacios de uno o ambos extremos."; -Blockly.Msg["TODAY"] = "Hoy"; -Blockly.Msg["UNDO"] = "Deshacer"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elemento"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crear 'establecer %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Devuelve el valor de esta variable."; -Blockly.Msg["VARIABLES_SET"] = "establecer %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crear 'obtener %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Establece esta variable para que sea igual a la entrada."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Ya existe una variable llamada '%1'."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Ya existe una variable nombrada '%1' para otra variable del tipo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Di algo…"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/et.js b/lib/blockly/msg/js/et.js deleted file mode 100644 index be0c997..0000000 --- a/lib/blockly/msg/js/et.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Lisa kommentaar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Muutujat '%1' ei saa kustutada, sest see on osa funktsiooni '%2' määratlusest"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Muuda väärtust:"; -Blockly.Msg["CLEAN_UP"] = "Korista plokid kokku"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Tõmba plokid kokku"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Tõmba plokk kokku"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "1. värvist"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "2. värvist"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "suhtega"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "segu"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Segab kaks värvi määratud suhtega (0.0 - 1.0) kokku."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Valitud värv paletist."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "juhuslik värv"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Juhuslikult valitud värv."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "sinisest"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "rohelisest"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "punasest"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "segu"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Tekitab värvi määratud hulgast punasest, rohelisest ja sinisest. Kõik väärtused peavad olema 0 ja 100 vahel."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "välju kordusest"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "katkesta see kordus ja liigu järgmisele"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Väljub kordusest ja liigub edasi korduse järel oleva koodi käivitamisele."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Katkestab korduses oleva koodi käivitamise ja käivitab järgmise korduse."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Hoiatus: Seda plokki saab kasutada ainult korduse sees."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "iga elemendiga %1 loendis %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Iga elemendiga loendis anna muutujale '%1' elemendi väärtus ja kõivita plokis olevad käsud."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "loendus muutujaga %1 alates %2 kuni %3, %4 kaupa"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Annab muutujale '%1' väärtused ühest numbrist teiseni, muutes seda intervalli kaupa ja käivitab igal muudatusel ploki sees oleva koodi."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Lisab „kui“ plokile tingimuse."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Lisab „kui“ plokile lõpliku tingimuseta koodiploki."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Selle „kui“ ploki muutmine sektsioonide lisamise, eemaldamise ja järjestamisega."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "vastasel juhul"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "vastasel juhul, kui"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "kui"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Kui avaldis on tõene, käivita ploki sees olevad käsud."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Kui avaldis on tõene, käivita käsud esimesest plokist. Vastasel juhul käivita käsud teisest plokist."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Kui esimene avaldis on tõene, käivita käsud esimesest plokist. Vastasel juhul, kui teine avaldis on tõene, käivita käsud teisest plokist."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Kui esimene avaldis on tõene, käivita käsud esimesest plokist. Vastasel juhul, kui teine avaldis on tõene, käivita käsud teisest plokist. Kui ükski avaldistest pole tõene, käivita käsud viimasest plokist."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "käivita"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 korda"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Plokis olevate käskude käivitamine määratud arv kordi."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "seni kuni pole"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "seni kuni on"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Plokis olevaid käske korratakse seni kui avaldis pole tõene."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Plokis olevaid käske korratakse seni kui avaldis on tõene."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Kas kustutada kõik %1 plokki?"; -Blockly.Msg["DELETE_BLOCK"] = "Kustuta plokk"; -Blockly.Msg["DELETE_VARIABLE"] = "Kustuta muutuja '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Kas kustutada %1 kohas kasutatav muutuja '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Kustuta %1 plokki"; -Blockly.Msg["DISABLE_BLOCK"] = "Keela ploki kasutamine"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Tekita duplikaat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Dubleeri kommentaar"; -Blockly.Msg["ENABLE_BLOCK"] = "Luba ploki kasutamine"; -Blockly.Msg["EXPAND_ALL"] = "Laota plokid laiali"; -Blockly.Msg["EXPAND_BLOCK"] = "Laota plokk laiali"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Sisendid ploki taga"; -Blockly.Msg["HELP"] = "Abi"; -Blockly.Msg["INLINE_INPUTS"] = "Sisendid ploki sees"; -Blockly.Msg["IOS_CANCEL"] = "Tühista"; -Blockly.Msg["IOS_ERROR"] = "Viga"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Lisa sisend"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "SISEND"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Lisa"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Lisa muutuja"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Kustuta"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Tühja muutuja nime ei saa kasutada."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Nimeta ümber"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Muutuja nimi"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "tühi loend"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Tagastab loendi, mille pikkus on 0 ja milles pole ühtegi elementi."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "loend"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Loendiploki elementide lisamine, eemaldamine või järjestuse muutmine."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "uus loend"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Elemendi lisamine loendisse."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Tekitab mistahes arvust elementidest loendi."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "esimene element"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "element # (lõpust)"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "element #"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "võetud"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "võetud ja eemaldatud"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "viimane element"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "juhuslik element"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "eemalda"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Tagastab loendi esimese elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Tagastab loendis määratud asukohal oleva elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Tagastab loendi viimase elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Tagastab loendi juhusliku elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Tagastab ja eemaldab loendist esimese elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Tagastab ja eemaldab loendist määratud asukohal oleva elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Tagastab ja eemaldab loendist viimase elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Tagastab ja eemaldab loendist juhusliku elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Eemaldab loendist esimese elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Eemaldab loendist määratud asukohal oleva elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Eemaldab loendist viimase elemendi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Eemaldab loendist juhusliku elemendi."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "elemendini # (lõpust)"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "elemendini #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "lõpuni"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "alamloend algusest"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "alamloend elemendist # (lõpust)"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "alamloend elemendist #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Tekitab loendi määratud osast koopia."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "Viimane element on %1."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "Esimene element on %1."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "esimene leitud"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "viimase leitud"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Tagastab esimese/viimase loendist leitud objekti asukoha (objekti järjekorranumbri loendis). Kui objekti ei leita, tagastab %1."; -Blockly.Msg["LISTS_INLIST"] = "loendis"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 on tühi"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Tagastab „tõene“ kui loend on tühi."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 pikkus"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Tagastab loendi pikkuse."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "loend pikkusega %2 elemendist %1"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Tekitab uue loendi, millesse lisatakse ühte elementi pikkusega määratud arv kordi."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = ", väärtus"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "lisa asukohale"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "asenda"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Lisab loendi algusesse uue elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Lisab määratud asukohale loendis uue elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Lisab loendi lõppu uue elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Lisab juhuslikule kohale loendis uue elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Asendab loendis esimese elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Asendab loendis määratud kohal oleva elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Asendab loendis viimase elemendi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Asendab loendis juhusliku elemendi."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "kasvavalt"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "kahanevalt"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 sorteeritud %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Loendi koopia sorteerimine."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "tähestiku järgi (tähesuurust eirates)"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "arvväärtuste järgi"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "tähestiku järgi"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "loend, tekitatud tekstist"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "tekst, tekitatud loendist"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Ühendab tekstide loendis olevad tükid üheks tekstiks, asetades tükkide vahele eraldaja."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Tükeldab teksti eraldajade kohalt ja asetab tükid tekstide loendisse."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "eraldajaga"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "väär"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Tagastab tõeväärtuse – kas „tõene“ või „väär“."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "tõene"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Tagastab „tõene“, kui avaldiste väärtused on võrdsed."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Tagastab „tõene“, kui esimese avaldise väärtus on suurem kui teise väärtus."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Tagastab „tõene“, kui esimese avaldise väärtus on suurem või võrdne teise väärtusega."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Tagastab „tõene“, kui esimese avaldise väärtus on väiksem kui teise väärtus."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Tagastab „tõene“, kui esimese avaldise väärtus on väiksem või võrdne teise väärtusega."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Tagastab „tõene“, kui avaldiste väärtused pole võrdsed."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "pole %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Tagastab „tõene“, kui avaldis on väär. Tagastab „väär“, kui avaldis on tõene."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Tagastab nulli."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ja"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "või"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Tagastab „tõene“, kui mõlemad avaldised on tõesed."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Tagastab „tõene“, kui vähemalt üks avaldistest on tõene."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "tingimus"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "kui väär"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "kui tõene"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kui tingimuse väärtus on tõene, tagastab „kui tõene“ väärtuse, vastasel juhul „kui väär“ väärtuse."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://et.wikipedia.org/wiki/Aritmeetika"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Tagastab kahe arvu summa."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Tagastab kahe arvu jagatise."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Tagastab kahe arvu vahe."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Tagastab kahe arvu korrutise."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Tagastab esimese arvu teise arvu astmes."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2(X:%1, Y:%2)"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Tagastab punkti (X, Y) arkustangentsit kraadides vahemikus -180 kuni 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "muuda %1 %2 võrra"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Lisab arvu muutujale '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Tagastab ühe konstantidest: π (3,141…), e (2,718…), φ (1.618…), √2) (1,414…), √½ (0,707…), või ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1 piirang %2 ja %3 vahele"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Piirab arvu väärtuse toodud piiridesse (piirarvud kaasa arvatud)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "jagub arvuga"; -Blockly.Msg["MATH_IS_EVEN"] = "on paarisarv"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "on negatiivne arv"; -Blockly.Msg["MATH_IS_ODD"] = "on paaritu arv"; -Blockly.Msg["MATH_IS_POSITIVE"] = "on positiivne arv"; -Blockly.Msg["MATH_IS_PRIME"] = "on algarv"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kontrollib kas arv on paarisarv, paaritu arv, algarv, täisarv, positiivne, negatiivne või jagub kindla arvuga. Tagastab „tõene“ või „väär“."; -Blockly.Msg["MATH_IS_WHOLE"] = "on täisarv"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 jääk"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Tagastab esimese numbri teisega jagamisel tekkiva jäägi."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://et.wikipedia.org/wiki/Arv"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Arv."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "loendi keskmine"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "loendi maksimum"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "loendi mediaan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "loendi miinimum"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "loendi moodid"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "juhuslik element loendist"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "loendi standardhälve"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "loendi summa"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Tagastab loendis olevate arvväärtuste aritmeetilise keskmise."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Tagastab suurima loendis oleva arvu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Tagastab väikseima loendis oleva arvu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Tagastab loendi kõige sagedamini esinevate loendi liikmetega."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Tagastab juhusliku elemendi loendist."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Tagastab loendi standardhälbe."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Tagastab kõigi loendis olevate arvude summa."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "juhuslik murdosa"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Tagastab juhusliku murdosa 0.0 (kaasa arvatud) and 1.0 (välja arvatud) vahel."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "juhuslik täisarv %1 ja %2 vahel"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Tagastab juhusliku täisarvu toodud piiride vahel (piirarvud kaasa arvatud)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "ümarda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ümarda alla"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ümarda üles"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Ümardab arvu üles või alla."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://et.wikipedia.org/wiki/Ruutjuur"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluutväärtus"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "ruutjuur"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Tagastab arvu absoluutväärtuse."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Tagasta e arvu astmes."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Tagastab arvu naturaallogaritmi."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Tagastab arvu kümnendlogaritm."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Tagastab arvu vastandväärtuse."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Tagastab 10 arvu astmes."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Tagastab arvu ruutjuure."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://et.wikipedia.org/wiki/Trigonomeetrilised_funktsioonid"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Tagastab arvu arkuskoosiinuse."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Tagastab arvu arkussiinuse."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Tagastab arvu arkustangensi."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Tagastab arvu (kraadid) kosiinuse."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Tagastab arvu (kraadid) siinuse."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Tagastab arvu (kraadid) tangensi."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Loo muutuja värvina..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Loo muutuja arvuna..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Loo muutuja sõnena..."; -Blockly.Msg["NEW_VARIABLE"] = "Uus muutuja ..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Uue muutuja nimi:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Uue muutuja tüüp:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "kood plokis"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "sisenditega:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://et.wikipedia.org/wiki/Alamprogramm"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Käivitab kasutaja defineeritud funktsiooni '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://et.wikipedia.org/wiki/Alamprogramm"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "sisenditega:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Tekita '%1' plokk"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Funktsiooni kirjeldus ..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "teeme midagi"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "funktsioon"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Tekitab funktsiooni, mis ei tagasta midagi."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "tagasta"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Tekitab funktsiooni, mis tagastab midagi."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Hoiatus: Sel funktsioonil on mitu sama nimega sisendit."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Tõsta funktsiooni definitsioon esile"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Kui väärtus on tõene, tagastatakse teine väärtus."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Hoiatus: Seda plokki saab kasutada ainult funktsiooni definitsioonis."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "sisend nimega:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Lisab funktsioonile sisendi."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "sisendid"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Funktsiooni sisendite lisamine, eemaldamine või järjestuse muutmine."; -Blockly.Msg["REDO"] = "Tee uuesti"; -Blockly.Msg["REMOVE_COMMENT"] = "Eemalda kommentaar"; -Blockly.Msg["RENAME_VARIABLE"] = "Nimeta muutuja ümber ..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Muutuja „%1“ uus nimi:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "lisa muutuja %1 lõppu tekst %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Lisab teksti muutuja „%1“ väärtuse lõppu."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "väikeste tähtedega"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Suurte Esitähtedega"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "SUURTE TÄHTEDEGA"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Tagastab muudetud tähesuurusega teksti koopia."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "esimene sümbol"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "lõpust sümbol #"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "sümbol #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "viimane sümbol"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "juhuslik sümbol"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "tekstis %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Tagastab tekstis määratud asukohal oleva sümboli."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "loenda %1 %2-ses"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Loenda, mitu korda mingi tekst esineb teise teksti sees."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Objekti lisamine tekstile."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "ühenda"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Tekstiploki muutmine sektsioonide lisamise, eemaldamise või järjestuse muutmisega."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "kuni (lõpust) sümbolini #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "kuni sümbolini #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "kuni viimase sümbolini"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "tekstist"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "alates esimesest sümbolist"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "alates (lõpust) sümbolist #"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "alates sümbolist #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Tagastab määratud tüki tekstist."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "esimese leitud tekstitüki"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "viimase leitud tekstitüki"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "tekstist %1 %2 %3 asukoht"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Tagastab esimesest tekstist esimese/viimase leitud teise teksti asukoha (indeksi). Kui teksti ei leita, tagastab %1."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 on tühi"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Tagastab „tõene“, kui tekstis pole ühtegi sümbolit."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "tekita tekst"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Tekitab teksti ühendades mistahes arvu elemente."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 pikkus"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Tagastab sümbolite aru (ka tühikud) toodud tekstis."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "trüki %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Trükib määratud teksti, numbri või mõne muu objekti väärtuse."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Küsib kasutajalt teadet näidates mingit arvu."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Küsib kasutajalt teadet näidates mingit teksti."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "kasutajalt küsitud arv teatega"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "kasutajalt küsitud tekst teatega"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "asenda %1 %2-ga %3-s"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Asenda mõne teksti esinemine mõnes muus tekstis."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "ümberpöördud %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Täht, sõna või rida teksti."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "mõlemalt poolt eemaldatud tühikutega"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "algusest eemaldatud tühikutega"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "lõpust eemaldatud tühikutega"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Tagastab koopia tekstist, millel on tühikud ühelt või mõlemalt poolt eemaldatud."; -Blockly.Msg["TODAY"] = "Täna"; -Blockly.Msg["UNDO"] = "Võta tagasi"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "objekt"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Tekita 'määra „%1“ väärtuseks' plokk"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Tagastab selle muutuja väärtuse."; -Blockly.Msg["VARIABLES_SET"] = "määra %1 väärtuseks %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Tekita '„%1“ väärtus' plokk"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Määrab selle muutuja väärtuse võrdseks sisendi väärtusega."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1'-nimeline muutuja on juba olemas."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Muutuja nimega '%1' juba eksisteerib teise tüübina: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/eu.js b/lib/blockly/msg/js/eu.js deleted file mode 100644 index 254845c..0000000 --- a/lib/blockly/msg/js/eu.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Iruzkina gehitu"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ezin da '%1' aldagaia ezabatu '%2' funtzioaren definizioaren zati delako."; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Aldatu balioa:"; -Blockly.Msg["CLEAN_UP"] = "Blokeak garbitu"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Blokeak kolapsatu"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Blokea kolapsatu"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "1 Kolorea"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "2 Kolorea"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "Ratioa"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "Nahastu"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Bi koloreko nahasketak erlazio jakin batekin nahasten ditu (0.0-1.0)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://eu.wikipedia.org/wiki/Kolore"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Hautatu kolore bat paletatik."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ausazko kolorea"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Aukeratu ausaz kolore bat."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "urdina"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "berdea"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "gorria"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colour with"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Sortu kolorea zehaztutako gorriz, berdearekin eta urdinekin. Balio guztiak 0 eta 100 artean egon behar dira."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "begizta eten"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "jarraitu hurrengo begizta iterazioarekin"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Agertzen den begiztatik ihes egin."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "%1 elementu bakoitzeko %2 zerrendan"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Zerrendako elementu bakoitzarentzat, ezarri %1 aldagaia elementura, eta egin adierazpen batzuk."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "%1 zenbatu %2-tik %3-ra %4-ra"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "%1 aldagaiak hasierako zenbakiaren eta amaierako zenbakirako balioak hartzen ditu, zehaztutako tartea zenbatzen du eta zehaztutako blokeak egin."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Gehitu, ezabatu, ala berrantolatu aukeraketak \"ba\" bloke hau berrezartzeko."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "bestela"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "bestela baldin eta"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "baldin eta"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Balorea egia den bitartean, egin adierazpen batzuk."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Balorea egia bada, orduan egin ezazu lehenengo adierazpen blokea. Bestela, egin ezazu bigarren adierazpen blokea."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Lehenengo balorea egia bada, orduan egin ezazu lehenengo adierazpen blokea. Bestela, bigarren balorea egia bada, egin ezazu bigarren adierazpen blokea."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Lehenengo balorea egia bada, orduan egin ezazu lehenengo adierazpen blokea. Bestela, bigarren balorea egia bada, egin ezazu bigarren adierazpen blokea. Baloreetako bat ere ez bada egia, egin ezazu adierazpenen azkeneko blokea."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://eu.wikipedia.org/wiki/For_begizta"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "egin"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "errepikatu %1 aldiz"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Adierazpen batzuk hainbat aldiz egin."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "arte errepikatu"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "bitartean errepikatu"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Balorea gezurra den bitartean, egin adierazpen batzuk."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Balorea egia den bitartean, egin adierazpen batzuk."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ezabatu %1 blokeak?"; -Blockly.Msg["DELETE_BLOCK"] = "Ezabatu blokea"; -Blockly.Msg["DELETE_VARIABLE"] = "%1 parametro izena ezabatu."; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Ezabatu %2 aldagaiaren %1 erabilerak?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Ezabatu %1 bloke"; -Blockly.Msg["DISABLE_BLOCK"] = "Ezgaitu blokea"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Bikoiztu"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Iruzkina bikoiztu"; -Blockly.Msg["ENABLE_BLOCK"] = "Gaitu blokea"; -Blockly.Msg["EXPAND_ALL"] = "Blokeak Hedatu"; -Blockly.Msg["EXPAND_BLOCK"] = "Blokea Hedatu"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Kanpoko sarrerak"; -Blockly.Msg["HELP"] = "Laguntza"; -Blockly.Msg["INLINE_INPUTS"] = "Inpuntak Linean"; -Blockly.Msg["IOS_CANCEL"] = "Utzi"; -Blockly.Msg["IOS_ERROR"] = "Errorea"; -Blockly.Msg["IOS_OK"] = "Ados"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Gehitu sarrera"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Adierazpenak baimendu"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Funtzio honek errepikatutako sarrerak ditu."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "SARRERAK"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Gehitu"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Gehitu aldagaia"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Ezabatu"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ezin duzu aldagaiaren izen huts bat erabili."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Izena aldatu"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Aldagaiaren izena"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "sortu zerrenda hutsa"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Zerrenda bat itzultzen du, 0 luzera duena, daturik gabekoa"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "zerrenda"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "Zerrenda sortu hurrengoarekin"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "lehena"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "lortu"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "lortu eta kendu"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "azkena"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "ausazkoa"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "kendu"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Lehenengo artikulua zerrendara bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Artikulua zerrendako posizio zehatz batera bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Azken artikulua zerrendara bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Artikulu aleatorioa zerrendara bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Lehenengo artikulua zerrendako posizio zehatz batera kentzen eta bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Artikulua zerrendako posizio zehatz batera kentzen eta bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Zerrendako azken artikulua kentzen eta bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Artikulu aleatorio bat zerrendatik kentzen eta bueltatzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Lehenengo artikulua zerrendatik kentzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Artikulua zerrendako posizio zehatz batetik kentzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Azken artikulua zerrendatik kentzen du."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Artikulu aleatorioa zerrendatik kentzen du."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 azken artikulua da."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 lehenengo artikulua da."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "zerrendan"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 hutsik dago"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "egia itzultzen du zerrenda hutsik badago."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "zerrendaren luzera"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "zerrendaren luzera itzultzen du"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "honela"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ezarri"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "goranzkoa"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "beheranzkoa"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "Zenbakizkoa"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "Alfabetikoki"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "Testuatik lista sortu"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "listatik testua sortu"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "gezurra"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "egia"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://eu.wikipedia.org/wiki/Desberdintza"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ez %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "nulu"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "eta"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "edo"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "Froga"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "gezurra bada"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "egia bada"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://eu.wikipedia.org/wiki/Aritmetika"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Bi zenbakien batura ematen du."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Bi zenbakien zatidura ematen du."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Bi zenbakien kendura ematen du."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Bi zenbakien biderkadura ematen du."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "aldatu %1 %2(e)ra"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Gehitu zenbakia '%1' aldagaiari."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Konstante ohikoenetako bat itzultzen du: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), edo ∞ (infinitua)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "honakoaz zatigarria da"; -Blockly.Msg["MATH_IS_EVEN"] = "bikoitia da"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "negatiboa da"; -Blockly.Msg["MATH_IS_ODD"] = "bakoitia da"; -Blockly.Msg["MATH_IS_POSITIVE"] = "positiboa da"; -Blockly.Msg["MATH_IS_PRIME"] = "zenbaki lehena da"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "zenbaki osoa da"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2(r)en oroigarria"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://eu.wikipedia.org/wiki/Zenbaki"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Zenbaki bat."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "zerrendaren batazbestekoa"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "zerrendako maximoa"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "zerrendako mediana"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "zerrendako minimoa"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "zerrendako modak"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "zerrendako artikulu aleatorioa"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "zerrendako deribazio estandarra"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "zerrendaren batura"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Zerrendako zenbakizko balioen batazbestekoa (aritmetikoa) itzultzen du."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Eman zerrendako zenbakirik handiena."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Eman zerrendako zenbaki media."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Eman zerrendako zenbakirik txikiena."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Bueltatu artikulurik ohikoenetarikoen zerrenda."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Itzuli zerrendako elementu aleatorioa."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Eman zerrendako zenbaki guztien batura."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "zatiki aleatorioa"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://eu.wikipedia.org/wiki/Biribiltze"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "biribildu"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "gutxiagoz biribildu"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "gehiagoz biribildu"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Zenbaki bat gehiagoz edo gutxiagoz biribildu."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://eu.wikipedia.org/wiki/Erro_karratu"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolutua"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "erro karratua"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Zenbaki baten balio absolutua ematen du."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Zenbaki baten logaritmo naturala ematen du."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Zenbaki baten erro karratua ematen du."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://eu.wikipedia.org/wiki/Funtzio_trigonometriko"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Zenbaki baten arku kosinua ematen du."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Zenbaki baten arku sinua ematen du."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Zenbaki baten arku tangentea ematen du."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Kolore aldagaia sortu..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Zenbaki aldagaia sortu..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Kate aldakorra sortu..."; -Blockly.Msg["NEW_VARIABLE"] = "Aldagaia sortu..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Aldagai berriaren izena:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Aldagai berriaren izena:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "honekin"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Azpierrutina"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Azpierrutina"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "honekin"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' sortu"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "egin zerbait"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "honi"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "itzuli"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Abisua: Funtzio honek parametro bikoiztuak dauzka."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Balioa egiazkoa bada, orduan itzuli bigarren baliora."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "sarreraren izena:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "sarrerak"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Berregin"; -Blockly.Msg["REMOVE_COMMENT"] = "Iruzkina ezabatu"; -Blockly.Msg["RENAME_VARIABLE"] = "Aldatu aldagaiaren izena..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Aldatu '%1' aldagai guztien izenak eta izen hau eman:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "%1tik testu atxikita %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hartu lehenengo letra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hartu # letra bukaeratik"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "hartu # letra"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hartu azkenengo letra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "letra aleatorioa lortu"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "testuan %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Gehitu artikulu bat testura."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "elkartu"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Gehitu, ezabatu, ala berrantolatu aukeraketak testu bloke hau berrezartzeko."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "testuan"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "bilatu testuaren lehenengo agerpena"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "bilatu testuaren azkenengo agerpena"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "testuan %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 hutsik dago"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "Testua sortu hurrengoarekin"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1(r)en luzeera"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "inprimatu %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "zehaztutako testua, zenbakia edo bestelako balioa inprimatzen du."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1(e)ri buelta eman"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Letra bat, hitza edo testuko lerroa."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Gaur"; -Blockly.Msg["UNDO"] = "Desegin"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Elementua"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "%1 parametro izena dagoeneko existitzen da"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "%1 izeneko aldagaia dagoeneko existitzen da %2 motako beste aldagai batekin."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Esan zerbait..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/fa.js b/lib/blockly/msg/js/fa.js deleted file mode 100644 index ca9b751..0000000 --- a/lib/blockly/msg/js/fa.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "افزودن نظر"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "متغیر '%1' را نمی‌توان پاک کرد، زیرا جزیی از تعریف تابع '%2' می‌باشد"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "تغییر مقدار:"; -Blockly.Msg["CLEAN_UP"] = "تمیز کردن بلوک‌ها"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "فروپاشی بلوک‌ها"; -Blockly.Msg["COLLAPSE_BLOCK"] = "فروپاشی بلوک"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رنگ ۱"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رنگ ۲"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نسبت"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "مخلوط"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "دو رنگ را با نسبت مشخص‌شده مخلوط می‌کند (۰٫۰ - ۱٫۰)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%86%DA%AF"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "انتخاب یک رنگ از تخته‌رنگ."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "رنگ تصادفی"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "انتخاب یک رنگ به شکل تصادفی."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "آبی"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "سبز"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "قرمز"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "رنگ با"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ساخت یک رنگ با مقدار مشخص‌شده‌ای از قرمز، سبز و آبی. همهٔ مقادیر باید بین ۰ تا ۱۰۰ باشند."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "خروج از حلقه"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ادامه با تکرار بعدی حلقه"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "شکستن حلقهٔ شامل."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "پریدن از بقیهٔ حلقه و ادامه با تکرار بعدی."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "اخطار: این بلوک ممکن است فقط داخل یک حلقه استفاده شود."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "برای هر مورد %1 در فهرست %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "با تعداد %1 از %2 به %3 با گام‌های %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "افزودن یک شرط به بلوک اگر."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "اضافه کردن نهایی، گرفتن همهٔ شرایط به بلوک اگر."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "افزودن، حذف یا بازمرتب‌سازی قسمت‌ها برای پیکربندی دوبارهٔ این بلوک اگر."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "درغیر اینصورت"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "درغیر اینصورت اگر"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "اگر"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "اگر یک مقدار صحیح است، سپس چند عبارت را انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "اگر یک مقدار صحیح است، اول بلوک اول عبارات را انجام بده. در غیر این صورت بلوک دوم عبارات انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "اگر مقدار اول صحیح بود، از آن بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم صحیح است، بلوک دوم عبارات را انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "اگر مقدار اول درست است، بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم درست باشد بلوک دوم عبارات را انجام بده. اگر هیچ از مقادیر درست نبود، آخرین بلوک عبارات را انجام بده."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AD%D9%84%D9%82%D9%87_%D9%81%D9%88%D8%B1"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "انجام"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 بار تکرار"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "انجام چند عبارت چندین بار."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تکرار تا زمانی که"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "تکرار در حالی که"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "حذف همهٔ بلاک‌های %1؟"; -Blockly.Msg["DELETE_BLOCK"] = "حذف بلوک"; -Blockly.Msg["DELETE_VARIABLE"] = "متغیر '%1'را پاک کنید"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "تعداد %1 استفاده از متغیر '%2' پاک شود؟"; -Blockly.Msg["DELETE_X_BLOCKS"] = "حذف بلوک‌های %1"; -Blockly.Msg["DISABLE_BLOCK"] = "غیرفعال‌سازی بلوک"; -Blockly.Msg["DUPLICATE_BLOCK"] = "تکراری"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "فعال‌سازی بلوک"; -Blockly.Msg["EXPAND_ALL"] = "گسترش بلوک‌ها"; -Blockly.Msg["EXPAND_BLOCK"] = "گسترش بلوک"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ورودی‌های خارجی"; -Blockly.Msg["HELP"] = "راهنما"; -Blockly.Msg["INLINE_INPUTS"] = "ورودی‌های درون خطی"; -Blockly.Msg["IOS_CANCEL"] = "لغو"; -Blockly.Msg["IOS_ERROR"] = "خطا"; -Blockly.Msg["IOS_OK"] = "تأیید"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ افزودن ورودی"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "اجازه اظهارات"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "این تابع دارای ورودی‌های تکراری است."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ورودی‌ها"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "افزودن"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ افزودن متغیر"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "حذف"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "نام متغیر نمی‌تواند خالی باشد"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "تغییر نام"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "نام متغیر"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ایجاد فهرست خالی"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "فهرستی با طول صفر شامل هیچ رکورد داده‌ای بر می‌گرداند."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "فهرست"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "اضافه کردن، حذف کردن یا ترتیب‌سازی مجدد بخش‌ها این بلوک فهرستی."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ایجاد فهرست با"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "اضافه کردن یک مورد به فهرست."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "فهرستی از هر عددی از موارد می‌سازد."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "اولین"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# از انتها"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "گرفتن"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "گرفتن و حذف‌کردن"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "آخرین"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "تصادفی"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "حذف‌کردن"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "اولین مورد یک فهرست را بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "موردی در محل مشخص‌شده بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "آخرین مورد در یک فهرست را بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "یک مورد تصادفی در یک فهرست بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "اولین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "مورد در محل مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "آخرین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "مورد تصادفی‌ای را در فهرست حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "اولین مورد را در یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "مورد مشخص‌شده در موقعیت مشخص در یک فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "آخرین مورد را در یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "یک مورد تصادفی را یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "به # از انتها"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "به #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "به آخرین"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "گرفتن زیرمجموعه‌ای از ابتدا"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "گرفتن زیرمجموعه‌ای از # از انتها"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "گرفتن زیرمجموعه‌ای از #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "کپی از قسمت مشخص‌شدهٔ لیست درست می‌کند."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 آخرین مورد است."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 اولین مورد است."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "یافتن اولین رخ‌داد مورد"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "یافتن آخرین رخ‌داد مورد"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "شاخصی از اولین/آخرین رخ‌داد مورد در فهرست را بر می‌گرداند. %1 بر می‌گرداند اگر آیتم موجود نبود."; -Blockly.Msg["LISTS_INLIST"] = "در فهرست"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 خالی است"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "اگر فهرست خالی است مقدار صجیج بر می‌گرداند."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "طول یک فهرست را برمی‌گرداند."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "فهرستی با %1 تکرارشده به اندازهٔ %2 می‌سازد"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "فهرستی شامل مقادیر داده‌شدهٔ تکرار شده عدد مشخص‌شده می‌سازد."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "معکوس %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "یک کپی از لیست را معکوس کنید."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "به عنوان"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "درج در"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "اعمال"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "موردی به ته فهرست اضافه می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "موردی در موقعیت مشخص‌شده در یک فهرست اضافه می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "موردی به ته فهرست الحاق می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "مورد را به صورت تصادفی در یک فهرست می‌افزاید."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "اولین مورد در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "مورد مشخص‌شده در یک فهرست را قرار می‌دهد."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "آخرین مورد در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "یک مورد تصادفی در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "صعودی"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "نزولی"; -Blockly.Msg["LISTS_SORT_TITLE"] = "مرتب‌سازی%1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "یک کپی از لیست را مرتب کنید."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "حروفی ، رد کردن مورد"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "عددی"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "حروفی ، الفبایی"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "ایجاد فهرست از متن"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ایجاد متن از فهرست"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "چسباندن یک فهرست از متن‌ها و تشکیل یک متن که با یک جداکننده جدا شده‌اند"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "شکستن متن به فهرستی از متن‌ها، شکستن در محل جداکننده"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "همراه جداساز"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ناصحیح"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "بازگرداندن یکی از صحیح یا ناصحیح."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "صحیح"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://fa.wikipedia.org/wiki/%D9%86%D8%A7%D8%A8%D8%B1%D8%A7%D8%A8%D8%B1%DB%8C"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "بازگشت صحیح اگر هر دو ورودی با یکدیگر برابر باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "بازگرداندن صحیح اگر ورودی اول بزرگتر از ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "بازگرداندن صحیح اگر ورودی اول بزرگتر یا مساوی یا ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "بازگرداندن صحیح اگر ورودی اول کوچکتر از ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "بازگرداندن صحیح اگر ورودی اول کوچکتر یا مساوی با ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "برگرداندن صحیح اگر هر دو ورودی با یکدیگر برابر نباشند."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "نه %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "صجیج باز می‌گرداند اگر ورودی نا صحیح باشند. ناصحیح بازمی‌گرداند اگر ورودی صحیح باشد."; -Blockly.Msg["LOGIC_NULL"] = "تهی"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "تهی بازمی‌گرداند."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "و"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "یا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "بازگرداندن صحیح اگر هر دو ورودی صحیح باشد."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "بازگرداندن صحیح اگر یکی از دو ورودی صحیح باشد."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "آزمایش"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "اگر ناصحیح"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "اگر صحیح"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "بررسی وضعیت در «آزمایش». اگر وضعیت صحیح باشد، مقدار «اگر صحیح» را بر می‌گرداند در غیر اینصورت مقدار «اگر ناصحیح» را."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AD%D8%B3%D8%A7%D8%A8"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "بازگرداندن مقدار جمع دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "بازگرداندن باقی‌ماندهٔ دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "بازگرداندن تفاوت دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "بازگرداندن حاصلضرب دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "بازگرداندن اولین عددی که از توان عدد دوم حاصل شده باشد."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C#.D8.A7.D9.81.D8.B2.D8.A7.DB.8C.D8.B4_.D8.B4.D9.85.D8.A7.D8.B1.D9.86.D8.AF.D9.87"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "تغییر %1 با %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "افزودن یک عدد به متغیر '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AB%D8%A7%D8%A8%D8%AA_%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "یکی از مقادیر ثابت جهانی را برمی‌گرداند: π (۳٫۱۴۱…)، e (۲٫۷۱۸...)، φ (۱٫۶۱۸)، sqrt(۲) (۱٫۴۱۴)، sqrt(۱/۲) (۰٫۷۰۷...) و یا ∞ (بی‌نهایت)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "محدودکردن %1 پایین %2 بالا %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "محدودکردن یک عدد بین محدودیت‌های مشخص‌شده (بسته)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "تقسیم شده بر"; -Blockly.Msg["MATH_IS_EVEN"] = "زوج است"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "منفی است"; -Blockly.Msg["MATH_IS_ODD"] = "فرد است"; -Blockly.Msg["MATH_IS_POSITIVE"] = "مثبت است"; -Blockly.Msg["MATH_IS_PRIME"] = "عدد اول است"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "بررسی می‌کند که آیا یک عدد زوج، فرد، اول، کامل، مثبت، منفی یا بخش‌پذیر عدد خاصی باشد را بررسی می‌کند. درست یا نادرست باز می‌گرداند."; -Blockly.Msg["MATH_IS_WHOLE"] = "کامل است"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%BE%DB%8C%D9%85%D8%A7%D9%86%D9%87"; -Blockly.Msg["MATH_MODULO_TITLE"] = "باقی‌ماندهٔ %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "باقی‌ماندهٔ تقسیم دو عدد را بر می‌گرداند."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B9%D8%AF%D8%AF"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "یک عدد."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "میانگین فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "بزرگ‌ترین عدد در فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "میانهٔ فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "کوچک‌ترین عدد در فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "مد فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "مورد تصادفی از فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "انحراف معیار فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "جمع فهرست"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "میانگین (میانگین ریاضی) مقادیر عددی فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "بزرگ‌ترین عدد در فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "میانهٔ عدد در فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "کوچک‌ترین عدد در فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "شایع‌ترین قلم(های) در فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "موردی تصادفی از فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "انحراف معیار فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "جمع همهٔ عددهای فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "کسر تصادفی"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "بازگرداندن کسری تصادفی بین ۰٫۰ (بسته) تا ۱٫۰ (باز)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "عدد صحیح تصادفی بین %1 تا %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "یک عدد تصادفی بین دو مقدار مشخص‌شده به صورت بسته باز می‌گرداند."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "گردکردن"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "گرد به پایین"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "گرد به بالا"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "گردکردن یک عدد به بالا یا پایین."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%DB%8C%D8%B4%D9%87_%D8%AF%D9%88%D9%85"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "مطلق"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "ریشهٔ دوم"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "قدر مطلق یک عدد را بازمی‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "بازگرداندن توان e یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "لوگاریتم طبیعی یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "بازگرداندن لگاریتم بر پایهٔ ۱۰ یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "منفی‌شدهٔ یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "بازگرداندن توان ۱۰ یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "ریشهٔ دوم یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%AA%D8%A7%D8%A8%D8%B9%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%85%D8%AB%D9%84%D8%AB%D8%A7%D8%AA%DB%8C"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "بازگرداندن آرک‌کسینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "بازگرداندن آرک‌سینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "بازگرداندن آرک‌تانژانت درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "بازگرداندن کسینوس یک زاویه درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "بازگرداندن سینوس یک زاویه به درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "بازگرداندن تانژانت یک زاویه به درجه (نه رادیان)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "ساخت متغیر رنگ..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "ساخت متغیر عددی..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "ساخت متغیر رشته..."; -Blockly.Msg["NEW_VARIABLE"] = "ایجاد متغیر..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "نام متغیر تازه:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "نوع متغیر جدید:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "اجازه اظهارات"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "با:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_(%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87)"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "اجرای تابع تعریف‌شده توسط کاربر «%1»."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "اجرای تابع تعریف‌شده توسط کاربر «%1» و استفاده از خروجی آن."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "با:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "ساختن «%1»"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "توصیف این عملکرد..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "انجام چیزی"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "به"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "تابعی می‌سازد بدون هیچ خروجی."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "بازگشت"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "تابعی با یک خروجی می‌سازد."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "اخطار: این تابعی پارامتر تکراری دارد."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "برجسته‌سازی تعریف تابع"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "اگر یک مقدار صحیح است، مقدار دوم را برگردان."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "اخطار: این بلوک احتمالاً فقط داخل یک تابع استفاده می‌شود."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "نام ورودی:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "اضافه کردن ورودی به تابع."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ورودی‌ها"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "افزودن، حذف یا دوباره مرتب‌کردن ورودی این تابع."; -Blockly.Msg["REDO"] = "انجام دوباره"; -Blockly.Msg["REMOVE_COMMENT"] = "حذف نظر"; -Blockly.Msg["RENAME_VARIABLE"] = "تغییر نام متغیر..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "تغییر نام همهٔ متغیرهای «%1» به:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "به %1 الحاق متن %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "الحاق متنی به متغیر «%1»."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "به حروف کوچک"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "به حروف بزرگ عنوان"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "به حروف بزرگ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "بازگرداندن کپی متن در حالتی متفاوت."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "گرفتن اولین حرف"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "گرفتن حرف # از آخر"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "گرفتن حرف #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "گرفتن آخرین حرف"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "گرفتن حرف تصادفی"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "در متن %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "حرفی در موقعیت مشخص‌شده بر می‌گرداند."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "تعداد %1 را در %2 بشمار"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "تعداد دفعاتی که یک متن درون یک متن دیگر تکرار شده است را برمی‌گرداند"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "افزودن یک مورد به متن."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "عضویت"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "اضافه کردن، حذف یا مرتب‌سازی بحش‌ها برای تنظیم مجدد این بلوک متنی."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "به حرف # از انتها"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "به حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "به آخرین حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "در متن"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "گرفتن زیرمتن از اولین حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "گرفتن زیرمتن از حرف # به انتها"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "گرفتن زیرمتن از حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "قسمت مشخصی‌شده‌ای از متن را بر می‌گرداند."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "اولین رخداد متن را بیاب"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "آخرین رخداد متن را بیاب"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "در متن %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "شاخصی از اولین آخرین رخ‌داد متن اول در متن دوم بر می‌گرداند. اگر متن یافت نشد %1 باز می‌گرداند."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 خالی است"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "اضافه کردن صحیح اگر متن فراهم‌شده خالی است."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ایجاد متن با"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "یک تکه‌ای از متن را با چسپاندن همهٔ تعداد از موارد ایجاد می‌کند."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "بازگرداندن عددی از حروف (شامل فاصله‌ها) در متن فراهم‌شده."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "چاپ %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "اعلان برای کاربر با یک عدد."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "اعلان برای کاربر برای یک متن."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "اعلان برای عدد با پیام"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "اعلان برای متن با پیام"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "درون %3، متن %1 را با %2 جایگزین کن"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "جایگزین کردن تمام مواردی که از متنی درون متن دیگر وجود دارد"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "معکوس %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "چینش کاراکترها درون متن را برعکس می‌کند"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://fa.wikipedia.org/wiki/%D8%B1%D8%B4%D8%AA%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "یک حرف، کلمه یا خطی از متن."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "تراشیدن فاصله‌ها از هر دو طرف"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "تراشیدن فاصله‌ها از طرف چپ"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "تراشیدن فاصله‌ها از طرف چپ"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند."; -Blockly.Msg["TODAY"] = "امروز"; -Blockly.Msg["UNDO"] = "واگردانی"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "مورد"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "درست‌کردن «تنظیم %1»"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "مقدار این متغیر را بر می‌گرداند."; -Blockly.Msg["VARIABLES_SET"] = "مجموعه %1 به %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "درست‌کردن «گرفتن %1»"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "متغیر برابر با خروجی را مشخص می‌کند."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "متغیری با نام '%1' هم اکنون وجود دارد"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "در حال حاضر یک متغیر با نام '%1' برای متغیر دیگری از نوع '%2' وجود دارد."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "یک چیزی بگو..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/fi.js b/lib/blockly/msg/js/fi.js deleted file mode 100644 index 3d6b81a..0000000 --- a/lib/blockly/msg/js/fi.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Lisää kommentti"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ei voida poistaa muuttujaa '%1' koska se on osa funktion määritelmää '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Muuta arvoa:"; -Blockly.Msg["CLEAN_UP"] = "Siivoa lohkot"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Supistetut lohkot sisältävät varoituksia."; -Blockly.Msg["COLLAPSE_ALL"] = "Sulje lohkot"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Sulje lohko"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "väri 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "väri 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "suhde"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "sekoitus"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Sekoittaa kaksi väriä keskenään annetussa suhteessa (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://fi.wikipedia.org/wiki/V%C3%A4ri"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Valitse väri paletista."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "satunnainen väri"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Valitse väri sattumanvaraisesti."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "sininen"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "vihreä"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "punainen"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "väri, jossa on"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Luo väri, jossa on tietty määrä punaista, vihreää ja sinistä. Kaikkien arvojen tulee olla välillä 0 - 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "poistu silmukasta"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "jatka silmukan seuraavaan toistoon"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Poistu sisemmästä silmukasta."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Ohita loput tästä silmukasta ja siirry seuraavaan toistoon."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Varoitus: Tätä lohkoa voi käyttää vain silmukan sisällä."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "kullekin kohteelle %1 listassa %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Aseta muuttujan %1 arvoksi kukin listan kohde vuorollaan ja suorita joukko lausekkeita."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "laske %1 Väli %2-%3 %4:n välein"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Aseta muuttujaan \"%1\" arvot alkuarvosta loppuarvoon annetun askeleen välein ja suorita joka askeleella annettu koodilohko."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Lisää ehto \"jos\" lohkoon."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Lisää lopullinen \"muuten\" lohko \"jos\" lohkoon."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Lisää, poista tai järjestele osioita tässä \"jos\" lohkossa."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "muuten"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "muuten jos"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "jos"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Jos arvo on tosi, suorita lauseke."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Jos arvo on tosi, suorita ensimmäinen lohko lausekkeita. Muuten suorita toinen lohko lausekkeita."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Jos ensimmäinen arvo on tosi, suorita ensimmäinen lohko lausekkeita. Muuten, jos toinen arvo on tosi, suorita toinen lohko lausekkeita."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Jos ensimmäinen arvo on tosi, suorita ensimmäinen lohko lausekkeita. Muuten, jos toinen arvo on tosi, suorita toinen lohko lausekkeita. Jos mikään arvoista ei ole tosi, suorita viimeinen lohko lausekkeita."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "tee"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "toista %1 kertaa"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Suorita joukko lausekkeita useampi kertaa."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "toista kunnes"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "toista niin kauan kuin"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Niin kauan kuin arvo on epätosi, suorita joukko lausekkeita."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Niin kauan kuin arvo on tosi, suorita joukko lausekkeita."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Poistetaanko kaikki %1 lohkoa?"; -Blockly.Msg["DELETE_BLOCK"] = "Poista lohko"; -Blockly.Msg["DELETE_VARIABLE"] = "Poista muuttuja '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Poistetaanko %1 käyttöä muuttujalta '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Poista %1 lohkoa"; -Blockly.Msg["DISABLE_BLOCK"] = "Passivoi lohko"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Kaksoiskappale"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Kahdenna kommentti"; -Blockly.Msg["ENABLE_BLOCK"] = "Aktivoi lohko"; -Blockly.Msg["EXPAND_ALL"] = "Laajenna lohkot"; -Blockly.Msg["EXPAND_BLOCK"] = "Laajenna lohko"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Ulkoiset syötteet"; -Blockly.Msg["HELP"] = "Apua"; -Blockly.Msg["INLINE_INPUTS"] = "Tuo syötteet"; -Blockly.Msg["IOS_CANCEL"] = "Peruuta"; -Blockly.Msg["IOS_ERROR"] = "Virhe"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Lisää syöte"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Salli lausekkeet"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Tällä toiminnolla on päällekkäisiä syötteitä."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "SYÖTTEET"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Lisää"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Lisää muuttuja"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Poista"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Et voi käyttää tyhjää muuttujan nimeä."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Nimeä uudelleen"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Muuttujan nimi"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Luo tyhjä lista"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Palauta tyhjä lista, pituus 0"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Listää, poista tai järjestele uudestaan osioita tässä lohkossa."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "luo lista"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Lisää kohde listaan."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Luo lista, jossa on mikä tahansa määrä kohteita."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "ensimmäinen"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "nro (lopusta laskien)"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "nro"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "hae"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "hae ja poista"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "viimeinen"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "satunnainen"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "poista"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Palauta ensimmäinen kohde listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Palauta kohde annetusta kohdasta listaa."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Palauttaa listan viimeisen kohteen."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Palauttaa satunnaisen kohteen listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Poistaa ja palauttaa ensimmäisen kohteen listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Poistaa ja palauttaa kohteen listan annetusta kohdasta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Poistaa ja palauttaa viimeisen kohteen listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Poistaa ja palauttaa satunnaisen kohteen listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Poistaa ensimmäisen kohteen listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Poistaa kohteen listalta annetusta kohtaa."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Poistaa viimeisen kohteen listalta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Poistaa satunnaisen kohteen listalta."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "päättyen kohtaan (lopusta laskien)"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "päättyen kohtaan"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "viimeinen"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "hae osalista alkaen alusta"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "hae osalista alkaen kohdasta (lopusta laskien)"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "hae osalista alkaen kohdasta"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Luo kopio määrätystä kohden listaa."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "Numero %1 tarkoittaa listan viimeistä kohdetta."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "Numero %1 tarkoittaa listan ensimmäistä kohdetta."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "etsi ensimmäinen esiintymä kohteelle"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "etsi viimeinen esiintymä kohteelle"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Palauttaa kohteen ensimmäisen/viimeisen esiintymän kohdan listassa. Palauttaa %1 jos kohdetta ei löydy."; -Blockly.Msg["LISTS_INLIST"] = "listassa"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 on tyhjä"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Palauttaa tosi, jos lista on tyhjä."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1:n pituus"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Palauttaa listan pituuden."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "luo lista, jossa kohde %1 toistuu %2 kertaa"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Luo listan, jossa annettu arvo toistuu määrätyn monta kertaa."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 takaperin"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Palauta käännetty kopio listasta."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "kohteeksi"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "lisää kohtaan"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "aseta"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Lisää kohteen listan kärkeen."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Lisää kohteen annettuun kohtaan listassa."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Lisää kohteen listan loppuun."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Lisää kohteen satunnaiseen kohtaan listassa."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Asettaa listan ensimmäisen kohteen."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Asettaa kohteen annettuun kohtaan listassa."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Asettaa listan viimeisen kohteen."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Asettaa satunnaisen kohteen listassa."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "nouseva"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "laskeva"; -Blockly.Msg["LISTS_SORT_TITLE"] = "lajittele %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Lajittele kopio luettelosta."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "aakkosjärjestyksessä, välittämättä kirjainkoosta"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeerinen"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "aakkosjärjestys"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "tee lista tekstistä"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "tee listasta teksti"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Yhdistä luettelon tekstit yhdeksi tekstiksi, erotettuina välimerkillä."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Jaa teksti osiin erotinmerkin perusteella ja järjestä osat listaksi."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "erottimen kanssa"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "epätosi"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Palauttaa joko tosi tai epätosi."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "tosi"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://fi.wikipedia.org/wiki/Ep%C3%A4yht%C3%A4l%C3%B6"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Palauta tosi, jos syötteet ovat keskenään samat."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Palauttaa tosi, jos ensimmäinen syöte on suurempi, kuin toinen."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Palauttaa tosi, jos ensimmäinen syöte on suurempi tai yhtä suuri, kuin toinen."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Palauttaa tosi, jos ensimmäinen syöte on pienempi, kuin toinen."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Palauttaa tosi, jos ensimmäinen syöte on pienempi tai yhtä suuri, kuin toinen."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Palauttaa tosi, jos syötteet eivät ole keskenään samoja."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ei %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Palauttaa tosi, jos syöte on epätosi. Palauttaa epätosi, jos syöte on tosi."; -Blockly.Msg["LOGIC_NULL"] = "ei mitään"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Palauttaa \"ei mitään\"-arvon."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ja"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "tai"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Palauttaa tosi, jos kummatkin syötteet ovat tosia."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Palauttaa tosi, jos ainakin yksi syötteistä on tosi."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "testi"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "jos epätosi"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "jos tosi"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Tarkistaa testin ehdon. Jos ehto on tosi, palauttaa \"jos tosi\" arvon, muuten palauttaa \"jos epätosi\" arvon."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "http://fi.wikipedia.org/wiki/Aritmetiikka"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Palauttaa kahden luvun summan."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Palauttaa jakolaskun osamäärän."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Palauttaa kahden luvun erotuksen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Palauttaa kertolaskun tulon."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Palauttaa ensimmäisen luvun korotettuna toisen luvun potenssiin."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan(X:%1,Y:%2)"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Palauta pisteen (X,Y) arkustangentti välillä -180–180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://fi.wikipedia.org/wiki/Yhteenlasku"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "muuta %1 arvolla %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Lisää arvo muuttujaan '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Palauttaa jonkin seuraavista vakioista: π (3.141…), e (2.718…), φ (1.618…), neliöjuuri(2) (1.414…), neliöjuuri(½) (0.707…), or ∞ (ääretön)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "rajoita %1 vähintään %2 enintään %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Rajoittaa arvon annetulle suljetulle välille."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "on jaollinen luvulla"; -Blockly.Msg["MATH_IS_EVEN"] = "on parillinen"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "on negatiivinen"; -Blockly.Msg["MATH_IS_ODD"] = "on pariton"; -Blockly.Msg["MATH_IS_POSITIVE"] = "on positiivinen"; -Blockly.Msg["MATH_IS_PRIME"] = "on alkuluku"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Tarkistaa onko numero parillinen, pariton, alkuluku, kokonaisluku, positiivinen, negatiivinen, tai jos se on jaollinen toisella luvulla. Palauttaa tosi tai epätosi."; -Blockly.Msg["MATH_IS_WHOLE"] = "on kokonaisluku"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 jakojäännös"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Palauttaa jakolaskun jakojäännöksen."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "⋅"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://fi.wikipedia.org/wiki/Luku"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Luku."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "keskiarvo luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "suurin luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "keskiluku luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "pienin luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "tyyppiarvo luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "satunnainen valinta luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "keskihajonta luvuista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summa luvuista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Palauttaa aritmeettisen keskiarvon annetuista luvuista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Palauttaa suurimman annetuista luvuista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Palauttaa annettujen lukujen keskiluvun."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Palauttaa pienimmän annetuista luvuista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Palauttaa luettelon yleisimmistä luvuista annetussa listassa."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Palauttaa satunnaisesti valitun luvun annetuista luvuista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Palauttaa annettujen lukujen keskihajonnan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Palauttaa kaikkien annettujen lukujen summan."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://fi.wikipedia.org/wiki/Satunnaisluku"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "satunnainen murtoluku"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Palauttaa satunnaisen luvun oikealta puoliavoimesta välistä [0.0, 1.0)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://fi.wikipedia.org/wiki/Satunnaisluku"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "Palauttaa satunnaisen kokonaisluvun väliltä %1-%2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Palauttaa satunnaisen kokonaisluvun kahden annetun arvon suljetulta väliltä."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://fi.wikipedia.org/wiki/Py%C3%B6rist%C3%A4minen"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "pyöristä"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "pyöristä alaspäin"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "pyöristä ylöspäin"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Pyöristää luvun ylös- tai alaspäin."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://fi.wikipedia.org/wiki/Neli%C3%B6juuri"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "itseisarvo"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "neliöjuuri"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Palauttaa luvun itseisarvon."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Palauttaa e potenssiin luku."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Palauttaa luvun luonnollisen logaritmin."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Palauttaa luvun kymmenkantaisen logaritmin."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Palauttaa numeron vastaluvun."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Palauttaa 10 potenssiin luku."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Palauttaa luvun neliöjuuren."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://fi.wikipedia.org/wiki/Trigonometrinen_funktio"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Palauttaa luvun arkuskosinin."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Palauttaa luvun arkussinin."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Palauttaa luvun arkustangentin."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Palauttaa asteluvun (ei radiaanin) kosinin."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Palauttaa asteluvun (ei radiaanin) sinin."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Palauttaa asteluvun (ei radiaanin) tangentin."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Luo värimuuttuja..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Luo numeromuuttuja..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Luo merkkijonomuuttuja..."; -Blockly.Msg["NEW_VARIABLE"] = "Luo muuttuja..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Uuden muuttujan nimi:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Uuden muuttujan tyyppi:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "salli kommentit"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "parametrit:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://fi.wikipedia.org/wiki/Aliohjelma"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Suorittaa käyttäjän määrittelemä funktio '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://fi.wikipedia.org/wiki/Aliohjelma"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Suorittaa käyttäjän määrittelemän funktion '%1' ja käyttää sen tuotosta."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "parametrit:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Luo '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Kuvaile tämä funktio..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "tee jotain"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "tehdäksesi"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Luo funktio, jolla ei ole tuotosta."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "palauta"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Luo funktio, jolla ei ole tuotosta."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Varoitus: tällä funktiolla on sama parametri useamman kerran."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Korosta funktion määritelmä"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Jos arvo on tosi, palauta toinen arvo."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Varoitus: tätä lohkoa voi käyttää vain funktion määrityksessä."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "syötteen nimi:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Lisää sisääntulon funktioon."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "syötteet"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Lisää, poista tai järjestele uudelleen tämän toiminnon tulot."; -Blockly.Msg["REDO"] = "Tee uudelleen"; -Blockly.Msg["REMOVE_COMMENT"] = "Poista kommentti"; -Blockly.Msg["RENAME_VARIABLE"] = "Nimeä uudelleen muuttuja..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Nimeä uudelleen kaikki '%1' muuttujaa:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "muuttujaan %1 lisää teksti %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Lisää tekstiä muuttujaan '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "pienet kirjaimet"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "isot alkukirjaimet"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "isot kirjaimet"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Palauttaa kopion tekstistä eri kirjainkoossa."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hae ensimmäinen kirjain"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "Hae kirjain nro (lopusta laskien)"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "Hae kirjain nro"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hae viimeinen kirjain"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "hae satunnainen kirjain"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "tekstissä %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Palauttaa annetussa kohdassa olevan kirjaimen."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "laske määrä '%1' '%2' sisällä"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Laske kuinka monta kertaa jokin teksti esiintyy jossakin toisessa tekstissä."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Lisää kohteen tekstiin."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "liitä"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Lisää, poista tai uudelleen järjestä osioita tässä lohkossa."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "kirjaimeen nro (lopusta laskien)"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "kirjaimeen nro"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "viimeiseen kirjaimeen"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "merkkijonosta"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "hae osa alkaen ensimmäisestä kirjaimesta"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "hae osa alkaen kirjaimesta nro (lopusta laskien)"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "hae osa alkaen kirjaimesta nro"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Palauttaa määrätyn osan tekstistä."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "etsi ensimmäinen esiintymä merkkijonolle"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "etsi viimeinen esiintymä merkkijonolle"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "tekstissä %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Palauttaa ensin annetun tekstin ensimmäisen/viimeisen esiintymän osoitteen toisessa tekstissä. Palauttaa osoitteen %1 jos tekstiä ei löytynyt."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 on tyhjä"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Palauttaa tosi, jos annettu teksti on tyhjä."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "luo teksti"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Luo merkkijonon liittämällä yhteen minkä tahansa määrän kohteita."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1:n pituus"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Palauttaa annetussa tekstissä olevien merkkien määrän (välilyönnit mukaan lukien)."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "tulosta %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Tulostaa annetun tekstin, numeron tai muun arvon."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Kehottaa käyttäjää syöttämään numeron."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Kehottaa käyttäjää syöttämään tekstiä."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "käyttäen annettua viestiä, kehottaa syöttämään numeron"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "käyttäen annettua viestiä, kehottaa syöttämään tekstiä"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "Korvaa teksti %1 tekstillä %2 tekstissä %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Korvaa tietyn tekstin ilmentymät tekstin sisällä."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1 takaperin"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Muuttaa tekstin kirjainten järjestyksen toisin päin."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://fi.wikipedia.org/wiki/Merkkijono"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Kirjain, sana tai rivi tekstiä."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "poistaa välilyönnit kummaltakin puolelta"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "poistaa välilyönnit vasemmalta puolelta"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "poistaa välilyönnit oikealta puolelta"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Palauttaa kopion tekstistä siten, että välilyönnit on poistettu yhdestä tai molemmista päistä."; -Blockly.Msg["TODAY"] = "Tänään"; -Blockly.Msg["UNDO"] = "Kumoa"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "kohde"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Luo 'aseta %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Palauttaa muuttujan arvon."; -Blockly.Msg["VARIABLES_SET"] = "aseta %1 arvoksi %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Luo 'hae %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Asettaa muutujan arvoksi annetun syötteen."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Muuttuja nimeltään '%1' on jo olemassa."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Muuttuja nimeltä '%1' on jo olemassa toiselle tyypille: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Sano jotakin..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/fr.js b/lib/blockly/msg/js/fr.js deleted file mode 100644 index bae0573..0000000 --- a/lib/blockly/msg/js/fr.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Ajouter un commentaire"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Impossible de supprimer la variable '%1' parce qu’elle fait partie de la définition de la fonction '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Modifier la valeur :"; -Blockly.Msg["CLEAN_UP"] = "Nettoyer les blocs"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Les blocs repliés contiennent des avertissements."; -Blockly.Msg["COLLAPSE_ALL"] = "Réduire les blocs"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Réduire le bloc"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "couleur 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "couleur 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "taux"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mélanger"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mélange deux couleurs dans une proportion donnée (de 0.0 à 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://fr.wikipedia.org/wiki/Couleur"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Choisir une couleur dans la palette."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "couleur aléatoire"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Choisir une couleur au hasard."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "bleu"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "vert"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "rouge"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colorier en"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Créer une couleur avec la quantité spécifiée de rouge, vert et bleu. Les valeurs doivent être comprises entre 0 et 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "quitter la boucle"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "passer à l’itération de boucle suivante"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Sortir de la boucle englobante."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Sauter le reste de cette boucle, et poursuivre avec l’itération suivante."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Attention : Ce bloc ne devrait être utilisé que dans une boucle."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "pour chaque élément %1 dans la liste %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Pour chaque élément d’une liste, assigner la valeur de l’élément à la variable '%1', puis exécuter des instructions."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "compter avec %1 de %2 à %3 par %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Faire prendre à la variable « %1 » les valeurs depuis le nombre de début jusqu’au nombre de fin, en s’incrémentant du pas spécifié, et exécuter les instructions spécifiées."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Ajouter une condition au bloc si."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Ajouter une condition finale fourre-tout au bloc si."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Ajouter, supprimer ou réordonner les sections pour reconfigurer ce bloc si."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "sinon"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "sinon si"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "si"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Si une valeur est vraie, alors exécuter certains ordres."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Si une valeur est vraie, alors exécuter le premier bloc d’ordres. Sinon, exécuter le second bloc d’ordres."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Si la première valeur est vraie, alors exécuter le premier bloc d’ordres. Sinon, si la seconde valeur est vraie, exécuter le second bloc d’ordres."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Si la première valeur est vraie, alors exécuter le premier bloc d’ordres. Sinon, si la seconde valeur est vraie, exécuter le second bloc d’ordres. Si aucune des valeurs n’est vraie, exécuter le dernier bloc d’ordres."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "http://fr.wikipedia.org/wiki/Boucle_for"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "faire"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "répéter %1 fois"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Exécuter des instructions plusieurs fois."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "répéter jusqu’à"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "répéter tant que"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Tant qu’une valeur est fausse, alors exécuter des instructions."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Tant qu’une valeur est vraie, alors exécuter des instructions."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Supprimer ces %1 blocs ?"; -Blockly.Msg["DELETE_BLOCK"] = "Supprimer le bloc"; -Blockly.Msg["DELETE_VARIABLE"] = "Supprimer la variable '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Supprimer %1 utilisations de la variable '%2' ?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Supprimer %1 blocs"; -Blockly.Msg["DISABLE_BLOCK"] = "Désactiver le bloc"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Dupliquer"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Dupliquer le commentaire"; -Blockly.Msg["ENABLE_BLOCK"] = "Activer le bloc"; -Blockly.Msg["EXPAND_ALL"] = "Développer les blocs"; -Blockly.Msg["EXPAND_BLOCK"] = "Développer le bloc"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entrées externes"; -Blockly.Msg["HELP"] = "Aide"; -Blockly.Msg["INLINE_INPUTS"] = "Entrées en ligne"; -Blockly.Msg["IOS_CANCEL"] = "Annuler"; -Blockly.Msg["IOS_ERROR"] = "Erreur"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Ajouter une entrée"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Ordres autorisés"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Cette fonction a des entrées dupliquées."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRÉES"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Ajouter"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Ajouter une variable"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Supprimer"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Vous ne pouvez pas utiliser un nom de variable vide."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Renommer"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nom de la variable"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "créer une liste vide"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Renvoyer une liste, de longueur 0, ne contenant aucun enregistrement"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "liste"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Ajouter, supprimer, ou réordonner les sections pour reconfigurer ce bloc de liste."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "créer une liste avec"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Ajouter un élément à la liste."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Créer une liste avec un nombre quelconque d’éléments."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "premier"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# depuis la fin"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "obtenir"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obtenir et supprimer"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "dernier"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aléatoire"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "supprimer"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Renvoie le premier élément dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Renvoie l’élément à la position indiquée dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Renvoie le dernier élément dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Renvoie un élément au hasard dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Supprime et renvoie le premier élément dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Supprime et renvoie l’élément à la position indiquée dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Supprime et renvoie le dernier élément dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Supprime et renvoie un élément au hasard dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Supprime le premier élément dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Supprime l’élément à la position indiquée dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Supprime le dernier élément dans une liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Supprime un élément au hasard dans une liste."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "jusqu’à # depuis la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "jusqu’à #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "jusqu’à la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "obtenir la sous-liste depuis le début"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "obtenir la sous-liste depuis # depuis la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "obtenir la sous-liste depuis #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Crée une copie de la partie spécifiée d’une liste."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 est le dernier élément."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 est le premier élément."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "trouver la première occurrence de l’élément"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "trouver la dernière occurrence de l’élément"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Renvoie l’index de la première/dernière occurrence de l’élément dans la liste. Renvoie %1 si l'élément n'est pas trouvé."; -Blockly.Msg["LISTS_INLIST"] = "dans la liste"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 est vide"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Renvoie vrai si la liste est vide."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longueur de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Renvoie la longueur d’une liste."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "créer une liste avec l’élément %1 répété %2 fois"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Crée une liste consistant en la valeur fournie répétée le nombre de fois indiqué."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inverser %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inverser la copie d’une liste."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "comme"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insérer en"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "mettre"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Insère l’élément au début d’une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Insère l’élément à la position indiquée dans une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Ajouter l’élément à la fin d’une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Insère l’élément au hasard dans une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Fixe le premier élément dans une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Met à jour l’élément à la position indiquée dans une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Fixe le dernier élément dans une liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Fixe un élément au hasard dans une liste."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "croissant"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "décroissant"; -Blockly.Msg["LISTS_SORT_TITLE"] = "trier %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Trier une copie d’une liste."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabétique, en ignorant la casse"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numérique"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabétique"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "créer une liste depuis le texte"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "créer un texte depuis la liste"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Réunir une liste de textes en un seul, en les séparant par un séparateur."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Couper un texte en une liste de textes, en coupant à chaque séparateur."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "avec séparateur"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "faux"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Renvoie soit vrai soit faux."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "vrai"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://fr.wikipedia.org/wiki/In%C3%A9galit%C3%A9_(math%C3%A9matiques)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Renvoyer vrai si les deux entrées sont égales."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Renvoyer vrai si la première entrée est plus grande que la seconde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Renvoyer true si la première entrée est supérieure ou égale à la seconde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Renvoyer vrai si la première entrée est plus petite que la seconde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Renvoyer vrai si la première entrée est plus petite ou égale à la seconde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Renvoyer vrai si les deux entrées sont différentes."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "pas %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Renvoie vrai si l’entrée est fausse. Renvoie faux si l’entrée est vraie."; -Blockly.Msg["LOGIC_NULL"] = "nul"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Renvoie nul."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "et"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ou"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Renvoyer vrai si les deux entrées sont vraies."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Renvoyer vrai si au moins une des entrées est vraie."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "si faux"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "si vrai"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Vérifier la condition dans 'test'. Si elle est vraie, renvoie la valeur 'si vrai' ; sinon renvoie la valeur 'si faux'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://fr.wikipedia.org/wiki/Arithm%C3%A9tique"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Renvoie la somme des deux nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Renvoie le quotient des deux nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Renvoie la différence des deux nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Renvoie le produit des deux nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Renvoie le premier nombre élevé à la puissance du second."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://fr.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 de X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Renvoie l'arc tangente du point (X, Y) en degrés entre -180 et 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://fr.wikipedia.org/wiki/Idiome_de_programmation"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "incrémenter %1 de %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Ajouter un nombre à la variable '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://fr.wikipedia.org/wiki/Table_de_constantes_math%C3%A9matiques"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Renvoie une des constantes courantes : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infini)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "contraindre %1 entre %2 et %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Contraindre un nombre à être entre les limites spécifiées (incluses)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "est divisible par"; -Blockly.Msg["MATH_IS_EVEN"] = "est pair"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "est négatif"; -Blockly.Msg["MATH_IS_ODD"] = "est impair"; -Blockly.Msg["MATH_IS_POSITIVE"] = "est positif"; -Blockly.Msg["MATH_IS_PRIME"] = "est premier"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Vérifier si un nombre est pair, impair, premier, entier, positif, négatif, ou s’il est divisible par un certain nombre. Renvoie vrai ou faux."; -Blockly.Msg["MATH_IS_WHOLE"] = "est entier"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://fr.wikipedia.org/wiki/Modulo_(op%C3%A9ration)"; -Blockly.Msg["MATH_MODULO_TITLE"] = "reste de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Renvoyer le reste de la division euclidienne des deux nombres."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://fr.wikipedia.org/wiki/Nombre"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un nombre."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "moyenne de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maximum de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "médiane de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimum de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "majoritaires de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "élément aléatoire de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "écart-type de la liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "somme de la liste"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Renvoyer la moyenne (arithmétique) des valeurs numériques dans la liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Renvoyer le plus grand nombre dans la liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Renvoyer le nombre médian de la liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Renvoyer le plus petit nombre dans la liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Renvoyer une liste des élément(s) le(s) plus courant(s) dans la liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Renvoyer un élément dans la liste au hasard."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Renvoyer l’écart-type de la liste."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Renvoyer la somme de tous les nombres dans la liste."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_de_nombres_al%C3%A9atoires"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fraction aléatoire"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Renvoyer une fraction aléatoire entre 0.0 (inclus) et 1.0 (exclus)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_de_nombres_al%C3%A9atoires"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "entier aléatoire entre %1 et %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Renvoyer un entier aléatoire entre les deux limites spécifiées, incluses."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://fr.wikipedia.org/wiki/Arrondi_(math%C3%A9matiques)"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arrondir"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arrondir par défaut"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arrondir par excès"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arrondir un nombre au-dessus ou au-dessous."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://fr.wikipedia.org/wiki/Racine_carr%C3%A9e"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "valeur absolue"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "racine carrée"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Renvoie la valeur absolue d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Renvoie e à la puissance d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Renvoie le logarithme naturel d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Renvoie le logarithme décimal d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Renvoie l’opposé d’un nombre"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Renvoie 10 à la puissance d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Renvoie la racine carrée d’un nombre."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://fr.wikipedia.org/wiki/Fonction_trigonom%C3%A9trique"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Renvoie l’arccosinus d’un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Renvoie l’arcsinus d’un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Renvoie l’arctangente d’un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Renvoie le cosinus d’un angle en degrés (pas en radians)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Renvoie le sinus d’un angle en degrés (pas en radians)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Renvoie la tangente d’un angle en degrés (pas en radians)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Créer une variable couleur…"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Créer une variable nombre…"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Créer une variable chaîne…"; -Blockly.Msg["NEW_VARIABLE"] = "Créer une variable..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nom de la nouvelle variable :"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nouveau type de variable :"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "autoriser les ordres"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "avec :"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://fr.wikipedia.org/wiki/Sous-programme"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Exécuter la fonction '%1' définie par l’utilisateur."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://fr.wikipedia.org/wiki/Sous-programme"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Exécuter la fonction '%1' définie par l’utilisateur et utiliser son résultat."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "avec :"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Créer '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Décrire cette fonction…"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "faire quelque chose"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "pour"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Crée une fonction sans sortie."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retour"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Crée une fonction avec une sortie."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Attention : Cette fonction a des paramètres en double."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Surligner la définition de la fonction"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Si une valeur est vraie, alors renvoyer une seconde valeur."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Attention : Ce bloc pourrait n’être utilisé que dans une définition de fonction."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nom de l’entrée :"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Ajouter une entrée à la fonction."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entrées"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Ajouter, supprimer, ou réarranger les entrées de cette fonction."; -Blockly.Msg["REDO"] = "Refaire"; -Blockly.Msg["REMOVE_COMMENT"] = "Supprimer un commentaire"; -Blockly.Msg["RENAME_VARIABLE"] = "Renommer la variable…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renommer toutes les variables « %1 » en :"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "ajouter le texte %2 à %1"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Ajouter du texte à la variable '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "en minuscules"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "en Majuscule Au Début De Chaque Mot"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "en MAJUSCULES"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Renvoyer une copie du texte dans une autre casse."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "obtenir la première lettre"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "obtenir la lettre # depuis la fin"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "obtenir la lettre #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "obtenir la dernière lettre"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "obtenir une lettre au hasard"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "dans le texte %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Renvoie la lettre à la position indiquée."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "nombre %1 sur %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Compter combien de fois un texte donné apparait dans un autre."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Ajouter un élément au texte."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "joindre"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Ajouter, supprimer, ou réordonner des sections pour reconfigurer ce bloc de texte."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "jusqu’à la lettre # depuis la fin"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "jusqu’à la lettre #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "jusqu’à la dernière lettre"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "dans le texte"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "obtenir la sous-chaîne depuis la première lettre"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "obtenir la sous-chaîne depuis la lettre # depuis la fin"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "obtenir la sous-chaîne depuis la lettre #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Renvoie une partie indiquée du texte."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "trouver la première occurrence de la chaîne"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "trouver la dernière occurrence de la chaîne"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "dans le texte %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Renvoie l’index de la première/dernière occurrence de la première chaîne dans la seconde. Renvoie %1 si la chaîne n’est pas trouvée."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 est vide"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Renvoie vrai si le texte fourni est vide."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "créer un texte avec"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Créer un morceau de texte en agrégeant un nombre quelconque d’éléments."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longueur de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Renvoie le nombre de lettres (espaces compris) dans le texte fourni."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "afficher %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Afficher le texte, le nombre ou une autre valeur spécifiée."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Demander un nombre à l’utilisateur."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Demander un texte à l’utilisateur."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "invite pour un nombre avec un message"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "invite pour un texte avec un message"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "remplacer %1 par %2 dans %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Remplacer toutes les occurrences d’un texte par un autre."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inverser %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inverse l’ordre des caractères dans le texte."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://fr.wikipedia.org/wiki/Cha%C3%AEne_de_caract%C3%A8res"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Une lettre, un mot ou une ligne de texte."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "supprimer les espaces des deux côtés"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "supprimer les espaces du côté gauche"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "supprimer les espaces du côté droit"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Renvoyer une copie du texte avec les espaces supprimés d’un bout ou des deux."; -Blockly.Msg["TODAY"] = "Aujourd'hui"; -Blockly.Msg["UNDO"] = "Annuler"; -Blockly.Msg["UNNAMED_KEY"] = "non nommé"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "élément"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Créer 'fixer %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Renvoie la valeur de cette variable."; -Blockly.Msg["VARIABLES_SET"] = "fixer %1 à %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Créer 'obtenir %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Fixe cette variable pour qu’elle soit égale à la valeur de l’entrée."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Une variable appelée '%1' existe déjà."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Une variable nommée '%1' existe déjà pour un autre type : '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Dire quelque chose…"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/gl.js b/lib/blockly/msg/js/gl.js deleted file mode 100644 index a743749..0000000 --- a/lib/blockly/msg/js/gl.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Engadir un comentario"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Cambiar o valor:"; -Blockly.Msg["CLEAN_UP"] = "Limpar os bloques"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Contraer os bloques"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Contraer o bloque"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "cor 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "cor 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporción"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mesturar"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mestura dúas cores ca proporción indicada (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://gl.wikipedia.org/wiki/Cor"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Escolle unha cor da paleta."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "cor ó chou"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Escolle unha cor ao chou."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "azul"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "vermello"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colorar con"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "break out of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "senón"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "mais se"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "se"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "facer"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repeat %1 times"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Faga algunhas instrucións varias veces."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repetir ata"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repetir mentres"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Queres eliminar os %1 bloques?"; -Blockly.Msg["DELETE_BLOCK"] = "Borrar o bloque"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Borrar %1 bloques"; -Blockly.Msg["DISABLE_BLOCK"] = "Desactivar o bloque"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicar"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Activar o bloque"; -Blockly.Msg["EXPAND_ALL"] = "Expandir os bloques"; -Blockly.Msg["EXPAND_BLOCK"] = "Expandir o bloque"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entradas externas"; -Blockly.Msg["HELP"] = "Axuda"; -Blockly.Msg["INLINE_INPUTS"] = "Entradas en liña"; -Blockly.Msg["IOS_CANCEL"] = "Cancelar"; -Blockly.Msg["IOS_ERROR"] = "Erro"; -Blockly.Msg["IOS_OK"] = "Feito"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Engadir entrada"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permitir declaracións"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Esta función ten entradas duplicadas."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRADAS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Engadir"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Engadir variábel"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Eliminar"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Renomear"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nome da variábel"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "listaxe"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primeiro"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "derradeiro"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "ó chou"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 é o derradeiro elemento."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 é o primeiro elemento."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "na listaxe"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 atópase baleira"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Retona verdadeiro se a listaxe atópase baleira."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "como"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserir en"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "definir"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascendente"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descendente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordear unha copia dunha listaxe."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabética, iñorar maiúsculas/minúsculas"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numérica"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabética"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falso"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "verdadeiro"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "non %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "nulo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Retornar nulo."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ou"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "proba"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se falso"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se verdadeiro"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://gl.wikipedia.org/wiki/Aritmética"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Retorna a suma de dous números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Retorna o cociente da división de dous números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Retorna a diferenza de dous números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Retorna o produto de dous números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Retorna o primeiro número elevado á potencia do segundo número."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "mudar %1 por %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Suma un número á variábel '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://gl.wikipedia.org/wiki/Constante_matemática"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Retorna unha das constantes comúns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "é divisíbel por"; -Blockly.Msg["MATH_IS_EVEN"] = "é par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "é negativo"; -Blockly.Msg["MATH_IS_ODD"] = "é impar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "é positivo"; -Blockly.Msg["MATH_IS_PRIME"] = "é primo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Verifica se un número é par, impar, primo, enteiro, positivo, negativo, ou se é divisíbel por outro número. Retorna verdadeiro ou falso."; -Blockly.Msg["MATH_IS_WHOLE"] = "é enteiro"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un número."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "media dunha listaxe"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maior dunha listaxe"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "menor dunha listaxe"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma da listaxe"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Retorna o maior número da listaxe"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Retorna o menor número da listaxe."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Retorna a suma de tódolos números da listaxe."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://gl.wikipedia.org/wiki/Arredondamento"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arredonda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arredonda cara abaixo"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arredonda cara arriba"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arredonda un número cara enriba ou cara abaixo."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://gl.wikipedia.org/wiki/Raíz_cadrada"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluto"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "raíz cadrada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Retorna o valor absoluto dun número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Retorna o número e elevado á potencia dun número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Retorna o logarítmo natural dun número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Retorna o logarítmo en base 10 dun número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Retorna o oposto dun número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Retorna 10 elevado á potencia dun número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Retorna a raíz cadrada dun número."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://gl.m.wikipedia.org/wiki/Función_trigonométrica"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Retorna o arco coseno dun número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Retorna o arco seno dum número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Retorna o arco tanxente dun número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Retorna o coseno dun grao (non radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Retorna o seno dun grao (non radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Retorna a tanxente dun grao (non radiano)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Crear a variable..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nome da nova variable:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "facer algo"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "cara"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retornar"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entradas"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Refacer"; -Blockly.Msg["REMOVE_COMMENT"] = "Eliminar o comentario"; -Blockly.Msg["RENAME_VARIABLE"] = "Renomear a variable..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renomear todas as variables \"%1\" a:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "no texto"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "imprime %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Hoxe"; -Blockly.Msg["UNDO"] = "Desfacer"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elemento"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/gor.js b/lib/blockly/msg/js/gor.js deleted file mode 100644 index 1de6cd4..0000000 --- a/lib/blockly/msg/js/gor.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Moduhenga tuladu"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ubawa nilai"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Mohe'uto Blok"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Mohe'uto Blok"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "laku 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "laku 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "rasio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "Ulawuwa"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mongulawu dulo laku pe'eenta wolo rasio (0.0-1.0)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Laku"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Piliya laku lonto daputari lo laku"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "Laku acak"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Piliya laku acak"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "wahu'ente"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "moyidu"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "meela"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "wolo laku"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Pohutuwa laku wolo jumula u tilantu monto u meela, moyidu wawu wahu'ente. Nga'amila musi o woolota 0 wawu 100"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "Mokaluwari lonto u'uulangiya"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "uweewo"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "wonu uweewo"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "wonu"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "pohutuwa"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ulangiya %1 kali"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ulangiya sambe"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "Ulangiya wonu"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Wonu nilai diya banari, pohutuwa parenta"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Wonu nilai banari, pohutuwa po'ongoolo"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Luluta nga'amila %1 blocks?"; -Blockly.Msg["DELETE_BLOCK"] = "Moluluto Blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Moluluto %1 Blok"; -Blockly.Msg["DISABLE_BLOCK"] = "Moberenti Blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplikat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Momulayi Blok"; -Blockly.Msg["EXPAND_ALL"] = "Lolade Blok"; -Blockly.Msg["EXPAND_BLOCK"] = "Lolade Blok"; -Blockly.Msg["EXTERNAL_INPUTS"] = "tuwanga lonto eksternal"; -Blockly.Msg["HELP"] = "Tuulungi"; -Blockly.Msg["INLINE_INPUTS"] = "tuwanga lo inline"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "tala"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "banari"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "diila %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "noolo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "wawu"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "meyalo"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "yimontalo"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "wonu tala"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "wonu banari"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; // untranslated -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; // untranslated -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Noomoro"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "akar pangkat dua"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Variabel bohu..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Tanggulo Variabel bohu"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Pohutu '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "Mohinggi tuladu"; -Blockly.Msg["RENAME_VARIABLE"] = "Tangguli uulangi variabel"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Tangguli uulangi nga'amila % variabel ode:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "mowali hurupu kiki'o"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "mowali HURUPU DAMANGO"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hama tulade bungaliyo"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hama hurupu # monto wuleya"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "hama hurupu #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hama tulade pulitiyo"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "hama tulade ambulati"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "wayito"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Duhengi, yinggila, meyalo susungiya ulangi tuladu blok."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "ode tuladu # monto wuleya"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "ode hurupu"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to tulade pulitiyo"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "to delomo tuladu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "lolohe u yilowali bohuliyo to delomo tuladu"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "lolohe u yilowali pulitiyo to delomo tuladu"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 koosongi"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Pohalinga banari wonu tuladu u sadi-sadia koosongi."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "haya'o lo %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Engontiye"; -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ha.js b/lib/blockly/msg/js/ha.js deleted file mode 100644 index c552f3f..0000000 --- a/lib/blockly/msg/js/ha.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Daɗa Sharhi"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "An kasa goge siffa '%1' sabo da tana daga sashi na bayanin aikin '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Canza kima:"; -Blockly.Msg["CLEAN_UP"] = "A share Bululluka"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Rusa Bululluka"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Rusa Bulo"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "launi na 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "launi na 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "lissafi"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "gauraya"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Ana gauraya launuka biyu tare da wani lissafi da aka bayar (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Zaɓi launi daga faifan launuka."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "launuka da aka hargitsa"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Zaɓi launi daga wanɗanda aka hargitsa."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "shuɗi"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "kore"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ja"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "launi tare da"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Ƙirƙiri launi tare da wani yawa da aka fayyace na ja, kore, da shuɗi. Duk kimomin dole su zamo tsakanin 0 da 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ɓalle daga cikin kewaye"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "fara da maimaitawa ta gaba ta kewaye"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "ɓalle daga kewaye wanda ya ƙunsa."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Tsallake sauran wannan kewaye, sannan kuma a ci gaba da maimaitawa ta gaba ta kewaye."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Gargaɗi: Wannan bulon za a iya amfani da shi ne kawai a wajen kewaye."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "ga kowane abu %1 a cikin jeri %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Ga kowane abu a jeri, saka siffar '%1' zuwa ga abin, sannan a maimaita wasu lambobin."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "Ƙirga da %1 daga %2 zuwa %3 ƙara %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Sami siffar '%1' ta ɗauki kowa ce kima daga lambar da aka fara da ita zuwa lambar da aka ƙare da ita, ana ƙirgawa daga wata tazara da aka fayyace. Maimaita wannan lamba a kowane lokaci:"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Daɗa sharaɗi zuwa idan bulo."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Daɗa na ƙarshe, sharaɗin kama-duk zuwa idan bulo."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Daɗa, cire, ko sake tsarin ɓangarori domin sake fasalin wannan idan bulo."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "wani"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "wani idan"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "idan"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Idan kima gaskiya ce, to a yi wasu maganganu."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Idan kimar gaskiya ce, to a yi bulo na farko na maganganu. Idan ba haka ba, yi bulo na biyu na maganganu."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Idan kimar farko gaskiya ce, to yi bulon farko na maganganun. In ba haka ba, idan kima ta biyu ce gaskiya, yi bolu na biyu na maganganun."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Idan kimar farko gaskiya ce, to yi bulon farko na maganganun. In ba haka ba, idan kima ta biyu ce gaskiya, yi bolu na biyu na maganganun. Idan babu kimar da take gaskiya, yi bulo na ƙarshe na maganganun."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "yi"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "maimaita sau %1"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Yi wasu bayanai sau da dama."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "maimaita har sai"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "maimaita yayin da"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Yayin da wata kima ta zama ƙarya, maimaita wasu lambobi."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Yayin da wata kima ta zama gaskiya, maimaita wasu lambobi."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "A goge duk bululluka %1?"; -Blockly.Msg["DELETE_BLOCK"] = "Goge Bulo"; -Blockly.Msg["DELETE_VARIABLE"] = "A goge siffar '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "A goge amfanunnukan %1 na siffar '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Goge Bulo %1"; -Blockly.Msg["DISABLE_BLOCK"] = "Kashe Bulo"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Yi kwafi"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Kwafi Sharhi"; -Blockly.Msg["ENABLE_BLOCK"] = "Kunna Bulo"; -Blockly.Msg["EXPAND_ALL"] = "Faɗaɗa Bulullaka"; -Blockly.Msg["EXPAND_BLOCK"] = "Faɗaɗa Bulo"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Bayanan Waje"; -Blockly.Msg["HELP"] = "Taimako"; -Blockly.Msg["INLINE_INPUTS"] = "Bayanai na Cikin layi"; -Blockly.Msg["IOS_CANCEL"] = "Soke"; -Blockly.Msg["IOS_ERROR"] = "Kuskure"; -Blockly.Msg["IOS_OK"] = "TO"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Daɗa Bayani"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Bar lamba"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Wannan aikin yana da kwafin bayanai."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "BAYANAI"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Daɗa"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Daɗa Siffa"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Goge"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ba za ka iya amfani da sunann siffa wanda ba komai ba."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Sake suna"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Sunan siffa"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ƙirƙiri jeri wanda babu komai"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Ya dawo da jeri, na tsawon 0, wanda bai ƙunshi ajiye bayanai ba"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "jeri"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Daɗa, cire, ko sake tsarin ɓangarori domin sake fasalin wannan bulo."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ƙirƙiri jeri"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Daɗa wani kaya zuwa jerin."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Ƙiƙiri jeri tare da kowace lamba na kayayyaki."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "farko"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# daga ƙarshe"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "samowa"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "samowa da cirewa"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ƙarshe"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "bazuwa"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "cire"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Ya dawo da wani abu na farko a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Ya dawo da abin a wani gurbi da aka fayyace a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Ya dawo da wani abu na ƙarshe a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Ya dawo da wani abu a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Ya cire kuma ya dawo da abin farko a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Ya cire kuma ya dawo da abin a gurbin da aka fayyace a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Ya cire kuma ya dawo da abin ƙarshe a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Ya cire kuma ya dawo abu mai bazuwa a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Ya cire abin farko a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Ya cire wani abin a wani gurbi da aka fayyace a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Ya cire abin ƙarshe a cikin jeri."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Ya cire abu mai bazuwa a cikin jeri."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "zuwa # daga ƙarshe"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "zuwa #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "zuwa ƙarshe"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "sami sashin jeri daga farko"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "sami sashin jeri daga # daga ƙarshe"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "sami sashin jeri daga #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Ƙirƙiri kwafi na ɓangaren da aka fayyace daga wani jeri."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 shine wani abu na ƙarshe."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 shine wani abu na farko."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "nemo afkuwar farko daga wani abu"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "nemo afkuwar ƙarshe daga wani abu"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Ya dawo da jeri na farkon/ƙarshen afkuwa na wani abu a cikin jerin. Ya dawo da %1 idan ba a sami wani abin ba."; -Blockly.Msg["LISTS_INLIST"] = "a jeri"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 babu komai"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Ya dawo gaskiya idan jerin babu komai."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "tsawo na %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Ya dawo da tsawon wani jeri."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "ƙirƙiri jeri tare da wani abu %1 da aka maimaita sau %2"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Ya ƙirƙiri jeri da ya ƙunshi wata kima da aka bayar da aka maimaita yawan lambar da aka fayyace."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "juya %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Sauya tsarin kwafi daga jeri."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "a matsayin"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "cusa a"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "shirya"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Ya cusa wani abin a farko na jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Ya cusa wani abin a wani gurbi da aka fayyace a cikin jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Ya maƙala wani abin a ƙarshe na jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Cusa wani abu ta hanyar bazawa a cikin jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Ya shirya abin farko a cikin jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Ya shirya wani abin a wani gurbi da aka fayyace a cikin jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Ya shirya abin ƙarshe a cikin jeri."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Ya shirya abu mai bazuwa a cikin jeri."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "hawa"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "sauka"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ware %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ware kwafi na jeri."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "na haruffa, a=A"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "na lamba"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "na haruffa"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "yi jeri daga rubutu"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "yi rubutu daga jeri"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Haɗa jerin rubututtuka zuwa rubutu guda ɗaya, a raba tare da mai raba rubutu."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Tsaga rubutu zuwa jerin rubututtuka, a karya a kowane mai raba kalmomi."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "tare da mai raba kalmomi"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ƙarya"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Ya koma kodai gaskiya ko ƙarya."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "gaskiya"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Koma gaskiya idan duk bayanan sun yi dai dai da juna."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Koma gaskiya idan bayanin farko ya fi bayani na biyu yawa."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Koma gaskiya idan bayanin farko ya fi ko ya yi dai dai da bayani na biyu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Koma gaskiya idan bayanin farko ya fi na biyu ƙanƙanta."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Koma gaskiya idan bayanin farko ya fi ƙanƙanta ko dai dai da bayani na biyu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Koma gaskiya idan duk bayanan ba su yi dai dai da juna ba."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ba %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Koma gaskiya idan bayanin ƙarya ne. Koma ƙarya idan bayanin gaskiya ne."; -Blockly.Msg["LOGIC_NULL"] = "maras amfani"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Ya koma maras amfani."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "kuma"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ko"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Koma gaskiya idan duk bayanan gaskiya ne."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Koma gaskiya idan a ƙalla ɗayan bayanan gaskiya ne."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "gwaji"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "idan ƙarya ne"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "idan gaskiya ne"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Duba sharaɗin a cikin 'gwaji'. Idan sharaɗin gaskiya ne, mayar da kimar 'idan gaskiya ne'; idan ba haka ba mayar da kimar 'idan ƙarya ne'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Dawo da jumlar lambobin guda biyu."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Dawo da sakamakon lambobin guda biyu bayan an raba su da juna."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Dawo da bambancin lambobin guda biyu."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Dawo da ruɓin lambobin guda biyu."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Dawo da lambar farko wadda aka ɗaga ta zuwa ƙarfin lamba ta biyu."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 na X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Dawo da arctangent na tsinin (X, Y) a gwargwado daga -180 zuwa 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "canza %1 da %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Daɗa wata lamba zuwa siffa '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Dawo da ɗaya daga cikin sanannen zaunannen lissafi: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ko ∞ (maras iyaka)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ƙarfi %1 ƙasa %2 sama %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Tsare lamba tsakanin lambobi da aka fayyace masu ƙarama da babbar kima (haɗawa)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "lamba ce da za a iya rabawa da"; -Blockly.Msg["MATH_IS_EVEN"] = "lamba da za a iya rabawa da biyu"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "lamba ce da bata kai sufuli ba"; -Blockly.Msg["MATH_IS_ODD"] = "lamba ce da ba za a iya rabawa da biyu ba"; -Blockly.Msg["MATH_IS_POSITIVE"] = "lamba ce da tafi sufuli"; -Blockly.Msg["MATH_IS_PRIME"] = "lamba ce da kawai za a iya rabawa da kanta"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Duba idan lamba ce da za a iya rabawa da biyu, lamba wadda ba za a iya rabawa da biyu ba, lamba ce kawai da za a iya rabawa da kanta, lamba ce cikakkiya,lamba ce da tafi sufuli, lamba ce da bata kai sufuli ba, lamba ce da za a iya rabawa da wata lamba. Ta dawo da gaskiya ko ƙarya."; -Blockly.Msg["MATH_IS_WHOLE"] = "lamba ce cikakkiya"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "saura daga raba %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Dawo da saura daga raba lambobin guda biyu."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Lambda."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "Tsaka-tsaki na jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "cikakke na jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "tsakiyar jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Taƙaicewa na jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "mai yawan bayyana na jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "bazuwar kaya na jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "matakan bambance-bambance na jeri"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "jumlar jeri"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Dawo da tsaka-tsaki (matsakaicin lissafi) na kimar lambobi dake cikin jerin."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Dawo da babbar lamba dake cikin jerin."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Dawo da lambar tsakiya ta cikin jeri."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Dawo da lambobi ƙanana a cikin jerin."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Dawo da jeri na abubuwan da suka fi bayyana a cikin jeri."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Dawo da bazuwar kaya daga jerin."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Dawo da matakan bambance-bambance na jeri."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Dawo da jumlar duk lambobi na cikin jerin."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "ɓangare mai buzuwa"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Dawo da ɓangare mai bazuwa tsakanin 0.0 (haɗawa) da 1.0 (rabewa)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "bazuwar cikakkiyar lamba daga %1 zuwa %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Dawo da bazuwar cikakkiyar lamba tsakanin wani gwargwado da aka fayyace, haɗawa."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "cika"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "cika ƙasa"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "cika sama"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Cika lamba sama ko ƙasa."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "cikakkiya"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "lamba da ta ruɓanya kanta"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Dawo da cikakkiyar kima na wata lamba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Dawo da e zuwa ƙarfin wata lamba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Dawo da jerin lambobi da aka tara ko aka ɗebe."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Dawo da tushe 10 na jerin lambobi da aka tara ko aka ɗebe na wata lamba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Dawo da kishiya na wata lamba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Dawo da 10 zuwa ƙarfin wata lamba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Dawo da wata lamba da ta ruɓanya kanta."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Dawo da arccosine na wata lamba."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Dawo da arcsine na wata lamba."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Dawo da arctangent na wata lamba."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Dawo da cosine na wani gwargwado (banda layin kusurwar waje)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Dawo da sine na wani gwargwado (banda layin kusurwar waje)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Dawo da tangent na wani gwargwado (banda layin kusurwar waje)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Ƙirƙiri siffa ta launi..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Ƙirƙiri siffa ta lamba..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Ƙiriƙiri kalmar siffa..."; -Blockly.Msg["NEW_VARIABLE"] = "Ƙirƙiri siffofi..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Sunan sabuwar siffa:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Irin sabuwar siffa:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "ƙyale bayanai"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "tare da:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Gudanar da aiki '%1' wanda mai amfani ya ayyana."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Gudanar da aiki '%1' kuma a yi amfani da sakamakon sa."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "tare da:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Ƙirƙiri '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Kwatanta wannan aiki..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "yi"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "da"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Ya ƙirƙiri wani aiki ba tare da sakamako ba."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "mayar"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Ya ƙirƙiri wani aiki ba tare da wani sakamako ba."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Gardaɗi: Wannan aikin yana da ruɓi na gazawa."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Bayar da haske na bayanin aiki"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Idan wata kima gaskiya ce, to dawo da kima ta biyu."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Gargaɗi: Za a iya amfani da wannan bulo ne kawai a cikin bayani na wani aiki."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "saka suna:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Daɗa wani bayani ga aikin."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "bayani"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Daɗa, cire, ko sake tsarin bayani na wannan aiki."; -Blockly.Msg["REDO"] = "Sake"; -Blockly.Msg["REMOVE_COMMENT"] = "Cire Sharhi"; -Blockly.Msg["RENAME_VARIABLE"] = "Sake sunan siffa..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Sake sunnan duk siffofi '%1' zuwa:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "zuwa %1 daɗa rubutu %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Daɗa wani rubutu zuwa siffa ta '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "zuwa ƙananan baƙaƙe"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "zuwa Baƙaƙe Dake nuna Suna"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "zuwa MANYAN BAƘAƘE"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "sami harafin farko"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "sami harafin # daga ƙarshe"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "sami harafin #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "sami harafin ƙarshe"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "sami harafi mai bazuwa"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "ta rubutu %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Ya dawo da harafi a gurbi da aka fayyace."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "ƙirga %1 a cikin %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Ƙirga sau nawa wani rubutu ya afku a cikin sauran wasu rubutu."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Daɗa wani kaya zuwa ga rubutun."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "haɗa"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Daɗa, cire, ko sake tsarin ɓangarori domin sake fasalin wannan bulo na rubutu."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "zuwa harafin # daga ƙarshe"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "zuwa harafin #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "zuwa harafi na ƙarshe"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ta rubutu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "sami sashin jumla daga harafin farko"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "sami sashin jumla daga harafin # daga ƙarshe"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "sami sashin jumla daga harafin #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Ya dawo da ɓangaren rubutu da aka fayyace."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "nemo afkuwar farko ta rubutu"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "nemo afkuwar ƙarshe ta rubutu"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ta rubutu %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "nemo a cikin rubutu. Returns %1 if text is not found."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 babu komai"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Ya dawo gaskiya idan rubutun da aka bayar babu komai."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ƙirƙiri rubutu da"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Ƙirƙiri guntun rubutu ta haɗa kowace lamba ta kayayyaki."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "tsawon %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Ya dawo lamba ta haruffa (da ya haɗa da sarari) a cikin rubutun da aka bayar."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "buga %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Buga rubutun da aka fayyace, lamba ko wata kima."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Samo wani mai amfani domin wata lamba."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Samo wani mai amfani domin wani rubutu."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "samo lamba tare da saƙo"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "samo rubutu tare da saƙo"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "maye gurbin %1 da %2 a cikin %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Maye gurbin duk afkuwa na wani rubutu a cikin wasu rubutu."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "juya %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Ya juya tsari na haruffa a cikin rubutu."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Harafi, kalma, ko layi na rubutu."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "datse sarari daga ɓangarori guda biyu na"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "datse sarari daga ɓangaren hagu na"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "datse sarari daga ɓangaren dama na"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Dawo da kwafin rubutu tare da sauran sarari da aka cire daga ƙarshe ɗaya ko biyu."; -Blockly.Msg["TODAY"] = "Yau"; -Blockly.Msg["UNDO"] = "Fasa"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "waniabu"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Ƙirƙiri 'set %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Ya dawo da kima na wannan siffa."; -Blockly.Msg["VARIABLES_SET"] = "saita %1 zuwa %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Ƙirƙiri 'get %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Ya saita wannan siffa ta zama dai dai da bayanin."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Tuni akwai sunnan siffa da aka kira '%1'."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Tuni akwai sunan siffa da aka kira '%1' domin wata iri ta: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Faɗi wani abu..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/he.js b/lib/blockly/msg/js/he.js deleted file mode 100644 index 604ff7a..0000000 --- a/lib/blockly/msg/js/he.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "הוסף תגובה"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "אי אפשר למחוק את המשתנה \"%1\", מכיוון שהגדרת הפונקציה \"%2\" משתמשת בו."; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "שנה ערך:"; -Blockly.Msg["CLEAN_UP"] = "סידור בלוקים"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "צמצם קטעי קוד"; -Blockly.Msg["COLLAPSE_BLOCK"] = "צמצם קטע קוד"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "צבע 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "צבע 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "יחס"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ערבב"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "מערבב שני צבעים יחד עם יחס נתון(0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "http://he.wikipedia.org/wiki/%D7%A6%D7%91%D7%A2"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "בחר צבע מן הצבעים."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "צבע אקראי"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "בחר צבא אקראי."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "כחול"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ירוק"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "אדום"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "צבע עם"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "צור צבע עם הסכום המצוין של אדום, ירוק וכחול. כל הערכים חייבים להיות בין 0 ל100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "צא מהלולאה"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "המשך עם האיטרציה הבאה של הלולאה"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "צא אל מחוץ ללולאה הכוללת."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "דלג על שאר הלולאה והמשך עם האיטרציה הבאה."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "אזהרה: בלוק זה עשוי לשמש רק בתוך לולאה."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "לכל פריט %1 ברשימה %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "לכל פריט ברשימה, להגדיר את המשתנה '%1' לפריט הזה, ולאחר מכן לעשות כמה פעולות."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "תספור עם %1 מ- %2 ל- %3 עד- %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "תוסיף תנאי לבלוק If."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "לסיום, כל התנאים תקפים לגבי בלוק If."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "תוסיף, תמחק, או תסדר מחדש כדי להגדיר מחדש את הבלוק If."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "אחרת"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "אחרת אם"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "אם"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "אם ערך נכון, לבצע כמה פעולות."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "אם הערך הוא אמת, לבצע את הבלוק הראשון של הפעולות. אחרת, לבצע את הבלוק השני של הפעולות."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "אם הערך הראשון הוא אמת, לבצע את הבלוק הראשון של הפעולות. אחרת, אם הערך השני הוא אמת, לבצע את הבלוק השני של הפעולות."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "אם הערך הראשון הוא אמת, לבצע את הבלוק הראשון של הפעולות. אחרת, אם הערך השני הוא אמת, לבצע את הבלוק השני של הפעולות. אם אף אחד מהם אינו נכון, לבצע את הבלוק האחרון של הפעולות."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "http://he.wikipedia.org/wiki/בקרת_זרימה"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "תעשה"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "חזור על הפעולה %1 פעמים"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "לעשות כמה פעולות מספר פעמים."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "חזור עד ש..."; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "חזור כל עוד"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "בזמן שהערך שווה לשגוי, תעשה מספר חישובים."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "כל עוד הערך הוא אמת, לעשות כמה פעולות."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "האם למחוק את כל %1 קטעי הקוד?"; -Blockly.Msg["DELETE_BLOCK"] = "מחק קטע קוד"; -Blockly.Msg["DELETE_VARIABLE"] = "מחק את משתנה ה'%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "למחוק %1 שימושים במשתנה ‚%2’?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "מחק %1 קטעי קוד"; -Blockly.Msg["DISABLE_BLOCK"] = "נטרל קטע קוד"; -Blockly.Msg["DUPLICATE_BLOCK"] = "שכפל"; -Blockly.Msg["DUPLICATE_COMMENT"] = "שכפול ההערה"; -Blockly.Msg["ENABLE_BLOCK"] = "הפעל קטע קוד"; -Blockly.Msg["EXPAND_ALL"] = "הרחב קטעי קוד"; -Blockly.Msg["EXPAND_BLOCK"] = "הרחב קטע קוד"; -Blockly.Msg["EXTERNAL_INPUTS"] = "קלטים חיצוניים"; -Blockly.Msg["HELP"] = "עזרה"; -Blockly.Msg["INLINE_INPUTS"] = "קלטים פנימיים"; -Blockly.Msg["IOS_CANCEL"] = "ביטול"; -Blockly.Msg["IOS_ERROR"] = "שגיאה"; -Blockly.Msg["IOS_OK"] = "אישור"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ הוספת קלט"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "הוספה"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ הוספת משתנה"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "מחיקה"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "לא ניתן להזין שם ריק למשתנה."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "שינוי שם"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "שם המשתנה"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "צור רשימה ריקה"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "החזר רשימה,באורך 0, המכילה רשומות נתונים"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "רשימה"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "תוסיף, תמחק, או תסדר מחדש כדי להגדיר מחדש את הבלוק If."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "צור רשימה עם"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "הוסף פריט לרשימה."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "צור רשימה עם כל מספר של פריטים."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "ראשון"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# מהסוף"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "לקבל"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "קבל ומחק"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "אחרון"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "אקראי"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "הסרה"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "מחזיר את הפריט הראשון ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "מחזיר פריט במיקום שצוין ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "מחזיר את הפריט האחרון ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "מחזיר פריט אקראי מהרשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "מסיר ומחזיר את הפריט הראשון ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "מסיר ומחזיר את הפריט במיקום שצוין ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "מסיר ומחזיר את הפריט האחרון ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "מחק והחזר פריט אקראי מהרשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "הסר את הפריט הראשון ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "מחזיר פריט במיקום שצוין ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "הסר את הפריט הראשון ברשימה."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "הסר פריט אקראי ברשימה."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ל # מהסוף"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ל #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "לאחרון"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "לקבל חלק מהרשימה החל מהתחלה"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "לקבל חלק מהרשימה החל מ-# עד הסוף"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "לקבל חלק מהרשימה החל מ-#"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "יוצרת עותק של חלק מסוים מהרשימה."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 הוא הפריט האחרון."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 הוא הפריט הראשון."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "מחזירה את המיקום הראשון של פריט ברשימה"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "מחזירה את המיקום האחרון של פריט ברשימה"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "מחזירה את האינדקס של המופע הראשון/האחרון של הפריט ברשימה. מחזירה %1 אם הפריט אינו נמצא."; -Blockly.Msg["LISTS_INLIST"] = "ברשימה"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 הוא ריק"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "מחזיר אמת אם הרשימה ריקה."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "אורכו של %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "מחזירה את האורך של רשימה."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "ליצור רשימה עם הפריט %1 %2 פעמים"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "יוצר רשימה המורכבת מהערך נתון חוזר מספר פעמים שצוין."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "כמו"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "הכנס ב"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "הגדר"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "מכניס את הפריט בתחילת רשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "מכניס את הפריט במיקום שצוין ברשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "מוסיף את הפריט בסוף רשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "הוסף פריט באופן אקראי ברשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "מגדיר את הפריט הראשון ברשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "מגדיר את הפריט במיקום שצוין ברשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "מגדיר את הפריט האחרון ברשימה."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "מגדיר פריט אקראי ברשימה."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "סדר עולה"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "סדר יורד"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "מיון עותק של הרשימה."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "סדר אלפביתי, לא תלוי רישיות"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "נומרי"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "סדר אלפביתי"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "יצירת רשימה מטקסט"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "יצירת טקסט מרשימה"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "שגוי"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "מחזיר או האם נכון או האם שגוי."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "נכון"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "תחזיר נכון אם שני הקלטים שווים אחד לשני."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "תחזיר נכון אם הקלט הראשון גדול יותר מהקלט השני."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "תחזיר נכון אם הקלט הראשון גדול יותר או שווה לכניסה השנייה."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "תחזיר אמת (true) אם הקלט הראשון הוא קטן יותר מאשר הקלט השני."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "תחזיר אמת אם הקלט הראשון הוא קטן יותר או שווה לקלט השני."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "תחזיר אמת אם שני הקלטים אינם שווים זה לזה."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "לא %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "החזר אמת אם הקלט הוא שקר. החזר שקר אם הקלט אמת."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "תחזיר ריק."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ו"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "או"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "תחזיר נכון אם שני הקלטים נכונים."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "תחזיר נכון אם מתקיים לפחות אחד מהקלטים נכונים."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "בדיקה"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "אם שגוי"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "אם נכון"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "בדוק את התנאי ב'מבחן'. אם התנאי נכון, תחזיר את הערך 'אם נכון'; אחרת תחזיר את הערך 'אם שגוי'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://he.wikipedia.org/wiki/ארבע_פעולות_החשבון"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "תחזיר את סכום שני המספרים."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "החזרת המנה של שני המספרים."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "החזרת ההפרש בין שני מספרים."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "החזרת תוצאת הכפל בין שני מספרים."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "החזרת המספר הראשון בחזקת המספר השני."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "שינוי %1 על־ידי %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "הוסף מספר למשתנה '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://he.wikipedia.org/wiki/קבוע_מתמטי"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "הגבל %1 בין %2 ל %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "מתחלק ב"; -Blockly.Msg["MATH_IS_EVEN"] = "זוגי"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "שלילי"; -Blockly.Msg["MATH_IS_ODD"] = "אי-זוגי"; -Blockly.Msg["MATH_IS_POSITIVE"] = "חיובי"; -Blockly.Msg["MATH_IS_PRIME"] = "ראשוני"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "שלם"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "שארית החילוק %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "החזרת השארית מחלוקת שני המספרים."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://he.wikipedia.org/wiki/מספר_ממשי"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "מספר."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "ממוצע של רשימה"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "מקסימום של רשימה"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "חציון של רשימה"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "מינימום של רשימה"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "שכיחי הרשימה"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "פריט אקראי מרשימה"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "סכום של רשימה"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "תחזיר את המספר הגדול ביותר ברשימה."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "תחזיר את המספר החיצוני ביותר ברשימה."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "תחזיר את המספר הקטן ביותר ברשימה."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "החזרת רשימה של הפריטים הנפוצים ביותר ברשימה"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "תחזיר רכיב אקראי מרשימה."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "מחזיר את סטיית התקן של הרשימה."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "החזרת הסכום של המספרים ברשימה."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "שבר אקראי"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "מספר שלם אקראי בין %1 ל-%2 (כולל)"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://he.wikipedia.org/wiki/עיגול_(אריתמטיקה)"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "עיגול"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "עיגול למטה"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "עיגול למעלה"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "עיגול מספר למעלה או למטה."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://he.wikipedia.org/wiki/שורש_ריבועי"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ערך מוחלט"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "שורש ריבועי"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "החזרת הערך המוחלט של מספר."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "החזרת e בחזקת מספר."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "החזרת הלוגריתם הטבעי של מספר."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "החזרת הלוגריתם לפי בסיס עשר של מספר."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "החזרת הערך הנגדי של מספר."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "החזרת 10 בחזקת מספר."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "החזרת השורש הריבועי של מספר."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://he.wikipedia.org/wiki/פונקציות_טריגונומטריות"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "החזרת הקוסינוס של מעלה (לא רדיאן)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "החזרת הסינוס של מעלה (לא רדיאן)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "החזרת הטנגס של מעלה (לא רדיאן)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "יצירת משתנה צבע..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "צור משתנה מחרוזת"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "צור משתנה מחרוזת"; -Blockly.Msg["NEW_VARIABLE"] = "צור משתנה..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "שם המשתנה החדש:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "סוג המשתנה החדש:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "לאפשר פעולות"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "עם:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://he.wikipedia.org/wiki/שגרה_(תכנות)"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "להפעיל את הפונקציה המוגדרת על-ידי המשתמש '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://he.wikipedia.org/wiki/שגרה_(תכנות)"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "להפעיל את הפונקציה המוגדרת על-ידי המשתמש '%1' ולהשתמש הפלט שלה."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "עם:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "ליצור '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "תאר את הפונקציה הזו..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "לעשות משהו"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "לביצוע:"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "יצירת פונקציה ללא פלט."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "להחזיר"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "יצירת פונקציה עם פלט."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "אזהרה: לפונקציה זו יש פרמטרים כפולים."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "הדגש הגדרה של פונקציה"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "אם ערך נכון, אז להחזיר ערך שני."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "אזהרה: בלוק זה עשוי לשמש רק בתוך הגדרה של פונקציה."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "שם הקלט:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "הוסף קלט לפונקציה"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "מקורות קלט"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "הוסף, הסר או סדר מחדש קלטים לפונקציה זו"; -Blockly.Msg["REDO"] = "ביצוע חוזר"; -Blockly.Msg["REMOVE_COMMENT"] = "הסר תגובה"; -Blockly.Msg["RENAME_VARIABLE"] = "שנה את שם המשתנה..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "שנה את שם כל '%1' המשתנים ל:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "אל %1 הוספת טקסט %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "לאותיות קטנות (עבור טקסט באנגלית)"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "לאותיות גדולות בתחילת כל מילה (עבור טקסט באנגלית)"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "לאותיות גדולות (עבור טקסט באנגלית)"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "לקבל את האות הראשונה"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "לקבל את האות האחרונה"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "לקבל אות אקראית"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "מחזיר את האות במיקום שהוגדר."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "צירוף"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "לאות # מהסוף"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "לאות #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "בתוך הטקסט"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "מחזירה את האינדקס של המופע הראשון/האחרון בטקסט הראשון לתוך הטקסט השני. מחזירה %1 אם הטקסט אינו נמצא."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 הוא ריק"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "יצירת טקסט עם"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "אורכו של %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "מחזיר את מספר התווים (אותיות, רווחים וכו') בטקסט שהוזן."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "הדפס %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "להדפיס טקסט, מספר או ערך אחר שצוין"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "בקש מהמשתמש מספר."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "בקשה למשתמש להזין טקסט כלשהו."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "בקשה למספר עם הודעה"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "בקשה להזנת טקסט עם הודעה"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://he.wikipedia.org/wiki/מחרוזת_(מדעי_המחשב)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "אות, מילה, או שורת טקסט."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "למחוק רווחים משני הקצוות"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "למחוק רווחים מימין"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "למחוק רווחים משמאל"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "להחזיר עותק של הטקסט לאחר מחיקת רווחים מאחד או משני הקצוות."; -Blockly.Msg["TODAY"] = "היום"; -Blockly.Msg["UNDO"] = "ביטול"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "פריט"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "ליצור 'הגדר %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "להחזיר את הערך של משתנה זה."; -Blockly.Msg["VARIABLES_SET"] = "הגדר %1 ל- %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "ליצור 'קרא %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "מגדיר משתנה זה להיות שווה לקלט."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "קיים כבר משתנה בשם \"%1\"."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "קיים כבר משתנה בשם \"%1\" מסוג אחר: \"%2\""; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "נא להזין הערה..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/hi.js b/lib/blockly/msg/js/hi.js deleted file mode 100644 index 854dc96..0000000 --- a/lib/blockly/msg/js/hi.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "टिप्पणी छोड़ें"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "चर '%1' को नहीं हटा सकता क्योंकि यह फ़ंक्शन '%2' की परिभाषा का हिस्सा है"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "मान परिवर्तित करें:"; -Blockly.Msg["CLEAN_UP"] = "खानों को साफ करें"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ब्लॉक संक्षिप्त करें"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ब्लॉक को संक्षिप्त करें"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "रंग 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "रंग 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "अनुपात"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "मिश्रण करें"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "दिए गए अनुपात (0.0 - 1.0) के साथ दो रंगों का मिश्रण करता है।"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "पैलेट से एक रंग चुनें।"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "कोई भी रंग"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "कोई भी एक रंग का चयन करें।"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "नीला"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "हरा"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "लाल"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "इसके साथ रंग करें"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "लाल, हरा और नीले की निर्दिष्ट मात्रा के साथ एक रंग बनायें। सभी मान ० से १०० के बीच होने चाहिए।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "फंदे से बाहर निकलें"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "फंदे की अगली यात्रा के साथ जारी रखें"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "भीतरी फंदे से बाहर निकलें।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "बाकी बचे फंदे को छोड़ें, और अगली यात्रा जारी रखें।"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "सावधान: ये ब्लॉक केवल लूप के अंदर इस्तेमाल किया जा सकता है।"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "प्रत्येक वस्तु के लिए %1 सूची में %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "सूची के प्रत्येक वस्तु के लिए, वस्तु में चर का मान '%1' रखें और बाद में कुछ कथन लिखें।"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "%1 से %2 से %3 तक %4 के साथ गिनती करें"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "क्या चर '%1' प्रारंभ संख्या से अंत संख्या तक मानों को लेता है, निर्दिष्ट अंतराल के अनुसार गिनती करता है, और निर्दिष्ट रुकावटों को करता है।"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "एक शर्त जोड़ें यदि ब्लॉक है।"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "यदि ब्लॉक है तो इसके लिए एक अंतिम, कैच-सभी स्थिति जोड़ें।"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "भाग को समनरूप बनाने के लिए जोङें, हटाएं, या पुनः व्यवस्थित करें यदि यह बंद है।"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "अन्य"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "यदि अन्य"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "यदि"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "यदी मान सही है, तो कुछ विवरण चलाएँ।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "यदि एक मान सत्य है तो कथनों का प्रथम खण्ड बनायें। अन्यथा कथनों का दूसरा भाग निर्मित करें।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "यदि पहले मान सही है, तो बयानों का पहला खंड करें। अन्यथा, यदि दूसरा मान सत्य है, तो बयानों का दूसरा खंड करें।"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "यदि पहला मान सही है, तो बयानों का पहला खंड करें। अन्यथा, यदि दूसरा मान सत्य है, तो बयानों का दूसरा खंड करें। यदि कोई भी मान सही नहीं है, तो बयानों का अंतिम खंड करें।"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "करें"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 बार दोहराएँ"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "कुछ विवरण कई बार चलाएँ।"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "दोहराएँ जब तक"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "दोहराएँ जब कि"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "जब तक मान गलत है, तब तक कुछ विवरण चलाएँ।"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "जब तक मान सही है, तब तक कुछ विवरण चलाएँ।"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "सभी %1 खानों को हटा दें?"; -Blockly.Msg["DELETE_BLOCK"] = "ब्लॉक हटाएँ"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' चर को हटाएँ"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' चर के %1 उपयोग को हटाएँ?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 ब्लॉक हटाएँ"; -Blockly.Msg["DISABLE_BLOCK"] = "ब्लॉक को अक्षम करें"; -Blockly.Msg["DUPLICATE_BLOCK"] = "कॉपी करें"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ब्लॉक को सक्षम करें"; -Blockly.Msg["EXPAND_ALL"] = "ब्लॉक विस्तार करें"; -Blockly.Msg["EXPAND_BLOCK"] = "ब्लॉक का विस्तार करें"; -Blockly.Msg["EXTERNAL_INPUTS"] = "बाहरी इनपुट"; -Blockly.Msg["HELP"] = "सहायता"; -Blockly.Msg["INLINE_INPUTS"] = "इनलाइन इनपुट"; -Blockly.Msg["IOS_CANCEL"] = "रद्द करें"; -Blockly.Msg["IOS_ERROR"] = "त्रुटि"; -Blockly.Msg["IOS_OK"] = "ठीक है"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ इनपुट जोड़ें"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "बयानों की अनुमति दें"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "इस फंक्शन में नकली निवेश हैं।"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "इनपुट"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "जोड़ें"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ चर जोड़ें"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "हटाएँ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "आप रिक्त चर नाम उपयोग नहीं कर सकते"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "नाम बदलें"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "चर का नाम"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "खाली सूची बनाएँ"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "0 लंबाई की, कोई भी डेटा ना रखने वाली एक सूची लौटती है"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "सूची"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "इस सूची ब्लॉक को पुन: आकार देने के लिए वर्गों को जोड़ें, निकालें, या पुन: क्रमित करें।"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "इसके सूची बनाएँ"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "सूची मे एक आइटम जोड़ें।"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "कितने भी आइटम वाली एक सूची बनाएँ।"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "पहला"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "अंत से #"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "प्राप्त"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "प्राप्त करे और हटाए"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "आखिरी"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "रैन्डम"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "निकालें"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "सूची का पहला आइटम रिटर्न करता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "एक सूची में निर्दिष्ट स्थान पर वस्तु को लौटाता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "सूची का आखरी आइटम रिटर्न करता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "सूची से रैन्डम आइटम रिटर्न करता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "सूची का पहला आइटम निकालता है और रिटर्न करता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "एक सूची में निर्दिष्ट स्थिति में आइटम निकालता है और लौटाता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "सूची का आखरी आइटम निकालता है और रिटर्न करता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "सूची से रैन्डम आइटम निकालता है और रिटर्न करता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "सूची का पहला आइटम निकालता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "एक सूची में निर्दिष्ट स्थान पर आइटम निकाल देता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "सूची का आखरी आइटम निकालता है।"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "सूची से रैन्डम आइटम निकालता है।"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "अंतिम से # को"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "# को"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "अंत से"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "प्रथम से उप-सूची प्राप्त करें"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "अंत से # से उप-सूची प्राप्त करें"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "# से उप-सूची प्राप्त करें"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "सूची के बताए गये भाग की कॉपी बनता है।"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 आखिरी वस्तु है।"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 पहली वस्तु है।"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "आइटम पहली बार जहाँ आया है उसे ढूढ़े"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "आइटम आखरी बार जहाँ आया है उसे ढूढ़े"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "सूची में आइटम की पहली/अंतिम घटना का सूचक देता है। यदि आइटम नहीं मिला है तो %1 रिटर्न होता है।"; -Blockly.Msg["LISTS_INLIST"] = "सूची में"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 खाली है"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "यदि सूची खाली है तो ट्रू रिटर्न करता है।"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 की लंबाई"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "सूची की लंबाई रिटर्न करता है।"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "वस्तु %1 के साथ %2 बार दोहराई गयी सूची बनाएं"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "निर्धारित मान की बार-बार दोहराई गई एक सूची बनाता है।"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 को बदल दें"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "एक सूची की एक प्रति को छांटे।"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "बतौर"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "पर डालें"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "सैट करें"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "आइटम को सूची के शुरू में इनसर्ट करता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "सूची मे बताए गये स्थान में आइटम इनसर्ट करता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "आइटम को सूची के अंत में जोड़ता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "आइटम को सूची में रैन्डम्ली इनसर्ट करता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "सूची में पहला आइटम सैट करता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "सूची मे बताए गये स्थान में आइटम सैट करता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "सूची में आखरी आइटम सैट करता है।"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "सूची में रैन्डम आइटम सैट करता है।"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "बढ़ते क्रम"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "बढ़ते क्रम में"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 को छांटे"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "एक सूची की एक प्रति को छांटे।"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "वर्णक्रमानुसार, मामले की अनदेखी करें"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "अंकीय"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "वर्णक्रमानुसार"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "पाठ से एक सूची बनाएं"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "सूची से एक पाठ बनाएं"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "ग्रंथों की एक सूची में शामिल करें, जो एक सीमांकक से अलग हो।"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "ग्रंथों की सूची में पाठ को विभाजित करें, प्रत्येक सीमांकक पर तोड़कर।"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "सीमांकक के साथ"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "गलत"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "ट्रू या फॉल्स रिटर्न करता है।"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "सही"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "ट्रू रिटर्न करें यदि दोनो इनपुट इक दूसरे के बराबर हों।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से बड़ा हो।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से बड़ा हो या बराबर हो।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से छोटा हो।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से छोटा हो या बराबर हो।"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "ट्रू रिटर्न करें यदि दोनो इनपुट इक दूसरे के बराबर नहीं हों।"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "NOT (पूरक) %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "ट्रू रिटर्न करता है यदि इनपुट फॉल्स है। फॉल्स रिटर्न करता है यदि इनपुट ट्रू है।"; -Blockly.Msg["LOGIC_NULL"] = "NULL (अमान्य)"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "null (अमान्य) रिटर्न करता है।"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "AND (तथा)"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "OR (अथवा)"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "ट्रू रिटर्न करें यदि दोनो इनपुट ट्रू हों।"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "ट्रू रिटर्न करें यदि दोनो मे से इक इनपुट ट्रू हो।"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "टेस्ट"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "यदि गलत है"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "यदि सही है"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'परीक्षण' में हालत की जांच करें। यदि स्थिति सही है, तो 'सच' मान लौटाता है; अन्यथा वापस लौटता 'अगर झूठा'मान देता है।"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "दो संख्याओं का योग रिटर्न करें।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "दो संख्याओं का भागफल रिटर्न करें।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "दो संख्याओं का अंतर रिटर्न करें।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "दो संख्याओं का गुणन रिटर्न करें।"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "दूसरे नंबर की शक्ति को उठाए गए पहले नंबर पर लौटें"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1 को %2 से बदलें"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "संख्या को चर '%1' से जोड़ें।"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "सामान्य स्थिरांक में से एक को वापस लौटें:π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)।"; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1 कम %2 उच्च %3 बाधित करें"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "एक संख्या को निर्दिष्ट सीमा (सम्मिलित) के बीच बाधित करें।"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "इसके द्वारा विभाज्य है"; -Blockly.Msg["MATH_IS_EVEN"] = "सम है"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ऋणात्मक है"; -Blockly.Msg["MATH_IS_ODD"] = "विषम है"; -Blockly.Msg["MATH_IS_POSITIVE"] = "धनात्मक है"; -Blockly.Msg["MATH_IS_PRIME"] = "अभाज्य है"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "जांचें कि क्या कोई संख्या एक सम, विषम, मुख्य, संपूर्ण, सकारात्मक, नकारात्मक है या यदि वह निश्चित संख्या से विभाजित है। वास्तविक या गलत रिटर्न देता है।"; -Blockly.Msg["MATH_IS_WHOLE"] = "पूर्णांक है"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 का शेषफल"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "दो संख्याओं के भाग का शेषफल रिटर्न करें।"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "एक संख्या।"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "सूची का औसत मान"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "सूची मे अधिकतम"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "सूची की माध्यिका"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "सूची मे न्यूनतम"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "सूची का मोड"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "सूची का रैन्डम आइटम"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "सूची का मानक विचलन"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "सूची का योग"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "सूची में संख्यात्मक मानों का औसत (अंकगणित माध्य) लौटें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "सूची में सबसे बड़ी संख्या रिटर्न करें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "सूची की माध्यिका संख्या रिटर्न करें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "सूची मे सबसे छोटी संख्या रिटर्न करें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "सूची मे सबसे आम आइटम(s) की सूची रिटर्न करें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "सूची से एक रैन्डम आइटम रिटर्न करें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "सूची का मानक विचलन रिटर्न करें।"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "सूची की सभी संख्याओं का योग रिटर्न करें।"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "रैन्डम अंश"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "0.0 (समावेशी) और 1.0 (विशिष्ट) के बीच एक यादृच्छिक अंश पर लौटें।"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "%1 से %2 तक रैन्डम पूर्णांक"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "दो निर्दिष्ट सीमाओं, समावेशी के बीच एक यादृच्छिक पूर्णांक लौटें।"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "पूर्णांक बनाएँ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "घटा के पूर्णांक बनाएँ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "बड़ा के पूर्णांक बनाएँ"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "संख्या को बड़ा या घटा के पूर्णांक बनाएँ।"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "परम"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "वर्गमूल"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "संख्या का परम मान रिटर्न करें।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "किसी संख्या की शक्ति को वापस ई करें।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "संख्या का प्राकृतिक लघुगणक रिटर्न करें।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "संख्या का मूल 10 लघुगणक रिटर्न करें।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "संख्या का निषेध मान रिटर्न करें।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "किसी संख्या की शक्ति पर 10 लौटें।"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "संख्या का वर्गमूल रिटर्न करें।"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "संख्या का आर्ककोसाइन रिटर्न करें।"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "संख्या का आर्कसाइन रिटर्न करें।"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "संख्या का आर्कटैन्जन्ट रिटर्न करें।"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "डिग्री का कोसाइन रिटर्न करें (रेडियन नही)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "डिग्री का साइन रिटर्न करें (रेडियन नही)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "डिग्री का टैन्जन्ट रिटर्न करें (रेडियन नही)"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "रंग चर बनाएँ..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "संख्या चर बनायें..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "लड़ी चर बनायें..."; -Blockly.Msg["NEW_VARIABLE"] = "चर बनाएँ..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "नए चर का नाम:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "नए चर का नाम:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "बयानों की अनुमति दें"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = ": के साथ"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "यूज़र द्वारा वर्णन किया गया फ़ंक्शन '%1' चलाएँ।"; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "यूज़र द्वारा वर्णन किया गया फ़ंक्शन '%1' चलाएँ और उसका आउटपुट इस्तेमाल करें।"; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = ": के साथ"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' बनाएँ"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "इस फंकशन को समझाएँ..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "कुछ करें"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "को"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "बिना आउटपुट वाला एक फ़ंक्शन बनाता है।"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "वापस आएं"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "आउटपुट वाला एक फ़ंक्शन बनाता है।"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "सावधान: इस फ़ंक्शन मे डुप्लिकेट पैरामीटर हैं।"; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "फ़ंक्शन परिभाषा को हाइलाइट करें"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "यदि एक मान ट्रू है तो, दूसरा मान रिटर्न करें।"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "सावधान: ये ब्लॉक फ़ंक्शन परिभाषा के अंदर ही इस्तेमाल किया जा सकता।"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "इनपुट का नाम:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "फंगक्शन को इनपुट प्रदान करें।"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "इनपुट"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "इस फ़ंक्शन में इनपुट जोड़ें, निकालें, या पुन: क्रमित करें।"; -Blockly.Msg["REDO"] = "फिर से करें"; -Blockly.Msg["REMOVE_COMMENT"] = "टिप्पणी हटायें"; -Blockly.Msg["RENAME_VARIABLE"] = "चर का नाम बदलें..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "सभी '%1' चरों के नाम बदलें:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "%1 में पाठ %2 को जोड़ें"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "कुछ टेक्स्ट इस चर '%1' से जोड़ें।"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "छोटे अक्षर मे"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "टाइटल केस मे"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "बड़े अक्षर मे"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "टेक्स्ट की कॉपी भिन्न केस (अक्षर से संबंधित) मे रिटर्न करें।"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "पहला अक्षर पाएँ"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "आखिर से अक्षर # पाएँ"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "अक्षर # पाएँ"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "आखरी अक्षर पाएँ"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "रैन्डम अक्षर पाएँ"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "पाठ %1 %2 में"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "बताई गयी जगह से अक्षर रिटर्न करता है"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%1 को %2 में गिने"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "गिने, कितनी बार कुछ पाठ कुछ अन्य पाठ के अंदर समाहित होता है।"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "सूची मे एक आइटम जोड़ें।"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "जोड़"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "भाग को समनरूप बनाने के लिए जोङें, हटाएं, या पुनः व्यवस्थित करें यदि यह बंद है।"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "आखिर से यहाँ तक अक्षर #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "यहाँ तक अक्षर #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "यहाँ तक आखरी अक्षर"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "इस टेक्स्ट मे"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "पहले अक्षर से सबस्ट्रिंग पाएँ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "आखरी अक्षर # से सबस्ट्रिंग पाएँ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "अक्षर # से सबस्ट्रिंग पाएँ"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "टेक्स्ट का बताया गया अंश रिटर्न करता है"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "टेक्स्ट पहली बार जहाँ आया है उसे ढूढ़े"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "टेक्स्ट आखरी बार जहाँ आया है उसे ढूढ़े"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "पाठ %1 %2 %3 में"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "दूसरे पाठ में पहले पाठ की पहली/अंतिम घटना का सूचक देता है। यदि पाठ नहीं मिला है तो %1 रिटर्न होता है।"; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 खाली है"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "ट्रू रिटर्न करता है यदि दिया गया टेक्स्ट खाली है।"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "इसके साथ टेक्स्ट बनाएँ"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "किसी भी संख्या के मदों को एक साथ जोड़ कर पाठ का एक टुकड़ा बनाएं।"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 की लंबाई"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "दिए गये टेक्स्ट मे अक्षरों की संख्या रिटर्न करता है (खाली स्थान मिला के)।"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "प्रिंट करें %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "दिया गया टेक्स्ट प्रिंट करें, संख्या या अन्य मान।"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "यूज़र से संख्या के लिए प्रॉम्प्ट करें।"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "यूज़र से कुछ टेक्स्ट के लिए प्रॉम्प्ट करें।"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "सूचना के साथ संख्या के लिए प्रॉम्प्ट करें"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "सूचना के साथ टेक्स्ट के लिए प्रॉम्प्ट करें"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%1 को %2 के साथ %3 में बदलें"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "कुछ अन्य पाठ के अंदर कुछ पाठ की सभी जगहों को बदलें।"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1 को बदल दें"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "पाठ में वर्णों के क्रम को उलट देता है।"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "एक अक्षर, शब्द, या टेक्स्ट की पंक्ति।"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "रिक्त स्थान को इस टेक्स्ट के दोनों तरफ से निकालें"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "रिक्त स्थान को इस टेक्स्ट के बायें तरफ से निकालें"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "रिक्त स्थान को इस टेक्स्ट के दाईं तरफ से निकालें"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "एक या दोनों सिरों से हटाए गए रिक्त स्थान के साथ पाठ की एक प्रति लौटाएं।"; -Blockly.Msg["TODAY"] = "आज"; -Blockly.Msg["UNDO"] = "पूर्ववत करें"; -Blockly.Msg["UNNAMED_KEY"] = "अज्ञात"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "वस्तु"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "सेट '%1' बनाएँ"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "इस चर का मान रिटर्न करता है।"; -Blockly.Msg["VARIABLES_SET"] = "सेट करें %1 को %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'प्राप्त करें %1' बनाएं"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "इस चर को इनपुट के बराबर सेट करता है।"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "प्राचल नाम '%1' पहले से मौजूद है।"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%1' नाम का एक चर पहले से '%2' प्रकार के अन्य चर के लिए मौजूद है।"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/hrx.js b/lib/blockly/msg/js/hrx.js deleted file mode 100644 index 59c75cf..0000000 --- a/lib/blockly/msg/js/hrx.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Kommentar hinzufüche"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Neie Variable..."; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Blocke zusammerfalte"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Block zusammerfalte"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "Farreb 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "mit Farreb 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "im Verhältniss"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "misch"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Vermischt 2 Farwe mit konfigurierbare Farrebverhältniss (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://hrx.wikipedia.org/wiki/Farreb"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Wähl en Farreb von der Palett."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "zufälliche Farwe"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Wähl en Farreb noh dem Zufallsprinzip."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blau"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "grün"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "rot"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "Färreb mit"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Kreiere ene Farreb mit sellrbst definierte rot, grün und blau Wearte. All Wearte müsse zwischich 0 und 100 liehe."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ausbreche aus der Schleif"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "mit der nächste Iteration fortfoohre aus der Schleifa"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Die umgebne Schleif beenne."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Die Oonweisung abbreche und mit der nächste Schleifiteration fortfoohre."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warnung: Die block sollt nuar in en Schleif verwennet sin."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "Für Weart %1 aus der List %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Füahr en Oonweisung für jede Weart in der List aus und setzt dabei die Variable \"%1\" uff den aktuelle List Weart."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "Zähl %1 von %2 bis %3 mit %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Zähl die Variable \"%1\" von enem Startweart bis zu enem Zielweart und füahrefür jede Weart en Oonweisung aus."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "En weitre Bedingung hinzufüche."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "En orrer Bedingung hinzufüche, füahrt en Oonweisung aus falls ken Bedingung zutrifft."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Hinzufüche, entferne orrer sortiere von Sektione"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "orrer"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "orrer wenn"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "wenn"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Wenn en Bedingung woahr (true) ist, dann füahr en Oonweisung aus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Wenn en Bedingung woahr (true) ist, dann füahr die earscht Oonweisung aus. Ansonscht füahr die zwooite Oonweisung aus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Wenn der erschte Bedingung woahr (true) ist, dann füahr die erschte Oonweisung aus. Orrer wenn die zwooite Bedingung woahr (true) ist, dann füahr die zwooite Oonweisung aus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Wenn der erscht Bedingung woahr (true) ist, dann füahr die erschte Oonweisung aus. Orrer wenn die zwooite Bedingung woahr (true) ist, dann füahr die zwooite Oonweisung aus. Falls ken der beide Bedingungen woahr (true) ist, dann füahr die dritte Oonweisung aus."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://hrx.wikipedia.org/wiki/For-Schleif"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "mach"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "wiederhol %1 mol"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "En Oonweisung meahrfach ausführe."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "Repetiere bis"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "Repetier solang"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Füahr die Oonweisung solang aus wie die Bedingung falsch (false) ist."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Füahr die Oonweisung solang aus wie die Bedingung woahr (true) ist."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "All %1 Bausten lösche?"; -Blockly.Msg["DELETE_BLOCK"] = "Block lösche"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Block %1 lösche"; -Blockly.Msg["DISABLE_BLOCK"] = "Block deaktivieren"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Kopieren"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Block aktivieren"; -Blockly.Msg["EXPAND_ALL"] = "Blocke expandiere"; -Blockly.Msg["EXPAND_BLOCK"] = "Block entfalte"; -Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputsexterne Ingänge"; -Blockly.Msg["HELP"] = "Hellef"; -Blockly.Msg["INLINE_INPUTS"] = "interne Ingänge"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Generier/erzeich en leear List"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Generier/erzeich en leear List ohne Inhalt."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "List"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Hinzufüche, entferne und sortiere von Elemente."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "Erzeich List mit"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "En Element zur List hinzufüche."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Generier/erzeich en List mit konfigurierte Elemente."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "earste"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "#te von hinne"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "Nehm"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "Nehm und entfern"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "letzte"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "zufälliches"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "Entfern"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Extrahiert das earste Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Extrahiert das Element zu en definierte Stell von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Extrahiert das letzte Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Extrahiert en zufälliches Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Extrahiert und entfernt das earste Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Extrahiert und entfernt das Element zu en definierte Stell von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Extrahiert und entfernt das letzte Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Extrahiert und entfernt en zufälliches Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Entfernt das earste Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Entfernt das Element zu en definierte Stell von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Entfernt das letzte Element von der List."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Entfernt en zufälliches Element von der List."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "zu # vom End"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "zu #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "zum Letzte"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "hol Unnerliste vom Earste"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "hol Unnerliste von # vom End"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "hol Unnerlist von #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Generiert en Kopie von en definierte Tel von en List."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ist das letzte Element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ist das earschte Element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "Such earstes Voarkommniss"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "Such letztes Voarkommniss"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Sucht die Position (index) von en Element in der List Gebt %1 zurück wenn nixs gefunn woard."; -Blockly.Msg["LISTS_INLIST"] = "in der List"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ist leear?"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Ist woahr (true), wenn die List leear ist."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "länge %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Die Oonzoohl von Elemente in der List."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Erzich List mit Element %1 wiederhol das %2 mol"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Erzeicht en List mit en variable Oonzoohl von Elemente"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "uff"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "tue ren setz an"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "setz"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Tut das Element an en Oonfang von en List ren setze."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Tut das Element ren setze an en definierte Stell an en List."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Oonhängt das Element zu en List sei End."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Tut das Element zufällich an en List ren setze."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list.Setzt das earschte Element an en list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Setzt das Element zu en definierte Stell in en List."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Setzt das letzte Element an en List."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Setzt en zufälliches Element an en List."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falsch"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Ist entweder woahr (true) orrer falsch (false)"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "woahr"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://hrx.wikipedia.org/wiki/Vergleich_%28Zahlen%29"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Ist woahr (true) wenn beide Wearte identisch sind."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Ist woahr (true) wenn der erschte Weart grösser als der zwooite Weart ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Ist woahr (true) wenn der erschte Weart grösser als orrer gleich gross wie zwooite Weart ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Ist woahr (true) wenn der earschte Weart klener als der zwooite Weart ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Ist woahr (true) wenn der earscht Weart klener als orrer gleich gross wie zwooite Weart ist."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Ist woahr (true) wenn beide Wearte unnerschiedlich sind."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "net %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Ist woahr (true) wenn der Ingäweweart falsch (false) ist. Ist falsch (false) wenn der Ingäweweart woahr (true) ist."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Is NULL."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "und"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "orrer"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Ist woahr (true) wenn beide Wearte woahr (true) sind."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Ist woahr (true) wenn en von der beide Wearte woahr (true) ist."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "wenn falsch"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "wenn woahr"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Üwerprüft en Bedingung \"test\". Wenn die Bedingung woahr ist weerd der \"wenn woahr\" Weart zurückgeb, annerfalls der \"wenn falsch\" Weart"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://hrx.wikipedia.org/wiki/Grundrechenoort"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Ist die Summe zwooier Wearte."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Ist der Quotient zwooier Wearte."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Ist die Differenz zwooier Wearte."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Ist das Produkt zwooier Wearte."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Ist der earschte Weart potenziert mit dem zoiten Weart."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://hrx.wikipedia.org/wiki/Inkrement_und_Dekrement"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "mach höcher / erhöhe %1 um %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Addiert en Weart zur Variable \"%1\" hinzu."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://hrx.wikipedia.org/wiki/Mathematische_Konstante"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Mathematische Konstante wie: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) oder ∞ (unendlich)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "begrenze %1 von %2 bis %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Begrenzt den Weartebereich mittels von / bis Wearte. (inklusiv)"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ist telbar/kann getelt sin doorrich"; -Blockly.Msg["MATH_IS_EVEN"] = "ist grood"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ist negativ"; -Blockly.Msg["MATH_IS_ODD"] = "ist ungrood"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ist positiv"; -Blockly.Msg["MATH_IS_PRIME"] = "ist en Primenzoohl"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Üwerprüft ob en Zoohl grood, ungrood, en Primenzoohl, ganzzoohlich, positiv, negativ orrer doorrich en zwooite Zoohl telbar ist. Gebt woahr (true) orrer falsch (false) zurück."; -Blockly.Msg["MATH_IS_WHOLE"] = "ganze Zoohl"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://hrx.wikipedia.org/wiki/Modulo"; -Blockly.Msg["MATH_MODULO_TITLE"] = "Rest von %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Der Rest noh en Division."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://hrx.wikipedia.org/wiki/Zoohl"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "En Zoohl."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "Mittelweart en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Maximalweart en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Median von en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Minimalweart von en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "Restweart von en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Zufallsweart von en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "Standart/Padrong Abweichung von en List"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Summe von en List"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Ist der Doorrichschnittsweart von aller Wearte in en List."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Ist der grösste Weart in en List."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Ist der Zentralweart von aller Wearte in en List."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Ist der klenste Weart in en List."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Findt den am häifichste voarkommend Weart in en List. Falls ken Weart öftersch voarkomme als all annre, weard die originale List zurückgeche"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Geb en Zufallsweart aus der List zurück."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Ist die standartiesierte/padronisierte Standartabweichung/Padrongabweichung von aller Wearte in der List"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Ist die Summ aller Wearte in en List."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://hex.wikipedia.org/wiki/Zufallszoohle"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "Zufallszoohl (0.0 -1.0)"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Generier/erzeich en Zufallszoohl zwischich 0.0 (inklusiv) und 1.0 (exklusiv)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://hrx.wikipedia.org/wiki/Zufallszahlen"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "ganzoohlicher Zufallswearte zwischich %1 bis %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Generier/erzeich en ganzähliche Zufallsweart zwischich zwooi Wearte (inklusiv)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://hrx.wikipedia.org/wiki/Runden"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "runde"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ab runde"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "uff runde"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "En Zoohl uff orrer ab runde."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://hrx.wikipedia.org/wiki/Quadratwoorzel"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "Absolutweart"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Quadratwoorzel"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Ist der Absolutweart von en Weart."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Ist Weart von der Exponentialfunktion von en Weart."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Ist der natüarliche Logarithmus von en Weart."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Ist der dekoodische Logarithmus von en Weart."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Negiert en Weart."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Rechnet 10 hoch Ingäbweart."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Ist die Qudratwoorzel von en Weart."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://hrx.wikipedia.org/wiki/Trigonometrie"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Ist der Arcuscosinus von en Ingabweart."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Ist der Arcussinus von en Ingäbweart."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Ist der Arcustangens von en Ingäbweart."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Ist der Cosinus von en Winkel."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Ist der Sinus von en Winkel."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Ist der Tangens von en Winkel."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Neie Variable..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Die neie Variable sei Noome:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "mit:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://hrx.wikipedia.org/wiki/Prozedur_%28Programmierung%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Ruf en Funktionsblock ohne Rückgäweart uff."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://hrx.wikipedia.org/wiki/Prozedur_%28Programmierung%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Ruf en Funktionsblock mit Rückgäbweart uff."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "mit:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Generier/erzeich \"Uffruf %1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "Funktionsblock"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "zu"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "En Funktionsblock ohne Rückgäbweart."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "geb zurück"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "En Funktionsblock mit Rückgäbweart."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warnung: die Funktionsblock hot doppelt Parameter."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Markiear Funktionsblock"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Wenn der earste Weart woahr (true) ist, Geb den zwooite Weart zurück."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warnung: Der Block därref nuar innich en Funktionsblock genutzt sin."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Markiear Funktionsblock"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Generier/erzeich \"Uffruf %1\""; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "Parameter"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Variable:"; -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "Kommentar entferne"; -Blockly.Msg["RENAME_VARIABLE"] = "Die neie Variable sei Noome:"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "All \"%1\" Variable umbenenne in:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "An %1 Text oonhänge %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Text an die Variable \"%1\" oonhänge."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "umwandle in klenbuchstoobe"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "umwandle in Wörter"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "umwandle in GROSSBUCHSTOOBE"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Wandelt Schreibweise von Texte um, in Grossbuchstoobe, Klenbuchstoobe orrer den earste Buchstoob von jedes Wort gross und die annre klen."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hol earschte Buchstoob"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hol Buchstoob # von End"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "hol Buchstoob #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hol letztes Wort"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "hol zufälliches Buchstoob"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Extrahiear en Buchstoob von en spezifizierte Position."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "En Element zum Text hinzufüche."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "verbinne"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Hinzufüche, entfernne und sortiere von Elemente."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "bis #te Buchstoob von hinne"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "bis Buchstoob #te"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "bis letzte Buchstoob"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in Text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "earschte Buchstoob"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "hol #te Buchstoob von hinne"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "hol substring Buchstoob #te"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Schickt en bestimmstes Tel von dem Text retuar."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "Such der Begriff sein earstes Voarkommniss"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "Suche der Begriff sein letztes Vorkommniss."; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "im Text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Findt das earste / letzte Voarkommniss von en Suchbegriffes in enem Text. Gebt die Position von dem Begriff orrer %1 zurück."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ist leer?"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Ist woahr (true), wenn der Text leer ist."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "Erstell Text aus"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Erstellt en Text doorrich das verbinne von mehre Textelemente."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "läng %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Die Oonzoohl von Zeiche in enem Text. (inkl. Leerzeiche)"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "Ausgäb %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Geb den Inhalt von en Variable aus."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Frocht den Benutzer noh en Zoohl."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Frocht den Benutzer noh enem Text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Frächt noh Zoohl mit Hinweis"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Frocht noh Text mit Hinweis"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)https://hrx.wikipedia.org/wiki/Zeichenkette"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "En Buchstoob, Text orrer Satz."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "entfern Leerzeiche von Oonfang und End Seite"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "entferne Leerzeiche von Oonfang Seite"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "entferne Leerzeiche von End Seite von"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Entfernt Leerzeiche vom Oonfang und / orrer End von en Text."; -Blockly.Msg["TODAY"] = "Today"; // untranslated -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Generier/erzeiche \"Schreibe %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Gebt der Variable sein Weart zurück."; -Blockly.Msg["VARIABLES_SET"] = "Schreib %1 zu %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Generier/erzeich \"Lese %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Setzt en Variable sei Weart."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/hu.js b/lib/blockly/msg/js/hu.js deleted file mode 100644 index 7981682..0000000 --- a/lib/blockly/msg/js/hu.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Megjegyzés hozzáadása"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "A(z) „%1” változó nem törölhető, mert része a(z) „%2” függvény definíciójának."; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Érték módosítása:"; -Blockly.Msg["CLEAN_UP"] = "Blokkok kiürítése"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Blokkok összecsukása"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Blokk összecsukása"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "szín 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "szín 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "arány"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "színkeverés"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Két színt kever össze a megadott arányban (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://hu.wikipedia.org/wiki/Szín"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Válassz színt a palettáról."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "véletlen szín"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Véletlenszerűen kiválasztott szín."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "kék"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zöld"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "vörös"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "Szín"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Szín előállítása a megadott vörös, zöld, és kék értékekkel. Minden értéknek 0 és 100 közé kell esnie."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "befejezi az ismétlést"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "folytatja a következővel"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Megszakítja az utasítást tartalmazó ciklust."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Kihagyja a ciklus további részét, és elölről kezdi a következő elemmel."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Figyelem: Ez a blokk csak cikluson belül használható."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "minden %1 elemre a %2 listában"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "A '%1' változó minden lépésben megkapja a lista adott elemének értékét, és végrehajt vele néhány utasítást."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "számolj %1 értékével %2 és %3 között %4 lépésközzel"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "A(z) '%1' változó felveszi a kezdőérték és a végérték közötti értékeket a meghatározott lépésközzel. Eközben a meghatározott blokkokat hajtja végre."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Feltétel hozzáadása a ha blokkhoz."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Végső feltétel hozzáadása a ha blokkhoz."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "A ha blokk testreszabásához bővítsd, töröld vagy rendezd át a részeit."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "különben"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "különben ha"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ha"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ha a kifejezés igaz, akkor végrehajtja az utasításokat."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ha a kifejezés igaz, akkor végrehajtja az első utasításblokkot. Különben a második utasításblokk kerül végrehajtásra."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ha az első kifejezés igaz, akkor végrehajtja az első utasításblokkot. Különben, ha a második kifejezés igaz, akkor végrehajtja a második utasítás blokkot."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ha az első kifejezés igaz, akkor végrehajtjuk az első utasítás blokkot. Ha a második kifejezés igaz, akkor végrehajtjuk a második utasítás blokkot. Amennyiben egyik kifejezés sem igaz, akkor az utolsó utasítás blokk kerül végrehajtásra."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://hu.wikipedia.org/wiki/Ciklus_(programoz%C3%A1s)#Sz.C3.A1ml.C3.A1l.C3.B3s_.28FOR.29_ciklus"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = ""; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ismételd %1 alkalommal"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Megadott kódrészlet ismételt végrehajtása."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ismételd amíg"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ismételd amíg"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Amíg a feltétel hamis, végrehajtja az utasításokat."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Amíg a feltétel igaz, végrehajtja az utasításokat."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Az összes %1 blokk törlése?"; -Blockly.Msg["DELETE_BLOCK"] = "Blokk törlése"; -Blockly.Msg["DELETE_VARIABLE"] = "A(z) „%1” változó törlése"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "A(z) „%2” változó %1 használatának törlése?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 blokk törlése"; -Blockly.Msg["DISABLE_BLOCK"] = "Blokk letiltása"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Másolat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Blokk engedélyezése"; -Blockly.Msg["EXPAND_ALL"] = "Blokkok kinyitása"; -Blockly.Msg["EXPAND_BLOCK"] = "Blokk kinyitása"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Külső kapcsolatok"; -Blockly.Msg["HELP"] = "Súgó"; -Blockly.Msg["INLINE_INPUTS"] = "Belső kapcsolatok"; -Blockly.Msg["IOS_CANCEL"] = "Mégse"; -Blockly.Msg["IOS_ERROR"] = "Hiba"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Bemenet hozzáadása"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Utasítások engedélyezése"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ennek a függvénynek kettőzött bemenete van."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "BEMENETEK"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Hozzáadás"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Változó hozzáadása"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Törlés"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Nem használhat üres változónevet."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Átnevezés"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Változó neve"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "üres lista"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Elemeket nem tartalmazó üres listát ad eredményül"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "Lista készítés, elemek:"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Elem hozzáadása listához."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Listát készít a megadott elemekből."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "az első"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "a végétől számított"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "az elejétől számított"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "listából értéke"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "listából kivétele"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "az utolsó"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "bármely"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "listából törlése"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = "elemnek"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "A lista első elemét adja eredményül."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "A lista megadott sorszámú elemét adja eredményül."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "A lista utolsó elemét adja eredményül."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "A lista véletlenszerűen választott elemét adja eredményül."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Az első elem kivétele a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "A megadott sorszámú elem kivétele a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Az utolsó elem kivétele a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Véletlenszerűen választott elem kivétele a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Az első elem törlése a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "A megadott sorszámú elem törlése a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Az utolsó elem törlése a listából."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Véletlenszerűen választott elem törlése a listából."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "és a végétől számított"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "és az elejétől számított"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "és az utolsó"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "részlistája az első"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "részlistája a végétől számított"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "részlistája az elejétől számított"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = "elem között"; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "A lista adott részéről másolat."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 az utolsó elemet jelenti."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 az első elemet jelenti."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "listában első előfordulásaː"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "listában utolsó előfordulásaː"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "A megadott elem első vagy utolsó előfordulásával tér vissza. Ha nem talál ilyen elemet, akkor %1 a visszatérési érték."; -Blockly.Msg["LISTS_INLIST"] = "A(z)"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 üres lista?"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Az eredmény igaz, ha a lista nem tartalmaz elemeket."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 lista hossza"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "A lista elemszámát adja eredményül."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Lista készítése %1 elemet %2 alkalommal hozzáadva"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "A megadtott elem felhasználásával n elemű listát készít"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 megfordítása"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Megfordítja a lista másolatát."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "elemkéntː"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "listába szúrd be"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "listába állítsd be"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Beszúrás a lista elejére."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Beszúrás a megadott sorszámú elem elé a listában."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Beszúrás a lista végére."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Beszúrás véletlenszerűen választott elem elé a listában."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Az első elem cseréje a listában."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "A megadott sorszámú elem cseréje a listában."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Az utolsó elem cseréje a listában."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Véletlenszerűen választott elem cseréje a listában."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "növekvő"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "csökkenő"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 rendezés"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Egy lista egy másolatának rendezése."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "betűrendben nagybetű figyelmen kívül hagyásával"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numerikus"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "betűrendben"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "lista készítése szövegből"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "sztring készítése listából"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "A lista elemeit összefűzi szöveggé a határoló karaktereket is felhasználva."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Listát készít a határoló karaktereknél törve a szöveget."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "határoló karakter"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "hamis"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Igaz, vagy hamis érték"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "igaz"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://hu.wikipedia.org/wiki/Egyenl%C5%91tlens%C3%A9g"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Igaz, ha a kifejezés két oldala egyenlő."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Igaz, ha a bal oldali kifejezés nagyobb, mint a jobb oldali."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Igaz, ha a bal oldali kifejezés nagyobb vagy egyenlő, mint a jobb oldali."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Igaz, ha a bal oldali kifejezés kisebb, mint a jobb oldali."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Igaz, ha a bal oldali kifejezés kisebb vagy egyenlő, mint a jobb oldali."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Igaz, ha a kifejezés két oldala nem egyenlő.."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nem %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Igaz, ha a kifejezés hamis. Hamis, ha a kifejezés igaz."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "null érték."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "és"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "vagy"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Igaz, ha mindkét kifejezés igaz."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Igaz, ha legalább az egyik kifejezés igaz."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "vizsgáld meg:"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "érték, ha hamis:"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "érték, ha igaz:"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kiértékeli a megvizsgálandó kifejezést. Ha a kifejezés igaz, visszatér az \"érték, ha igaz\" értékkel, különben az \"érték, ha hamis\" értékkel."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://hu.wikipedia.org/wiki/Matematikai_m%C5%B1velet"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Két szám összege."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Két szám hányadosa."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Két szám különbsége."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Két szám szorzata."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Az első számnak a második számmal megegyező hatványa."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://hu.wikipedia.org/wiki/JavaScript#Aritmetikai_oper.C3.A1torok"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "növeld %1 értékét %2 -vel"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "A \"%1\" változó értékének növelése egy számmal."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://hu.wikipedia.org/wiki/Matematikai_konstans"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Ismert matematikai konstans: π (3.141…), e (2.718…), φ (1.618…), gyök(2) (1.414…), gyök(½) (0.707…), vagy ∞ (végtelen)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "korlátozd %1-t %2 és %3 közé"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Egy változó értékének korlátozása a megadott zárt intervallumra."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "-nek osztója"; -Blockly.Msg["MATH_IS_EVEN"] = "páros"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "negatív"; -Blockly.Msg["MATH_IS_ODD"] = "páratlan"; -Blockly.Msg["MATH_IS_POSITIVE"] = "pozitív"; -Blockly.Msg["MATH_IS_PRIME"] = "prím"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Ellenőrzi, hogy a szám páros, páratlan, prím, egész, pozitív vagy negatív-e, illetve osztható-e a másodikkal. Igaz, vagy hamis értéket ad eredményül."; -Blockly.Msg["MATH_IS_WHOLE"] = "egész"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://hu.wikipedia.org/wiki/Eg%C3%A9szr%C3%A9sz#Als.C3.B3_eg.C3.A9szr.C3.A9sz"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 maradéka"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Az egész osztás maradékát adja eredméynül."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://hu.wikipedia.org/wiki/Sz%C3%A1m"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Egy szám."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "lista elemeinek átlaga"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "lista legnagyobb eleme"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "lista mediánja"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "lista legkisebb eleme"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "lista módusza"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "lista véletlen eleme"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "lista elemeinek szórása"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "lista elemeinek összege"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "A lista elemeinek átlagát adja eredményül."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "A lista legnagyobb elemét adja vissza."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "A lista elemeinek mediánját adja eredményül."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "A lista legkisebb elemét adja vissza."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "A lista elemeinek móduszát adja eredményül."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "A lista egy véletlen elemét adja eredményül."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "A lista elemeinek szórását adja eredményül."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "A lista elemeinek összegét adja eredményül."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://hu.wikipedia.org/wiki/V%C3%A9letlen"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "véletlen tört"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Véletlen tört érték 0.0 és 1.0 között."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://hu.wikipedia.org/wiki/V%C3%A9letlen"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "véletlen egész szám %1 között %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Véletlen egész szám a megadott zárt intervallumon belül."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://hu.wikipedia.org/wiki/Eg%C3%A9szr%C3%A9sz#Kerek.C3.ADt.C3.A9s"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "kerekítsd"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "kerekítsd lefelé"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "kerekítsd felfelé"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Egy szám kerekítése felfelé vagy lefelé."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://hu.wikipedia.org/wiki/Gy%C3%B6kvon%C3%A1s"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "abszolútérték"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "négyzetgyök"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "A szám abszolútértéke."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Az e megadott számú hatványa."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "A szám természetes alapú logaritmusa."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "A szám 10-es alapú logaritmusa."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "A szám -1 szerese."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "A 10 megadott számú hatványa."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "A szám négyzetgyöke."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://hu.wikipedia.org/wiki/Sz%C3%B6gf%C3%BCggv%C3%A9nyek"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "A fokban megadott szög arkusz koszinusz értéke."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "A fokban megadott szög arkusz szinusz értéke."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "A fokban megadott szög arkusz tangens értéke."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "A fokban megadott szög koszinusz értéke."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "A fokban megadott szög szinusz értéke."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "A fokban megadott szög tangens értéke."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Változó létrehozása…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Az új változó neve:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = "."; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "utasítások engedélyezése"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "paraméterlistaː"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://hu.wikipedia.org/wiki/F%C3%BCggv%C3%A9ny_(programoz%C3%A1s)"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Végrehajtja az eljárást."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://hu.wikipedia.org/wiki/F%C3%BCggv%C3%A9ny_(programoz%C3%A1s)"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Meghívja a függvényt."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "paraméterlistaː"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "„%1” létrehozása"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Írj erről a funkcióról..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "név"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "Eljárás"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Eljárás (nem ad vissza eredményt)."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "eredménye"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Függvény eredménnyel."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Figyelem: Az eljárásban azonos elnevezésű paramétert adtál meg."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Függvénydefiníció kiemelése"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ha az érték igaz, akkor visszatér a függvény értékével."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Figyelem: Ez a blokk csak függvénydefiníción belül használható."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "változó:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Bemenet hozzáadása a függvényhez."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "paraméterek"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Bemenetek hozzáadása, eltávolítása vagy átrendezése ehhez a függvényhez."; -Blockly.Msg["REDO"] = "Újra"; -Blockly.Msg["REMOVE_COMMENT"] = "Megjegyzés eltávolítása"; -Blockly.Msg["RENAME_VARIABLE"] = "Változó átnevezése…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Minden „%1” változó átnevezése erre:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "A %1 szövegéhez fűzd hozzá %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Szöveget fűz a \"%1\" változó értékéhez."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "kisbetűs"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Címként Formázott"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "NAGYBETŰS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "első"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hátulról"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "elölről"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "utolsó"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "véletlen"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = "karaktere"; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "a szövegben: %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "A szöveg egy megadott karakterét adja eredményül."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%1 száma ebben: %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "A szöveg előfordulásainak megszámolása egy másik szövegben."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Elem hozzáfűzése a szöveghez."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "fűzd össze"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Összefűzéssel, törléssel vagy rendezéssel kapcsolato sblokkok szöveg szerkesztéséhez."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "betűtől a hátulról számított"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "betűtől a(z)"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "betűtől az utolsó"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "a"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "szövegben válaszd ki az első"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "szövegben válaszd ki a hátulról a(z)"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "szövegben válaszd ki a(z)"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = "betűig tartó betűsort"; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "A megadott szövegrészletet adja eredményül."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "szövegben az első előfordulásának helye"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "szövegben az utolsó előfordulásának helye"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "A(z) %1 %2 %3 szövegnek"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "A keresett szöveg első vagy utolsó előfordulásával tér vissza. %1 esetén a szövegrészlet nem található."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 üres"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Igaz, ha a vizsgált szöveg hossza 0."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "fűzd össze"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Tetszőleges számú szövegrészletet fűz össze egybefüggő szöveggé."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 hossza"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "A megadott szöveg karaktereinek számát adja eredményül (beleértve a szóközöket)."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "Üzenet %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Megejelníti a megadott kaakterláncot üzenetként a képernyőn."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Számot kér be a felhasználótól."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Szöveget kér be a felhasználótól."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Kérj be számot"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Kérj be szöveget"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%1 cseréje %2-vel %3-ban"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "A szöveg összes előfordulásának cseréje egy másik szöveggel."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1 megfordítása"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Megfordítja a karakterek sorrendjét a szövegben."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://hu.wikipedia.org/wiki/String"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Egy betű, szó vagy szöveg egy sora."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "szóközök levágása mindkét végéről"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "szóközök levágása az elejéről"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "szóközök levágása a végéről"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Levágja a megadott szöveg végeiről a szóközöket."; -Blockly.Msg["TODAY"] = "Ma"; -Blockly.Msg["UNDO"] = "Visszavonás"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "változó"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Készíts \"%1=\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "A változó értékét adja eredményül."; -Blockly.Msg["VARIABLES_SET"] = "%1 %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Készíts \"%1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "A változónak adhatunk értéket."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A(z) „%1” nevű változó már létezik."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Egy „%1” nevű változó már létezik egy másik típussal: „%2”."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/hy.js b/lib/blockly/msg/js/hy.js deleted file mode 100644 index 65c3342..0000000 --- a/lib/blockly/msg/js/hy.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Ավելացնել մեկնաբանություն"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Հնարավոր չի ջնջել %1 փոփոխականը, որովհետև այն '%2' ֆունկցիայի հայտարարման մասն է"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Փոխել նշանակություն:"; -Blockly.Msg["CLEAN_UP"] = "Մաքրել բլոկները"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Քանդել բլոկները"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Կրճատել բլոկը"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "գույն 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "գույն 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "հարաբերակցություն"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "խառնել"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Խառնում է երկու գույները միմյանց հետ տրված հարաբերակցությամբ (0.0 - 1.0):"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://hy.wikipedia.org/wiki/Գույն"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Ընտրիր գույն ներկապնակից:"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "պատահական գույն"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Ընտրում է գույն պատահականության սկզբունքով:"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "կապույտ"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "կանաչ"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "կարմիր"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "գույնը"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Ստեղծում է գույն կարմիրի, կանաչի և կապույտի նշված քանակություններով: Բոլոր արժեքները պետք է լինեն 0-ի և 100-ի միջև:"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "դուրս գալ ցիկլից"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "անցնել կրկնության հաջորդ կատարմանը"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Դադարեցնում է տվյալ կրկնությունը"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Դադարեցնում կրկնության մնացած մասը և անցնում է հաջորդ քայլին։"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Զգուշացում. Այս բլոկը կարող է օգտագործվել միայն ցիկլի ներսում:"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "յուրաքանչյուր %1 էլեմենտի համար %2 ցանկից"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Ցանկի յուրաքանչյուր անդամի արժեքը վերագրում է '%1' փոփոխականին և կատարում նշված հրամանները։"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "հաշվել %1-ը, %2֊ից մինչև %3, քայլը %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "'%1' փոփոխականին վերագրում է արժեքներ, սկսելով նախնական արժեքից, տրված քայլով և կատարում է նշված հրամանները"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Ավելացնում է պայման «եթե» բլոկին:"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Ավելացնել վերջնական ենթաբլոկ (այն կաշխատի, եթե բոլոր պայմանները կեղծ են)"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Ավելացնել, հեռացնել կամ փոխել հերթականությունը այս \"եթե\" բլոկը վերակարգավորելու համար։"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "հակառակ դեպքում"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "հակառակ դեպքում, եթե"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "եթե"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Եթե պայմանը ճշմարիտ է, կատարում է որոշ հրահանգներ:"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Եթե պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում կատարում է հրահանգների երկրորդ բլոկը:"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը:"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը: Եթե պայմաններից ոչ մեկը ճշմարիտ չեն, ապա կատարում է հրահանգների վերջին բլոկը:"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "կատարել"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "կրկնել %1 անգամ"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Կատարում է որոշ հրահանգներ մի քանի անգամ:"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "կրկնել, քանի դեռ չի"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "կրկնել, քանի դեռ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Քանի դեռ արժեքը կեղծ է, կատարում է որոշակի հրահանգներ:"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Քանի դեռ արժեքը ճշմարիտ է, կատարում է հրահանգները:"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ջնջե՞լ բոլոր %1 բլոկները:"; -Blockly.Msg["DELETE_BLOCK"] = "Ջնջել բլոկը"; -Blockly.Msg["DELETE_VARIABLE"] = "Հեռացնել '%1' փոփոխականը"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Ջնջե՞լ '%2' փոփոխականի %1 կիրառությունները"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Ջնջել %1 բլոկ"; -Blockly.Msg["DISABLE_BLOCK"] = "Անջատել բլոկը"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Պատճենել"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Կրկնօրինակել մեկնաբանությունը"; -Blockly.Msg["ENABLE_BLOCK"] = "Միացնել բլոկը"; -Blockly.Msg["EXPAND_ALL"] = "Բացել բլոկները"; -Blockly.Msg["EXPAND_BLOCK"] = "Բացել բլոկը"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Արտաքին մուտքեր"; -Blockly.Msg["HELP"] = "Օգնություն"; -Blockly.Msg["INLINE_INPUTS"] = "Գծային մուտք"; -Blockly.Msg["IOS_CANCEL"] = "Չեղարկել"; -Blockly.Msg["IOS_ERROR"] = "Սխալ"; -Blockly.Msg["IOS_OK"] = "Լավ"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Ավելացնել մուտքային փոփոխական"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Թույլատրել արտահայտությունները"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Այս ֆունկցիան կրկնօրինակում է մուտքային փոփոխականները:"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ՆԵՐՄՈՒԾՈՒՄ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Ավելացնել"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Ավելացնել փոփոխական"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Ջնջել"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Չես կարող օգտագործել փոփոխականի «դատարկ» անուն"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Վերանվանել"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Փոփախականի անունը"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ստեղծել դատարկ ցանկ"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Վերադարձնում է 0 երկարությամբ ցանկ, որը տվյալներ չի պարունակում:"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "ցանկ"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Այս ցանկ բլոկը վերակառուցելու համար ավելացրու, հեռացրու կամ փոխիր բաժինների հաջորդականությունը։"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ստեղծել ցանկ"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Ավելացնել տարր ցանկին:"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Ստեղծում է ցանկ ցանկացած քանակությամբ տվյալներով:"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "առաջինը"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "№ վերջից"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "վերցնել"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "վերցնել և հեռացնել"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "վերջինը"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "պատահական"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "հեռացնել"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Վերադարձնում է ցանկի առաջին տարրը:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Վերադարձնում է նշված դիրքում գտնվող անդամը ցանկից։"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Վերադարձնում է ցանկի վերջին տարրը:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Վերադարձնում է ցանկի պատահական տարր:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Հեռացնում և վերադարձնում է ցանկի առաջին տարրը:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Հեռացնում և վերադարձնում է նշված դիրքում գտնվող անդամը ցանկից։"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Հեռացնում և վերադարձնում է ցանկի վերջին տարրը:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Հեռացնում և վերադարձնում է ցանկի պատահական տարր:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Հեռացնում է ցանկի առաջին տարրը:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Ցանկից հեռացնում է նշված դիրքում գտնվող անդամը։"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Հեռացնում է ցանկի վերջին տարրը:"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Հեռացնում է ցանկից պատահական տարր:"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "մինչև # վերջից"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "մինչև #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "մինչև վերջ"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "վերցնել ենթա֊ցանկ սկզբից"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "վերցնել ենթացանկ, սկսած # վերջից"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "վերցնել ենթացանկ, սկսած #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Ստեղծում է ցանկի նշված մասի պատճենը։"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 վերջին տարրն է:"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 առաջին տարրն է:"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "գտնել անդամի առաջին հանդիպման դիրքը"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "գտնել անդամի վերջին հանդիպման դիրքը"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Վերադարձնում է ցանկում անդամի առաջին/վերջին հանդիպման դիրքը։ Վերադարձնում է %1, եթե անդամը չի գտնվել։"; -Blockly.Msg["LISTS_INLIST"] = "ցանկում"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 դատարկ է"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Վերադարձնում է \"ճշմարիտ\" եթե ցանկը դատարկ է։"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1֊ի երկարությունը"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Վերադարձնում է ցանկի երկարությունը:"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "ստեղծել ցանկ, %1 արժեքը կրկնելով %2 անգամ"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Տրված արժեքը նշված քանակով կրկնելու միջոցով, ստեղծում է ցանկ։"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "շրջել %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Շրջում է ցանկի պատճենը։"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "որպես"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ներմուծել"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "դնել"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Ներմուծում է անդամը ցանկի սկզբում։"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Ներմուծում է անդամը ցանկի նշված դիրքում։"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Ավելացնում է անդամ ցանկի վերջում։"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Ներմուծում է անդամը ցանկի պատահական դիրքում։"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Սահմանում է ցանկի առաջին տարրը:"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Տեղադրում է անդամը ցանկի նշված դիրքում։"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Սահմանում է ցանկի վերջին տարրը:"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Սահմանում է ցանկից պատահական տարր:"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "աճման կարգ"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "նվազման կարգ"; -Blockly.Msg["LISTS_SORT_TITLE"] = "դասավորել %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Դասավորում է ցանկի պատճենը"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "այբենական, անտեսել ռեգիստրը"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "թվային կարգ"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "այբբենական կարգ"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "ստեղծել ցանկ տեքստից"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ստեղծել տեքստ ցանկից"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Ցանկից ստեղծվում է միացյալ տեքստ, ցանկի անդամները միացվում են բաժանարարներով։"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Տեքստը վեր է ածվում ցանկի, նշված բաժանարարով։"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "բաժանարարով"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "կեղծ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Վերադարձնում է ճշմարիտ կամ կեղծ արժեք:"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ճշմարիտ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://hy.wikipedia.org/wiki/Անհավասարություն"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ հավասար են միմյանց:"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ է երկրորդից:"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ կամ հավասար է երկրորդին:"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքերից առաջինը փոքր է երկրորդից:"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը փոքր կամ հավասար է երկրորդին:"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ հավասար չեն միմյանց:"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ոչ %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքը կեղծ է: Վերադարձնում է կեղծ արժեք, եթե մուտքը ճշմարիտ է:"; -Blockly.Msg["LOGIC_NULL"] = "ոչինչ"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Վերադարձնում է null (ոչինչ)"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "և"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "կամ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ ճշմարիտ են:"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքերից գոնե մեկը ճշմարիտ է:"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ստուգում"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "եթե կեղծ է"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "եթե ճշմարիտ է"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Ստուգում է ընտրության պայմանը։ Եթե այն ճշմարիտ է, վերադարձնում է առաջին արժեքը, հակառակ դեպքում ՝ երկրորդը։"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://hy.wikipedia.org/wiki/Թվաբանություն"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Վերադարձնում է երկու թվերի գումարը:"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Վերադարձնում է քանորդը"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Վերադարձնում է երկու թվերի տարբերությունը:"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Վերադարձնում է երկու թվերի արտադրյալը"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Վերադարձնում է առաջին թիվի աստիճանը"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "X:%1 Y:%2 ֊ի atan2֊ը"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Վերադարձնում է (X, Y) կետի արկտանգենսը աստիճաններով -180-ից մինչև 180:"; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "փոխել %1-ի արժեքը %2֊ով"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Ավելացնում է թիվ %1 փոփոխականին:"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://hy.wikipedia.org/wiki/Մաթեմատիկական_հաստատուն"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Վերադարձնում է տարածված հաստատուններից մեկը՝ π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), կամ ∞ (անվերջություն):"; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "սահմանափակել %1֊ը %2֊ի և %3֊ի միջև"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Սահմանափակել թիվը երկու արժեքներով (ներառյալ)"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "բաժանվում է"; -Blockly.Msg["MATH_IS_EVEN"] = "զույգ է"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "բացասական է"; -Blockly.Msg["MATH_IS_ODD"] = "կենտ է"; -Blockly.Msg["MATH_IS_POSITIVE"] = "դրական է"; -Blockly.Msg["MATH_IS_PRIME"] = "պարզ է"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Ստուգում է, թե թիվը զույգ է, կենտ է, պարզ է, ամբողջ է, դրական է, բացասական է կամ թե այն բաժանվում է որոշակի թվի վրա: Վերադարձնում է ճշմարիտ կամ կեղծ:"; -Blockly.Msg["MATH_IS_WHOLE"] = "ամբողջ է"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "%1֊ի և %2֊ի բաժանման մնացորդը"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Վերադարձնում է երկու թվերի բաժանման մնացորդը:"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://hy.wikipedia.org/wiki/Թիվ"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Թիվ"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "ցանկի միջինը"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "ցանկի առավելագույնը"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "ցանկի միջնարժեք"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "ցանկի նվազագույնը"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "ցանկի մոդան"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "ցանկի պատահական տարր"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "ցանկի ստանդարտ շեղում"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "ցանկի գումարը"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Վերադարձնում է ցանկում գտնվող արժեքների թվաբանական միջինը"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Վերադարձնում է ցանկի արժեքներից առավելագույնը"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Վերադարձնում է ցանկի միջնարժեք:"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Վերադարձնում է ցանկի արժեքներից նվազագույնը"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Վերադարձնում է ցանկի առավել հաճախ հանդիպող անդամների ցանկը։"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Վերադարձնում է պատահական տարր ցանկից:"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Վերադարձնում է ցանկի ստանդարտ շեղումը:"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Վերադարձնում է ցանկի բոլոր թվերի գումարը:"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Պատահական_թվերի_գեներատոր"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "պատահական կոտորակ"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Վերադարձնում է պատահական թիվ 0.0-ից (ներառյալ) 1.0 միջակայքից:"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "պատահական ամբողջ թիվ %1 -ից %2 -ը"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Վերադարձնում է պատահական ամբողջ թիվ տրված երկու թվերի միջև (ներառյալ):"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Կլորացում"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "կլորացնել"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "կլորացնել ցած"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "կլորացնել վեր"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Կլորացնում է թիվը վերև կամ ներքև:"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "բացարձակ"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Քառակուսի արմատ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Վերադարձնում է թվի բացարձակ արժեքը:"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Վերադարձնում է թվի աստիճանը։"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Վերադարձնում է թվի բնական լոգարիթմը:"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Վերադարձնում է թվի 10 հիմքով լոգարիթմը:"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Վերադարձնում է ժխտված թիվը:"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Վերադարձնում է 10֊ի նշված աստիճանը։"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Վերադարձնում է թվի քառակուսի աստիճանը"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://hy.wikipedia.org/wiki/Եռանկյունաչափական_ֆունկցիաներ"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Վերադարձնում է թվի արկկոսինուսը:"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Վերադարձնում է թվի արկսինուսը(աստիճաններով):"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Վերադարձնում է թվի արկտանգենսը:"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Վերադարձնում է անկյան կոսինուսը աստիճաններով (ոչ ռադիաններով):"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Վերադարձնում է անկյան սինուսը աստիճաններով(ոչ ռադիաններով):"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Վերադարձնում է անկյան տանգենսը աստիճաններով (ոչ ռադիաններով):"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Ստեղծել գույնի փոփոխական"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Ստեղծել թվային փոփոխական"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Ստեղծել տեքստային փոփոխական"; -Blockly.Msg["NEW_VARIABLE"] = "Ստեղծել փոփոխական..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Նոր փոփոխականի անունը՝"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Փոփոխականի նոր տիպ"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "թույլատրել արտահայտությունները"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "պարամետրերի ցանկ՝"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Կատարում է %1 ֆունկցիան"; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Կատարում է '%1' ֆունկցիան և օգտագործում դրա արդյունքը։"; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "պարամետրերի ցանկ՝"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Ստեղծել '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Նկարագրիր այս ֆունկցիան..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "կատարել որևէ բան"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "ֆունկցիա"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Ստեղծում է ֆունկցիա, որը արժեք չի վերադարձնում:"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "վերադարձնել"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Ստեղծում է ֆունկցիա, որը վերադարձնում է արժեք:"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Զգուշացում։ Այս ֆունկցիան ունի կրկնվող պարամտերեր։"; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Ընդգծել ֆունկցիայի հայտարարումը"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Եթե արժեքը ճշմարիտ է, վերադարձնում է երկորդ արժեքը:"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Զգուշացում. Այս բլոկը կարող է օգտագործվել միայն ֆունկցիայի սահմանման ներսում:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "մուտքի անուն՝"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Ֆունկցիային ավելալցնել մուտք (պարամետր)։"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "մուտքեր"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Ավելացնել, հեռացնել կամ վերադասավորել է այս ֆունկցիայի մուտքերը (պարամետրերը)։"; -Blockly.Msg["REDO"] = "Կրկին անել"; -Blockly.Msg["REMOVE_COMMENT"] = "Հեռացնել մեկնաբանությունը"; -Blockly.Msg["RENAME_VARIABLE"] = "Վերանվանել փոփոխականը..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; // untranslated -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "%1֊ին կցել %2 տեքստը"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Կցել տեքստ '%1' փոփոխականին"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "բերել փոքրատառերի"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "բերել Սկզբնա Մեծատառերի"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "բերել ՄԵԾԱՏԱՌԵՐԻ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Վերադարձնում է տեքստի կրկնօրինակը, ՄԵԾԱՏԱՌԵՐՈՎ կամ փոքրատառերով"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "վերցնել առաջին տառը"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "վերցնել տառ № վերջից"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "վերցնել տառ №"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "վերցնել վերջին տառ"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "վերցնել պատահական տառ"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "տեքստում %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Վերադարձնում է նշված դիրքի տառը"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "հաշվել %1 %2֊ում"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Հաշվել, թե քանի անգամ է տեքստը հանդիպում մեկ այլ տեքստի մեջ։"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Ավելացնել էլեմենտ տեքստին:"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "կցել"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Այս տեքստային բլոկը վերակառուցելու համար ավելացրու, հեռացրու կամ փոխիր բաժինների հերթականությունը"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "մինչև # տառը, վերջից"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "մինչև # տառը"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "մինչև վերջին տառը"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "տեքստում"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "տալիս է ենթատող առաջին տառից"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "տալիս է ենթատող # տառից սկսած, վերջից"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "տալիս է ենթատող սկսելով # տառից"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Վերադարձնում է տեքստի նշված մասը։"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "գտնել տեքստի առաջին հանդիպումը"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "գտնել տեքստի վերջին հանդիպումը"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "Տեքստում %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Վերադարձնում է առաջին տեքստի հանդիպման առաջին(կամ վերջին) դիրքը երկրորդ տեքստում։ Վերադարձնում %1 եթե տեքստը չի գտնվել։"; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 -ը դատարկ է"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Վերադարձնում է ճշմարիտ արժեք, եթե տրամադրված տեքստը դատարկ է:"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ստեղծել տեքստ"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Ստեղծում է տեքստի մաս՝ միմյանց կցելով ցանկացած քանակությամբ տարրեր:"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 -ի երկարությունը"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Վերադարձնում է տրված տեքստի տառերի քանակը (ներառյալ բացատները)"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "տպել %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Տպում է նշված տեքստը, թիվը կամ այլ արժեք․"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Հարցնել թիվ օգտատիրոջից։"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Հարցնել տեքստ օգտատիրոջից։"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "հացնել թիվ, հուշումով"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "հարցնել տեքստ, հուշումով"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "փոխարինել %1֊ը %2֊ով %3֊ում"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Փոխարինել տեքստի բոլոր գտնված տարբերակները մեկ այլ տեսքով։"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "շրջել %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Փոխում է տեքստում տառերի հաջորդականությունը։"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Տառ, բառ կամ տեքստի տող:"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "կտրում է բացատները երկու կողմերից"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "կտրում է բացատները ձախ կողմից"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "կտրում է բացատները աջ կողմից"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Վերադարձնում է տեքստի կրկնօրինակը, առանց սկզբի կամ/և վերջի բացատների։"; -Blockly.Msg["TODAY"] = "Այսօր"; -Blockly.Msg["UNDO"] = "Հետ շրջել"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "տարր"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Ստեղծել 'վերագրել %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Վերադարձնում է այս փոփոխականի արժեքը:"; -Blockly.Msg["VARIABLES_SET"] = "վերագրել %1֊ին %2 արժեքը"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "ստեղծել 'ստանալ %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Փոփոխականին վերագրում է ներմուծված արժեքը։"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' անունով փոփոխական արդեն գոյություն ունի"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%1' անունով փոփոխական արդեն գոյություն ունի այլ տիպի համար: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Մի բան ասա ․․․"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ia.js b/lib/blockly/msg/js/ia.js deleted file mode 100644 index 5b083d6..0000000 --- a/lib/blockly/msg/js/ia.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Adder commento"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Impossibile deler le variabile '%1' perque illo face parte del definition del function '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Cambiar valor:"; -Blockly.Msg["CLEAN_UP"] = "Rangiar le blocos"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Blocos plicate contine advertimentos."; -Blockly.Msg["COLLAPSE_ALL"] = "Plicar blocos"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Plicar bloco"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "color 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "color 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ration"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "miscer"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Misce duo colores con un ration specificate (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ia.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Elige un color del paletta."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "color aleatori"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Eliger un color al hasardo."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blau"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "rubie"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colorar con"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Crear un color con le quantitate specificate de rubie, verde e blau. Tote le valores debe esser inter 0 e 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "escappar del bucla"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continuar con le proxime iteration del bucla"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Escappar del bucla continente."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Saltar le resto de iste bucla e continuar con le proxime iteration."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Attention: Iste bloco pote solmente esser usate in un bucla."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "pro cata elemento %1 in lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Pro cata elemento in un lista, mitter lo in le variabile '%1' e exequer certe instructiones."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "contar con %1 de %2 a %3 per %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Mitter in le variabile '%1' le valores ab le numero initial usque al numero final, con passos secundo le intervallo specificate, e exequer le blocos specificate."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Adder un condition al bloco \"si\"."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Adder un condition final de reserva al bloco \"si\"."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Adde, remove o reordina sectiones pro reconfigurar iste bloco \"si\"."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "si non"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "si non si"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "si"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Si un valor es ver, exequer certe instructiones."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Si un valor es ver, exequer le prime bloco de instructiones. Si non, exequer le secunde bloco de instructiones."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Si le prime valor es ver, exequer le prime bloco de instructiones. Si non, si le secunde valor es ver, exequer le secunde bloco de instructiones."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Si le prime valor es ver, exequer le prime bloco de instructiones. Si non, si le secunde valor es ver, exequer le secunde bloco de instructiones. Si necun del valores es ver, exequer le ultime bloco de instructiones."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "face"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repeter %1 vices"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Exequer certe instructiones plure vices."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repeter usque a"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repeter durante que"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Durante que un valor es false, exequer certe instructiones."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Durante que un valor es ver, exequer certe instructiones."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Deler tote le %1 blocos?"; -Blockly.Msg["DELETE_BLOCK"] = "Deler bloco"; -Blockly.Msg["DELETE_VARIABLE"] = "Deler le variabile '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Deler %1 usos del variabile '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Deler %1 blocos"; -Blockly.Msg["DISABLE_BLOCK"] = "Disactivar bloco"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicar"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicar commento"; -Blockly.Msg["ENABLE_BLOCK"] = "Activar bloco"; -Blockly.Msg["EXPAND_ALL"] = "Displicar blocos"; -Blockly.Msg["EXPAND_BLOCK"] = "Displicar bloco"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entrata externe"; -Blockly.Msg["HELP"] = "Adjuta"; -Blockly.Msg["INLINE_INPUTS"] = "Entrata interne"; -Blockly.Msg["IOS_CANCEL"] = "Cancellar"; -Blockly.Msg["IOS_ERROR"] = "Error"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Adder entrata"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permitter declarationes"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Iste function ha entratas duplicate."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRATAS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Adder"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Adder variabile"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Deler"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Non es possibile usar un nomine de variabile vacue."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Renominar"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nomine del variabile"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "crear un lista vacue"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Retorna un lista, de longitude 0, sin datos."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Adde, remove o reordina sectiones pro reconfigurar iste bloco de listas."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "crear lista con"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Adder un elemento al lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Crear un lista con un numero qualcunque de elementos."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "prime"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "№ ab fin"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "prender"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "prender e remover"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ultime"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aleatori"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remover"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Retorna le prime elemento in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Retorna le elemento presente al position specificate in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Retorna le ultime elemento in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Retorna un elemento aleatori in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Remove e retorna le prime elemento in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Remove e retorna le elemento presente al position specificate in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Remove e retorna le ultime elemento in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Remove e retorna un elemento aleatori in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Remove le prime elemento in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Remove le elemento presente al position specificate in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Remove le ultime elemento in un lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Remove un elemento aleatori in un lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "usque al № ab fin"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "usque al №"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "usque al ultime"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "prender sublista ab initio"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "prender sublista ab le fin ab №"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "prender sublista ab №"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Crea un copia del parte specificate de un lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "№ %1 es le ultime elemento."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "№ %1 es le prime elemento."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "cercar le prime occurrentia del elemento"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "cercar le ultime occurrentia del elemento"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Retorna le indice del prime/ultime occurrentia del elemento in le lista. Retorna %1 si le elemento non es trovate."; -Blockly.Msg["LISTS_INLIST"] = "in lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 es vacue"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Retorna ver si le lista es vacue."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longitude de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Retorna le longitude de un lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "crear lista con elemento %1 repetite %2 vices"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Crea un lista que contine le valor fornite, repetite le numero specificate de vices."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inverter %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inverter un copia de un lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "a"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserer in"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "mitter"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Insere le elemento al initio de un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Insere le elemento al position specificate in un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Adjunge le elemento al fin de un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Insere le elemento a un position aleatori in un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Defini le valor del prime elemento in un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Defini le valor del elemento al position specificate in un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Defini le valor del ultime elemento in un lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Defini le valor de un elemento aleatori in un lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascendente"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descendente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ordinamento %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordinar un copia de un lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignorar majuscula/minuscula"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "crear lista ab texto"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "crear texto ab lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Unir un lista de textos, separate per un delimitator, in un sol texto."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Divider texto in un lista de textos, separante lo a cata delimitator."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "con delimitator"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "false"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Retorna o ver o false."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ver"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://ia.wikipedia.org/wiki/Inequalitate_(mathematica)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Retornar ver si le duo entratas es equal."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Retornar ver si le prime entrata es major que le secunde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Retornar ver si le prime entrata es major que o equal al secunde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Retornar ver si le prime entrata es minor que le secunde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Retornar ver si le prime entrata es minor que o equal al secunde."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Retornar ver si le duo entratas non es equal."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "non %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Retornar ver si le entrata es false. Retornar false si le entrata es ver."; -Blockly.Msg["LOGIC_NULL"] = "nulle"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Retorna nulle."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Retornar ver si ambe entratas es ver."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Retornar ver si al minus un del entratas es ver."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "si false"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "si ver"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Verificar le condition in 'test'. Si le condition es ver, retorna le valor de 'si ver'; si non, retorna le valor de 'si false'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ia.wikipedia.org/wiki/Arithmetica"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Retornar le summa del duo numeros."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Retornar le quotiente del duo numeros."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Retornar le differentia del duo numeros."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Retornar le producto del duo numeros."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Retornar le prime numero elevate al potentia del secunde numero."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 de X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Retornar le arco tangente del puncto (X, Y) in grados de -180 a 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "cambiar %1 per %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Adder un numero al variabile '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ia.wikipedia.org/wiki/Constante_mathematic"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Retornar un del constantes commun: π (3,141…), e (2,718…), φ (1,618…), sqrt(2) (1,414…), sqrt(½) (0,707…) o ∞ (infinite)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "limitar %1 inter %2 e %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Limitar un numero a esser inter le limites specificate (incluse)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "es divisibile per"; -Blockly.Msg["MATH_IS_EVEN"] = "es par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "es negative"; -Blockly.Msg["MATH_IS_ODD"] = "es impare"; -Blockly.Msg["MATH_IS_POSITIVE"] = "es positive"; -Blockly.Msg["MATH_IS_PRIME"] = "es prime"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Verificar si un numero es par, impare, prime, integre, positive, negative, o divisibile per un certe numero. Retorna ver o false."; -Blockly.Msg["MATH_IS_WHOLE"] = "es integre"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "resto de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Retornar le resto del division del duo numeros."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ia.wikipedia.org/wiki/Numero"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un numero."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "media del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maximo del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimo del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modas del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "elemento aleatori del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "deviation standard del lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summa del lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Retornar le media arithmetic del valores numeric in le lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Retornar le numero le plus grande in le lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Retornar le numero median del lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Retornar le numero le plus parve in le lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Retornar un lista del elemento(s) le plus commun in le lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Retornar un elemento aleatori del lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Retornar le deviation standard del lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Retornar le summa de tote le numeros in le lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fraction aleatori"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Retornar un fraction aleatori inter 0.0 (incluse) e 1.0 (excluse)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "numero integre aleatori inter %1 e %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Retornar un numero integre aleatori inter le duo limites specificate, incluse."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ia.wikipedia.org/wiki/Rotundamento"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arrotundar"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arrotundar a infra"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arrotundar a supra"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arrotundar un numero a supra o a infra."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ia.wikipedia.org/wiki/Radice_quadrate"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "radice quadrate"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Retornar le valor absolute de un numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Retornar e elevate al potentia del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Retornar le logarithmo natural de un numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Retornar le logarithmo in base 10 del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Retornar le negation de un numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Retornar 10 elevate al potentia de un numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Retornar le radice quadrate de un numero."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Retornar le arcocosino de un numero."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Retornar le arcosino de un numero."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Retornar le arcotangente de un numero."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Retornar le cosino de un grado (non radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Retornar le sino de un grado (non radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Retornar le tangente de un grado (non radiano)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crear variabile de color..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crear variabile numeric..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Crear variabile textual..."; -Blockly.Msg["NEW_VARIABLE"] = "Crear variabile..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nomine del nove variabile:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nove typo de variabile:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permitter declarationes"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Executar le function '%1' definite per le usator."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Executar le function '%1' definite per le usator e usar su resultato."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Crear '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe iste function..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "facer qualcosa"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "pro"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Crea un function que non retorna un valor."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retornar"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Crea un function que retorna un valor."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Attention: Iste function ha parametros duplicate."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Accentuar le definition del function"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Si un valor es ver, alora retornar un secunde valor."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Attention: Iste bloco pote solmente esser usate in le definition de un function."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nomine del entrata:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Adder un entrata al function."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entratas"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Adder, remover o reordinar le entratas pro iste function."; -Blockly.Msg["REDO"] = "Refacer"; -Blockly.Msg["REMOVE_COMMENT"] = "Remover commento"; -Blockly.Msg["RENAME_VARIABLE"] = "Renominar variabile..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renominar tote le variabiles '%1' a:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 adjunger texto %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Adjunger un texto al variabile '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "in minusculas"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "con Initiales Majuscule"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "in MAJUSCULAS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Retornar un copia del texto con differente majusculas/minusculas."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "prender le prime littera"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "prender ab le fin le littera №"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "prender le littera №"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "prender le ultime littera"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "prender un littera aleatori"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in le texto %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Retorna le littera presente al position specificate."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "contar %1 in %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Contar quante vices un texto occurre intra un altere texto."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Adder un elemento al texto."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Adde, remove o reordina sectiones pro reconfigurar iste bloco de texto."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "ab le fin usque al littera №"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "usque al littera №"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "usque al ultime littera"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in le texto"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "prender subcatena ab le prime littera"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "prender subcatena ab le fin ab le littera №"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "prender subcatena ab le littera №"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Retorna le parte specificate del texto."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "cercar le prime occurrentia del texto"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "cercar le ultime occurrentia del texto"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in le texto %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Retorna le indice del prime/ultime occurrentia del prime texto in le secunde texto. Retorna %1 si le texto non es trovate."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 es vacue"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Retorna ver si le texto fornite es vacue."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "crear texto con"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Crear un pecia de texto uniente un certe numero de elementos."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longitude de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Retorna le numero de litteras (incluse spatios) in le texto fornite."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "scriber %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Scriber le texto, numero o altere valor specificate."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Peter un numero al usator."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Peter un texto al usator."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "peter un numero con le message"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "peter un texto con le message"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "reimplaciar %1 per %2 in %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Reimplaciar tote le occurrentias de un texto intra un altere texto."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inverter %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inverte le ordine del characteres in le texto."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Un littera, parola o linea de texto."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "remover spatios de ambe lateres de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "remover spatios del sinistre latere de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "remover spatios del dextre latere de"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Retornar un copia del texto con spatios eliminate de un extremitate o ambes."; -Blockly.Msg["TODAY"] = "Hodie"; -Blockly.Msg["UNDO"] = "Disfacer"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "cosa"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crea 'mitter %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Retorna le valor de iste variabile."; -Blockly.Msg["VARIABLES_SET"] = "mitter %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crear 'prender %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Mitte iste variabile al valor del entrata."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Un variabile con le nomine '%1' jam existe."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Un variabile con le nomine '%1' jam existe pro un altere typo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Dice qualcosa..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/id.js b/lib/blockly/msg/js/id.js deleted file mode 100644 index d936dfb..0000000 --- a/lib/blockly/msg/js/id.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Tambahkan Komentar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ubah nilai:"; -Blockly.Msg["CLEAN_UP"] = "Bersihkan Blok"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Ciutkan Blok"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Ciutkan Blok"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "warna 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "warna 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "rasio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "campur"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Campur dua warna secara bersamaan dengan perbandingan (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Pilih warna dari daftar warna."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "Warna acak"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Pilih warna secara acak."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "biru"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "hijau"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "merah"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "Dengan warna"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Buatlah warna dengan jumlah yang ditentukan dari merah, hijau dan biru. Semua nilai harus antarai 0 sampai 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "keluar dari perulangan"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "lanjutkan dengan langkah perulangan berikutnya"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Keluar dari perulangan."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Abaikan sisa dari perulangan ini, dan lanjutkan dengan langkah berikutnya."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Peringatan: Blok ini hanya dapat digunakan dalam perulangan."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "untuk setiap item %1 di dalam list %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Untuk tiap-tiap item di dalam list, tetapkan variabel '%1' ke dalam item, selanjutnya kerjakan beberapa statement."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "Cacah dengan %1 dari %2 ke %3 dengan step / penambahan %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Menggunakan variabel \"%1\" dengan mengambil nilai dari batas awal hingga ke batas akhir, dengan interval tertentu, dan mengerjakan block tertentu."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Tambahkan prasyarat ke dalam blok IF."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Terakhir, tambahkan kondisi tangkap-semua kedalam blok IF."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Tambahkan, hapus, atau susun kembali bagian untuk mengkonfigurasi blok IF ini."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "lainnya"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "atau jika"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "jika"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Jika nilainya benar, maka lakukan beberapa perintah."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Jika nilainya benar, maka kerjakan perintah blok pertama. Jika tidak, kerjakan perintah blok kedua."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Jika nilai pertama benar, maka kerjakan perintah blok pertama. Sebaliknya, jika nilai kedua benar, kerjakan perintah blok kedua."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Jika nilai pertama benar, maka kerjakan perintah blok pertama. Sebaliknya, jika nilai kedua benar, kerjakan perintah blok kedua. Jika dua-duanya tidak benar, kerjakan perintah blok terakhir."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "kerjakan"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ulangi %1 kali"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Lakukan beberapa perintah beberapa kali."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ulangi sampai"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ulangi jika"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Selagi nilainya salah, maka lakukan beberapa perintah."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Selagi nilainya benar, maka lakukan beberapa perintah."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Hapus semua %1 blok?"; -Blockly.Msg["DELETE_BLOCK"] = "Hapus Blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Hapus variabel '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Hapus %1 yang digunakan pada variabel '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Hapus %1 Blok"; -Blockly.Msg["DISABLE_BLOCK"] = "Nonaktifkan Blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplikat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Aktifkan Blok"; -Blockly.Msg["EXPAND_ALL"] = "Kembangkan Blok"; -Blockly.Msg["EXPAND_BLOCK"] = "Kembangkan Blok"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Input Eksternal"; -Blockly.Msg["HELP"] = "Bantuan"; -Blockly.Msg["INLINE_INPUTS"] = "Input Inline"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "buat list kosong"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Kembalikan list, dengan panjang 0, tidak berisi data"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Tambahkan, hapus, atau susun ulang bagian untuk mengkonfigurasi blok list ini."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "buat list dengan"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Tambahkan sebuah item ke list."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Buat sebuah list dengan sejumlah item."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "pertama"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# dari akhir"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "dapatkan"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "dapatkan dan hapus"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "terakhir"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "acak"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "Hapus"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Kembalikan item pertama dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Kembalikan item di posisi tertentu dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Kembalikan item terakhir dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Kembalikan item acak dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Hapus dan kembalikan item pertama dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Hapus dan kembalikan item di posisi tertentu dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Hapus dan kembalikan item terakhir dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Hapus dan kembalikan item acak dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Hapus item pertama dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Hapus item di posisi tertentu dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Hapus item terakhir dalam list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Hapus sebuah item acak dalam list."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ke # dari akhir"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ke #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ke yang paling akhir"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "dapatkan sub-list dari pertama"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "dapatkan sub-list dari nomor # dari akhir"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "dapatkan sub-list dari #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Buat salinan bagian tertentu dari list."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 adalah item terakhir."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 adalah item pertama."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "cari kejadian pertama item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "cari kejadian terakhir item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Kembalikan indeks dari item pertama/terakhir kali muncul dalam list. Kembalikan %1 jika item tidak ditemukan."; -Blockly.Msg["LISTS_INLIST"] = "dalam list"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 kosong"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Kembalikan benar jika list kosong."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "panjang dari %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Kembalikan panjang list."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "buat list dengan item %1 diulang %2 kali"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Buat sebuah list yang terdiri dari nilai yang diberikan diulang sebanyak jumlah yang ditentukan."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "sebagai"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "sisipkan di"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "tetapkan"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Sisipkan item di bagian awal dari list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Sisipkan item ke dalam posisi yang telah ditentukan di dalam list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Tambahkan item ke bagian akhir list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Sisipkan item secara acak ke dalam list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Tetapkan item pertama di dalam list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Tetapkan item ke dalam posisi yang telah ditentukan di dalam list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Menetapkan item terakhir dalam list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Tetapkan secara acak sebuah item dalam list."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "menaik"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "menurun"; -Blockly.Msg["LISTS_SORT_TITLE"] = "urutkan %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Urutkan salinan dari daftar"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "sesuai abjad, abaikan kasus"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "sesuai nomor"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "sesuai abjad"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "buat list dari teks"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "buat teks dari list"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Gabung daftar teks menjadi satu teks, yang dipisahkan oleh pembatas."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Membagi teks ke dalam daftar teks, pisahkan pada setiap pembatas."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "dengan pembatas"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "salah"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Kembalikan benar atau salah."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "benar"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Kembalikan benar jika kedua input sama satu dengan lainnya."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Kembalikan benar jika input pertama lebih besar dari input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Kembalikan benar jika input pertama lebih besar dari atau sama dengan input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Kembalikan benar jika input pertama lebih kecil dari input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Kembalikan benar jika input pertama lebih kecil atau sama dengan input kedua ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Kembalikan benar jika kedua input tidak sama satu dengan lainnya."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "bukan (not) %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Kembalikan benar jika input salah. Kembalikan salah jika input benar."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Kembalikan null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "dan"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "atau"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Kembalikan benar jika kedua input adalah benar."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Kembalikan benar jika minimal satu input nilainya benar."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "jika salah"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "jika benar"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Periksa kondisi di 'test'. Jika kondisi benar, kembalikan nilai 'if true'; jika sebaliknya kembalikan nilai 'if false'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://id.wikipedia.org/wiki/Aritmetika"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Kembalikan jumlah dari kedua angka."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Kembalikan hasil bagi dari kedua angka."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Kembalikan selisih dari kedua angka."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Kembalikan perkalian dari kedua angka."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Kembalikan angka pertama pangkat angka kedua."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "ubah %1 oleh %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Tambahkan angka kedalam variabel '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Kembalikan salah satu konstanta: π (3,141…), e (2,718…), φ (1,618…), akar(2) (1,414…), akar(½) (0.707…), atau ∞ (tak terhingga)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "Batasi %1 rendah %2 tinggi %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Batasi angka antara batas yang ditentukan (inklusif)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "dapat dibagi oleh"; -Blockly.Msg["MATH_IS_EVEN"] = "adalah bilangan genap"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "adalah bilangan negatif"; -Blockly.Msg["MATH_IS_ODD"] = "adalah bilangan ganjil"; -Blockly.Msg["MATH_IS_POSITIVE"] = "adalah bilangan positif"; -Blockly.Msg["MATH_IS_PRIME"] = "adalah bilangan pokok"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Periksa apakah angka adalah bilangan genap, bilangan ganjil, bilangan pokok, bilangan bulat, bilangan positif, bilangan negatif, atau apakan bisa dibagi oleh angka tertentu. Kembalikan benar atau salah."; -Blockly.Msg["MATH_IS_WHOLE"] = "adalah bilangan bulat"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "sisa dari %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Kembalikan sisa dari pembagian ke dua angka."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Suatu angka."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "rata-rata dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maksimum dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimum dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "mode-mode dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "item acak dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "deviasi standar dari list"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "jumlah dari list"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Kembalikan rata-rata (mean aritmetik) dari nilai numerik dari list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Kembalikan angka terbesar dari list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Kembalikan median dari list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Kembalikan angka terkecil dari list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Kembalikan list berisi item yang paling umum dari dalam list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Kembalikan elemen acak dari list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Kembalikan standard deviasi dari list."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Kembalikan jumlah dari seluruh bilangan dari list."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "nilai pecahan acak"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Kembalikan nilai pecahan acak antara 0.0 (inklusif) dan 1.0 (eksklusif)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "acak bulat dari %1 sampai %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Kembalikan bilangan acak antara dua batas yang ditentukan, inklusif."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "membulatkan"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "membulatkan kebawah"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "membulatkan keatas"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Bulatkan suatu bilangan naik atau turun."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "mutlak"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "akar"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Kembalikan nilai absolut angka."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Kembalikan 10 pangkat angka."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Kembalikan logaritma natural dari angka."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Kembalikan dasar logaritma 10 dari angka."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Kembalikan penyangkalan terhadap angka."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Kembalikan 10 pangkat angka."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Kembalikan akar dari angka."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Kembalikan acosine dari angka."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Kembalikan asin dari angka."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Kembalikan atan dari angka."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Kembalikan cosinus dari derajat (bukan radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Kembalikan sinus dari derajat (bukan radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Kembalikan tangen dari derajat (bukan radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Buat variabel..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nama variabel baru:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "memungkinkan pernyataan"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "dengan:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Menjalankan fungsi '%1' yang ditetapkan pengguna."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Menjalankan fungsi '%1' yang ditetapkan pengguna dan menggunakan outputnya."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "dengan:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Buat '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Jelaskan fungsi ini..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "buat sesuatu"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "untuk"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Buat sebuah fungsi tanpa output."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "kembali"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Buat sebuah fungsi dengan satu output."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Peringatan: Fungsi ini memiliki parameter duplikat."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Sorot definisi fungsi"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Jika nilai yang benar, kemudian kembalikan nilai kedua."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Peringatan: Blok ini dapat digunakan hanya dalam definisi fungsi."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "masukan Nama:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Tambahkan masukan ke fungsi."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "input"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Menambah, menghapus, atau menyusun ulang masukan untuk fungsi ini."; -Blockly.Msg["REDO"] = "Lakukan ulang"; -Blockly.Msg["REMOVE_COMMENT"] = "Hapus Komentar"; -Blockly.Msg["RENAME_VARIABLE"] = "Ubah nama variabel..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Ubah nama semua variabel '%1' menjadi:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "untuk %1 tambahkan teks %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Tambahkan beberapa teks ke variabel '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "menjadi huruf kecil"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "menjadi huruf pertama kapital"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "menjadi huruf kapital"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Kembalikan kopi dari text dengan kapitalisasi yang berbeda."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "ambil huruf pertama"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "ambil huruf nomor # dari belakang"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "ambil huruf ke #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "ambil huruf terakhir"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "ambil huruf secara acak"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Kembalikan karakter dari posisi tertentu."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Tambahkan suatu item ke dalam teks."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Tambah, ambil, atau susun ulang teks blok."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "pada huruf nomer # dari terakhir"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "pada huruf #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "pada huruf terakhir"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in teks"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "ambil bagian teks (substring) dari huruf pertama"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "ambil bagian teks (substring) dari huruf ke # dari terakhir"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "ambil bagian teks (substring) dari huruf no #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Kembalikan spesifik bagian dari teks."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "temukan kejadian pertama dalam teks"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "temukan kejadian terakhir dalam teks"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "dalam teks %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Kembalikan indeks pertama dan terakhir dari kejadian pertama/terakhir dari teks pertama dalam teks kedua. Kembalikan %1 jika teks tidak ditemukan."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 kosong"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Kembalikan benar jika teks yang disediakan kosong."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "buat teks dengan"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Buat teks dengan cara gabungkan sejumlah item."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "panjang dari %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Kembalikan sejumlah huruf (termasuk spasi) dari teks yang disediakan."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "cetak %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Cetak teks yant ditentukan, angka atau ninlai lainnya."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Meminta pengguna untuk memberi sebuah angka."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Meminta pengguna untuk memberi beberapa teks."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Meminta angka dengan pesan"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "meminta teks dengan pesan"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Huruf, kata atau baris teks."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "pangkas ruang dari kedua belah sisi"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "pangkas ruang dari sisi kiri"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "pangkas ruang dari sisi kanan"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Kembali salinan teks dengan spasi dihapus dari satu atau kedua ujungnya."; -Blockly.Msg["TODAY"] = "Hari ini"; -Blockly.Msg["UNDO"] = "Urungkan"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Buat 'set %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Kembalikan nilai variabel ini."; -Blockly.Msg["VARIABLES_SET"] = "tetapkan %1 untuk %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Buat 'get %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "tetapkan variabel ini dengan input yang sama."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Sebuah variabel dengan nama '%1' sudah ada."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ig.js b/lib/blockly/msg/js/ig.js deleted file mode 100644 index 62afd5d..0000000 --- a/lib/blockly/msg/js/ig.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Tịnye okwu"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Agaghị ekpochapụlị agbanwe '%1' maka nsonye ya na nkọwa nke ọrụ ahụ '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Gbanwee akara:"; -Blockly.Msg["CLEAN_UP"] = "Hichapụ ngọngọ"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Kwada Ngọngọ"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Kwada Ngọngọ"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "agba 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "agba 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "oke"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ngwakọta"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Na ngwakọta agba abụọ ọnụ na na oke enyere (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Họrọ agba site na palette."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "agba ọbụla"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Họrọ agba na-nke ọbụla."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "bluu"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "akwụkwọ ndụ"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "uhie"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "agba ya na"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Mepụta agba nwere ọnụ ọgụgụ kpọmkwem nke agba uhie, akwụkwọ ndụ, na akara niile ga-adịrịrị n'etiti 0 rụọ 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "gbapuo na meghachi a"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "malite na nsoghari nke meghachi ozo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Gba puo na gburugburu nke ọdị n’ime ya."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Wụọ mkpụchị meghachi ndị a fọdụrụ, ma gaa n'ihu na nsoghari nke aka."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Ịdọ aka ná ntị: Enwere ike iji ngọngọ a naanị n'ime meghachi."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "maka ihe ọ bụla %1 n'ime ndepụta %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Maka ihe ọ bụla n'ime ndepụta, debe agbanwe '%1' na ihe ahụ, wee degharịa ụfọdụ koodu."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "gụọ na %1 site na %2 rụọ %3 tupu %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Nwere ngwakọta '%1' na akara ọbụla sịte na mbịdo ọnụọgụgụ rụọ na ngwụcha ọnụọgụgụ, na-ngụta sịtere na nkeji oge kpọmkwem. megharịa koodu oge ọbụla:"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Tinye ọnọdụ na ngọngọ ma ọ bụrụ."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Tinye ngwucha, ọnọdụ jide-niile na ngọngọ ma ọ bụrụ."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Tinye, wepu, ma ọ bụ megharia ngalaba iji haziearịa nke a ma ọ bụrụ na ngọngọ."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ọzọ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ọzọ ma ọ bụrụ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ọ bụrụ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ọ bụrụ na akara bụ ezịọkwụ, mezie ụfọdụ okwu."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ọ bụrụ na akara bụ ezịọkwụ, mezie ngọngọ mbụ nke okwu. Ma ọ bụghị ya, mezie ngọngọ nke abụọ nke okwu."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ọ bụrụ na akara mbụ bụ ezịọkwụ, mezie ngọngọ mbụ nke okwu. Ma ọ bụghị ya, ọ bụrụ na akara nke abụọ bụ ezịọkwụ, mee ngọngọ nke abụọ nke okwu."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ọ bụrụ na akara mbụ bụ ezịọkwụ, mezie ngọngọ mbụ nke okwu. Ma ọ bụghị ya, ọ bụrụ na akara nke abụọ bụ ezịọkwụ, mee ngọngọ nke abụọ nke okwu. Ọ bụrụ na onweghị akara bụ ezịọkwụ, mee ngọngọ okwu ikpeazụ."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "mee"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "meghachi ụgbọ %1"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Mee ụfọdụ okwu ọtụtụ ugboro."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "megharịa tụpụ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "megharịa mgbe"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Ọ bụ ebe akara bụ ụgha, megharịa ụfọdụ koodu."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Ọ bụ ebe akara bụ ezịọkwụ, megharịa ụfọdụ koodu."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Mkpọchi %1 ngọngọ niile?"; -Blockly.Msg["DELETE_BLOCK"] = "Kpochapụ Ngọngọ"; -Blockly.Msg["DELETE_VARIABLE"] = "Kpochapụ agbanwe ‘%1' ahu"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Kpochapụ %1 ojịjị nke agbanwe '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Kpochapụ %1 Ngọngọ"; -Blockly.Msg["DISABLE_BLOCK"] = "Gbanyụọ Ngọngọ"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Ntụgharị"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Tụgharịa okwu"; -Blockly.Msg["ENABLE_BLOCK"] = "Gbanye Ngọngọ"; -Blockly.Msg["EXPAND_ALL"] = "Gbasaa Ngọngọ"; -Blockly.Msg["EXPAND_BLOCK"] = "Gbasaa Ngọngọ"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Ntinye Mpụta"; -Blockly.Msg["HELP"] = "Enyemaka"; -Blockly.Msg["INLINE_INPUTS"] = "Ntinye N'ahịrị"; -Blockly.Msg["IOS_CANCEL"] = "Hapụ̀"; -Blockly.Msg["IOS_ERROR"] = "Njehie"; -Blockly.Msg["IOS_OK"] = "Ọ DỊ MMA"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Tinye ntinye"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Kwe ka okwu"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ọrụ a nwere ọnụọgụ abụọ."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "NTINYE"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Tinye"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Tinye agbanwe"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Kpochapụ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ị nweghị ike iji aha agbanwe dị n’efu."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Nyegharịa aha"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Aha agbanwe"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "mepụta ndepụta efu"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Weghachite ndepụta, nke ogologo 0, nke enweghị ndekọ data"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "ndepụta"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Tinye, wepu, ma ọ bụ megharia ngalaba iji haziearia ngọngọ ederede a."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "mepụta ndepụta"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Tinye ihe na ndepụta."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Mepụta ndepụta na nọmba ọ bụla."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "mbu"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# site na njedebe"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "nweta"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "nweta ma wepu"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ikpeazụ"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "nke ọ bụla"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "wepu"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Weghachitere ihe mbụ n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Weghachitere ihe na ọnọdụ a kapịrị ọnụ na ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Weghachitere ihe ikpeazụ n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Weghachitere ihe ọbụla n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Wepu ma weghachite ihe mbu na ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Wepu ma weghachite ihe na ọnọdụ a kapịrị ọnụ na ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Wepu ma weghachite ihe ikpeazụ n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Wepu ma weghachite ihe ọbụla n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Wepu ihe mbụ n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Wepu ihe ahụ na ọnọdụ a kapịrị ọnụ na ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Wepu ihe ikpeazụ n'ime ndepụta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Wepu ihe ọbụla n'ime ndepụta."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "rụọ # site na njedebe"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "rụọ #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "rụọ na ngwụcha"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "nweta akụkụ ndepụta site na mbịdo"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "nweta akụkụ ndepụta site na # site na njedebe"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "nweta akụkụ ndepụta site na #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Na-emepụta otu akụkụ a kapịrị ọnụ nke ndepụta."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 bụ ihe ikpeazụ."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 bụ ihe mbụ."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "chọta ihe mbu nke ihe"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "chọta ihe ikpeazụ nke ihe"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Weghachitere ntughari nke mbụ / nke ikpeazụ nke ihe dị na ndepụta. Weghachitere %1 ma ọ bụrụ na achọtaghị ihe."; -Blockly.Msg["LISTS_INLIST"] = "n’ime ndepụta"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ghe oghe"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Weghachite eziokwu ma ọ bụrụ na ndepụta ahụ dị n’efu."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "ogo nke %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Weghachite ogo nke ndepụta."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "mepụta ndepụta na ihe %1 emegharịrị ugboro %2"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Na-emepụta listi ndepụta gụnyere akara a nyere ya ugboro ugboro."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "gbanwe %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Tụgharịa otu akụkụ ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "dị ka"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "tinye na"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Na-etinye ihe ahụ na mmalite nke ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Na-etinye ihe na ọnọdụ a kapịrị ọnụ na ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Na-etinye ihe ahụ na ngwụcha nke ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Na-etinye ihe ahụ na ebe ọbụla nke ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Debe ihe mbụ n'ime ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Debe ihe ahụ na ọnọdụ a kapịrị ọnụ na ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Debe ihe ikpeazụ n'ime ndepụta."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Debe ihe ọbụla n'ime ndepụta."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "arịgo"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "agbada"; -Blockly.Msg["LISTS_SORT_TITLE"] = "hazie %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Tọọ otu akụkụ ndepụta ahụ."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "mkpụrụ edemede, leghara ọnọdụ anya"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "nọmba"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "mkpụrụ edemede"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "mee ndepụta site na ederede"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "mee ederede site na ndepụta"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Jikọọ ndepụta nke ederede gaa na otu ederede, nke oihe nkewa kewara."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Kewaa ederede n'ime ndepụta nke ederede, na-agbasa na ihe nkwea ọ bụla."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "na ihe nkewa"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ụgha"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Weghachitere ezịọkwụ ma ọ bụ ụgha."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ezịọkwụ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye hatara onwe ha."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị ụkwụụ karia ntinye nke abụọ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị ụkwụụ karia ma ọ bụ hatara ntinye nke abụọ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị obere karia ntinye nke abụọ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị obere karia ma ọ bụ hatara ntinye nke abụọ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye aghataghị onwe ha."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ma ọ bụghị %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Weghachitere ezịọkwụ ma ọ bụrụ na ntinye bụ ụgha. Weghachitere ụgha ma ọ bụrụ na ntinye bụ ezịọkwụ."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Weghachitere nkịtị."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ma"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ma ọ bụrụ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Weghachi ezịọkwụ ma ọ bụrụ na ntinye abụọ a bụ ezịọkwụ."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Weghachi ezịọkwụ ma ọ bụrụ na ọdịkarịa ala otu n’ime ntinye a bụ ezịọkwụ."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ule"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ọ bụrụ ụgha"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ọ bụrụ na eziokwu"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Lelee ọnọdụ na 'ule'. Ọ bụrụ na ọnọdụ ahụ bụ eziokwu, weghachitere akara 'ọ bụrụ na eziokwu’; ma ọ bụghị ya weghachitere akara 'ọ bụrụ ụgha'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Weghachite ngụkọ ọnụ ọgụgụ abụọ ahụ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Weghachite kwenye ọnụ ọgụgụ abụọ ahụ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Weghachite nwepụ ọnụ ọgụgụ abụọ ahụ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Weghachite mụbaa ọnụ ọgụgụ abụọ ahụ."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Weghachite nọmba mbu nke emeturu ike nke nọmba nke abụọ."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 nke X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Weghachite aktanjentị nke isi (X, Y) na ogo site na -180 rụọ 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "gbanwee %1 site na %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Tinye nọmba na agbanwe '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Weghachite otu n'ime kọnstant ndị nkịtị: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "gbochịe %1 ala %2 elu %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Gbochịe ọnụọgụgụ dị n'etiti nọmba dị oke ala na nọmba dị oke elu (gụnyere)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ga ekenwụ"; -Blockly.Msg["MATH_IS_EVEN"] = "bụ ịvụn"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "bụ negetịf"; -Blockly.Msg["MATH_IS_ODD"] = "bụ ọd"; -Blockly.Msg["MATH_IS_POSITIVE"] = "bu posịtịf"; -Blockly.Msg["MATH_IS_PRIME"] = "bụ praim"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Tụlee ma nọmba ọ bụ ịvụn, ọd, praim, zuru ezu, posịtịf, negetịf, ma e nwere nọmba ga ekenwu ya. Weghachitere eziokwu ma ọ bụ ụgha."; -Blockly.Msg["MATH_IS_WHOLE"] = "zuru ezu"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "ihe fọdụrụ nke %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Weghachite ihe fọdụrụ site na nkewa nọmba abụọ."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Ọnụọgụgụ."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "agbaetiti nke ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "ọkacha ukwuu nke ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "etiti nke ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "opekempe nke ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "ụdị ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Ihe ọbụla nke ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "ntughari usoro nke ndepụta"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "nchịkọta nke ndepụta"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Weghachite agbaetiti (nchịkọta mpụta) nke akara ọnụọgụ na ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Weghachite nọmba kacha ukwuu na ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Weghachite nọmba agbaetiti na ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Weghachite nọmba kacha obere na ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Weghachite ndepụta nke nke ihe kachasị mkpa na ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Weghachite Ihe ọbụla site na ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Weghachite ntughari usoro nke ndepụta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Weghachite nchịkọta nke nọmba niile na ndepụta."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "nkewa ọbụla"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Weghachite ọnụọgụgụ ọbụla dị n'etiti 0.0 (gụnyere) na 1.0 (agụnyeghị)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "ọnụọgụgụ ọbụla site na %1 rụọ %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Weghachite ọnụọgụgụ ọbụla dị n'etiti ihe abụọ a kapịrị ọnụ, agụnyere."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "gbaarịa"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "gbatụọ ala"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "gbaago elu"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Gbaago nọmba n'elu ma ọ bụ ala."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ozụzụ"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Isi ngụkọ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Weghachite akara ozụzụ nke nọmba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Weghachite na ike nke nọmba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Weghachite lọgarịdịm nke di na nọmba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Weghachite isi lọgarịdịm 10 nke nọmba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Weghachite njụ nke nọmba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Weghachite 10 na ike nke nọmba."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Weghachite Isi ngụkọ nke nọmba."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Weghachite akosaịn nke nọmba."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Weghachite aksaịn nke nọmba."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Weghachite aktanjentị nke nọmba."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Weghachite kosaịn nke ogo (ọ bụghị redian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Weghachite saịn nke ogo (ọ bụghị redian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Weghachite tanjentị nke ogo (ọ bụghị redian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Mepụta agba agbanwe..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Mepụta nọmba agbanwe..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Mepụta njikọ agbanwe..."; -Blockly.Msg["NEW_VARIABLE"] = "Mepụta agbanwe..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Aha agbanwe ọhụụ:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Ụdị agbanwe ọhụụ:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "kwe ka okwu"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "na:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Gbaa ọrụ a kọwaa onye-ọrụ '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Gbaa ọrụ a kọwaa onye-ọrụ '%1' ma jiri mmepụta ya."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "na:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Mepụta '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Kọwaa ọrụ a..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "megharịa"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "ga na"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Na emepụta ọrụ na-enweghị mmepụta."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "weghachite"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Na emepụta ọrụ nwere mmepụta."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Ịdọ aka ná ntị: Ọrụ a nwere ọnụọgụ abụọ."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Nkọwapụta njirimara ọrụ"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Weghachite akara nke agbanwe a."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Ịdọ aka ná ntị: Ọrụ a nwere ọnụọgụ abụọ."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "tinye aha:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Tinye ntinye aka na ọrụ ahụ."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ntinye"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Tinye, wepu, ma ọ bụ tugharịa ntinye na ọrụ a."; -Blockly.Msg["REDO"] = "Megharịa"; -Blockly.Msg["REMOVE_COMMENT"] = "Wepu okwu"; -Blockly.Msg["RENAME_VARIABLE"] = "Nyegharịa agbanwe aha..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Nyegharịa agbanwe '%1' nille ga:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "iji %1 tinye ederede %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Tinye ederede na mgbanwee '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "na ahịrị elu"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "na Aha Ahịrị"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "na AHỊRỊ ELU"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "AA <-> aa"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "nweta akwụkwọ ozi mbu"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "nweta akwụkwọ ozi # site na njedebe"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "nweta akwụkwọ ozi #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "nweta akwụkwọ ozi ikpeazụ"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "nweta akwụkwọ ozi ọbụla"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "chọta na ederede %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Weghachite akwụkwọ ozi ahụ na ọnọdụ a kapịrị ọnụ."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "gụọ %1 n’ime %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Gụọ ugboro ole ụfọdụ ederede na’apụta n’ụfọdụ ederede ọzọ."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Tinye ihe na ederede."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "jikọta"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Tinye, wepu, ma ọ bụ megharia ngalaba iji haziearia ngọngọ ederede a."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "na akwụkwọ ozi # site na njedebe"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "na akwụkwọ ozi #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "na leta ikpeazụ"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "chọta na ederede"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "nweta njịkọ-ala na akwụkwọ ozi mbu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "nweta njịkọ-ala na akwụkwọ ozi # site na njedebe"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "nweta njịkọ-ala na akwụkwọ ozi #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Weghachite akụkụ nke akọwapụtara ederede."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "chọta ihe omume mbu nke ederede"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "chọta ihe omume ikpeazụ nke ederede"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "chọta na ederede %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Weghachitere ntughari nke mbụ / nke ikpeazụ nke ihe dị na ndepụta. Weghachitere %1 ma ọ bụrụ na achọtaghị ihe."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 di n’efu"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Weghachitere ezịọkwụ ma ọ bụrụ na ederede enyere di n’efu."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "mepụta ederede na"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Mepụta otu ederede site na ijikọta ọnụ ọgụgụ ihe ọ bụla."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "ogologo nke %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Weghachitere nọmba nke akwụkwọ ozi (gụnyere oghere) na ederede enyere."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "bipụta %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Bipụta ederede a kapịrị ọnụ, nọmba ma ọ bụ akara ọzọ."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Mepụta ngwa onye ọrụ maka nọmba."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Mepụta ngwa onye ọrụ maka ederede."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Mepụta ngwa maka maka nọmba na ozi"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Mepụta ngwa maka iji ederede na ozi"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "dochie %1 na %2 n’ime %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Dochie ihe omuma nke ederede ufodu n'ime ufodu ederede ozo."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "gbanwe %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Na-agbanwe iwu nke ndị odide na ederede."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Akwụkwọ ozi, okwu, ma ọ bụ akara ederede."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "belata oghere dị mkpụmkpụ si n'akụkụ abụọ nke"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "belata oghere dị mkpụmkpụ si n'akụkụ aka ịkpa nke"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "belata oghere dị mkpụmkpụ si n'akụkụ aka nrị nke"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Weghachite otu ederede ya na oghere ọzọ wepụrụ site n'otu ma ọ bụ akụkụ mechị abụọ."; -Blockly.Msg["TODAY"] = "Taa"; -Blockly.Msg["UNDO"] = "Me la àzụ"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ihe"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Mepụta 'dozie %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Weghachite akara nke agbanwe a."; -Blockly.Msg["VARIABLES_SET"] = "dozie %1 ga na %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Mepụta 'nweta uru %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Debe mgbanwe a ka ọ ghata ihe ntinye."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Agbanwe akpọrọ '%1' dị adị."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Agbanwe akpọrọ '%1' dị adị na ụdị ozo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Kwuo ihe ọ bụla..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/is.js b/lib/blockly/msg/js/is.js deleted file mode 100644 index 03ffc53..0000000 --- a/lib/blockly/msg/js/is.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Skrifa skýringu"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Breyta gildi:"; -Blockly.Msg["CLEAN_UP"] = "Hreinsa kubba"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Loka kubbum"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Loka kubbi"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "litur 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "litur 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "hlutfall"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "blöndun"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blandar tveimur litum í gefnu hlutfalli (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Velja lit úr litakorti."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "einhver litur"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Velja einhvern lit af handahófi."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blátt"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "grænt"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "rauður"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "litur"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Búa til lit úr tilteknu magni af rauðu, grænu og bláu. Allar tölurnar verða að vera á bilinu 0 til 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "fara út úr lykkju"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "fara beint í næstu umferð lykkjunnar"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Fara út úr umlykjandi lykkju."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Sleppa afganginum af lykkjunni og fara beint í næstu umferð hennar."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Aðvörun: Þennan kubb má aðeins nota innan lykkju."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "fyrir hvert %1 í lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Fyrir hvert atriði í lista er breyta '%1' stillt á atriðið og skipanir gerðar."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "telja með %1 frá %2 til %3 um %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Láta breytuna '%1' taka inn gildi frá fyrstu tölu til síðustu tölu, hlaupandi á tiltekna bilinu og gera tilteknu kubbana."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Bæta skilyrði við EF kubbinn."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Bæta við hluta EF kubbs sem grípur öll tilfelli sem uppfylla ekki hin skilyrðin."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Bæta við, fjarlægja eða umraða til að breyta skipan þessa EF kubbs."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "annars"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "annars ef"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ef"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ef gildi er satt skal gera einhverjar skipanir."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ef gildi er satt skal gera skipanir í fyrri kubbnum. Annars skal gera skipanir í seinni kubbnum."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ef fyrra gildið er satt skal gera skipanir í fyrri kubbnum. Annars, ef seinna gildið er satt, þá skal gera skipanir í seinni kubbnum."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ef fyrra gildið er satt skal gera skipanir í fyrri kubbnum. Annars, ef seinna gildið er satt, skal gera skipanir í seinni kubbnum. Ef hvorugt gildið er satt, skal gera skipanir í síðasta kubbnum."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "gera"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "endurtaka %1 sinnum"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Gera eitthvað aftur og aftur."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "endurtaka þar til"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "endurtaka á meðan"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Endurtaka eitthvað á meðan gildi er ósatt."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Endurtaka eitthvað á meðan gildi er satt."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Eyða öllum %1 kubbunum?"; -Blockly.Msg["DELETE_BLOCK"] = "Eyða kubbi"; -Blockly.Msg["DELETE_VARIABLE"] = "Eyða '%1' breytunni"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Eyða %1 kubbum"; -Blockly.Msg["DISABLE_BLOCK"] = "Óvirkja kubb"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Afrita"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Tvítaka athugasemd"; -Blockly.Msg["ENABLE_BLOCK"] = "Virkja kubb"; -Blockly.Msg["EXPAND_ALL"] = "Opna kubba"; -Blockly.Msg["EXPAND_BLOCK"] = "Opna kubb"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Ytri inntök"; -Blockly.Msg["HELP"] = "Hjálp"; -Blockly.Msg["INLINE_INPUTS"] = "Innri inntök"; -Blockly.Msg["IOS_CANCEL"] = "Hætta við"; -Blockly.Msg["IOS_ERROR"] = "Villa"; -Blockly.Msg["IOS_OK"] = "Í lagi"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Bæta við"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Bæta við breytu"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Eyða"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Endurnefna"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nafn breytu"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "búa til tóman lista"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Skilar lista með lengdina 0 án gagna"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "listi"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Bæta við, fjarlægja eða umraða hlutum til að breyta skipan þessa listakubbs."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "búa til lista með"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Bæta atriði við listann."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Búa til lista með einhverjum fjölda atriða."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "fyrsta"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# frá enda"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "sækja"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "sækja og fjarlægja"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "síðasta"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "eitthvert"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "fjarlægja"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Skilar fyrsta atriði í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Skilar atriðinu í hinum tiltekna stað í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Skilar síðasta atriði í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Skilar einhverju atriði úr lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Fjarlægir og skilar fyrsta atriðinu í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Fjarlægir og skilar atriðinu á hinum tiltekna stað í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Fjarlægir og skilar síðasta atriðinu í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Fjarlægir og skilar einhverju atriði úr lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Fjarlægir fyrsta atriðið í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Fjarlægir atriðið á hinum tiltekna stað í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Fjarlægir síðasta atriðið í lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Fjarlægir eitthvert atriði úr lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "til # frá enda"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "til #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "til síðasta"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "sækja undirlista frá fyrsta"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "sækja undirlista frá # frá enda"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "sækja undirlista frá #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Býr til afrit af tilteknum hluta lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 er síðasta atriðið."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 er fyrsta atriðið."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "finna fyrsta tilfelli atriðis"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "finna síðasta tilfelli atriðis"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Finnur hvar atriðið kemur fyrir fyrst/síðast í listanum og skilar sæti þess. Skilar %1 ef atriðið finnst ekki."; -Blockly.Msg["LISTS_INLIST"] = "í lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 er tómur"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Skilar sönnu ef listinn er tómur."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; -Blockly.Msg["LISTS_LENGTH_TITLE"] = "lengd %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Skilar lengd lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "búa til lista með atriði %1 endurtekið %2 sinnum"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Býr til lista sem inniheldur tiltekna gildið endurtekið tiltekið oft."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "snúa við %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Snúa við afriti lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "sem"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "bæta við"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "setja í"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Bætir atriðinu fremst í listann."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Bætir atriðinu í listann á tilteknum stað."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Bætir atriðinu aftan við listann."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Bætir atriðinu einhversstaðar við listann."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Setur atriðið í fyrsta sæti lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Setur atriðið í tiltekna sætið í listanum."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Setur atriðið í síðasta sæti lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Setur atriðið í eitthvert sæti lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "hækkandi"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "lækkandi"; -Blockly.Msg["LISTS_SORT_TITLE"] = "raða %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Raða afriti lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "í stafrófsröð án tillits til stafstöðu"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "í númeraröð"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "í stafrófsröð"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "gera lista úr texta"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "gera texta úr lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Sameinar lista af textum í einn texta, með skiltákn á milli."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Skiptir texta í lista af textum, með skil við hvert skiltákn."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "með skiltákni"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ósatt"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Skilar annað hvort sönnu eða ósönnu."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "satt"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Skila sönnu ef inntökin eru jöfn."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Skila sönnu ef fyrra inntakið er stærra en seinna inntakið."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Skila sönnu ef fyrra inntakið er stærra en eða jafnt og seinna inntakið."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Skila sönnu ef fyrra inntakið er minna en seinna inntakið."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Skila sönnu ef fyrra inntakið er minna en eða jafnt og seinna inntakið."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Skila sönnu ef inntökin eru ekki jöfn."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ekki %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Skilar sönnu ef inntakið er ósatt. Skilar ósönnu ef inntakið er satt."; -Blockly.Msg["LOGIC_NULL"] = "tómagildi"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Skilar tómagildi."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "og"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; -Blockly.Msg["LOGIC_OPERATION_OR"] = "eða"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Skila sönnu ef bæði inntökin eru sönn."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Skila sönnu ef að minnsta kosti eitt inntak er satt."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "prófun"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ef ósatt"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ef satt"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kanna skilyrðið í 'prófun'. Skilar 'ef satt' gildinu ef skilyrðið er satt, en skilar annars 'ef ósatt' gildinu."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Skila summu talnanna tveggja."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Skila deilingu talnanna."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Skila mismun talnanna."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Skila margfeldi talnanna."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Skila fyrri tölunni í veldinu seinni talan."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "breyta %1 um %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Bæta tölu við breytu '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Skila algengum fasta: π (3.141…), e (2.718…), φ (1.618…), kvrót(2) (1.414…), kvrót(½) (0.707…) eða ∞ (óendanleika)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "þröngva %1 lægst %2 hæst %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Þröngva tölu til að vera innan hinna tilgreindu marka (að báðum meðtöldum)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "er\u00A0deilanleg með"; -Blockly.Msg["MATH_IS_EVEN"] = "er\u00A0jöfn tala"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "er neikvæð"; -Blockly.Msg["MATH_IS_ODD"] = "er oddatala"; -Blockly.Msg["MATH_IS_POSITIVE"] = "er jákvæð"; -Blockly.Msg["MATH_IS_PRIME"] = "er prímtala"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kanna hvort tala sé jöfn tala, oddatala, jákvæð, neikvæð eða deilanleg með tiltekinni tölu. Skilar sönnu eða ósönnu."; -Blockly.Msg["MATH_IS_WHOLE"] = "er heiltala"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "afgangur af %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Skila afgangi deilingar með tölunum."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Tala."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "meðaltal lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "stærst í lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "miðgildi lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minnst í lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "tíðast í lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "eitthvað úr lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "staðalfrávik lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summa lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Skila meðaltali talna í listanum."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Skila stærstu tölu í listanum."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Skila miðgildi listans."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Skila minnstu tölu í listanum."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Skila lista yfir tíðustu gildin í listanum."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Skila einhverju atriði úr listanum."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Skila staðalfráviki lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Skila summu allra talna í listanum."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "slembibrot"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Skila broti sem er valið af handahófi úr tölum á bilinu frá og með 0.0 til (en ekki með) 1.0."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "slembitala frá %1 til %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Skila heiltölu sem valin er af handahófi og er innan tilgreindra marka, að báðum meðtöldum."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "námunda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "námunda niður"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "námunda upp"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Námunda tölu upp eða niður."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "algildi"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvaðratrót"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Skila algildi tölu."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Skila e í veldi tölu."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Skila náttúrlegum lógaritma tölu."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Skila tugalógaritma tölu."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Skila neitun tölu (tölunni með öfugu formerki)."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Skila 10 í veldi tölu."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Skila kvaðratrót tölu."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Skila arkarkósínusi tölu."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Skila arkarsínusi tölu."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Skila arkartangensi tölu."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Skila kósínusi horns gefnu í gráðum."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Skila sínusi horns gefnu í gráðum."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Skila tangensi horns gefnu í gráðum."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Búa til breytu..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Heiti nýrrar breytu:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "leyfa setningar"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "með:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Keyra heimatilbúna fallið '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Keyra heimatilbúna fallið '%1' og nota úttak þess."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "með:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Búa til '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Lýstu þessari aðgerð/falli..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "gera eitthvað"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "til að"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Býr til fall sem skilar engu."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "skila"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Býr til fall sem skilar úttaki."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Aðvörun: Þetta fall er með tvítekna stika."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Sýna skilgreiningu falls"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ef gildi er satt, skal skila öðru gildi."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Aðvörun: Þennan kubb má aðeins nota í skilgreiningu falls."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "heiti inntaks:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Bæta inntaki við fallið."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inntök"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Bæta við, fjarlægja eða umraða inntökum fyrir þetta fall."; -Blockly.Msg["REDO"] = "Endurtaka"; -Blockly.Msg["REMOVE_COMMENT"] = "Fjarlægja skýringu"; -Blockly.Msg["RENAME_VARIABLE"] = "Endurnefna breytu..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Endurnefna allar '%1' breyturnar:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_APPEND_TITLE"] = "við %1 bæta texta %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Bæta texta við breytuna '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "í lágstafi"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "í Upphafstafi"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "í HÁSTAFI"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Skila afriti af textanum með annarri stafastöðu."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "sækja fyrsta staf"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "sækja staf # frá enda"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "sækja staf #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "sækja síðasta staf"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "sækja einhvern staf"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "í texta %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Skila staf á tilteknum stað."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "fjöldi %1 í %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Bæta atriði við textann."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "tengja"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Bæta við, fjarlægja eða umraða hlutum til að breyta skipan þessa textakubbs."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "að staf # frá enda"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "að staf #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "að síðasta staf"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "í texta"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "sækja textabút frá fyrsta staf"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "sækja textabút frá staf # frá enda"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "sækja textabút frá staf #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Skilar tilteknum hluta textans."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "finna fyrsta tilfelli texta"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "finna síðasta tilfelli texta"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "í texta %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Finnur fyrsta/síðasta tilfelli fyrri textans í seinni textanum og skilar sæti hans. Skilar %1 ef textinn finnst ekki."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 er tómur"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Skilar sönnu ef gefni textinn er tómur."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "búa til texta með"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Búa til texta með því að tengja saman einhvern fjölda atriða."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_LENGTH_TITLE"] = "lengd %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Skilar fjölda stafa (með bilum) í gefna textanum."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; -Blockly.Msg["TEXT_PRINT_TITLE"] = "prenta %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Prenta tiltekinn texta, tölu eða annað gildi."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Biðja notandann um tölu."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Biðja notandann um texta."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "biðja um tölu með skilaboðum"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "biðja um texta með skilaboðum"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "skipta %1 út með %2 í %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "snúa við %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Snýr við röð stafanna í textanum."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Stafur, orð eða textalína."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "eyða bilum báðum megin við"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "eyða bilum vinstra megin við"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "eyða bilum hægra megin við"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Skila afriti af textanum þar sem möguleg bil við báða enda hafa verið fjarlægð."; -Blockly.Msg["TODAY"] = "Í dag"; -Blockly.Msg["UNDO"] = "Afturkalla"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "atriði"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Búa til 'stilla %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Skilar gildi þessarar breytu."; -Blockly.Msg["VARIABLES_SET"] = "stilla %1 á %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Búa til 'sækja %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Stillir þessa breytu á innihald inntaksins."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Breyta með heitinu '%1' er þegar til staðar."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Segðu eitthvað..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/it.js b/lib/blockly/msg/js/it.js deleted file mode 100644 index 6b7dd1c..0000000 --- a/lib/blockly/msg/js/it.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Aggiungi commento"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Non si può cancellare la variabile '%1' perché è parte della definizione della funzione '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Modifica valore:"; -Blockly.Msg["CLEAN_UP"] = "Pulisci i blocchi"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "I blocchi compressi contengono avvertimenti."; -Blockly.Msg["COLLAPSE_ALL"] = "Comprimi blocchi"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Comprimi blocco"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "colore 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "colore 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "rapporto"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "miscela"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mescola due colori insieme con un determinato rapporto (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://it.wikipedia.org/wiki/Colore"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Scegli un colore dalla tavolozza."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "colore casuale"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Scegli un colore a caso."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blu"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "rosso"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colora con"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Crea un colore con la quantità specificata di rosso, verde e blu. Tutti i valori devono essere compresi tra 0 e 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "esce dal ciclo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "prosegui con la successiva iterazione del ciclo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Esce dal ciclo."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Salta il resto di questo ciclo e prosegue con la successiva iterazione."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Attenzioneː Questo blocco può essere usato solo in un ciclo."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "per ogni elemento %1 nella lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Per ogni elemento in una lista, imposta la variabile '%1' pari all'elemento e quindi esegue alcune istruzioni."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "conta con %1 da %2 a %3 per %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Fa sì che la variabile '%1' prenda tutti i valori a partire dal numero di partenza fino a quello di arrivo, con passo pari all'intervallo specificato, ed esegue il blocco indicato."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Aggiungi una condizione al blocco se."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Aggiungi una condizione finale pigliatutto al blocco se."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Aggiungi, elimina o riordina le sezioni per riconfigurare questo blocco se."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "altrimenti"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "altrimenti se"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "se"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Se un valore è vero allora esegue alcune istruzioni."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Se un valore è vero allora esegue il primo blocco di istruzioni. Altrimenti esegue il secondo blocco di istruzioni."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Se il primo valore è vero allora esegue un primo blocco di istruzioni. Altrimenti, se il secondo valore è vero, esegue un secondo blocco di istruzioni."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Se il primo valore è vero allora esegue un primo blocco di istruzioni. Altrimenti, se il secondo valore è vero, esegue un secondo blocco di istruzioni. Se nessuno dei valori è vero esegue l'ultimo blocco di istruzioni."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://it.wikipedia.org/wiki/Ciclo_for"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "fai"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ripeti %1 volte"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Esegue alcune istruzione diverse volte."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ripeti fino a che"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ripeti mentre"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Finché un valore è falso, esegue alcune istruzioni."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Finché un valore è vero, esegue alcune istruzioni."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Cancellare tutti i %1 blocchi?"; -Blockly.Msg["DELETE_BLOCK"] = "Cancella blocco"; -Blockly.Msg["DELETE_VARIABLE"] = "Cancella la variabile '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Cancella %1 usi della variabile '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Cancella %1 blocchi"; -Blockly.Msg["DISABLE_BLOCK"] = "Disattiva blocco"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplica"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplica commento"; -Blockly.Msg["ENABLE_BLOCK"] = "Attiva blocco"; -Blockly.Msg["EXPAND_ALL"] = "Espandi blocchi"; -Blockly.Msg["EXPAND_BLOCK"] = "Espandi blocco"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Ingressi esterni"; -Blockly.Msg["HELP"] = "Aiuto"; -Blockly.Msg["INLINE_INPUTS"] = "Ingressi in linea"; -Blockly.Msg["IOS_CANCEL"] = "Annulla"; -Blockly.Msg["IOS_ERROR"] = "Errore"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Aggiungi input"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Consenti dichiarazioni"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Questa funzione ha entrate duplicate."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Aggiungi"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Aggiungi variabile"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Cancella"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Non puoi utilizzare un nome di variabile vuoto."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rinomina"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nome variabile"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "crea lista vuota"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Restituisce una lista, di lunghezza 0, contenente nessun record di dati"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Aggiungi, rimuovi o riordina le sezioni per riconfigurare il blocco lista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "crea lista con"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Aggiunge un elemento alla lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Crea una lista con un certo numero di elementi."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primo"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# dalla fine"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "prendi"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "prendi e rimuovi"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ultimo"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "casuale"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "rimuovi"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Restituisce il primo elemento in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Restituisce l'elemento nella posizione indicata della lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Restituisce l'ultimo elemento in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Restituisce un elemento casuale in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Rimuove e restituisce il primo elemento in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Rimuove e restituisce l'elemento nella posizione indicata in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Restituisce e rimuove l'ultimo elemento in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Restituisce e rimuove un elemento casuale in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Rimuove il primo elemento in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Rimuove l'elemento nella posizione indicata in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Rimuove l'ultimo elemento in una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Rimuove un elemento casuale in una lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "da # dalla fine"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "fino a #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "dagli ultimi"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "prendi sotto-lista dall'inizio"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "prendi sotto-lista da # dalla fine"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "prendi sotto-lista da #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Crea una copia della porzione specificata di una lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 corrisponde all'ultimo elemento."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 corrisponde al primo elemento."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "trova la prima occorrenza dell'elemento"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "trova l'ultima occorrenza dell'elemento"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Restituisce l'indice della prima/ultima occorrenza dell'elemento nella lista. Restituisce %1 se l'elemento non viene trovato."; -Blockly.Msg["LISTS_INLIST"] = "nella lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 è vuota"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Restituisce vero se la lista è vuota."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "lunghezza di %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Restituisce la lunghezza della lista"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "crea una lista con l'elemento %1 ripetuto %2 volte"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Crea una lista costituita dal valore indicato ripetuto per il numero di volte specificato."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inverti %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inverti una copia di un elenco."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "come"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserisci in"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "imposta"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserisci l'elemento all'inizio della lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserisci un elemento nella posizione indicata in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Aggiungi un elemento alla fine di una lista"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserisce l'elemento casualmente in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Imposta il primo elemento in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Imposta l'elemento nella posizione indicata di una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Imposta l'ultimo elemento in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Imposta un elemento casuale in una lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "crescente"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "decrescente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ordinamento %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordina una copia di un elenco."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetico, ignorare differenze maiuscole e minuscole"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numerico"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetico"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "crea lista da testo"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "crea testo da lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Unisci una lista di testi in un unico testo, separato da un delimitatore."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Dividi il testo in un elenco di testi, interrompendo ad ogni delimitatore."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "con delimitatore"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falso"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Restituisce vero o falso."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "vero"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://it.wikipedia.org/wiki/Disuguaglianza"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Restituisce vero se gli input sono uno uguale all'altro."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Restituisce vero se il primo input è maggiore o uguale al secondo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Restituisce uguale se il primo input è maggiore o uguale al secondo input."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Restituisce vero se il primo input è minore del secondo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Restituisce vero se il primo input è minore o uguale al secondo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Restituisce vero se gli input non sono uno uguale all'altro."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "non %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Restituisce vero se l'input è falso. Restituisce falso se l'input è vero."; -Blockly.Msg["LOGIC_NULL"] = "nullo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Restituisce valore nullo."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Restituisce vero se entrambi gli input sono veri."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Restituisce vero se almeno uno degli input è vero."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se falso"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se vero"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Verifica la condizione in 'test'. Se questa è vera restituisce il valore 'se vero' altrimenti restituisce il valore 'se falso'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://it.wikipedia.org/wiki/Aritmetica"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Restituisce la somma dei due numeri."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Restituisce il quoziente dei due numeri."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Restituisce la differenza dei due numeri."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Restituisce il prodotto dei due numeri."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Restituisce il primo numero elevato alla potenza del secondo numero."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://it.wikipedia.org/wiki/Arcotangente2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 di X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Restituisce l'arcotangente del punto (X, Y) in gradi da -180 a 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://it.wikipedia.org/wiki/Addizione"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "cambia %1 di %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Aggiunge un numero alla variabile '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://it.wikipedia.org/wiki/Costante_matematica"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Restituisce una delle costanti comuniː π (3.141…), e (2.718…), φ (1.618…), radq(2) (1.414…), radq(½) (0.707…) o ∞ (infinito)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "costringi %1 da %2 a %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Costringe un numero all'interno dei limiti indicati (compresi)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "è divisibile per"; -Blockly.Msg["MATH_IS_EVEN"] = "è pari"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "è negativo"; -Blockly.Msg["MATH_IS_ODD"] = "è dispari"; -Blockly.Msg["MATH_IS_POSITIVE"] = "è positivo"; -Blockly.Msg["MATH_IS_PRIME"] = "è primo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Verifica se un numero è pari, dispari, primo, intero, positivo, negativo o se è divisibile per un certo numero. Restituisce vero o falso."; -Blockly.Msg["MATH_IS_WHOLE"] = "è intero"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://it.wikipedia.org/wiki/Resto"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resto di %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Restituisce il resto della divisione di due numeri."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://it.wikipedia.org/wiki/Numero"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un numero."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "media della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "massimo della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimo della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "mode della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "elemento casuale della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "deviazione standard della lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "somma la lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Restituisce la media (media aritmetica) dei valori numerici nella lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Restituisce il più grande numero della lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Restituisce il valore mediano della lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Restituisce il più piccolo numero della lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Restituisce una lista degli elementi più frequenti nella lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Restituisce un elemento casuale della lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Restituisce la deviazione standard della lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Restituisce la somma si tutti i numeri nella lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://it.wikipedia.org/wiki/Numeri_pseudo-casuali"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "frazione casuale"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Restituisce una frazione compresa fra 0.0 (incluso) e 1.0 (escluso)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://it.wikipedia.org/wiki/Numeri_pseudo-casuali"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "intero casuale da %1 a %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Restituisce un numero intero casuale compreso tra i due limiti indicati (inclusi)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://it.wikipedia.org/wiki/Arrotondamento"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arrotonda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arrotonda verso il basso"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arrotonda verso l'alto"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arrotonda un numero verso l'alto o verso il basso."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://it.wikipedia.org/wiki/Radice_quadrata"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "assoluto"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "radice quadrata"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Restituisce il valore assoluto del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Restituisce e elevato alla potenza del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Restituisce il logaritmo naturale del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Restituisce il logaritmo in base 10 del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Restituisce l'opposto del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Restituisce 10 elevato alla potenza del numero."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Restituisce la radice quadrata del numero."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://it.wikipedia.org/wiki/Funzione_trigonometrica"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Restituisce l'arco-coseno di un numero."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Restituisce l'arco-seno di un numero."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Restituisce l'arco-tangente di un numero."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Restituisce il coseno di un angolo espresso in gradi (non radianti)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Restituisce il seno di un angolo espresso in gradi (non radianti)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Restituisce la tangente di un angolo espresso in gradi (non radianti)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crea variabile colore..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crea variabile numero..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Crea variabile stringa..."; -Blockly.Msg["NEW_VARIABLE"] = "Crea variabile..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nome della nuova variabile:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tipo della nuova variabile:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "consenti dichiarazioni"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "conː"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://it.wikipedia.org/wiki/Funzione (informatica)"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Esegue la funzione definita dall'utente '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://it.wikipedia.org/wiki/Funzione (informatica)"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Esegue la funzione definita dall'utente '%1' ed usa il suo output."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "conː"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Crea '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Descrivi questa funzione..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fai qualcosa"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "per"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Crea una funzione senza output."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "ritorna"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Crea una funzione con un output."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Attenzioneː Questa funzione ha parametri duplicati."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Evidenzia definizione di funzione"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Se un valore è vero allora restituisce un secondo valore."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Attenzioneː Questo blocco può essere usato solo all'interno di una definizione di funzione."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nome inputː"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Aggiungi un input alla funzione."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "input"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Aggiungi, rimuovi o riordina input alla funzione."; -Blockly.Msg["REDO"] = "Ripeti"; -Blockly.Msg["REMOVE_COMMENT"] = "Rimuovi commento"; -Blockly.Msg["RENAME_VARIABLE"] = "Rinomina variabile..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rinomina tutte le variabili '%1' in:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 aggiungi il testo %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Aggiunge del testo alla variabile '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "in minuscolo"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "con Iniziali Maiuscole"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "in MAIUSCOLO"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Restituisce una copia del testo in un diverso formato maiuscole/minuscole."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "prendi la prima lettera"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "prendi la lettera # dalla fine"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "prendi la lettera #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "prendi l'ultima lettera"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "prendi lettera casuale"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "nel testo %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Restituisce la lettera nella posizione indicata."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "conta %1 in %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Contare quante volte una parte di testo si ripete all'interno di qualche altro testo."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Aggiungi un elemento al testo."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unisci"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Aggiungi, rimuovi o riordina le sezioni per riconfigurare questo blocco testo."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "alla lettera # dalla fine"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "alla lettera #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "all'ultima lettera"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "nel testo"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "prendi sotto-stringa dalla prima lettera"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "prendi sotto-stringa dalla lettera # dalla fine"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "prendi sotto-stringa dalla lettera #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Restituisce la porzione di testo indicata."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "trova la prima occorrenza del testo"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "trova l'ultima occorrenza del testo"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "nel testo %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Restituisce l'indice della prima occorrenza del primo testo all'interno del secondo testo. Restituisce %1 se il testo non viene trovato."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 è vuoto"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Restituisce vero se il testo fornito è vuoto."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "crea testo con"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Crea un blocco di testo unendo un certo numero di elementi."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "lunghezza di %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Restituisce il numero di lettere (inclusi gli spazi) nel testo fornito."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "scrivi %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Scrive il testo, numero o altro valore indicato."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Richiedi un numero all'utente."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Richiede del testo da parte dell'utente."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "richiedi numero con messaggio"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "richiedi testo con messaggio"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "sostituisci %1 con %2 in %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "sostituisci tutte le occorrenze di un certo testo con qualche altro testo."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inverti %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inverte l'ordine dei caratteri nel testo."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://it.wikipedia.org/wiki/Stringa_(informatica)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Una lettera, una parola o una linea di testo."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "rimuovi spazi da entrambi gli estremi"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "rimuovi spazi a sinistra"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "rimuovi spazi a destra"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Restituisce una copia del testo con gli spazi rimossi ad uno o entrambe le estremità."; -Blockly.Msg["TODAY"] = "Oggi"; -Blockly.Msg["UNDO"] = "Annulla"; -Blockly.Msg["UNNAMED_KEY"] = "senza nome"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elemento"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crea 'imposta %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Restituisce il valore di una variabile."; -Blockly.Msg["VARIABLES_SET"] = "imposta %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crea 'prendi %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Imposta questa variabile ad essere pari all'input."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Una variabile denominata '%1' esiste già."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Una variabile nominata '%1' esiste già per un'altro tipo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Scrivi qualcosa..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ja.js b/lib/blockly/msg/js/ja.js deleted file mode 100644 index 3ecf8df..0000000 --- a/lib/blockly/msg/js/ja.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "コメントを追加"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "変数 '%1' は関数 '%2' の定義の一部であるため、削除できません"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "値を変える:"; -Blockly.Msg["CLEAN_UP"] = "ブロックを整理する"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ブロックを折りたたむ"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ブロックを折りたたむ"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "色 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "色 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "比率"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ブレンド"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "2色を与えられた比率(0.0~1.0)で混ぜます。"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ja.wikipedia.org/wiki/色"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "パレットから色を選んでください。"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ランダムな色"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ランダムな色を選ぶ。"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "青"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "緑"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "赤"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "色:"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "赤、緑、および青の指定された量で色を作成します。すべての値は 0 ~ 100 の間でなければなりません。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ループから抜け出す"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ループの次の反復処理を続行します"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "入っているループから抜け出します。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "このループの残りの部分をスキップして、ループの繰り返しを続けます。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "注意: このブロックは、ループ内でのみ使用できます。"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "リスト%2の各項目%1について"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "リストの各項目について、その項目を変数'%1'として、いくつかのステートメントを実行します。"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "%1 を %2 から %3 まで %4 ずつカウントする"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "変数 '%1' が開始番号から終了番号まで指定した間隔での値をとって、指定したブロックを実行する。"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "「もしも」のブロックに条件を追加します。"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Ifブロックに、すべてをキャッチする条件を追加。"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "追加、削除、またはセクションを順序変更して、ブロックをこれを再構成します。"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "そうでなければ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "そうでなくもし"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "もし"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "値が true の場合、ステートメントを実行します。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、ステートメントの 2 番目のブロックを行います。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "最初の値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、2 番目の値が true の場合、ステートメントの 2 番目のブロックをします。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "最初の値が true 場合は、ステートメントの最初のブロックを行います。2 番目の値が true の場合は、ステートメントの 2 番目のブロックを行います。それ以外の場合は最後のブロックのステートメントを行います。"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ja.wikipedia.org/wiki/for文"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "実行"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 回繰り返す"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "いくつかのステートメントを数回実行します。"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "繰り返す:終わる条件"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "繰り返す:続ける条件"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "値がfalseの間、いくつかのステートメントを実行する。"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "値がtrueの間、いくつかのステートメントを実行する。"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "%1件のすべてのブロックを削除しますか?"; -Blockly.Msg["DELETE_BLOCK"] = "ブロックを削除"; -Blockly.Msg["DELETE_VARIABLE"] = "変数 '%1' を削除"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "%1か所で使われている変数 '%2' を削除しますか?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 個のブロックを削除"; -Blockly.Msg["DISABLE_BLOCK"] = "ブロックを無効にする"; -Blockly.Msg["DUPLICATE_BLOCK"] = "複製"; -Blockly.Msg["DUPLICATE_COMMENT"] = "コメントを複製"; -Blockly.Msg["ENABLE_BLOCK"] = "ブロックを有効にする"; -Blockly.Msg["EXPAND_ALL"] = "ブロックを展開する"; -Blockly.Msg["EXPAND_BLOCK"] = "ブロックを展開する"; -Blockly.Msg["EXTERNAL_INPUTS"] = "外部入力"; -Blockly.Msg["HELP"] = "ヘルプ"; -Blockly.Msg["INLINE_INPUTS"] = "インライン入力"; -Blockly.Msg["IOS_CANCEL"] = "キャンセル"; -Blockly.Msg["IOS_ERROR"] = "エラー"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ 入力を追加"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "ステートメントを許可"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "この関数には重複する入力があります。"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "入力"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "追加"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ 変数を追加"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "削除"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "空の変数名は使用できません。"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "名前を変更"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "変数名"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "空のリストを作成"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "長さ0でデータ・レコードを含まない空のリストを返す"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "リスト"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "追加、削除、またはセクションの順序変更をして、このリスト・ブロックを再構成する。"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "以下を使ってリストを作成:"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "リストに項目を追加。"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "項目数が不定のリストを作成。"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "最初"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "位置:後ろから"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "取得"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "取得して削除"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "最後"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "ランダム"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "削除"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "リストの最初の項目を返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "リスト内の指定位置にある項目を返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "リストの最後の項目を返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "ランダム アイテム リストを返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "リスト内の最初の項目を削除し返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "リスト内の指定位置にある項目を削除し、返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "リスト内の最後の項目を削除したあと返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "リストのランダムなアイテムを削除し返します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "リスト内の最初の項目を削除します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "リスト内の指定された項目を削除します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "リスト内の最後の項目を削除します。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "リスト内にあるアイテムをランダムに削除します。"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "終了位置:後ろから"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "終了位置:"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "最後まで"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "最初からサブリストを取得する。"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "端から #のサブリストを取得します。"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "# からサブディレクトリのリストを取得します。"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "リストの指定された部分のコピーを作成してくださ。"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 は、最後の項目です。"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 は、最初の項目です。"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "で以下のアイテムの最初の出現箇所を検索:"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "で以下のテキストの最後の出現箇所を検索:"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "リスト項目の最初/最後に出現するインデックス位置を返します。項目が見つからない場合は %1 を返します。"; -Blockly.Msg["LISTS_INLIST"] = "リスト"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1が空"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "リストが空の場合は、true を返します。"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1の長さ"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "リストの長さを返します。"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "項目%1を%2回繰り返したリストを作成"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "与えられた値を指定された回数繰り返してリストを作成。"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1を逆順に"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "リストのコピーを逆順にする。"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "値:"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "挿入位置:"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "セット"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "リストの先頭に項目を挿入します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "リスト内の指定位置に項目を挿入します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "リストの末尾に項目を追加します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "リストに項目をランダムに挿入します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "リスト内に最初の項目を設定します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "リスト内の指定された位置に項目を設定します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "リスト内の最後の項目を設定します。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "リスト内にランダムなアイテムを設定します。"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "昇順"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "降順"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 ( %2 ) に %3 を並び替える"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "リストのコピーを並べ替え"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "アルファベット順(大文字・小文字の区別無し)"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "数値順"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "アルファベット順"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "テキストからリストを作る"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "リストからテキストを作る"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "テキストのリストを区切り記号で区切られた一つのテキストにする"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "テキストを区切り記号で分割したリストにする"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "区切り記号"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "false"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "true または false を返します。"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "true"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://ja.wikipedia.org/wiki/不等式"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "両方の入力が互いに等しい場合に true を返します。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "最初の入力が 2 番目の入力よりも大きい場合は true を返します。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "最初の入力が 2 番目の入力以上の場合に true を返します。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "最初の入力が 2 番目の入力よりも小さい場合は true を返します。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "最初の入力が 2 番目の入力以下の場合に true を返します。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "両方の入力が互いに等しくない場合に true を返します。"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://ja.wikipedia.org/wiki/否定"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1ではない"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "入力が false の場合は、true を返します。入力が true の場合は false を返します。"; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "null を返します。"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "かつ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "または"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "両方の入力が true のときに true を返します。"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "少なくとも 1 つの入力が true のときに true を返します。"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "テスト"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://ja.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "false の場合"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "true の場合"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'テスト' の条件をチェックします。条件が true の場合、'true' の値を返します。それ以外の場合 'false' のを返します。"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ja.wikipedia.org/wiki/算術"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "2 つの数の合計を返します。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "2 つの数の商を返します。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "2 つの数の差を返します。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "2 つの数の積を返します。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "最初の数を2 番目の値で累乗した結果を返します。"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://ja.wikipedia.org/wiki/加法"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1 を %2 増やす"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "変数'%1'に数をたす。"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ja.wikipedia.org/wiki/数学定数"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "いずれかの共通の定数のを返す: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (無限)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1 を %2 以上 %3 以下の範囲に制限"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "指定した上限と下限の間に値を制限する(上限と下限の値を含む)。"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "は以下で割りきれる:"; -Blockly.Msg["MATH_IS_EVEN"] = "は偶数"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "は負"; -Blockly.Msg["MATH_IS_ODD"] = "は奇数"; -Blockly.Msg["MATH_IS_POSITIVE"] = "は正"; -Blockly.Msg["MATH_IS_PRIME"] = "は素数"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "数字が、偶数、奇数、素数、整数、正数、負数、または特定の数で割り切れるかどうかを判定し、true か false を返します。"; -Blockly.Msg["MATH_IS_WHOLE"] = "は整数"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1÷%2の余り"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "2つの数値の割り算の余りを返す。"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ja.wikipedia.org/wiki/数"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "数です。"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "リストの平均"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "リストの最大値"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "リストの中央値"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "リストの最小値"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "リストの最頻値"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "リストからランダムに選ばれた項目"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "リストの標準偏差"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "リストの合計"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "リストの数値の平均 (算術平均) を返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "リストの最大値を返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "リストの中央値を返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "リストの最小値を返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "リスト中の最頻項目のリストを返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "リストからランダムに選ばれた要素を返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "リストの標準偏差を返す。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "リストの数値を足して返す。"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "1未満の正の乱数"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "0.0以上で1.0未満の範囲の乱数を返します。"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "%1から%2までのランダムな整数"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "指定された(上下限を含む)範囲のランダムな整数を返します。"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ja.wikipedia.org/wiki/端数処理"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "四捨五入"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "切り捨て"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "切り上げ"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "数値を切り上げるか切り捨てる"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ja.wikipedia.org/wiki/平方根"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "絶対値"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "平方根"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "絶対値を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "ネイピア数eの数値乗を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "数値の自然対数を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "底が10の対数を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "負の数を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "10の数値乗を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "平方根を返す。"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ja.wikipedia.org/wiki/三角関数"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "アークコサイン(arccosin)を返す。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "アークサイン(arcsin)を返す。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "アークタンジェント(arctan)を返す。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "(ラジアンではなく)度数の余弦(cosin)を返す。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "(ラジアンではなく)度数の正弦(sin)を返す。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "(ラジアンではなく)度数の正接(tan)を返す。"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "色の変数を作る..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "数の変数を作る..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "文字列の変数を作る..."; -Blockly.Msg["NEW_VARIABLE"] = "変数の作成…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "新しい変数の名前:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "新しい変数の型:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "ステートメントを許可"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "引数:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ja.wikipedia.org/wiki/サブルーチン"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "ユーザー定義関数 '%1' を実行します。"; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ja.wikipedia.org/wiki/サブルーチン"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "ユーザー定義関数 '%1' を実行し、その出力を使用します。"; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "引数:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' を作成"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "この関数の説明…"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://ja.wikipedia.org/wiki/サブルーチン"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "何かする"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "関数"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "出力なしの関数を作成します。"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://ja.wikipedia.org/wiki/サブルーチン"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "返す"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "一つの出力を持つ関数を作成します。"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "警告: この関数には重複するパラメーターがあります。"; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "関数の内容を強調表示します。"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "1番目の値が true の場合、2番目の値を返します。"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "警告: このブロックは、関数定義内でのみ使用できます。"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "入力名:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "関数への入力の追加。"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "入力"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "この関数への入力の追加、削除、順番変更。"; -Blockly.Msg["REDO"] = "やり直す"; -Blockly.Msg["REMOVE_COMMENT"] = "コメントを削除"; -Blockly.Msg["RENAME_VARIABLE"] = "変数の名前を変える…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "選択した%1の変数すべての名前を変える:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "項目 %1 へテキストを追加 %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "変数 '%1' にテキストを追加。"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "小文字に"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "タイトル ケースに"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "大文字に"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "別のケースに、テキストのコピーを返します。"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "最初の文字を得る"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "の、後ろから以下の数字番目の文字:"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "の、以下の数字番目の文字:"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "最後の文字を得る"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "ランダムな文字を得る"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "テキスト %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "指定された位置に文字を返します。"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%2に含まれる%1の数を数える"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "とある文が別の文のなかに使われた回数を数える。"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "テキストへ項目を追加。"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "結合"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "セクションを追加、削除、または順序変更して、ブロックを再構成。"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "終了位置:後ろから"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "終了位置:"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "最後のの文字"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "テキスト"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "の部分文字列を取得;最初から"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "の部分文字列を取得;開始位置:後ろから"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "の部分文字列を取得;開始位置:"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "テキストの指定部分を返します。"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "で以下のテキストの最初の出現箇所を検索:"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "で以下のテキストの最後の出現箇所を検索:"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "テキスト %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "二番目のテキストの中で一番目のテキストが最初/最後に出現したインデックスを返す。テキストが見つからない場合は%1を返す。"; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1が空"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "与えられたテキストが空の場合は true を返す。"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "テキストの作成:"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "任意の数の項目一部を一緒に接合してテキストを作成。"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1の長さ"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "与えられたテキストの(スペースを含む)文字数を返す。"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 を表示"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "指定したテキスト、番号または他の値を印刷します。"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "ユーザーに数値のインプットを求める。"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "ユーザーにテキスト入力を求める。"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "メッセージで番号の入力を求める"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "メッセージでテキスト入力を求める"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%3に含まれる%1を%2に置換"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "文に含まれるキーワードを置換する。"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1を逆順に"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "文の文字を逆順にする。"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ja.wikipedia.org/wiki/文字列"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "文字、単語、または行のテキスト。"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "両端のスペースを取り除く"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "左端のスペースを取り除く"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "右端のスペースを取り除く"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "スペースを 1 つまたは両方の端から削除したのち、テキストのコピーを返します。"; -Blockly.Msg["TODAY"] = "今日"; -Blockly.Msg["UNDO"] = "取り消す"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "項目"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'セット%1を作成します。"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "この変数の値を返します。"; -Blockly.Msg["VARIABLES_SET"] = "%1 に %2 をセット"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'%1 を取得' を作成します。"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "この入力を変数と等しくなるように設定します。"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "変数名 '%1' は既に存在しています。"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%2' 型の '%1' という名前の変数が既に存在します。"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "ここへ入力"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/kab.js b/lib/blockly/msg/js/kab.js deleted file mode 100644 index 98082c7..0000000 --- a/lib/blockly/msg/js/kab.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Rnu awennit"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ur izmir ara ad yekkes amutti '%1' acku yedda di tbadut n twuri '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Beddel azal:"; -Blockly.Msg["CLEAN_UP"] = "Sfeḍ iḥedran"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Iḥedran yettin gebren ilɣa."; -Blockly.Msg["COLLAPSE_ALL"] = "Fneẓ iḥedran"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Fneẓ iḥder"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "ini 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "ini 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "afmiḍi"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "rkwec"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Sexleḍ sin n yiniten d tesmekta (gar 0.0 ar 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://kab.wikipedia.org/wiki/Ini"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Fren ini seg ugalis."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ini agacuran"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Fren ini s wudem agacuran."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "anili"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "azegzaw"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "azeggaɣ"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ini s"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Rnu ini s tnecta yettunefk s tesmekta n uzeggaɣ, azegzaw, akked unili. Yessefk akk azalen ad ilin gar 0 akked 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ffeɣ seg tneddict"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "kemmel s wallus d tneddict d-iteddun"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Ffeɣ si tneddict tamagbart."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Zgel ayen i d-yeqqimen di tneddict-agi, sakin kemmel allus d-iteddun."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Ɣur-k: Iḥder-agi yessefk ad yettwaseqdec di tneddict."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "i yal aferdis %1 di tebdart %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "I yal aferdis n tebdart, mudd azal n uferdis i umutti '%1', sakin selkem tinaḍin."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "siḍen akked %1 seg %2 ar %3 s %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Mudd i umutti '%1' azalen seg umḍan n tazwara arama d umḍan n tagara, stmerna n usurif yettunefken, sakin selkem tiaḍin yettunefken."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Rni tawtilt i yiḥder ma."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Rnu tawtilt taneggarut i yiḥder ma igebren akk tinaḍin."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Rnu, kkes, neq ales ales asmizzwer n tgezmiyin akken ad talseḍ tawila n iḥder-agi ma."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "neɣ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "neɣ ma"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ma"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ma yella azal d idetti, ihi selkem kra n tinaḍin."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ma yella zal d idetti, selkem iḥder amezwaru. Neɣ ma ulac, selkem iḥder wis sin."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ma yella azal amezwaru d idetti, selkem iḥder amezwaru. Neɣ ma azal wis sin d ucciḍ, selkem iḥ€der wis sin."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ma yella azal amezwaru d idetti, selkem iḥeder amezwaru. Neɣ, ma yella azal wis sin d idetti, selkem iḥder wis sin. Ma yella ula d yisen seg-sen mačči d idetti, selkem iḥder aneggaru."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "eg"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "Ales %1 n tikal"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Selkem ddeqs n tinaḍin ddeqs n tikal."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ales arama"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ales skud"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Skud azal d ucciḍ, selkem ihi tinadin."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Skud azal d idetti, selkem ihi tinadin."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Kkes akk %1 n yiḥedran?"; -Blockly.Msg["DELETE_BLOCK"] = "Kkes iḥder"; -Blockly.Msg["DELETE_VARIABLE"] = "Kkes amutti '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Kkes %1 n useqdec n umutti '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Kkes %1 n yiḥderan"; -Blockly.Msg["DISABLE_BLOCK"] = "Sens iḥder"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Sleg"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Sleg awennit"; -Blockly.Msg["ENABLE_BLOCK"] = "Sens iḥedran"; -Blockly.Msg["EXPAND_ALL"] = "Snefli iḥedran"; -Blockly.Msg["EXPAND_BLOCK"] = "Snefli iḥder"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Inekcam izɣarayen"; -Blockly.Msg["HELP"] = "Tallelt"; -Blockly.Msg["INLINE_INPUTS"] = "Inekcam srid"; -Blockly.Msg["IOS_CANCEL"] = "Sefsex"; -Blockly.Msg["IOS_ERROR"] = "Tuccḍa"; -Blockly.Msg["IOS_OK"] = "IH"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Rnu anekcum"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Sireg asmizzwer"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Tawuri-a ɣur-s inekcam imsinen."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INEKCAM"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Rnu"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Rnu amutti"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Kkes"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ur tezmireḍ ara ad tesqedceḍ isem n umutti amaynut."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Snifel isem"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Isem n umutti"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "rnu tabdart tilemt"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Ad d-yerr tabdart n teɣzi 0 ur yegbiren ara ikalasen"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "tabdart"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Rnu, kkes, neɣ ales asmizzwer n tgezmiyin akken ad talseḍ tawila n iḥder-agi n tebdart."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "rnu tabdart s"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Ad yernu aferdis ar tebdart."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Ad yernu tabdart s umḍan n iferdisen."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "amezwaru"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# si tagara"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "awi"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "awi u kkes"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "aneggaru"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "agacuran"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "kkes"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Ad d-yerr aferdis amezwaru n tebdart.."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Ad d-yerr aferdis n wadig yettwammlen deg tabdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Ad d-yerr aferdis aneggaru di tebdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Ad yerr aferdis agacuran di tebdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Ad yekkes sakin ad -yerr aferdis amezwaru di tebdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Ad yekkes sakin ad d-yerr aferdis n wadig yettwammlen deg tabdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Ad yekkes sakin ad -yerr aferdis aneggaru di tebdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Ad yekkes sakin ad d-yerr aferdis agacuran di tebdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Ad yekkes aferdis amezwaru n tebdart.."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Ad yekkes aferdis n wadig yettwammlen deg tabdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Ad yekkes aferdis aneggaru di tebdart."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Ad yekkes aferdis agacuran di tebdart."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ar # si tagara"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ar #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ar tagara"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "awi-d tabdart tasnawant si tazwara"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "awi-d tabdart tasnawant seg # si tagara"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "awi-d tabdart tasnawant seg #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Ad yernu anɣel n uḥric yettwammlen n tebdart."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 d aferdis aneggaru."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 d aferdis amezwaru."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "aff-d timeḍriwt tamezwarut n uferdis"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "af-d timeḍriwt taneggarut n uferdis"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Ad d-yerr amatar n tmeḍriwt tamezwarut/taneggarut n uferdis amewaru deg tebdart. Ad d-yerr %1 ma yella ulac aferdis."; -Blockly.Msg["LISTS_INLIST"] = "di tebdart"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 d ilem"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Ad d-yerr idetti ma yella tabdart d tilemt."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "teɣzi n %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Ad d-yerr teɣzi n tebdart."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "ad yernu tabdart s uferdis %1 s tmeḍriwt %2"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Ad yernu tabdart inetmen n wazal yettunefken ddeqs n tikal s umḍan yettwammlen."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "tti %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Tti anɣel n tebdart."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "am"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ger s"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "sbadu"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Ad iger aferdis di tazwara n tebdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Ad iger aferdis n wadig yettwammlen deg tabdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Ad yernu aferdis ar tagara n tebdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Ad iger aferdis s wudem agacuran deg tebdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Ad d-yerr aferdis amezwaru di tebdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Ad yesbadu aferdis n wadig yettwammlen deg tabdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Ad d-yerr aferdis aneggaru di tebdart."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Ad yesbadu aferdis agacuran di tebdart."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "igemmen"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "amnusruy"; -Blockly.Msg["LISTS_SORT_TITLE"] = "smizzwer %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Smizzwer anɣel n tebdart."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "agemmayan, anef i truẓi n usekkil"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "umḍin"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "agemmayan"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "rnu tabdart seg uḍris"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "rnu aḍris si tebdart"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "ad yesdukel tabdart n yiḍrisen deg iwen s usnabraz."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Ad yegzem aḍris ɣef ddeqs n tebdarin n yoiḍrisen, s unegzum yal anabraz."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "s unabraz"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ucciḍ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Ad d-yerr idetti neɣ ucciḍ"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "idetti"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Ad yerr idetti ma yella i sin n inekcam d imegduya."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Ad d-yerr idetti ma yella anekcam amezwaru meqqeṛ ɣef wis sin."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Ad d-yerr idetti ma yella anekcam amezwaru meqqeṛ neɣ yegda wis sin."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Ad d-yerr idetti ma yella anekcam amezwaru meẓẓi ɣef wis sin."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Ad d-yerr idetti ma yella anekcam amezwaru meẓẓi neɣ yegda wis sin."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Ad d-yerr idetti ma yella i sin n inekcam mačči d imegduya."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "mačči %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Ad d-yerr idetti ma yella anekcam d ucciḍ. Ad d-yerr ucciḍ ma yella anekcam d idetti."; -Blockly.Msg["LOGIC_NULL"] = "Ilem"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Ad d-yerr ilem"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "akked"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "neɣ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Ad d-yerr idetti ma yella inekcam d idettiyen."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Ad d-yerr idetti ma yella ɣarsum yiwen seg inekcam d idetti."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "sekyed"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ma ucciḍ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ma d idetti"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Senqed tawtilt deg 'sekyed'. Ma yella d idetti, ad d-yerr azal 'ma idetti', ma ulac ad d-yerr azam 'ma ucciḍ'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Ad d-yerr tmerni n sin n imiḍanen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Ad d-yerr aful n sin n imḍanen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Ad d-yerr tmernit n sin n imiḍanen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Ad d-yerr tukksa gar sin n imiḍanen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Ad d-yerr amḍan amezwaru uzmir wis sin."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://kab.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 seg X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Ad d-yerr arctangent n waggaz (X, Y) s tfesniwin deg -180 ɣer 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "snifel %1 s %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Rnu amḍan i umutti '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Ad d-yerr yiwet seg tmezgiyin yettwasnen : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), neɣ ∞ (ifeḍ)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "Err tamara i %1 gar %2 akked %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Err tamara n umiḍan akken ad yili gar snat n tlisa (ddant)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "d ubṭay ɣef"; -Blockly.Msg["MATH_IS_EVEN"] = "d ayugan"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "d uzdir"; -Blockly.Msg["MATH_IS_ODD"] = "d aryugan"; -Blockly.Msg["MATH_IS_POSITIVE"] = "d ufrar"; -Blockly.Msg["MATH_IS_PRIME"] = "d amenzu"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Senqed ma yella amḍan d ayugan, d aryugan, d amenzu, d ummid, d ufrar, d uzdir, neɣ d ybṭay ɣef kra n umḍan. Ad d-yerr idettu neɣ ucciḍ."; -Blockly.Msg["MATH_IS_WHOLE"] = "d ummid"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "tasagert n %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Ad d-yerr tasagert n beṭṭu n sin n imḍanen."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Amḍan."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "talemmast n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "afellay n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "tanammast n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "adday n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "Tigwtiwin n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "aferdis agacuran n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "azza n tebdart"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Timernit n tebdart"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Ad d-yerr talemmas( tasnamḍant) n wazalen umḍinen di tebdart."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Ad d-yerr amḍan ameqqran di tebdart."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Ad d-yerr amḍan n anammas n tebdart."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Ad d-yerr amḍan ameẓẓyan di tebdart."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Ad d-yerr tabdart n iferdisen i d-yettuɣalen s waṭas di tebdart."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Ad d-yerr aferdis seg tebdart s wudem agacuran."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Ad d-yerr azza n tebdart."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Ad d-yerr timernit n imḍanen meṛṛa deg tebdart."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "tirẓi tagacurant"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Ad d-yerr tirẓi tagacurant gar 0.0 (yedda) akked 1.0 (ur yeddi ara)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "ummid agacuran gar %1 akked %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Ad d-yerr ummid agacuran gar snat n tlisa, ddant."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "Saẓ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "Saẓ d akesser"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "Saẓ d asawen"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Saẓ amiḍan d asawen neɣ d akesser."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "azal amagdez"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "aẓar uzmir 2"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Ad d-yerr azal amagdez n umiḍan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Ad d-yerr e uzmir amiḍan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Ad d-yerr alugaritm agamawan n umiḍan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Ad d-yerr alugaritm 10 n umiḍan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Ad d-yerr ugmiḍ n umḍan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Ad d-yerr 10 uzmir amiḍan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Ad d-yerr aẓaṛ uzmir sin n umiḍan."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Ad d-yerr taganzi n ukusinus n umḍan."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Ad d-yerr taganzi n usinus n umḍan."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Ad d-yerr taganzi n teslayt n umiḍan."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Ad d-yerr akusinus n teɣmert s tfesna (mačči aṛadyan)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Ad d-yerr asinus n teɣmert s tfesna (mačči aṛadyan)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Ad d-yerr taslayt n teɣmert s tfesna (mačči aṛadyan)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Rnu amutti ini..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Rnu amutti amḍan..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Rnu amutti azrir n yisekkilen..."; -Blockly.Msg["NEW_VARIABLE"] = "Rnu amutti..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Isem amaynut n wazal:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Anaw amaynut n umutti:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "Sireg asmizzwer"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "s:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Selkem tawuri '%1' yesbadu u seqdac."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Selkem tawuri '%1' yesbadu useqdace sakin seqdec agmuḍ-is."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "s:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "rnu '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Seglem tawuri-agi..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "eg kra"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "i"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Rnu tawuri s war anekcam."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "tuɣalin"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "ad yernu tawuri s tuffɣa."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Ɣur-k: Tawuri-agi ɣur-s iɣewwaṛen usligen."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Sebruṛeq tabadut n twuri"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "ma yella azal d idetti, ad d-yerr azal-nniḍen wis sin."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Ɣur-k: Iḥder-agi yezmer ur yettwaseqdac ara ala di tebadut n twuri-agi."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "isem n unekcum:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "rnu anekcam ar twuri-agi."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inekcam"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Rnu, kkes neɣ ales asmizzwer n inekcam i twuri-agi."; -Blockly.Msg["REDO"] = "Uɣal"; -Blockly.Msg["REMOVE_COMMENT"] = "Kkes awennit"; -Blockly.Msg["RENAME_VARIABLE"] = "Beddel isem n umutti..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Beddel akk isem n yimuttiyen '%1' ar:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "Rnu aḍris %2 ar %1"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Rnu aḍris ar umutti '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "s usekkil ameẓẓyan"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "s Umeqqran Di Tazwara n Yal Awal."; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "s USEKKIL AMEQQRAN"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Ad d-yerr anɣel n uḍris s truẓi-nniḍen."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "awi-d asekkil amezwaru"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "awi-d asekkil # si tagara"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "awi asekkel #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "awi-d asekkil aneggaru"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "awi-d asekkil s wudem agacuran"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "deg uḍris %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Ad d-yerr asekkil deg wuṭṭun yettwammlen."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "amḍan %1 ɣef %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Ad isiḍen amḍan n tmeḍriwt n uḍris deg ayeḍ."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Rnu aferdis ar uḍris."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "sdukkel"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Rnu, kkes, neɣ ales asmizzwer n tgezmiyin akken ad talseḍ tawila n iḥder-agi."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "arama d asekkil # si tagara"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "arama d asekkil #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "arama d asekkil aneggaru"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "deg uḍris"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "awi-d azrir asnawan seg usekkil amezwaru"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "awi-d azrir asnawan seg usekkil # si tagara"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "awi-d azrir asnawan seg usekkil #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Ad d-yerr aḥric yettwammlen deg uḍris."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "af-d timeḍriwt tamezwarut n uḍris"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "af-d timeḍriwt taneggarut deg uḍris"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "deg uḍris %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Ad d-yerr amatar n tmeḍriwt tamezwarut/taneggarut n uḍris amewaru deg uḍris wis sin. Ad d-yerr %1 ma yella ulac adris."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 d ilem"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Add d-yerr idetti ma yella aḍris d ilem."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "rnu aḍṛis s"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Ad yernu taceqquft n uḍris s usdukel gar yal amḍan n iferdisen."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "teɣzi n %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Ad d-yerr amḍan n isekkilen (ddab ula d imellalen) deg uḍris d-ittunefken."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "ad d-yesken %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Sken aḍris, amḍan neɣ azal-nniḍen d-ittunefken."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Suter amḍan i useqdac."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Suter aḍris i useqdac."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "aneftaɣ i umḍan s yizen"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "aneftaɣ i uḍris s yizen"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "semselsi %1 s %2 di %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "As isemselsi akk timeḍriwin n uḍris s wayeḍ."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "tti %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Ad yetti asmizzwer n isekkilen deg uḍris."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Asekkil, awal neɣ izirig n uḍris."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "Tukksa n isekkilen imellalen seg sin n idisan"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "tukksa n isekkilen seg uzelmaḍ"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "tukksa n isekkilen seg uyeffus"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Ad d-yerr anɣel n uḍris s isekkilen ilmawen yettwakksen seg ixf neɣ i sin."; -Blockly.Msg["TODAY"] = "Ass-a"; -Blockly.Msg["UNDO"] = "Err-d"; -Blockly.Msg["UNNAMED_KEY"] = "warisem"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "aferdis"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Rnu 'sbadu %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Ad d-yerr azal n umutti-agi."; -Blockly.Msg["VARIABLES_SET"] = "sbadu %1 ar %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Rnu 'awi-d %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Ad yesbadu amutti-agi akken ad yegdu azal n unekcam."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Amutti s yisem '%1' yella yakan."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Amutti s yisem '%1' yella yakan i wanaw-nniḍen: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Ini kra..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ko.js b/lib/blockly/msg/js/ko.js deleted file mode 100644 index 8592ac9..0000000 --- a/lib/blockly/msg/js/ko.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "주석 추가"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "'%2' 함수 정의의 일부이기 때문에 '%1' 변수를 삭제할 수 없습니다"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "값 바꾸기:"; -Blockly.Msg["CLEAN_UP"] = "블록 정리"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "블록 축소"; -Blockly.Msg["COLLAPSE_BLOCK"] = "블록 축소"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "색 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "색 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "비율"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "혼합"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "두 색을 주어진 비율로 혼합 (0.0 - 1.0)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ko.wikipedia.org/wiki/색"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "팔레트에서 색을 고릅니다"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "임의 색상"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "무작위로 색을 고릅니다."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "파랑"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "초록"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "빨강"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "색"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "빨강,파랑,초록의 값을 이용하여 색을 만드십시오. 모든 값은 0과 100 사이에 있어야 합니다."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://ko.wikipedia.org/wiki/%EC%A0%9C%EC%96%B4_%ED%9D%90%EB%A6%84"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "반복 중단"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "다음 반복"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "현재 반복 실행 블럭을 빠져나갑니다."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "나머지 반복 부분을 더 이상 실행하지 않고, 다음 반복을 수행합니다."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "경고 : 이 블록은 반복 실행 블럭 안에서만 사용됩니다."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://ko.wikipedia.org/wiki/For_%EB%A3%A8%ED%94%84#.EC.9E.84.EC.9D.98.EC.9D.98_.EC.A7.91.ED.95.A9"; -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "각 항목에 대해 %1 목록으로 %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "리스트 안에 들어있는 각 아이템들을, 순서대로 변수 '%1' 에 한 번씩 저장시키고, 그 때 마다 명령을 실행합니다."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://ko.wikipedia.org/wiki/For_%EB%A3%A8%ED%94%84"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "으로 계산 %1 %2에서 %4을 이용하여 %3로"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "변수 \"%1\"은 지정된 간격으로 시작 수에서 끝 수까지를 세어 지정된 블록을 수행해야 합니다."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "\"만약\" 블럭에 조건 검사를 추가합니다."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "\"만약\" 블럭의 마지막에, 모든 검사 결과가 거짓인 경우 실행할 부분을 추가합니다."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://ko.wikipedia.org/wiki/%EC%A1%B0%EA%B1%B4%EB%AC%B8"; -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "섹션을 추가, 제거하거나 순서를 변경하여 이 if 블럭을 재구성합니다."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "아니라면"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "다른 경우"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "만약"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "조건식의 계산 결과가 참이면, 명령을 실행합니다."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "조건식의 계산 결과가 참이면, 첫 번째 블럭의 명령을 실행하고, 그렇지 않으면 두 번째 블럭의 명령을 실행합니다."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "첫 번째 조건식의 계산 결과가 참이면, 첫 번째 블럭의 명령을 실행하고, 두 번째 조건식의 계산 결과가 참이면, 두 번째 블럭의 명령을 실행합니다."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "첫 번째 조건식의 계산 결과가 참이면, 첫 번째 블럭의 명령을 실행하고, 두 번째 조건식의 계산 결과가 참이면, 두 번째 블럭의 명령을 실행하고, ... , 어떤 조건식의 계산 결과도 참이 아니면, 마지막 블럭의 명령을 실행합니다."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ko.wikipedia.org/wiki/For_루프"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "하기"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1회 반복"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "여러 번 반복해 명령들을 실행합니다."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://ko.wikipedia.org/wiki/While_%EB%A3%A8%ED%94%84"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "다음까지 반복"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "동안 반복"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "값이 거짓일 때, 몇 가지 선언을 합니다."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "값이 참일 때, 몇 가지 선언을 합니다."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "모든 블록 %1개를 삭제하겠습니까?"; -Blockly.Msg["DELETE_BLOCK"] = "블록 삭제"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' 변수를 삭제합니다"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' 변수에서 %1을(를) 삭제하시겠습니까?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "블록 %1개 삭제"; -Blockly.Msg["DISABLE_BLOCK"] = "블록 비활성화"; -Blockly.Msg["DUPLICATE_BLOCK"] = "복제"; -Blockly.Msg["DUPLICATE_COMMENT"] = "주석 복제하기"; -Blockly.Msg["ENABLE_BLOCK"] = "블록 활성화"; -Blockly.Msg["EXPAND_ALL"] = "블록 확장"; -Blockly.Msg["EXPAND_BLOCK"] = "블록 확장"; -Blockly.Msg["EXTERNAL_INPUTS"] = "외부 입력"; -Blockly.Msg["HELP"] = "도움말"; -Blockly.Msg["INLINE_INPUTS"] = "내부 입력"; -Blockly.Msg["IOS_CANCEL"] = "취소"; -Blockly.Msg["IOS_ERROR"] = "오류"; -Blockly.Msg["IOS_OK"] = "확인"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ 입력 추가"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "이 기능은 중복된 입력이 있습니다."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "입력"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "추가"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ 변수 추가"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "삭제"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "비어있는 변수 이름을 사용할 수 없습니다."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "이름 바꾸기"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "변수 이름"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "빈 리스트 생성"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "데이터 레코드가 없는, 길이가 0인 목록을 반환합니다."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "리스트"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "섹션을 추가, 제거하거나 순서를 변경하여 이 리스트 블럭을 재구성합니다."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "리스트 만들기"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "아이템을 리스트에 추가합니다."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "원하는 수의 항목들로 목록을 생성합니다."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "첫 번째"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "마지막 번째 위치부터, # 번째"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "가져오기"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "잘라 내기"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "마지막"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "임의로"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "삭제"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "첫 번째 아이템을 찾아 돌려줍니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "목록에서 특정 위치의 항목을 반환합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "마지막 아이템을 찾아 돌려줍니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "리스트의 아이템들 중, 랜덤으로 선택해 돌려줍니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "첫 번째 아이템을 찾아내 돌려주고, 그 아이템을 리스트에서 삭제합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "목록의 특정 위치에 있는 항목을 제거하고 반환합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "마지막 아이템을 찾아내 돌려주고, 그 아이템을 리스트에서 삭제합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "목록에서 임의 위치의 아이템을 찾아내 삭제하고 돌려줍니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "리스트에서 첫 번째 아이템을 삭제합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "목록에서 특정 위치의 항목을 삭제합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "리스트에서 마지막 아이템을 찾아 삭제합니다."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "리스트에서 랜덤하게 아이템을 삭제합니다."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "끝에서부터 # 번째로"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "앞에서부터 # 번째로"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "마지막으로"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "첫 번째 위치부터, 서브 리스트 추출"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "마지막부터 # 번째 위치부터, 서브 리스트 추출"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "처음 # 번째 위치부터, 서브 리스트 추출"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "목록의 특정 부분에 대한 복사본을 만듭니다."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1은(는) 마지막 항목입니다."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1은 첫 번째 항목입니다."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "처음으로 나타난 위치"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "마지막으로 나타난 위치"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "목록에서 항목이 처음 또는 마지막으로 발생한 색인 위치를 반환합니다. 항목이 없으면 %1을 반환합니다."; -Blockly.Msg["LISTS_INLIST"] = "리스트"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1이 비어 있습니다"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "목록이 비었을 때 참을 반환합니다."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1의 길이"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "목록의 길이를 반환합니다."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "%1을 %2번 넣어, 리스트 생성"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "지정된 값을, 지정된 개수 만큼 넣어, 목록을 생성합니다."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 뒤집기"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "리스트의 복사본을 뒤집습니다."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "에"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "에서 원하는 위치에 삽입"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "에서 설정"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "항목을 목록의 처음 위치에 삽입합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "목록의 특정 위치에 항목을 삽입합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "리스트의 마지막에 아이템을 추가합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "목록에서 임의 위치에 아이템을 삽입합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "첫 번째 위치의 아이템으로 설정합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "목록의 특정 위치에 있는 항목으로 설정합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "마지막 아이템으로 설정합니다."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "목록에서 임의 위치의 아이템을 설정합니다."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "오름차순"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "내림차순"; -Blockly.Msg["LISTS_SORT_TITLE"] = "정렬 %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "목록의 사본을 정렬합니다."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "알파벳순 (대소문자 구분 안 함)"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "숫자순"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "알파벳순"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "텍스트에서 목록 만들기"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "목록에서 텍스트 만들기"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "구분 기호로 구분하여 텍스트 목록을 하나의 텍스트에 병합합니다."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "각 속보, 텍스트의 목록들에서 텍스트를 분할합니다."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "분리와"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "거짓"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://ko.wikipedia.org/wiki/%EC%A7%84%EB%A6%BF%EA%B0%92"; -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "참 혹은 거짓 모두 반환합니다."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "참"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://ko.wikipedia.org/wiki/부등식"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "두 값이 같으면, 참(true) 값을 돌려줍니다."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "첫 번째 값이 두 번째 값보다 크면, 참(true) 값을 돌려줍니다."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "첫 번째 값이 두 번째 값보다 크거나 같으면, 참(true) 값을 돌려줍니다."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "첫 번째 값이 두 번째 값보다 작으면, 참(true) 값을 돌려줍니다."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "첫 번째 값이 두 번째 값보다 작거나 같으면, 참(true) 값을 돌려줍니다."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "두 값이 서로 다르면, 참(true) 값을 돌려줍니다."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://ko.wikipedia.org/wiki/%EB%B6%80%EC%A0%95"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1가 아닙니다"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "입력값이 거짓이라면 참을 반환합니다. 참이라면 거짓을 반환합니다."; -Blockly.Msg["LOGIC_NULL"] = "빈 값"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "빈 값을 반환합니다."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "그리고"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://ko.wikipedia.org/wiki/%EB%B6%88_%EB%85%BC%EB%A6%AC"; -Blockly.Msg["LOGIC_OPERATION_OR"] = "또는"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "두 값이 모두 참(true) 값이면, 참 값을 돌려줍니다."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "적어도 하나의 값이 참일 경우 참을 반환합니다."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "테스트"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://ko.wikipedia.org/wiki/물음표"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "만약 거짓이라면"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "만약 참이라면"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'test'의 조건을 검사합니다. 조건이 참이면 'if true' 값을 반환합니다. 거짓이면 'if false' 값을 반환합니다."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ko.wikipedia.org/wiki/산술"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "두 수의 합을 반환합니다."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "두 수의 나눈 결과를 반환합니다."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "두 수간의 차이를 반환합니다."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "두 수의 곱을 반환합니다."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "첫 번째 수를 두 번째 수 만큼, 거듭제곱 한 결과값을 돌려줍니다."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "바꾸기 %1 만큼 %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "변수 '%1' 에 저장되어있는 값에, 어떤 수를 더해, 변수에 다시 저장합니다."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ko.wikipedia.org/wiki/수학_상수"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "일반적인 상수 값들 중 하나를 돌려줍니다. : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://ko.wikipedia.org/wiki/클램핑_(그래픽)"; -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1의 값을, 최소 %2 최대 %3으로 조정"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "어떤 수를, 특정 범위의 값이 되도록 강제로 조정합니다."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "가 다음 수로 나누어 떨어지면 :"; -Blockly.Msg["MATH_IS_EVEN"] = "가 짝수(even) 이면"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "가 음(-)수 이면"; -Blockly.Msg["MATH_IS_ODD"] = "가 홀수(odd) 이면"; -Blockly.Msg["MATH_IS_POSITIVE"] = "가 양(+)수 이면"; -Blockly.Msg["MATH_IS_PRIME"] = "가 소수(prime) 이면"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "어떤 수가 짝 수, 홀 수, 소 수, 정 수, 양 수, 음 수, 나누어 떨어지는 수 인지 검사해 결과값을 돌려줍니다. 참(true) 또는 거짓(false) 값을 돌려줌."; -Blockly.Msg["MATH_IS_WHOLE"] = "가 정수이면"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2의 나머지"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "첫 번째 수를 두 번째 수로 나눈, 나머지 값을 돌려줍니다."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "x"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ko.wikipedia.org/wiki/수_(수학)"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "수"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "평균값"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "최대값"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "중간값"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "최소값"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "가장 여러 개 있는 값"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "목록의 임의 항목"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "표준 편차"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "합"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "리스트에 들어있는 수(값)들에 대해, 산술 평균(arithmetic mean) 한 값을 돌려줍니다."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "리스트에 들어있는 수(값) 들 중, 가장 큰(max) 수(값)를 돌려줍니다."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "리스트에 들어있는 수(값) 들 중, 중간(median) 수(값)를 돌려줍니다."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "리스트에 들어있는 수(값) 들 중, 가장 작은(min) 수(값)를 돌려줍니다."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "리스트에 들어있는 아이템들 중에서, 가장 여러 번 들어있는 아이템들을 리스트로 만들어 돌려줍니다. (최빈값, modes)"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "목록에서 임의의 아이템을 돌려줍니다."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "이 리스트의 표준 편차를 반환합니다."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "리스트에 들어있는 수(값)들을, 모두 합(sum) 한, 총합(sum)을 돌려줍니다."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "임의 분수"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "0.0 (포함)과 1.0 (배타적) 사이의 임의 분수 값을 돌려줍니다."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "랜덤정수(%1<= n <=%2)"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "두 주어진 제한된 범위 사이의 임의 정수값을 돌려줍니다."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ko.wikipedia.org/wiki/반올림"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "반올림"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "버림"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "올림"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "어떤 수를 반올림/올림/버림한 결과를, 정수값으로 돌려줍니다."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ko.wikipedia.org/wiki/제곱근"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "절대값"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "제곱근"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "어떤 수의 절대값(absolute)을 계산한 결과를, 정수값으로 돌려줍니다."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "e의 거듭제곱 값을 반환합니다."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "어떤 수의, 자연로그(natural logarithm) 값을 돌려줍니다.(밑 e, 예시 log e x)"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "어떤 수의, 기본로그(logarithm) 값을 돌려줍니다.(밑 10, 예시 log 10 x)"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "음(-)/양(+), 부호를 반대로 하여 값을 돌려줍니다."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "10의 거듭제곱 값을 반환합니다."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "숫자의 제곱근을 반환합니다."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ko.wikipedia.org/wiki/삼각함수"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "어떤 수에 대한, acos(arccosine) 값을 돌려줍니다."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "어떤 수에 대한, asin(arcsine) 값을 돌려줍니다."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "어떤 수에 대한, atan(arctangent) 값을 돌려줍니다."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "각도의 코사인을 반환합니다. (라디안 아님)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "각도의 사인을 반환합니다. (라디안 아님)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "각도의 탄젠트를 반환합니다. (라디안 아님)"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "색 변수 만들기..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "숫자 변수 만들기...."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "문자열 변수 만들기..."; -Blockly.Msg["NEW_VARIABLE"] = "변수 만들기..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "새 변수 이름:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "새 변수 유형:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "서술 허가"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "사용:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ko.wikipedia.org/wiki/함수_(프로그래밍)"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "미리 정의해 둔 '%1' 함수를 실행합니다."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ko.wikipedia.org/wiki/함수_(프로그래밍)"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "미리 정의해 둔 '%1' 함수를 실행하고, 함수를 실행한 결과 값을 돌려줍니다."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "사용:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' 생성"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "이 함수를 설명하세요..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98_%28%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "함수 이름"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "함수"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "실행 후, 결과 값을 돌려주지 않는 함수를 만듭니다."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98_%28%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "다음을 돌려줌"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "실행 후, 결과 값을 돌려주는 함수를 만듭니다."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "경고: 이 함수에는, 같은 이름을 사용하는 매개 변수들이 있습니다."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "함수 정의 찾기"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "값이 참이라면, 두 번째 값을 반환합니다."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "경고: 이 블럭은, 함수 정의 블럭 안에서만 사용할 수 있습니다."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "매개 변수:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "함수에 값을 더합니다."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "매개 변수들"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "이 함수를 추가, 삭제, 혹은 재정렬합니다."; -Blockly.Msg["REDO"] = "다시 실행"; -Blockly.Msg["REMOVE_COMMENT"] = "주석 제거"; -Blockly.Msg["RENAME_VARIABLE"] = "변수 이름 바꾸기:"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "'%1' 변수 이름을 바꾸기:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_APPEND_TITLE"] = "다음 %1 내용 덧붙이기 %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "'%1' 변수의 끝에 일부 텍스트를 덧붙입니다."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "소문자로"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "첫 문자만 대문자로"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "대문자로"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "영문 대소문자 형태를 변경해 돌려줍니다."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "에서, 첫 번째 문자 얻기"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "에서, 마지막부터 # 번째 위치의 문자 얻기"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "에서, 앞에서부터 # 번째 위치의 문자 얻기"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "에서, 마지막 문자 얻기"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "에서, 랜덤하게 한 문자 얻기"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "텍스트 %1 %2에서"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "특정 번째 위치에서, 문자를 얻어내 돌려줍니다."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%2에서 %1 숫자 세기"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "다른 어떤 텍스트에서 어떤 텍스트가 나타난 횟수를 셉니다."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "텍스트에 항목을 추가합니다."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "가입"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "섹션을 추가, 제거하거나 순서를 변경하여 이 텍스트 블럭을 재구성합니다."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "끝에서부터 # 번째 문자까지"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "# 번째 문자까지"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "마지막 문자까지"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "문장"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "에서, 처음부터 얻어냄"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "에서, 마지막에서 # 번째부터 얻어냄"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "에서, 처음부터 # 번째 문자부터 얻어냄"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "문장 중 일부를 얻어내 돌려줍니다."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "에서 다음 문장이 처음으로 나타난 위치 찾기 :"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "에서 다음 문장이 마지막으로 나타난 위치 찾기 :"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "문장 %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "두 번째 텍스트에서 첫 번째 텍스트가 처음 또는 마지막으로 발생한 색인 위치를 반환합니다. 텍스트가 없으면 %1을 반환합니다."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1이 비어 있습니다"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "입력된 문장이, 빈 문장(\"\")이면 참(true) 값을 돌려줍니다."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "텍스트 만들기"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "여러 개의 아이템들을 연결해(묶어), 새로운 문장을 만듭니다."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_LENGTH_TITLE"] = "다음 문장의 문자 개수 %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "입력된 문장의, 문자 개수를 돌려줍니다.(공백문자 포함)"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; -Blockly.Msg["TEXT_PRINT_TITLE"] = "다음 내용 출력 %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "원하는 문장, 수, 값 등을 출력합니다."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "수에 대해 사용자의 입력을 받습니다."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "문장에 대해 사용자의 입력을 받습니다."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "메시지를 활용해 수 입력"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "메시지를 활용해 문장 입력"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%3에서 %2을(를) %1(으)로 바꾸기"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ko.wikipedia.org/wiki/문자열"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "문자, 단어, 문장."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "양쪽의 공백 문자 제거"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "왼쪽의 공백 문자 제거"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "오른쪽의 공백 문자 제거"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "문장의 왼쪽/오른쪽/양쪽에서 스페이스 문자를 제거해 돌려줍니다."; -Blockly.Msg["TODAY"] = "오늘"; -Blockly.Msg["UNDO"] = "실행 취소"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "항목"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'집합 %1' 생성"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://ko.wikipedia.org/wiki/%EB%B3%80%EC%88%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)"; -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "변수에 저장 되어있는 값을 돌려줍니다."; -Blockly.Msg["VARIABLES_SET"] = "%1를 %2로 설정"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'%1 값 읽기' 블럭 생성"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://ko.wikipedia.org/wiki/%EB%B3%80%EC%88%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)"; -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "변수의 값을 입력한 값으로 변경해 줍니다."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' 변수는 이미 존재합니다."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%1' 변수는 다른 유형에 대해 이미 존재합니다: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "말해 보세요..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/lb.js b/lib/blockly/msg/js/lb.js deleted file mode 100644 index 4762976..0000000 --- a/lib/blockly/msg/js/lb.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Bemierkung derbäisetzen"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Wäert änneren:"; -Blockly.Msg["CLEAN_UP"] = "Bléck opraumen"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Bléck zesummeklappen"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Block zesummeklappen"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "Faarf 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "Faarf 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ratio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mëschen"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; // untranslated -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Sicht eng Faarf an der Palette eraus."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "zoufälleg Faarf"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Eng zoufälleg Faarf eraussichen."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blo"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "gréng"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "rout"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "fierwe mat"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "break out of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "fir all Element %1 an der Lëscht %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "zielt mat %1 vun %2 bis %3 mat %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "soss"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "else if"; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "wann"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "maach"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1-mol widderhuelen"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "widderhuele bis"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "Widderhuel soulaang"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Féiert d'Uweisungen aus, soulaang wéi de Wäert falsch ass."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Féiert d'Uweisungen aus, soulaang wéi de Wäert richteg ass"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; // untranslated -Blockly.Msg["DELETE_BLOCK"] = "Block läschen"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 Bléck läschen"; -Blockly.Msg["DISABLE_BLOCK"] = "Block desaktivéieren"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Eng Kopie maachen"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Bemierkung kopéieren"; -Blockly.Msg["ENABLE_BLOCK"] = "Block aktivéieren"; -Blockly.Msg["EXPAND_ALL"] = "Bléck opklappen"; -Blockly.Msg["EXPAND_BLOCK"] = "Block opklappen"; -Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; // untranslated -Blockly.Msg["HELP"] = "Hëllef"; -Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated -Blockly.Msg["IOS_CANCEL"] = "Ofbriechen"; -Blockly.Msg["IOS_ERROR"] = "Feeler"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Derbäisetzen"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Variabel derbäisetzen"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Läschen"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Dir kënnt keen eidelen Numm fir eng Variabel benotzen."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Ëmbenennen"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Numm vun der Variabel"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "Lëscht"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "En Element op d'Lëscht derbäisetzen."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "éischt"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# vun hannen"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "lescht"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "Zoufall"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ewechhuelen"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Schéckt en zoufällegt Element aus enger Lëscht zréck."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Hëlt dat lescht Element aus enger Lëscht eraus."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Hëlt en zoufällegt Element aus enger Lëscht eraus."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ass dat éischt Element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ass dat éischt Element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "an der Lëscht"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ass eidel"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "Längt vu(n) %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 ëmdréinen"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "als"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "asetzen op"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Setzt d'Element um Enn vun enger Lëscht derbäi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Setzt d'Element op eng zoufälleg Plaz an d'Lëscht derbäi."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Setzt en zoufällegt Element an eng Lëscht."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 zortéieren"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeresch"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetesch"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falsch"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Schéckt entweder richteg oder falsch zréck."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "wouer"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "net %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "an"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "oder"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "Test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "wa falsch"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "wa wouer"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Den Total vun den zwou Zuelen zréckginn."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "D'Produkt vun den zwou Zuelen zréckginn."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "änneren %1 ëm %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "ass gerued"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ass negativ"; -Blockly.Msg["MATH_IS_ODD"] = "ass ongerued"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ass positiv"; -Blockly.Msg["MATH_IS_PRIME"] = "ass eng Primzuel"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "ass eng ganz Zuel"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "Rescht vu(n) %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Eng Zuel."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "Moyenne vun der Lëscht"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Maximum aus der Lëscht"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "zoufällegt Element vun enger Lëscht"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Schéckt de gréisste Wäert aus enger Lëscht zréck."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "zoufälleg ganz Zuel tëscht %1 a(n) %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "opronnen"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ofrënnen"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "oprënnen"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Eng Zuel op- oder ofrënnen."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://lb.wikipedia.org/wiki/Racine carrée"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Quadratwuerzel"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Variabel uleeën..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Neie variabelen Numm:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "mat:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "mat:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' uleeën"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Dës Funktioun beschreiwen..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "eppes maachen"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "zréck"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Widderhuelen"; -Blockly.Msg["REMOVE_COMMENT"] = "Bemierkung ewechhuelen"; -Blockly.Msg["RENAME_VARIABLE"] = "Variabel ëmbenennen..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "All '%1' Variabelen ëmbenennen op:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "am Text %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "En Element bei den Text derbäisetzen."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "bis bei de Buschtaf #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "bis bei de leschte Buschtaw"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "am Text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "am Text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ass eidel"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "Längt vu(n) %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 drécken"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Frot de Benotzer no engem Text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%1 duerch %2 a(n) %3 ersetzen"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "All Kéiers wou e bestëmmten Text do ass duerch en aneren Text ersetzen."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Dréint d'Reiefolleg vun den Zeechen am Text ëm."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "E Buschtaf, e Wuert oder eng Textzeil."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Haut"; -Blockly.Msg["UNDO"] = "Réckgängeg maachen"; -Blockly.Msg["UNNAMED_KEY"] = "ouni Numm"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Sot eppes..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/lki.js b/lib/blockly/msg/js/lki.js deleted file mode 100644 index 5c11ebe..0000000 --- a/lib/blockly/msg/js/lki.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "گةپ دائن"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "تةغییر مقدار:"; -Blockly.Msg["CLEAN_UP"] = "تمیزکردن بلاکةل"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "چؤیچانن/پشکانن بلاکةل"; -Blockly.Msg["COLLAPSE_BLOCK"] = "چؤیچانن/پشکانن بلاک"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رةنگ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رةنگ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نسبت"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "قاتی پاتی"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "دو رنگ را با نسبت مشخص‌شده مخلوط می‌کند (۰٫۰ - ۱٫۰)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://lki.wikipedia.org/wiki/ڕەنگ"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "رةنگێ إژ تةختة رةنگ انتخاب کةن"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "رةنگ بةختةکی"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = ".رةنگئ بةختةکی انتخاب کةن"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "کاوو"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "سؤز"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "سۆر"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "رةنگ وة"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ساخت یک رنگ با مقدار مشخص‌شده‌ای از سۆر، سؤز و کاوو. همهٔ مقادیر باید بین ۰ تا ۱۰۰ باشند."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "شکانِن حلقه"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ادامه با تکرار بعدی حلقه"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "شکستن حلقهٔ شامل."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "پریدن از بقیهٔ حلقه و ادامه با تکرار بعدی."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "اخطار: این بلوک ممکن است فقط داخل یک حلقه استفاده شود."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "ئةرا هر مورد %1 وۀ نام لیست%2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "با تعداد %1 از %2 به %3 با گام‌های %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "افزودن یک شرط به بلوک اگر."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "اضافه‌کردن نهایی، گرفتن همهٔ شرایط به بلوک اگر."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "افزودن، حذف یا بازمرتب‌سازی قسمت‌ها برای پیکربندی دوبارهٔ این بلوک اگر."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "آنگاه"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "اگر آنگاه"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "اگر"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "اگر یک مقدار صحیح است، سپس چند عبارت را انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "اگر یک مقدار صحیح است، اول بلوک اول عبارات را انجام بده. در غیر این صورت بلوک دوم عبارات انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "اگر مقدار اول صحیح بود، از آن بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم صحیح است، بلوک دوم عبارات را انجام بده."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "اگر مقدار اول درست است، بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم درست باشد بلوک دوم عبارات را انجام بده. اگر هیچ از مقادیر درست نبود، آخرین بلوک عبارات را انجام بده."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://lki.wikipedia.org/wiki/حلقه_فور"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "انجوم بی"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%بار تکرار 1"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "انجام چةن عبارت چندین گِل."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تکرار تا وةختێ گإ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "تکرار در حالی که"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "حةذف کؤل %1 بلاکةل?"; -Blockly.Msg["DELETE_BLOCK"] = "پاک کردن بلاک"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "حةذف %1 بلاکةل"; -Blockly.Msg["DISABLE_BLOCK"] = "إ کار کةتن(غیرفعال‌سازی) بلاک"; -Blockly.Msg["DUPLICATE_BLOCK"] = "کؤپی کردن"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "إ کارآشتن(فعال)بلاک"; -Blockly.Msg["EXPAND_ALL"] = "کةلنگآ کردِن بلاکةل"; -Blockly.Msg["EXPAND_BLOCK"] = "کةلنگآ کردِن بلاک"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ورودیةل خروجی"; -Blockly.Msg["HELP"] = "کؤمةک"; -Blockly.Msg["INLINE_INPUTS"] = "ورودیةل نوم جا"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ایجاد فهرست خالی"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "فهرستی با طول صفر شامل هیچ رکورد داده‌ای بر می‌گرداند."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "لیست"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "اضافه‌کردن، حذف‌کردن یا ترتیب‌سازی مجدد بخش‌ها این بلوک فهرستی."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ایجاد فهرست با"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "اضافه‌کردن یک مورد به فهرست."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "فهرستی از هر عددی از موارد می‌سازد."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "إژ أؤةل"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# إژ دؤما آخر"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "گِرتِن"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "گِرتِن و حةذف کردن"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "دؤمائن/آخرین"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "بةختةکی"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "حةذف کردن"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "اولین مورد یک فهرست را بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "موردی در محل مشخص‌شده بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "آخرین مورد در یک فهرست را بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "یک مورد تصادفی در یک فهرست بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "اولین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "مورد در محل مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "آخرین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "مورد تصادفی‌ای را در فهرست حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "اولین مورد را در یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "مورد مشخص‌شده در موقعیت مشخص در یک فهرست را حذف و بر می‌گرداند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "آخرین مورد را در یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "یک مورد تصادفی را یک فهرست حذف می‌کند."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "به # از انتها"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "به #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "به آخرین"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "گرفتن زیرمجموعه‌ای از ابتدا"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "گرفتن زیرمجموعه‌ای از # از انتها"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "گرفتن زیرمجموعه‌ای از #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "کپی از قسمت مشخص‌شدهٔ لیست درست می‌کند."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 آخرین مورد است."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 اولین مورد است."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "یافتن اولین رخ‌داد مورد"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "یافتن آخرین رخ‌داد مورد"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "شاخصی از اولین/آخرین رخ‌داد مورد در فهرست را بر می‌گرداند. %1 بر می‌گرداند اگر آیتم موجود نبود."; -Blockly.Msg["LISTS_INLIST"] = "در فهرست"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 خالی است"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "اگر فهرست خالی است مقدار صجیج بر می‌گرداند."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "طول یک فهرست را برمی‌گرداند."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "فهرستی با %1 تکرارشده به اندازهٔ %2 می‌سازد"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "فهرستی شامل مقادیر داده‌شدهٔ تکرار شده عدد مشخص‌شده می‌سازد."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "به عنوان"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "درج در"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "مجموعه"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "موردی به ته فهرست اضافه می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "موردی در موقعیت مشخص‌شده در یک فهرست اضافه می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "موردی به ته فهرست الحاق می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "مورد را به صورت تصادفی در یک فهرست می‌افزاید."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "اولین مورد در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "مورد مشخص‌شده در یک فهرست را قرار می‌دهد."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "آخرین مورد در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "یک مورد تصادفی در یک فهرست را تعیین می‌کند."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "ساخت لیست إژ متن"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ساخت متن إژ لیست"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "همراه جداساز"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "نادرست"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "بازگرداندن یکی از صحیح یا ناصحیح."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "درست"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "بازگشت صحیح اگر هر دو ورودی با یکدیگر برابر باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "بازگرداندن صحیح اگر ورودی اول بزرگتر از ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "بازگرداندن صحیح اگر ورودی اول بزرگتر یا مساوی یا ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "بازگرداندن صحیح اگر ورودی اول کوچکتر از ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "بازگرداندن صحیح اگر ورودی اول کوچکتر یا مساوی با ورودی دوم باشد."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "برگرداندن صحیح اگر هر دو ورودی با یکدیگر برابر نباشند."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "نه %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "صجیج باز می‌گرداند اگر ورودی نا صحیح باشند. ناصحیح بازمی‌گرداند اگر ورودی صحیح باشد."; -Blockly.Msg["LOGIC_NULL"] = "پةتی/خالی"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "تهی باز می گرداند"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "و"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "یا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "بازگرداندن صحیح اگر هر دو ورودی صحیح باشد."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "بازگرداندن صحیح اگر یکی از دو ورودی صحیح باشد."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "آزمائشت"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "اگر نادرست"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "اگر درست"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "بررسی وضعیت در «آزمایش». اگر وضعیت صحیح باشد، مقدار «اگر صحیح» را بر می‌گرداند در غیر اینصورت مقدار «اگر ناصحیح» را."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "بازگرداندن مقدار جمع دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "بازگرداندن باقی‌ماندهٔ دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "بازگرداندن تفاوت دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "بازگرداندن حاصلضرب دو عدد."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "بازگرداندن اولین عددی که از توان عدد دوم حاصل شده باشد."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "تغییر %1 با %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "افزودن یک عدد به متغیر '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "یکی از مقادیر مشترک را برمی‌گرداند: π (۳٫۱۴۱…)، e (۲٫۷۱۸...)، φ (۱٫۶۱۸)، sqrt(۲) (۱٫۴۱۴)، sqrt(۱/۲) (۰٫۷۰۷...) و یا ∞ (بی‌نهایت)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "محدودکردن %1 پایین %2 بالا %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "محدودکردن یک عدد بین محدودیت‌های مشخص‌شده (بسته)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "تقسیم شده بر"; -Blockly.Msg["MATH_IS_EVEN"] = "زوج است"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "منفی است"; -Blockly.Msg["MATH_IS_ODD"] = "فرد است"; -Blockly.Msg["MATH_IS_POSITIVE"] = "مثبت است"; -Blockly.Msg["MATH_IS_PRIME"] = "عدد اول است"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "بررسی می‌کند که آیا یک عدد زوج، فرد، اول، کامل، مثبت، منفی یا بخش‌پذیر عدد خاصی باشد را بررسی می‌کند. درست یا نادرست باز می‌گرداند."; -Blockly.Msg["MATH_IS_WHOLE"] = "کامل است"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "باقی‌ماندهٔ %1 + %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "باقی‌ماندهٔ تقسیم دو عدد را بر می‌گرداند."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "شؤمارە یەک"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "میانگین فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "بزرگ‌ترین فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "میانهٔ فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "گوجةرتةرین لیست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "مد فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "مورد تصادفی از فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "انحراف معیار فهرست"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "جمع لیست"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "میانگین (میانگین ریاضی) مقادیر عددی فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "بزرگ‌ترین عدد در فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "میانهٔ عدد در فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "کوچک‌ترین عدد در فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "شایع‌ترین قلم(های) در فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "موردی تصادفی از فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "انحراف معیار فهرست را بر می‌گرداند."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "جمع همهٔ عددهای فهرست را باز می‌گرداند."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "کسر تصادفی"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "بازگرداندن کسری تصادفی بین ۰٫۰ (بسته) تا ۱٫۰ (باز)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "عدد صحیح تصادفی بین %1 تا %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "یک عدد تصادفی بین دو مقدار مشخص‌شده به صورت بسته باز می‌گرداند."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "گردکردن"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "گرد به پایین"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "گرد به بالا"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "گردکردن یک عدد به بالا یا پایین."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "مطلق"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "ریشهٔ دوم"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "قدر مطلق یک عدد را بازمی‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "بازگرداندن توان e یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "لوگاریتم طبیعی یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "بازگرداندن لگاریتم بر پایهٔ ۱۰ یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "منفی‌شدهٔ یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "بازگرداندن توان ۱۰ یک عدد."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "ریشهٔ دوم یک عدد را باز می‌گرداند."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "بازگرداندن آرک‌کسینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = ".(بازگرداندن آرک‌سینوس درجه (نه رادیان"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "بازگرداندن آرک‌تانژانت درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "بازگرداندن کسینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "بازگرداندن سینوس درجه (نه رادیان)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "بازگرداندن تانژانت یک درجه (نه رادیان)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "متغیر تازه..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "نام متغیر تازه:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "اجازه اظهارات"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "با:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "اجرای تابع تعریف‌شده توسط کاربر «%1»."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "اجرای تابع تعریف‌شده توسط کاربر «%1» و استفاده از خروجی آن."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "با:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "ساختن «%1»"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "انجام چیزی"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "به"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "تابعی می‌سازد بدون هیچ خروجی."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "بازگشت"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "تابعی با یک خروجی می‌سازد."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "اخطار: این تابعی پارامتر تکراری دارد."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "برجسته‌سازی تعریف تابع"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "اگر یک مقدار صحیح است، مقدار دوم را برگردان."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "اخطار: این بلوک احتمالاً فقط داخل یک تابع استفاده می‌شود."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "نام ورودی:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "اضافه کردن ورودی به تابع."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ورودی‌ها"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "افزودن، حذف یا دوباره مرتب‌کردن ورودی این تابع."; -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "پاک کردن گةپةل/قِسةل"; -Blockly.Msg["RENAME_VARIABLE"] = "تغییر نام متغیر..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "تغییر نام همهٔ متغیرهای «%1» به:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "به %1 چسباندن متن %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "الحاق متنی به متغیر «%1»."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "به حروف کوچک"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "به حروف بزرگ عنوان"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "به حروف بزرگ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "بازگرداندن کپی متن در حالتی متفاوت."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "گرفتن اولین حرف"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "گرفتن حرف # از آخر"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "گرفتن حرف #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "گرفتن آخرین حرف"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "گرفتن حرف تصادفی"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "حرفی در موقعیت مشخص‌شده بر می‌گرداند."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "افزودن یک مورد به متن."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "نام نؤیسی"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "اضافه‌کردن، حذف یا مرتب‌سازی بحش‌ها برای تنظیم مجدد این بلوک متنی."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "به حرف # از انتها"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "به حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "به آخرین حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "در متن"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "گرفتن زیرمتن از اولین حرف"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "گرفتن زیرمتن از حرف # به انتها"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "گرفتن زیرمتن از حرف #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "قسمت مشخصی‌شده‌ای از متن را بر می‌گرداند."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "اولین رخداد متن را بیاب"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "آخرین رخداد متن را بیاب"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "در متن %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "شاخصی از اولین آخرین رخ‌داد متن اول در متن دوم بر می‌گرداند. اگر متن یافت نشد %1 باز می‌گرداند."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 خالی است"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "اضافه‌کردن صحیح اگر متن فراهم‌شده خالی است."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ایجاد متن با"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "یک تکه‌ای از متن را با چسپاندن همهٔ تعداد از موارد ایجاد می‌کند."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "طول %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "بازگرداندن عددی از حروف (شامل فاصله‌ها) در متن فراهم‌شده."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "چاپ %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "اعلان برای کاربر با یک عدد."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "اعلان برای کاربر برای یک متن."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "اعلان برای عدد با پیام"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "اعلان برای متن با پیام"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "یک حرف، کلمه یا خطی از متن."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "تراشیدن فاصله‌ها از هر دو طرف"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "تراشیدن فاصله‌ها از طرف چپ"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "تراشیدن فاصله‌ها از طرف چپ"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند."; -Blockly.Msg["TODAY"] = "ایمڕۆ"; -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "آیتم"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "درست‌کردن «تنظیم %1»"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "مقدار این متغیر را بر می‌گرداند."; -Blockly.Msg["VARIABLES_SET"] = "مجموعه %1 به %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "درست‌کردن «گرفتن %1»"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "متغیر برابر با خروجی را مشخص می‌کند."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/lo.js b/lib/blockly/msg/js/lo.js deleted file mode 100644 index 0a37543..0000000 --- a/lib/blockly/msg/js/lo.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "ເພີ່ມຄຳອະທິບາຍ"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "ປ່ຽນຄ່າ:"; -Blockly.Msg["CLEAN_UP"] = "ຈັດລຽນບລັອກໃຫ້ເປັນແຖວ"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ຍຸບບລັອກ"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ຍຸບບລັອກ"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "ສີ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "ສີ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ອັດຕາສ່ວນ"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ປະສົມ"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ປະສົມສອງສີເຂົ້າກັນດ້ວຍອັດຕາສ່ວນ (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://lo.wikipedia.org/wiki/ສີ"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "ເລືອກສີຈາກຈານສີ."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ສຸ່ມສີ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ເລືອກສີແບບສຸ່ມ."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "ຄ່າສີນ້ຳເງິນ"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ຄ່າສີຂຽວ"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ຄ່າສີແດງ"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ສີທີ່ປະກອບດ້ວຍ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ສ້າງສີດ້ວຍການກຳນົດຄ່າສີແດງ, ສີຂຽວ, ແລະສີນ້ຳເງິນ. ຄ່າທັງໝົດຕ້ອງຢູ່ລະຫວ່າງ 0 ເຖິງ 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ອອກຈາກການວົນຊ້ຳ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ເລີ່ມການວົນຊ້ຳຮອບຕໍ່ໄປ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "ອອກຈາກການວົນຊ້ຳທີ່ຢູ່."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "ຂ້າມຜ່ານຄຳສັ່ງທີ່ເຫຼືອຢູ່, ແລະເລີ່ມການວົນຊ້ຳຮອບຕໍ່ໄປ."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "ຄຳເຕືອນ: ບລັອກນີ້ໃຊ້ງານໄດ້ພາຍໃນການວົນຊ້ຳເທົ່ານັ້ນ."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "ຈາກທຸກລາຍການ %1 ໃນລາຍຊື່ %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "ສຳລັບທຸກລາຍການໃນລາຍຊື່, ໃຫ້ຕັ້ງຄ່າຕົວແປ '%1' ເປັນລາຍການ, ແລະເຮັດຕາມຄຳສັ່ງທີ່ກຳນົດໄວ້."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "ນັບດ້ວຍ %1 ຈາກ %2 ເຖິງ %3 ປ່ຽນຄ່າທີລະ %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "ຕົວແປ '%1' ຈະເລີ່ມຈາກຈຳນວນເລີ່ມຕົ້ນໄປຫາຈຳນວນສຸດທ້າຍ, ນັບຕາມຊ່ວງໄລຍະທີ່ກຳນົດ, ແລະເຮັດຕາມບລັອກທີ່ກຳນົດໄວ້."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "ເພີ່ມເງື່ອນໄຂລົງໃນບລັອກ \"ຖ້າ\"."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "ເພີ່ມສິ່ງສຸດທ້າຍ, ກວດຫາຄວາມເປັນໄປໄດ້ທັງໝົດຂອງບລັອກ \"ຖ້າ\"."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "ເພີ່ມ, ລຶບ, ຫຼື ຈັດລຽງບລັອກ \"ຖ້າ\" ນີ້ໃໝ່."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ນອກຈາກນີ້"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ນອກຈາກນີ້ ຖ້າ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ຖ້າ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ຖ້າເງື່ອນໄຂເປັນຈິງ, ກໍຈະເຮັດຕາມທີ່ກຳນົດ."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ເຮັດ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ເຮັດຄືນ %1 ຄັ້ງ"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "ເຮັດຄຳສັ່ງບາງຄຳສັ່ງຄືນຫຼາຍໆຄັ້ງ."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ເຮັດຄືນຈົນກະທັ່ງ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ເຮັດຄືນຂະນະທີ່"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "ຂະນະທີ່ຄ່າເປັນເທັດ, ກໍຈະເຮັດຄຳສັ່ງບາງຄຳສັ່ງ."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ຂະນະທີ່ຄ່າເປັນຈິງ, ກໍຈະເຮັດຄຳສັ່ງບາງຄຳສັ່ງ."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "ລຶບ %1 ບລັອກທັງໝົດຫຼືບໍ່?"; -Blockly.Msg["DELETE_BLOCK"] = "ລຶບບລັອກ"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "ລຶບ %1 ບລັອກ"; -Blockly.Msg["DISABLE_BLOCK"] = "ປິດໃຊ້ງານບລັອກ"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ເຮັດສຳເນົາ"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ເປີດໃຊ້ງານບລັອກ"; -Blockly.Msg["EXPAND_ALL"] = "ຂະຫຍາຍບລັອກ"; -Blockly.Msg["EXPAND_BLOCK"] = "ຂະຫຍາຍບລັອກ"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ອິນພຸດພາຍນອກ"; -Blockly.Msg["HELP"] = "ຊ່ວຍເຫຼືອ"; -Blockly.Msg["INLINE_INPUTS"] = "ອິນພຸດໃນບັນທັດ"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ເທັດ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "ຄືນຄ່າເປັນຈິງ ຫຼື ເທັດ."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ຈິງ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://​​lo.wikipedia.org/wiki/ອະສົມຜົນ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "ຄືນຄ່າຈິງຖ້າຄ່າທີ່ີໃສ່ທັງສອງຄ່ານັ້ນເທົ່າກັນ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດຫຼາຍກວ່າຄ່າທີ່ສອງ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດຫຼາຍກວ່າ ຫຼື ເທົ່າກັບຄ່າທີ່ສອງ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດນ້ອຍກວ່າຄ່າທີ່ສອງ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດນ້ອຍກວ່າ ຫຼື ເທົ່າກັບຄ່າທີ່ສອງ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "ຄືນຄ່າຈິງຖ້າຄ່າທີ່ີໃສ່ທັງສອງຄ່ານັ້ນບໍ່ເທົ່າກັນ."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ບໍ່ %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທີ່ໃສ່ເປັນເທັດ. ຄືນຄ່າເປັນເທັດຖ້າຄ່າທີ່ໃສ່ເປັນຈິງ."; -Blockly.Msg["LOGIC_NULL"] = "ບໍ່ກຳນົດ"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "ຄືນຄ່າບໍ່ກຳນົດ."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ແລະ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ຫຼື"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທັງສອງເປັນຈິງ."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "ຄືນຄ່າເປັນຈິງຖ້າມີຄ່າຢ່າງນ້ອຍໜຶ່ງຄ່າທີ່ເປັນຈິງ."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ທົດສອບ"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ຖ້າ ເປັນເທັດ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ຖ້າ ເປັນຈິງ"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "ກວດສອບເງື່ອນໄຂໃນ 'ທົດສອບ'. ຖ້າເງື່ອນໄຂເປັນຈິງ, ຄືນຄ່າ 'ຖ້າ ເປັນຈິງ'; ຖ້າເງື່ອນໄຂເປັນເທັດ, ໃຫ້ຄືນຄ່າ 'ຖ້າ ເປັນເທັດ'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; // untranslated -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; // untranslated -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://lo.wikipedia.org/wiki/ຈຳນວນ"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ຈຳນວນໜຶ່ງ."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Create variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ຊື່ຕົວແປໃໝ່:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "ເຮັດຄືນ"; -Blockly.Msg["REMOVE_COMMENT"] = "ເອົາຄຳອະທິບາຍອອກ"; -Blockly.Msg["RENAME_VARIABLE"] = "ປ່ຽນຊື່ຕົວແປ..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "ປ່ຽນຊື່ຕົວແປ '%1' ທັງໝົດເປັນ:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "ມື້ນີ້"; -Blockly.Msg["UNDO"] = "ກັບຄືນ"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ລາຍການ"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/lrc.js b/lib/blockly/msg/js/lrc.js deleted file mode 100644 index 936607f..0000000 --- a/lib/blockly/msg/js/lrc.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "نٱزٱرتو ناْ اْزاف بٱکؽت"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "ٱرزشت آلشت کو:"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "کوچک کردن برشتؽا"; -Blockly.Msg["COLLAPSE_BLOCK"] = "کوچک کردن برشت"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رٱنڳ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رٱنڳ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نسڤٱت"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "شؽڤسٱ"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "هٱر کوم د رٱنڳؽا ناْ ڤا نسڤٱت داٛئٱ بٱ بٱشؽڤن(0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "یاٛ رٱنڳ د رٱنڳدو اْنتخاو بٱکؽت"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "رٱنڳ بٱختٱکی"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "یاٛ ٱنڳ بٱختٱکی اْنتخاو بٱکؽت"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "آوئی"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "سۉز"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "سۏز"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "رٱنڳ ڤا"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "هٱلقٱ ناْ خراو کو"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "هٱلقٱ شومل بیٱ ناْ خراو کو"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "سی هٱر قلٱم %1 د نومگٱ %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "شماردن وا %1 د %2 سی %3 ڤا %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "هنی"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "هنی ٱر"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ٱر"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ٱنجوم باٛ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 تکرار کو چٱن بار"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تا تکرار کو"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "تا تکرار کو"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; // untranslated -Blockly.Msg["DELETE_BLOCK"] = "پاکسا کردن برشت"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "پاکسا کردن%1 د برشتؽا"; -Blockly.Msg["DISABLE_BLOCK"] = "ناکشتگر کردن برشت"; -Blockly.Msg["DUPLICATE_BLOCK"] = "کپی کردن"; -Blockly.Msg["DUPLICATE_COMMENT"] = "نٱزٱر تکراری"; -Blockly.Msg["ENABLE_BLOCK"] = "کنشتگر کردن برشت"; -Blockly.Msg["EXPAND_ALL"] = "گٱپ کردن برشتؽا"; -Blockly.Msg["EXPAND_BLOCK"] = "گٱپ کردن برشت"; -Blockly.Msg["EXTERNAL_INPUTS"] = "دادٱیا ڤ دری"; -Blockly.Msg["HELP"] = "هومياری"; -Blockly.Msg["INLINE_INPUTS"] = "دادٱیا مؽنجا"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "یاٛ نومگٱ هالٛی دۏرس بٱکؽت"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "نومگٱ"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "ٱڤلی"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# تا آخر"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "گرتن"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "گرتن ۉ جا ڤ جا بیئن"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "آخر"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "بٱختٱکی"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ڤرداشتن"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "سی#"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "سی آخر"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "د نومگٱ"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 هالٛیٱ"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "چی"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "بٱنؽ د"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "غلٱت"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "هٱم غلٱت ۉ هٱم دۏرس ڤرگٱردن"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "راس ۉ دۏرس"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "نٱ %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "خونسا"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "ۉ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "یا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "آزماشت کردن"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ٱر غلٱت بی"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ٱر دۏرس بی"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "ڤاْ ٱندازٱ دۏ شمارٱ ڤرگٱردن."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "آلشت بٱکؽت %1 وا %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "یٱ ڤا بٱئر بیٱ"; -Blockly.Msg["MATH_IS_EVEN"] = "همیشٱ هؽسش"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "مٱنفی ٱ"; -Blockly.Msg["MATH_IS_ODD"] = "تٱنڳؽا ٱ"; -Blockly.Msg["MATH_IS_POSITIVE"] = "موسبٱتٱ"; -Blockly.Msg["MATH_IS_PRIME"] = "ڤٱ ٱڤلٱ"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "همٱشٱ"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "یاٛ شمارٱ."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "مؽنجاگٱ نومگٱ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "بؽشترونٱ د نومگٱ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "مؽنجا نومگٱ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "کٱمترونٱ د نومگٱ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "بؽشری د نومگٱ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "جٱم کردن نومگٱ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "گرد کردن"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ڤ هار گرد کردن"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ڤ رۉ گرد کردن"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "تموم ۉ کمال"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "چارسوک ریشٱ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "آلشتگر تازٱ..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "نوم آلشتگر تازٱ:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "نوع آلشتگر تازٱ"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ڤا:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ڤا:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "دۏرس کردن%1"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "یاٛ کار ٱنجوم باٛئؽت"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "سی"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "ڤرگٱردنیئن"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "نوم دادٱ:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "دادٱیا"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "د نۊ ٱنجوم داٛئن"; -Blockly.Msg["REMOVE_COMMENT"] = "هٱزف نٱزٱر"; -Blockly.Msg["RENAME_VARIABLE"] = "د نۊ نوم نؽاین آلشتگر..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "د نو نوم نؽاین %1 د تموم آلشتگریا د:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "سی ڤاج کوچک"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "سی هٱرف گٱپ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "پاٛڤٱسن"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "سی ڤاج# تا آخر"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "سی ڤاج#"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "سی آخری ڤاج"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "د مٱتن"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "د مٱتن %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 هالٛیٱ"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "دۏرس کردن مٱتن ڤا"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "اؽمرۊ"; -Blockly.Msg["UNDO"] = "ٱنجوم نٱداٛئن"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "قلٱم"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "میزوکاری %1 سی %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/lt.js b/lib/blockly/msg/js/lt.js deleted file mode 100644 index 8f2bf74..0000000 --- a/lib/blockly/msg/js/lt.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Palikti komentarą"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Negalima ištrinti kintamojo '%1', nes jis yra dalis funkcijos '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Keisti reikšmę:"; -Blockly.Msg["CLEAN_UP"] = "Išvalyti blokus"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Suskleisti blokus"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Suskleisti bloką"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "1 spalva"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "2 spalva"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "santykis"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "sumaišyk"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Sumaišo dvi spalvas su pateiktu santykiu (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://lt.wikipedia.org/wiki/Spalva"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Pasirinkti spalvą iš paletės."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "atsitiktinė spalva"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Pasirinkti spalvą atsitiktinai."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "mėlyna"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "žalia"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "raudona"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "spalva su"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Spalvą galima sudaryti iš raudonos, žalios ir mėlynos dedamųjų. Kiekvienos intensyvumas nuo 0 iki 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "nutraukti kartojimą"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "šį kartą praleisti likusius veiksmus ir tęsti kartojimą"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Nutraukia (artimiausią) vykstantį kartojimą."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Praleidžia žemiau išvardintus kartojimo veiksmus (ir tęsia darbą nuo kartojimo pradinio veiksmo)."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Atsargiai: šis blokas gali būt naudojamas tik kartojimo bloko viduje."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "kartok su kiekvienu %1 iš sąrašo %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Kartok veiksmus, kol kintamasis \"%1\" paeiliui gauna kiekvieną sąrašo reikšmę."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "kartok, kai %1 kinta nuo %2 iki %3 po %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Imama kintamoji '%1' reikšmė nuo pradinio skaičiaus iki pabaigos skaičiaus, skaičiuojant nustatytais intervalais ir atliekant nustatytus blokus."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Pridėti sąlygą „jei“ blokui."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Pridėti veiksmų vykdymo variantą/\"šaką\", kai netenkinama nė viena sąlyga."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Galite pridėt/pašalinti/pertvarkyti sąlygų \"šakas\"."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "kitu atveju"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "arba jei"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "jei"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Jeigu sąlyga tenkinama, tai atlik veiksmus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Jei sąlyga tenkinama, atlikti jai priklausančius veiksmus, o jei ne -- atlikti kitus nurodytus veiksmus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Jei pirma sąlyga tenkinama, atlikti jai priklausančius veiksmus, O jei ne, tikrinti antrą sąlygą -- ir jei ši tenkinama, atlikti jos veiksmus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Jei pirma sąlyga tenkinama, atlikti jai priklausančius veiksmus, O jei ne, tikrinti antrą sąlygą -- ir jei ši tenkinama, atlikti jos veiksmus. Kitais atvejais -- atlikti paskutinio bloko veiksmus."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "daryti"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "pakartokite %1 kartus"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Leidžia atlikti išvardintus veiksmus kelis kartus."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "kartok, kol pasieksi"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "kartok kol"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Kartoja veiksmus, kol bus pasiekta nurodyta sąlyga."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Kartoja veiksmus, kol sąlyga tenkinama."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ištrinti visus %1 blokus?"; -Blockly.Msg["DELETE_BLOCK"] = "Ištrinti bloką"; -Blockly.Msg["DELETE_VARIABLE"] = "Ištrinti „%1“ kintamąjį"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Ištrinti %1 '%2' panaudojimus?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Ištrinti %1 blokus"; -Blockly.Msg["DISABLE_BLOCK"] = "Išjungti bloką"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Kopijuoti"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Dubliuoti Komentarą"; -Blockly.Msg["ENABLE_BLOCK"] = "Įjungti bloką"; -Blockly.Msg["EXPAND_ALL"] = "Išskleisti blokus"; -Blockly.Msg["EXPAND_BLOCK"] = "Išskleisti bloką"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Išdėstyti stulpeliu, kai daug parametrų"; -Blockly.Msg["HELP"] = "Pagalba"; -Blockly.Msg["INLINE_INPUTS"] = "Išdėstyti vienoje eilutėje"; -Blockly.Msg["IOS_CANCEL"] = "Atšaukti"; -Blockly.Msg["IOS_ERROR"] = "Klaida"; -Blockly.Msg["IOS_OK"] = "Gerai"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Pridėti Įvestį"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ši funkcija turi pasikartojančias įvestis"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ĮVESTYS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Pridėti"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+Pridėti Kintamąjį"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Ištrinti"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Negalite naudoti tuščio kintamojo pavadinimo."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Pervadinti"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Kintamojo pavadinimas"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "tuščias sąrašas"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Grąžina sąrašą, ilgio 0, neturintį duomenų"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "sąrašas"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Pridėti, pašalinti arba paskirstyti skyrius, kad pertvarkyti šį teksto bloką."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "sukurti sąrašą su"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Pridėti elementą į sąrašą."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Sukurti sąrašą iš bet kokio skaičiaus elementų."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "pirmas"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# nuo galo"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "paimk"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "paimk ir ištrink"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "paskutinis"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "atsitiktinis"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "pašalinti"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Grąžina pirmąjį sąrašo elementą."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Gražina objektą į nurodyta poziciją sąraše."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Grąžina paskutinį elementą iš sąrašo."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Grąžina atsitiktinį elementą iš sąrašo."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Pašalina pirmą objektą sąraše."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Pašalina objektą iš nurodytos vietos sąraše."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Pašalina paskutinį objektą sąraše."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Pašalina atsitiktinį objektą sąraše."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "iki # nuo galo"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "iki #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "iki galo"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "sąrašo dalis nuo pradžios"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "sąrašo dalis nuo # nuo galo"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "sąrašo dalis nuo #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Sukuria nurodytos sąrašo dalies kopiją."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 yra paskutinis objektas."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 yra pirmasis objektas."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "rask pirmą reikšmę"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "rask paskutinę reikšmę"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Grąžina pirmos/paskutinės reikšmės eilės nr. sąraše. Grąžina %1, jei reikšmės neranda."; -Blockly.Msg["LISTS_INLIST"] = "sąraše"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 yra tuščias"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Grąžina „true“, jeigu sąrašas tuščias."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "ilgis %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Grąžina sąrašo ilgį."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "sukurk sąrašą, kuriame %1 bus %2 kartus"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "kaip"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "įterpk į vietą"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "priskirk elementui"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Įterpia objektą į sąrašo pradžią."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Įterpią objektą į nurodytą poziciją sąraše."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Įterpia objektą į atsitiktinę sąrašo vietą."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "didėjančia tvarka"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "mažėjančia tvarka"; -Blockly.Msg["LISTS_SORT_TITLE"] = "rūšiuoti %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Rūšiuoti sąrašo kopiją."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "abecėlės, ignoruoti raidžių dydį"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "skaitmeninis"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "abėcėlės"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "su dalikliu"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "klaidinga"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Reikšmė gali būti \"teisinga\"/\"Taip\" arba \"klaidinga\"/\"Ne\"."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "tiesa"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Tenkinama, jei abu reiškiniai lygūs."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Grįžti tiesa, jei pirmoji įvestis didesnė nei antroji įvestis."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Grįžti tiesa, jei pirma įvestis didesnė arba lygi antrajai įvesčiai."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Grįžti tiesa, jei pirma įvestis mažesnė nei antra įvestis."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Grįžti tiesa, jei pirma įvestis mažesnė arba lygi antrajai įvesčiai."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Grįžti tiesa, jeigu abi įvestys ne lygios tarpusavyje."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ne %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Grįžti tiesa, jei įvestis klaidinga. Grįžti klaidinga, jei įvestis teisinga."; -Blockly.Msg["LOGIC_NULL"] = "nieko"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Reikšmė nebuvo nurodyta..."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ir"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "arba"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Bus teisinga, kai abi sąlygos bus tenkinamos."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Grįžti tiesa, jei bent viena įvestis teisinga."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "sąlyga"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "jei ne"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "jei taip"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Jeigu sąlygą tenkinama, grąžina pirmą reikšmę, o jei ne - antrąją."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Grąžina dviejų skaičių sumą."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Grąžina dviejų skaičių dalmenį."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Grąžina dviejų skaičių skirtumą."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Grąžina dviejų skaičių sandaugą."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Grąžina pirmą skaičių pakeltą laipsniu pagal antrą skaičių."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "padidink %1 (emptypage) %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Prideda skaičių prie kintamojo '%1'. Kai skaičius neigiamas - gaunasi atimtis."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Grįžti viena iš pagrindinių konstantų: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (begalybė)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "apribok %1 tarp %2 ir %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Apriboti skaičių, kad būtų tarp nustatytų ribų (imtinai)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "yra dalus iš"; -Blockly.Msg["MATH_IS_EVEN"] = "yra lyginis"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "yra neigiamas"; -Blockly.Msg["MATH_IS_ODD"] = "yra nelyginis"; -Blockly.Msg["MATH_IS_POSITIVE"] = "yra teigiamas"; -Blockly.Msg["MATH_IS_PRIME"] = "yra pirminis"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Patikrina skaičiaus savybę: (ne)lyginis/pirminis/sveikasis/teigiamas/neigiamas/dalus iš x."; -Blockly.Msg["MATH_IS_WHOLE"] = "yra sveikasis"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "dalybos liekana %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Grįžti likučiu nuo dviejų skaičių dalybos."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://lt.wikipedia.org/wiki/Skaičius"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Skaičius."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "vidurkis"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "didžiausia reikšmė sąraše"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana sąrašui"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "mažiausia reikšmė sąraše"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "statistinė moda sąrašui"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "atsitiktinis elementas iš sąrašo"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standartinis nuokrypis sąraše"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Grįžti vidurkiu (aritmetinis vidurkis) iš skaitinių reikšmių sąraše."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Grįžti didžiausiu skaičiumi sąraše."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Grąžinti sąrašo medianą."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Grįžti mažiausiu skaičiumi sąraše."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Grąžinti sąrašą dažniausių elementų sąraše."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Grąžinti atsitiktinį elementą iš sąrašo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Grįžti standartine pakraipa iš sąrašo."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "didžiausia reikšmė"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "atsitiktinė trupmena"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Atsitiktinė trupmena nuo 0 (imtinai) iki 1 (neimtinai)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "atsitiktinis sveikas sk. nuo %1 iki %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Grįžti atsitiktinį sveikąjį skaičių tarp dviejų nustatytų ribų, imtinai."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://lt.wikipedia.org/wiki/Apvalinimas"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "apvalink"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "apvalink žemyn"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "apvalink aukštyn"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Suapvalinti skaičių į žemesnę ar aukštesnę reikšmę."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "modulis"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadratinė šaknis"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Skaičiaus modulis - reikšmė be ženklo (panaikina minusą)."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Grąžinti skaičių laipsniu e."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Grąžinti skaičiaus natūrinį logaritmą."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Grįžti 10 pagrindinių logaritmų iš skaičiaus."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Grąžina skaičiui priešingą skaičių."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Grąžinti skaičių laipsniu 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Grįžti kvadratinę šaknį iš skaičiaus."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://lt.wikipedia.org/wiki/Trigonometrinės_funkcijos"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Grąžinti skaičiaus arkkosinusą."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Grąžinti skaičiaus arksinusą."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Grąžinti skaičiaus arktangentą."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Grąžinti laipsnio kosinusą (ne radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Grąžinti laipsnio sinusą (ne radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Grąžinti laipsnio tangentą (ne radiano)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Sukurti spalvos kintamąjį..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Sukurti skaičiaus kintamąjį..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Sukurti kintamąjį"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Naujo kintamojo pavadinimas:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Naujas kintamojo tipas:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "leisti vidinius veiksmus"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "pagal:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Vykdyti sukurtą komandą \"%1\"."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Įvykdyti komandą \"%1\" ir naudoti jos suskaičiuotą (atiduotą) reikšmę."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "su:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Sukurti \"%1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Apibūdinkite šią funkciją..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "daryk kažką"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "komanda:"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Sukuria procedūrą - komandą, kuri nepateikia jokio rezultato (tik atlieka veiksmus)."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "duok"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Sukuria funkciją - komandą, kuri ne tik atlieka veiksmus bet ir pateikia (grąžina/duoda) rezultatą."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Ši komanda turi du vienodus gaunamų duomenų pavadinimus."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Jeigu pirma reikšmė yra teisinga (sąlyga tenkinama), grąžina antrą reikšmę."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Perspėjimas: šis blokas gali būti naudojamas tik aprašant funkciją."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "parametro pavadinimas:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Pridėti funkcijos parametrą (gaunamų duomenų pavadinimą)."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "gaunami duomenys (parametrai)"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Tvarkyti komandos gaunamus duomenis (parametrus)."; -Blockly.Msg["REDO"] = "Atkurti"; -Blockly.Msg["REMOVE_COMMENT"] = "Pašalinti komentarą"; -Blockly.Msg["RENAME_VARIABLE"] = "Pervardyti kintamajį..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Pervadinti visus '%1' kintamuosius į:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "prie %1 pridėk tekstą %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Pridėti tekstą prie kintamojo '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = " mažosiom raidėm"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = " Pavadinimo Raidėmis"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = " DIDŽIOSIOM RAIDĖM"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Kitu atvėju, grąžina teksto kopiją."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "gauti pirmą raidę"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "raidė nuo galo #"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "gauti raidę #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "gauti paskutinę raidę"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "gauti atsitiktinę raidę"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Grąžina raidę į tam tikrą poziciją."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "skaičius %1 iš %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Suskaičiuoti, kiek kartų šis tekstas kartojasi kitame tekste."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Pridėti teksto elementą."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "sujunk"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Pridėti, pašalinti arba paskirstyti skyrius, kad pertvarkyti šį teksto bloką."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "iki raidės nuo galo #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "iki raidės #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "iki pabaigos"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "tekste"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "dalis nuo pradžios"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "dalis nuo raidės #"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "dalis nuo raidės #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Grąžina tam tikrą teksto dalį."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "rask,kur pirmą kartą paminėta"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "rask,kur paskutinį kartą paminėta"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "tekste %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Grąžina pirmą/paskutinę pirmo teksto reikšmę antrame tekste. Grąžina %1, jei tekstas nerastas."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 yra tuščias"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Grįžti tiesa, jei numatytas tekstas tuščias."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "sukurti tekstą su"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Sukurti teksto fragmentą sujungiant bet kokį skaičių fragmentų."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "teksto %1 ilgis"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Suranda teksto simbolių kiekį (įskaitant ir tarpus)"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "spausdinti %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Spausdinti nurodytą tekstą, skaičių ar kitą reikšmę."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prašyti vartotoją įvesti skaičių."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prašyti vartotoją įvesti tekstą."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "paprašyk įvesti skaičių :"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "paprašyk įvesti tekstą :"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "pakeisti %1 į %2 šiame %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Pašalinti visas teksto dalis kitame tekste."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "atbulai %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Apversti teksto simbolių tvarką."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Tekstas (arba žodis, ar raidė)"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "išvalyk tarpus šonuose"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "išvalyk tarpus pradžioje"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "išvalyk tarpus pabaigoje"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Grąžina teksto kopiją, pašalinus tarpus iš vieno ar abiejų kraštų."; -Blockly.Msg["TODAY"] = "Šiandien"; -Blockly.Msg["UNDO"] = "Anuliuoti"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elementas"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Sukurk \"priskirk %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "priskirk %1 = %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Sukurti 'kintamasis %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Kintamasis, pavadinimu '%1', jau egzistuoja."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Kintamasis, pavadinimu '%1', jau egzistuoja kaip kitas tipas: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Kažką pasakykite..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/lv.js b/lib/blockly/msg/js/lv.js deleted file mode 100644 index 0cf5224..0000000 --- a/lib/blockly/msg/js/lv.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Pievienot komentāru"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Mainīt vērtību:"; -Blockly.Msg["CLEAN_UP"] = "Sakopt blokus"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Sakļaut blokus"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Sakļaut bloku"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "1. krāsa"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "2. krāsa"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "attiecība"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "sajaukt"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Sajauc kopā divas krāsas ar doto attiecību (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://lv.wikipedia.org/wiki/Krāsa"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Izvēlēties krāsu no paletes."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "nejauša krāsa"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Izvēlēties krāsu pēc nejaušības principa."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "zila"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zaļa"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "sarkana"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "veido krāsu no"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Izveidot krāsu ar norādīto daudzumu sarkanā, zaļā un zilā toņu. Visas vērtības ir starp 0 un 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "iet ārā no cikla"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "turpināt ar cikla nākamo iterāciju"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Iet ārā no iekļaujošā cikla"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Nepildīt atlikušo cikla daļu bet sākt nākamo iterāciju."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Brīdinājums: šo bloku drīkst izmantot tikai cikla iekšienē."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "visiem %1 no saraksta %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Katram objektam no saraksta piešķirt mainīgajam '%1' šo objektu un izpildīt komandas."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "skaitīt %1 no %2 līdz %3 ar soli %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Ļauj mainīgajam '%1' pieņemt vērtības no sākuma līdz beigu vērtībai, un izpildīt iekļautos blokus katrai no šīm pieņemtajām vērtībām."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Pievienot nosacījumu \"ja\" blokam."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Pievienot gala nosacījumu \"ja\" blokam."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Pievienot, noņemt vai mainīt sekciju secību šim \"ja\" blokam."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "citādi"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "citādi, ja"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ja"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ja vērtība ir patiesa, tad izpildīt komandas."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ja vērtība ir patiesa, tad izpildīt pirmo bloku ar komandām. Citādi izpildīt otro bloku ar komandām."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ja pirmā vērtība ir patiesa, tad izpildīt pirmo bloku ar komandām. Citādi, ja otrā vērtība ir patiesa, izpildīt otro bloku ar komandām."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ja pirmā vērtība ir patiesa, tad izpildīt pirmo bloku ar komandām. Citādi, ja otrā vērtība ir patiesa, izpildīt otro bloku ar komandām. Ja neviena no vertībām nav patiesa, tad izpildīt pēdējo bloku ar komandām."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://lv.wikipedia.org/wiki/Cikls"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "izpildi"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "atkārtot %1 reizes"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Izpildīt komandas vairākas reizes."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "atkārtot līdz"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "atkārtot kamēr"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Izpildīt komandas, kamēr vērtība ir nepatiesa."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Izpildīt komandas, kamēr vērtība ir patiesa."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Izdzēst visus %1 blokus?"; -Blockly.Msg["DELETE_BLOCK"] = "Izmest bloku"; -Blockly.Msg["DELETE_VARIABLE"] = "Izdzēst mainīgo \"%1\""; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Mainīgais \"%2\" tiek izmantots %1 vietās. Dzēst?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Izmest %1 blokus"; -Blockly.Msg["DISABLE_BLOCK"] = "Atspējot bloku"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Dublēt"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Iespējot bloku"; -Blockly.Msg["EXPAND_ALL"] = "Izvērst blokus"; -Blockly.Msg["EXPAND_BLOCK"] = "Izvērst bloku"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Ārējie ievaddati"; -Blockly.Msg["HELP"] = "Palīdzība"; -Blockly.Msg["INLINE_INPUTS"] = "Iekšējie ievaddati"; -Blockly.Msg["IOS_CANCEL"] = "Atcelt"; -Blockly.Msg["IOS_ERROR"] = "Kļūda"; -Blockly.Msg["IOS_OK"] = "Labi"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Pievienot"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Pievienot mainīgo"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Dzēst"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Pārsaukt"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Mainīgā nosaukums"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "izveidot tukšu sarakstu"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Izveidot sarakstu bez elementiem tajā."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "saraksts"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Pievienot, noņemt vai mainīt sekciju secību šim \"saraksta\" blokam."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "izveidot sarakstu no"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Pievienot objektu sarakstam."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Izveidot sarakstu no jebkura skaita vienību."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "pirmo"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "no beigām numur"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "paņemt"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "paņemt uz dzēst"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "pēdējo"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "nejauši izvēlētu"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "dzēst"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Atgriež pirmo saraksta elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Atgriež norādīto elementu no saraksta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Atgriež pēdējo saraksta elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Atgriež nejauši izvēlētu saraksta elementu"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Atgriež un izdzēš saraksta pirmo elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Atgriež un izdzēš no saraksta norādīto elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Atgriež un izdzēš saraksta pēdējo elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Atgriež un izdzēš no saraksta nejauši izvēlētu elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Izdēš pirmo saraksta elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Izdēš norādīto elementu no saraksta."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Izdēš pēdējo saraksta elementu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Izdzēš no saraksta nejauši izvēlētu elementu."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "līdz pozīcijai no beigām"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "līdz pozīcijai"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "līdz beigām"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "paņemt apakšsarakstu no sākuma"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "paņemt apakšsarakstu no beigām no pozīcijas"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "paņemt apakšsarakstu no pozīcijas"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Nokopēt daļu no dotā saraksta."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "Saraksta elementu numerācija no beigām sākas no %1"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "Saraksta elementu numerācija sākas no %1"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "atrast pirmo elementu, kas vienāds ar"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "atrast pēdējo elementu, kas vienāds ar"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Atgriež pozīciju sarakstā, kurā atrodas dotais objekts. Atgriež %1 ja objekts neatrodas sarakstā."; -Blockly.Msg["LISTS_INLIST"] = "sarakstā"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ir tukšs"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Patiess, ja saraksts ir tukšs."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 garums"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Atgriež elementu skaitu srakstā."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "saraksts no %1 atkārtots %2 reizes"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Izveido sarakstu, kas sastāv no dotās vērtības noteiktu reižu skaita."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "kā"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ievieto"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "aizvieto"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Ievieto elementu saraksta sākumā."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Ievieto sarakstā elementu norādītajā pozīcijā."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Pievieno elementu saraksta beigās."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Ievieto sarakstā jaunu elementu nejauši izvēlētā pozīcijā."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Aizvieto elementu saraksta sākumā."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Aizvieto sarakstā elementu norādītajā pozīcijā."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Aizvieto elementu saraksta beigās."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Aizvieto sarakstā elementu nejauši izvēlētā pozīcijā."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "augošā"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "dilstošā"; -Blockly.Msg["LISTS_SORT_TITLE"] = "Sakārtot sarakstu no %3 elementiem %2 secībā %1"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Saraksta sakārtota kopija."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "pēc alfabēta, ignorēt mazos/lielos burtus"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "skaitliski"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "pēc alfabēta"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "vārdu saraksts no teksta"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "izveidot tekstu no saraksta"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Apvienot tekstu izmantojot atdalītāju."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Sadalīt tekstu vārdos izmantojot atdalītāju."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "ar atdalītāju"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "aplams"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Atgriež rezultātu \"patiess\" vai \"aplams\"."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "patiess"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://lv.wikipedia.org/wiki/Nevien%C4%81d%C4%ABba"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Patiess, ja abas puses ir vienādas."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Patiess, ja kreisā puse ir lielāka par labo pusi."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Patiess, ja kreisā puse ir lielāka vai vienāda ar labo pusi."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Patiess, ja kreisā puse ir mazāka par labo pusi."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Patiess, ja kreisā puse ir mazāka vai vienāda ar labo pusi."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Patiess, ja abas puses nav vienādas."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ne %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Patiess, ja arguments ir aplams."; -Blockly.Msg["LOGIC_NULL"] = "nekas"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Atgriež neko."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "un"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "vai"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Patiess, ja abas puses ir patiesas."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Patiess, ja vismaz viena puse ir patiesa."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "nosacījums"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ja aplams"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ja patiess"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Pārbaudīt nosacījumu. Ja 'nosacījums' ir patiess, atgriež vērtību 'ja patiess', pretējā gadījumā vērtību 'ja aplams'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://lv.wikipedia.org/wiki/Aritm%C4%93tika"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Atgriež divu skaitļu summu."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Atgriež divu skaitļu dalījumu."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Atgriež divu skaitļu starpību."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Atgriež divu skaitļu reizinājumu."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Atgriež pirmo skaitli kāpinātu pakāpē otrais skaitlis."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "izmainīt %1 par %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Pieskaitīt doto skaitli mainīgajam '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Atgriež kādu no matemātikas konstantēm: π (3.141…), e (2.718…), φ (1.618…), √(2) (1.414…), √(½) (0.707…), ∞ (bezgalība)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ierobežot %1 no %2 līdz %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ierobežo skaitli no noteiktajās robežās (ieskaitot galapunktus)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "dalās bez atlikuma ar"; -Blockly.Msg["MATH_IS_EVEN"] = "ir pāra"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ir negatīvs"; -Blockly.Msg["MATH_IS_ODD"] = "ir nepāra"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ir pozitīvs"; -Blockly.Msg["MATH_IS_PRIME"] = "ir pirmskaitlis"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Pārbauda, vai skaitlis ir pāra, nepāra, vesels, pozitīvs, negatīvs vai dalās ar noteiktu skaitli. Atgriež \"patiess\" vai \"aplams\"."; -Blockly.Msg["MATH_IS_WHOLE"] = "ir vesels"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "atlikums no %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Atlikums no divu skaitļu dalījuma."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://lv.wikipedia.org/wiki/Skaitlis"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Skaitlis."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "vidējais"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "lielākais"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediāna"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "mazākais"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "moda"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "nejaušs"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standartnovirze"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summa"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Atgriež dotā saraksta vidējo aritmētisko vērtību."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Atgriež lielāko vērtību no saraksta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Atgriež dotā saraksta mediānas vērtību."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Atgriež mazāko vērtību no saraksta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Atgriež dotā saraksta biežāk sastopamās vērtības (modas)."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Atgriež nejauši izvēlētu vērtību no dotā saraksta."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Atgriež dotā saraksta standartnovirzi."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Saskaitīt visus skaitļus no dotā saraksta."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "nejaušs skaitlis [0..1)"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Atgriež nejaušu reālo skaitli robežās no 0 (iekļaujot) līdz 1 (neiekļaujot)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "nejaušs vesels skaitlis no %1 līdz %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Atgriež nejaušu veselu skaitli dotajās robežās (iekļaujot galapunktus)"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "noapaļot"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "apaļot uz leju"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "apaļot uz augšu"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Noapaļot skaitli uz augšu vai uz leju."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://lv.wikipedia.org/wiki/Kvadr%C4%81tsakne"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolūtā vērtība"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadrātsakne"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Atgriež skaitļa absolūto vērtību."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Atgriež e pakāpē dotais skaitlis."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Atgriež skaitļa naturālo logaritmu."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Atgriež skaitļa logaritmu pie bāzes 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Atgriež pretējo skaitli."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Atgriež 10 pakāpē dotais skaitlis."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Atgriež skaitļa kvadrātsakni."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://lv.wikipedia.org/wiki/Trigonometrisk%C4%81s_funkcijas"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Arkkosinuss (grādos)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Arksinuss (grādos)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Arktangenss (grādos)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Kosinuss no grādiem (nevis radiāniem)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Sinuss no grādiem (nevis radiāniem)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Tangenss no grādiem (nevis radiāniem)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Izveidot mainīgo..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Jaunā mainīgā vārds:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "atļaut apakškomandas"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ar:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Izpildīt iepriekš definētu funkcju '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Izpildīt iepriekš definētu funkcju '%1' un izmantot tās rezultātu."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ar:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Izveidot '%1' izsaukumu"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Funkcijas apraksts..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "darīt kaut ko"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "funkcija"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Izveido funkciju, kas neatgriež rezultātu."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "atgriezt"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Izveido funkciju, kas atgriež rezultātu."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Brīdinājums: funkcijai ir vienādi argumenti."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Izcelt funkcijas definīciju"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ja pirmā vērtība ir \"patiesa\", tad atgriezt otro vērtību."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Brīdinājums: Šo bloku var izmantot tikai funkcijas definīcijā."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "arguments:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Pievienot funkcijai argumentu."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "argumenti"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Pievienot, pārkārtot vai dzēst funkcijas argumentus."; -Blockly.Msg["REDO"] = "Atcelt atsaukšanu"; -Blockly.Msg["REMOVE_COMMENT"] = "Noņemt komentāru"; -Blockly.Msg["RENAME_VARIABLE"] = "Pārdēvēt mainīgo..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Pārdēvējiet visus '%1' mainīgos:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "tekstam %1 pievienot tekstu %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Pievienot tekstu mainīgajam '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "kā mazie burti"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "kā Nosaukuma Burti"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "kā LIELIE BURTI"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Atgriež teksta kopiju ar mainītiem lielajiem/mazajiem burtiem."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "paņemt pirmo burtu"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "paņemt no beigām burtu #"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "paņemt burtu #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "paņemt pēdējo burtu"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "paņemt nejaušu burtu"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Atgriež burtu dotajā pozīcijā."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Pievienot tekstam objektu."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "savienot"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Pievienot, noņemt vai mainīt sekciju secību šim \"teksta\" blokam."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "līdz burtam nr (no beigām)"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "līdz burtam nr"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "līdz pēdējam burtam"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "no teksta"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "paņemt apakšvirkni no sākuma"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "paņemt apakšvirkni no beigām sākot ar burta nr"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "paņemt apakšvirkni sākot no burta nr"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Atgriež norādīto teksta daļu."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "meklēt pirmo vietu, kur sākas teksts"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "meklēt pēdējo vietu, kur sākas teksts"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "tekstā %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Meklē pirmā teksta rindu otrajā tekstā. Atgriež pozīciju otrajā tekstā, kurā sākas pirmais teksts. Atgriež %1 ja pirmā teksta rinda nav atrasta."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ir tukšs"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Patiess, ja teksts ir tukšs."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "veidot tekstu no"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Izveidot tekstu savienojot dotos argumentus."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "garums tekstam %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Atgriež burtu skaitu (ieskaitot atstarpes) dotajā tekstā."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "parādīt %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Parādīt norādīto tekstu vai skaitli."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Palūgt lietotāju ievadīt skaitli."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Palūgt lietotāju ievadīt tekstu."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "palūgt ievadīt skaitli ar ziņu"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "palūgt ievadīt tekstu ar ziņu"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Burts, vārds vai jebkāda teksta rinda."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "Dzēst atstarpes no abām pusēm"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "Dzēst atstarpes no sākuma"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "Dzēst atstarpes no beigām"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Atgriež teksta kopiju ar noņemtām atstarpēm vienā vai otrā galā."; -Blockly.Msg["TODAY"] = "Šodiena"; -Blockly.Msg["UNDO"] = "Atsaukt"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "vienums"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Izveidot piešķiršanu mainīgajam %1"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Atgriež mainīgā vērtību."; -Blockly.Msg["VARIABLES_SET"] = "piešķirt mainīgajam %1 vērtību %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Izveidot 'ņem %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Piešķirt mainīgajam vērtību."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Mainīgais '%1' jau eksistē."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/mk.js b/lib/blockly/msg/js/mk.js deleted file mode 100644 index cbe368a..0000000 --- a/lib/blockly/msg/js/mk.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Додај коментар:"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Променливата '%1' не може се избрише бидејќи е дел од определението на функцијата '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Смена на вредност:"; -Blockly.Msg["CLEAN_UP"] = "Исчисти блокови"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Собери блокови"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Собери блок"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "боја 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "боја 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "сооднос"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "смешај"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Меша две бои во даден сооднос (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://mk.wikipedia.org/wiki/Боја"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Изберете боја од палетата."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "случајна боја"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Избери боја на тепка."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "сина"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зелена"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "црвена"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "боја со"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Создајте боја со укажаните износи на црвена, зелена и сина. Сите вредности мора да бидат помеѓу 0 и 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "излези од јамката"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "продолжи со следното повторување на јамката"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Излези од содржечката јамка."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "за секој елемент %1 на списокот %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Му ја задава променливата „%1“ на секој елемент на списокот, а потоа исполнува наредби."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "број со %1 од %2 до %3 со %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Променливата „%1“ да ги земе вредностите од почетниот до завршниот број, броејќи според укажаниот интервал и ги исполнува укажаните блокови."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Додава, отстранува или прередува делови за прераспоредување на овој блок „ако“."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "инаку"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "инаку ако"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ако"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://mk.wikipedia.org/wiki/For-јамка"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "исполни"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "повтори %1 пати"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Исполнува наредби неколку пати."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "повторувај сè до"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "повторувај додека"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Додека вредноста е невистинита, исполнува наредби."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Додека вредноста е вистинита, исполнува наредби."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Да ги избришам сите %1 блокчиња?"; -Blockly.Msg["DELETE_BLOCK"] = "Избриши блок"; -Blockly.Msg["DELETE_VARIABLE"] = "Избриши ја променливата \"%1\""; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Избриши %1 блока"; -Blockly.Msg["DISABLE_BLOCK"] = "Исклучи блок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Ископирај"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Дуплирај коментар"; -Blockly.Msg["ENABLE_BLOCK"] = "Вклучи блок"; -Blockly.Msg["EXPAND_ALL"] = "Рашири блокови"; -Blockly.Msg["EXPAND_BLOCK"] = "Рашири го блокови"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Надворешен внос"; -Blockly.Msg["HELP"] = "Помош"; -Blockly.Msg["INLINE_INPUTS"] = "Внатрешен внос"; -Blockly.Msg["IOS_CANCEL"] = "Откажи"; -Blockly.Msg["IOS_ERROR"] = "Грешка"; -Blockly.Msg["IOS_OK"] = "ОК"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Дозволи тврдења"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Додај"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Додај променлива"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Избриши"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Не можете да искористите празно име за променлива."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Преименувај"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Име на променливата"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "список"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Додај, отстрани или пререди ги деловите за прераспоредување на овој блок „список“."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "создај список со"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "прв"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "последен"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "случаен"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "отстрани"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "во списокот"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 е празен"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "должина на %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "задај"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "подреди %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "невистина"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Дава или вистина или невистина."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "вистина"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://mk.wikipedia.org/wiki/Неравенство"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Дава вистина ако обата вноса се еднакви."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Дава вистина ако првиот внос е поголем од вториот."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Дава вистина ако првиот внос е поголем или еднаков на вториот."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Дава вистина ако првиот внос е помал од вториот."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Дава вистина ако првиот внос е помал или еднаков на вториот."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Дава вистина ако обата вноса не се еднакви."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "не %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Дава вистина ако вносот е невистинит. Дава невистина ако вносот е вистинит."; -Blockly.Msg["LOGIC_NULL"] = "ништо"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Дава ништо."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "и"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "или"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Дава вистина ако обата вноса се вистинити."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Дава вистина ако барем еден од вносовите е вистинит."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "испробај"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ако е невистинито"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ако е вистинито"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://mk.wikipedia.org/wiki/Аритметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter?uselang=mk"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "повиши %1 за %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Ѝ додава број на променливата „%1“."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://mk.wikipedia.org/wiki/Математичка_константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Дава една од вообичаените константи: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), или ∞ (бесконечност)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "е делив со"; -Blockly.Msg["MATH_IS_EVEN"] = "е парен"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "е негативен"; -Blockly.Msg["MATH_IS_ODD"] = "е непарен"; -Blockly.Msg["MATH_IS_POSITIVE"] = "е позитивен"; -Blockly.Msg["MATH_IS_PRIME"] = "е прост"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Проверува дали бројот е парен, непарен, прост, цел, позитивен, негативен или делив со некој број. Дава вистина или невистина."; -Blockly.Msg["MATH_IS_WHOLE"] = "е цел"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://mk.wikipedia.org/wiki/Број"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Број."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "просек на списокот"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "најголем на списокот"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "медијана на списокот"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "најмал на списокот"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "модул на списокот"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "збир од списокот"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Дава просек (аритметичка средина) од броевите на списокот."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Го дава најголемиот број на списокот."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Дава медијана од броевите на списокот."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Го дава најмалиот број на списокот."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Дава список на најзастапен(и) елемент(и) на списокот."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Дава збир од сите броеви на списокот."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://mk.wikipedia.org/wiki/Заокружување"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "заокружи"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "заокружи на помало"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "заокружи на поголемо"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Го заокружува бројот на поголем или помал."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "апсолутна"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "корен квадратен"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Ја дава апсолутната вредност на број."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Дава корен квадратен од број."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://mk.wikipediа.org/wiki/Тригонометриски_функции"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Создај променлива..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Назив на новата променлива:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Тип на новата променлива:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "дозволи тврдења"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "со:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://mk.wikipedia.org/wiki/Потпрограма"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "со:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Создај го '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Опишете ја оваа функција..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "направиш"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "за да"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "назад"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Повтори"; -Blockly.Msg["REMOVE_COMMENT"] = "Отстрани коментар"; -Blockly.Msg["RENAME_VARIABLE"] = "Преименувај променлива..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Преименувај ги сите променливи „%1“ во:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Денес"; -Blockly.Msg["UNDO"] = "Откажи"; -Blockly.Msg["UNNAMED_KEY"] = "без име"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "елемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Создај „задавање на %1“"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "задај %1 на %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Променлива со име '%1' веќе постои."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Променлива со име '%1' веќе постои за друг тип: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/mnw.js b/lib/blockly/msg/js/mnw.js deleted file mode 100644 index 6e00ba5..0000000 --- a/lib/blockly/msg/js/mnw.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "စုတ် လညာတ်"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "မပြံင်လှာဲ '%1' ဂှ် ဇိုတ်ပလီု ဟွံဂွံ၊ ဟိုတ်နူ ဍေဟ်ဂှ် ဆက်စပ်ဒၟံင် ကုဝှင်ရှေန် '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "သၠာဲ ဍာ်ဒကေဝ်"; -Blockly.Msg["CLEAN_UP"] = "ဖအး ဗလံက်"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ဖဍိုန်ဖ္ဍောတ် ဗလံက်ဂမၠိုင်"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ဖဍိုန်ဖ္ဍောတ် ဗလံက်"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "အသာ် ၁"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "အသာ် ၂"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ဗၞတ်ဗ္ၜတ်"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ပနှဴ"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ပနှဴ အသာ် ၜါ နကဵု ဗၞတ်ဗ္ၜတ် (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "ရုဲကေတ် အသာ် မွဲ နူကဵု ဖလာတ်"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ဇျောမ်ကေတ် အသာ်"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ရုဲစှ်ကေတ် အသာ် မွဲ ပ္ဍဲ ဇဟောမ်"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "သာ်ဍီု"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "သာ်ၚေက်"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ဗကေတ်"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "နကဵု အသာ်"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ခၞံကၠောန်ကေတ် အသာ်တၟေင် အကြာ ဗကေတ်၊ သာ်ၚေက်၊ သာ်ဍီု၊၊ ဍာ်ဒကေဝ် သီုဖအိုတ် သ္ဒးဒှ် အကြာ ၀ ကဵု ၁၀၀၊၊"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ကၟာတ်ထောအ် loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ဆက်ကၠောန် နကဵု ပရေင်ချဳဒရာင်ဗွဲအပ္ဍဲ loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "သွက်ဇၟာပ် ဒကုတ် %1 ပ္ဍဲ စရင် %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "သွက်ဇၟာပ် ဒကုတ် ပ္ဍဲစရင်မွဲ မစုတ်လဝ် ပရေင်ပြံင်လှာဲ %1 သွက် ဒကုတ်၊ တုဲမ္ဂး ကၠောန်ပ တင်ဂရင်ဗ္တီ၊၊"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "ရိုဟ်လၟိဟ် %1 နူ %2 စဵုကဵု %3 နကဵု %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "ကလိဂွံ ပရေင်အပြံင်အလှာဲ '%1'ဏအ် ကေတ် ဍာ်ဒကေဝ် နူကဵု လၟိဟ်ဂၞန်စ စဵုကဵု လၟိဟ်ဂၞန်အိုတ်၊ မရိုဟ်လၟိဟ် နကဵုဗၞတ်ဗ္ၜတ် ဗွဲတၟေင် တုဲ ကၠောန်ပ ဗလံက် ဗွဲတၟေင်၊၊"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "ထပ်, ပတိတ်, ဟွံသေၚ် ကလေၚ်ဖျေံလၟေၚ် ရုဲစှ် သွက်ဂွံကလေၚ်ထမံက်ဣဏံ ယဝ်ရကၟာတ်မ္ဂး"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "မုနွံ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ယဝ်နွံမံၚ်ဏီ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ယဝ်ရ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ပ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ထပ်ဂလိုင်ပတိုန် %1 နာဍဳ"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "ကၠောန်ပတိတ် လလောင်တြး မဂၠိုင် ကုအလန်၊၊"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ထပ်ဂလိုင်ပတိုန် စဵုကဵု"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ထပ်ဂလိုင်ပတိုန် အခိင်"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "ဍာ်ဒကေဝ် ဍေဟ် ဗၠေတ်၊ တုဲ ကၠောန်ပ လိက်ဂရင်ဗတီ၊၊"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ဍာ်ဒကေတ် ဍေဟ် ဒး၊ တုဲ ကၠောန်ပ လိက်ဂရင်ဗတီ၊၊"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "ဇိုတ်ပလီု %1 ဗလံက် သီုဖအိုတ်ဟာ?"; -Blockly.Msg["DELETE_BLOCK"] = "ဇိုတ်ပလီု ဗလံက်"; -Blockly.Msg["DELETE_VARIABLE"] = "ဇိုတ်ပလီု အပြံင်အလှာဲ '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "ဇိုတ်ပလီု %1 တုဲ ရပ်စပ် '%2' နဒဒှ်မပြံင်လှာဲဟာ?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "ဇိုတ်ပလီု %1 ဗလံက်ဂမၠိုင်"; -Blockly.Msg["DISABLE_BLOCK"] = "ပဟွံသၟဟ်အစောံ ဗလံက်"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ချာဲ"; -Blockly.Msg["DUPLICATE_COMMENT"] = "ချာဲ လညာတ်"; -Blockly.Msg["ENABLE_BLOCK"] = "ပသၟဟ်အစောံ ဗလံက်"; -Blockly.Msg["EXPAND_ALL"] = "ဗဇာပတိုန် ဗလံက်ဂမၠိုင်"; -Blockly.Msg["EXPAND_BLOCK"] = "ဗဇာပတိုန် ဗလံက်"; -Blockly.Msg["EXTERNAL_INPUTS"] = "မစုတ် ဗွဲမ္ၚး"; -Blockly.Msg["HELP"] = "ရီု"; -Blockly.Msg["INLINE_INPUTS"] = "မစုတ် ဗွဲအပ္ဍဲ"; -Blockly.Msg["IOS_CANCEL"] = "တးပဲါ"; -Blockly.Msg["IOS_ERROR"] = "ဗၠေတ်"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ စုတ် Input"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "ကဵုအခေါင် လိက်လလောင်တရးဂမၠိုင်"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "စုတ်"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ ထပ် ကိုန်ချဳ"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "ပလီု"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "မၞးသုၚ်စောဲကေတ် ယၟုကိုန်ချဳမမုဟွံမွဲ"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "ကဵုယၟုတၟိ"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "ယၟု ကိုန်ချဳ"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ဗၠေတ်"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "ကလေၚ် ဍာံလေဝ်ဟွံသေၚ် ဗၠောတ်လေဝ်ဟွံသေၚ်"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ဍာံ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/ဟွံညဳသၟဟ်_(သၚ်္ချာဂမၠိုၚ်)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ဟွံသေၚ် %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "ကလေၚ်မဍာံတေံ ယဝ်ရတၚ်စုတ်ဏံဗၠေတ်မ္ဂး. ကလေၚ်မဗၠောတ်တေံ ယဝ်ရတၚ်စုတ်ဏံဒးမ္ဂး"; -Blockly.Msg["LOGIC_NULL"] = "ကၠိခန်"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "ကလေၚ်ဟွံလုပ်အဝေါၚ်"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ကေုာံ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ဟွံသေင်မ္ဂး"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "စမ်ၜတ်"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ယဝ်ဗၠေတ်"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ယဝ်ဍာံ"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; // untranslated -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; // untranslated -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "မဂၞန်မွဲ"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ဍာံဍာံ"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "အဃောမပြံင်လှာဲ ကၠောန်ဒၟံင် အသာ်..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "အဃောမပြံင်လှာဲ ကၠောန်ဒၟံင် လၟိဟ်ဂၞန်..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "အဃောမပြံင်လှာဲကၠောန်ဒၟံင် လၟေင်..."; -Blockly.Msg["NEW_VARIABLE"] = "အဃောမပြံင်လှာဲဒၟံင်..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ယၟု မပြံင်လှာဲလဝ် တၟိ -"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "ဗီုပြင် မပြံင်လှာဲလဝ် တၟိ -"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "ကလေင်ပ"; -Blockly.Msg["REMOVE_COMMENT"] = "ပဲါပ္တိတ် လညာတ်"; -Blockly.Msg["RENAME_VARIABLE"] = "ကလေင်ကဵုယၟု မပြံင်လှာဲ..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "'%1' သီုဖအိုတ်ဂှ် ကဵုယၟုတၟိ ပြံင်လှာဲထောအ်:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "တ္ၚဲဏအ်"; -Blockly.Msg["UNDO"] = "ဟွံပ"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ဒကုတ်"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "ယၟုမပြံင်လှာဲ '%1' ဂှ် နွံဒၟံင်တုဲရ၊၊"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "ယၟုမပြံင်လှာဲ '%1' ဂှ် နွံဒၟံင်တုဲရ နကဵုဗီုပြင်တၞဟ် - '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ms.js b/lib/blockly/msg/js/ms.js deleted file mode 100644 index d22c259..0000000 --- a/lib/blockly/msg/js/ms.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Berikan Komen"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ubah nilai:"; -Blockly.Msg["CLEAN_UP"] = "Kemaskan Blok"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Lipat Blok²"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Lipat Blok"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "warna 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "warna 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "nisbah"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "adun"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Campurkan dua warna sekali pada nisbah yang ditentukan (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ms.wikipedia.org/wiki/Warna"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Pilih satu warna daripada palet."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "warna rawak"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Pilih satu warna secara rawak."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "biru"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "hijau"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "merah"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "warnakan"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Peroleh satu warna dengan menentukan amaun campuran merah, hijau dan biru. Kesemua nilai haruslah antara 0 hingga 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "hentikan gelung"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "teruskan dengan lelaran gelung seterusnya"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Keluar dari gelung pengandung."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Langkau seluruh gelung yang tinggal dan bersambung dengan lelaran seterusnya."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Amaran: Blok ini hanya boleh digunakan dalam satu gelung."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "untuk setiap perkara %1 dalam senarai %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Untuk setiap perkara dalam senarai, tetapkan pembolehubah '%1' pada perkara, kemudian lakukan beberapa perintah."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "kira dengan %1 dari %2 hingga %3 selang %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Gunakan pembolehubah '%1' pada nilai-nilai dari nombor pangkal hingga nombor hujung, mengira mengikut selang yang ditentukan, dan lakukan blok-blok yang tertentu."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Tambah satu syarat kepada blok jika."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Tambah yang terakhir, alihkan semua keadaan ke blok jika."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Tambah, alih keluar, atau susun semula bahagian-bahagian untuk menyusun semula blok jika."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "lain"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "lain jika"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "jika"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Jika nilai yang benar, lakukan beberapa penyata."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Jika suatu nilai benar, lakukan penyata blok pertama. Jika tidak, bina penyata blok kedua."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Jika nilai yang pertama adalah benar, lakukan penyata pertama blok. Sebaliknya, jika nilai kedua adalah benar, lakukan penyata blok kedua."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Jika nilai yang pertama adalah benar, lakukan penyata blok pertama. Sebaliknya, jika nilai kedua adalah benar, lakukan penyata blok kedua. Jika tiada nilai adalah benar, lakukan penyata blok terakhir."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "lakukan"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ulang %1 kali"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Lakukan perintah berulang kali."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ulangi sehingga"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ulangi apabila"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Lakukan beberapa perintah apabila nilainya palsu (false)."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Lakukan beberapa perintah apabila nilainya benar (true)."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Hapuskan kesemua %1 blok?"; -Blockly.Msg["DELETE_BLOCK"] = "Hapuskan Blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Hapuskan %1 Blok"; -Blockly.Msg["DISABLE_BLOCK"] = "Matikan Blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Pendua"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Hidupkan Blok"; -Blockly.Msg["EXPAND_ALL"] = "Buka Blok²"; -Blockly.Msg["EXPAND_BLOCK"] = "Buka Blok"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Input Luaran"; -Blockly.Msg["HELP"] = "Bantuan"; -Blockly.Msg["INLINE_INPUTS"] = "Input Sebaris"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Wujudkan senarai kosong"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Kembalikan senarai panjang 0, yang tidak mengandungi rekod data"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "senarai"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Tambah, alih keluar, atau susun semula bahagian-bahagian untuk menyusun semula senarai blok."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "wujudkan senarai dengan"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Tambah item ke dalam senarai."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Wujudkan senarai dengan apa jua nombor item."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "pertama"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# dari akhir"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "dapatkan"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "dapat dan alihkan"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "terakhir"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "rawak"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "alihkan"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Kembalikan item pertama dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Kembalikan item dalam kedudukan yang ditetapkan dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Kembalikan item pertama dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Kembalikan item rawak dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Alihkan dan kembalikan item pertama dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Alihkan dan kembalikan item mengikut spesifikasi posisi dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Alihkan dan kembalikan item terakhir dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Alihkan dan kembalikan item rawak dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Alihkan item pertama dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Alihkan item pada posisi mengikut spesifikasi dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Alihkan item terakhir dalam senarai."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Alihkan item rawak dalam senarai."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ke # dari akhir"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ke #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ke akhir"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "dapatkan sub-senarai daripada pertama"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "dapatkan sub-senarai daripada # daripada terakhir"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "dapatkan sub-senarai daripada #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Wujudkan salinan bahagian yang ditentukan dari senarai."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ialah item terakhir."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ialah item pertama."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "cari pertama item kejadian"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "cari kejadian akhir item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Menyatakan indeks kejadian pertama/terakhir item berkenaan dalam senarai. Menyatakan %1 jika item berkenaan tidak ditemui."; -Blockly.Msg["LISTS_INLIST"] = "dalam senarai"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 adalah kosong"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Kembalikan benar jika senarai kosong."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "panjang %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Kembalikan panjang senarai"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "wujudkan senarai dengan item %1 diulangi %2 kali"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Wujudkan senarai yang terdiri daripada nilai berulang mengikut nombor yang ditentukan."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "sebagai"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "masukkan pada"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Selit item pada permulaan senarai."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Masukkan item pada posisi yand ditentukan dalam senarai."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Tambahkan item dalam senarai akhir."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Selit item secara rawak di dalam senarai."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Set item pertama dalam senarai."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Masukkan item pada posisi yang ditentukan dalam senarai."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Set item terakhir dalam senarai."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Set item rawak dalam senarai."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "buat senarai dgn teks"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "buat teks drpd senarai"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Cantumkan senarai teks menjadi satu teks, dipecahkan oleh delimiter."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Pecahkan teks kepada senarai teks, berpecah di setiap delimiter."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "dengan delimiter"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "palsu"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Kembalikan samada benar atau palsu."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "benar"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://id.wikipedia.org/wiki/Pertidaksamaan"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Kembali benar jika kedua-dua input benar antara satu sama lain."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Kembali benar jika input pertama adalah lebih besar daripada input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Kembali benar jika input pertama adalah lebih besar daripada atau sama dengan input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Kembali benar jika input pertama adalah lebih kecil daripada input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Kembali benar jika input pertama adalah lebih kecil daripada atau sama dengan input kedua."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Taip balik benar jika kedua-dua input tidak sama."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "bukan %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "'Benar' akan dibalas jika inputnya salah. 'Salah' akan dibalas jika inputnya benar."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "dan"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "atau"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "Jika palsu"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "Jika benar"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ms.wikipedia.org/wiki/Aritmetik"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Kembalikan jumlah kedua-dua bilangan."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Taip balik hasil bahagi dua nombor tersebut."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Taip balik hasil tolak dua nombor tersebut."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Taip balik hasil darab dua nombor tersebut."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://id.wikipedia.org/wiki/Perjumlahan"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "perubahan %1 oleh %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Tambah nombor kepada pembolehubah '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ms.wikipedia.org/wiki/Pemalar_matematik"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "Boleh dibahagikan dengan"; -Blockly.Msg["MATH_IS_EVEN"] = "Adalah genap"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "negatif"; -Blockly.Msg["MATH_IS_ODD"] = "aneh"; -Blockly.Msg["MATH_IS_POSITIVE"] = "adalah positif"; -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://id.wikipedia.org/wiki/Operasi_modulus"; -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Taip balik baki yang didapat daripada pembahagian dua nombor tersebut."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ms.wikipedia.org/wiki/Nombor"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Suatu nombor."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "purata daripada senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Max senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Median senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min dalam senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "jenis senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Item rawak daripada senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "sisihan piawai bagi senarai"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Jumlah senarai"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Kembalikan purata (min aritmetik) nilai-nilai angka di dalam senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Pulangkan jumlah terbesar dalam senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Kembalikan nombor median dalam senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Kembalikan nombor terkecil dalam senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Kembali senarai item yang paling biasa dalam senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Kembalikan elemen rawak daripada senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Kembali dengan sisihan piawai daripada senarai."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Kembalikan jumlah semua nombor dalam senarai."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "pecahan rawak"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Kembali sebahagian kecil rawak antara 0.0 (inklusif) dan 1.0 (eksklusif)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "integer rawak dari %1ke %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Kembalikan integer rawak diantara dua had yang ditentukan, inklusif."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "pusingan"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "Pusingan ke bawah"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "pusingan ke atas"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Bulat nombor yang naik atau turun."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ms.wikipedia.org/wiki/Punca_kuasa_dua"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "mutlak"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Punca kuasa dua"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Kembalikan nilai mutlak suatu nombor."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Kembalikan e kepada kuasa nombor."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Kembali dalam logaritma nombor asli."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Kembali logarithm 10 asas nombor."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Kembalikan nombor yang songsang."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Kembalikan 10 kepada kuasa nombor."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Kembalikan punca kuasa nombor."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ms.wikipedia.org/wiki/Fungsi_trigonometri"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Kembali arccosine beberapa nombor."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Kembalikan arcsince beberapa nombor."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Kembalikan beberapa nombor arctangent."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Kembalikan darjah kosinus (bukan radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Kembalikan darjah sine (bukan radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Kembalikan darjah tangen (bukan radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Pembolehubah baru..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nama pembolehubah baru:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "bolehkan kenyataan"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "dengan:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ms.wikipedia.org/wiki/Fungsi"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ms.wikipedia.org/wiki/Fungsi"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "dengan:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Hasilkan '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Terangkan fungsi ini..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "Buat sesuatu"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "Untuk"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Menghasilkan suatu fungsi tanpa output."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "kembali"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Mencipta satu fungsi dengan pengeluaran."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Amaran: Fungsi ini mempunyai parameter yang berganda."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Serlahkan definisi fungsi"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Amaran: Blok ini hanya boleh digunakan dalam fungsi definisi."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Nama input:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Tambah satu input pada fungsi."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "Input-input"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Tambah, alih keluar atau susun semula input pada fungsi ini."; -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "Padamkan Komen"; -Blockly.Msg["RENAME_VARIABLE"] = "Tukar nama pembolehubah..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Tukar nama semua pembolehubah '%1' kepada:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "Kepada huruf kecil"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "Kepada HURUF BESAR"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "Dapatkan abjad terakhir"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "Dapatkan abjad rawak"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "Sertai"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "untuk huruf terakhir"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "dalam teks"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "mencari kejadian pertama teks"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "mencari kejadian terakhir teks"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "dalam teks %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Kembalikan Indeks kejadian pertama/terakhir dari teks pertama ke dalam teks kedua. Kembalikan %1 Jika teks tidak ditemui."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 adalah kosong"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Kembalikan benar jika teks yang disediakan adalah kosong."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "hasilkan teks dengan"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Hasilkan sebahagian teks dengan menghubungkan apa jua nombor item."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "panjang %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Kembalikan jumlah huruf (termasuk ruang) dalam teks yang disediakan."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "cetak %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Cetak teks yang ditentukan, nombor atau nilai lain."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Peringatan kepada pengguna untuk nombor."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Peringatkan pengguna untuk sebahagian teks."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Prom untuk nombor dengan mesej"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Prom untuk teks dengan mesej"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ms.wikipedia.org/wiki/Rentetan"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Huruf, perkataan, atau baris teks."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "mengurangkan kawasan dari kedua-dua belah"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "mengurangkan ruang dari sebelah kiri"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "mengurangkan kawasan dari sisi kanan"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Kembali salinan teks dengan ruang yang dikeluarkan daripada satu atau hujung kedua belah."; -Blockly.Msg["TODAY"] = "Hari ini"; -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Perkara"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Hasilkan 'set %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Kembalikan nilai pemboleh ubah ini."; -Blockly.Msg["VARIABLES_SET"] = "set %1 ke %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Hasilkan 'set %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Set pembolehubah ini supaya sama dengan input."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/nb.js b/lib/blockly/msg/js/nb.js deleted file mode 100644 index af26f0e..0000000 --- a/lib/blockly/msg/js/nb.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Legg til kommentar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Kan ikke slette variabelen «%1» fordi den er del av definisjonen for funksjonen «%2»"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Bytt verdi:"; -Blockly.Msg["CLEAN_UP"] = "Rydd opp Blocks"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Skjul blokker"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Skjul blokk"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "farge 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "farge 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "forhold"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "blande"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blander to farger sammen med et gitt forhold (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Velg en farge fra paletten."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "tilfeldig farge"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Velg en tilfeldig farge."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blå"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "grønn"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "rød"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "farge med"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Lag en farge med angitt verdi av rød, grønn og blå. Alle verdier må være mellom 0 og 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "bryt ut av løkken"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "fortsett med neste gjentakelse av løkken"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Bryt ut av den gjeldende løkken."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Hopp over resten av denne løkken og fortsett med neste gjentakelse."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Advarsel: Denne blokken kan kun brukes innenfor en løkke."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for hvert element %1 i listen %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For hvert element i en liste, angi variabelen '%1' til elementet, og deretter lag noen setninger."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "tell med %1 fra %2 til %3 med %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Ha variabel \"%1\" ta verdiene fra start nummer til slutt nummer, telle med spesifisert intervall og lag de spesifiserte blokkene."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Legg til en betingelse til hvis blokken."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Legg til hva som skal skje hvis de andre ikke slår til."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Legg til, fjern eller flytt seksjoner i denne hvis-blokken."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ellers"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ellers hvis"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "hvis"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Hvis dette er sant, så gjør følgende."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Hvis dette er sant, så utfør den første blokken av instruksjoner. Hvis ikke, utfør den andre blokken."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Hvis det første stemmer, så utfør den første blokken av instruksjoner. Ellers, hvis det andre stemmer, utfør den andre blokken av instruksjoner."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Hvis den første verdien er sann, så utfør den første blokken med setninger. Ellers, hvis den andre verdien er sann, så utfør den andre blokken med setninger. Hvis ingen av verdiene er sanne, så utfør den siste blokken med setninger."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "gjør"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "gjenta %1 ganger"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Gjenta noen instruksjoner flere ganger."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "gjenta til"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "gjenta mens"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Så lenge et utsagn ikke stemmer, gjør noen instruksjoner."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Så lenge et utsagn stemmer, utfør noen instruksjoner."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Slett alle %1 blokker?"; -Blockly.Msg["DELETE_BLOCK"] = "Slett blokk"; -Blockly.Msg["DELETE_VARIABLE"] = "Slett variabelen «%1»"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Slett %1 bruk av variabelen «%2»?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Slett %1 blokker"; -Blockly.Msg["DISABLE_BLOCK"] = "Deaktiver blokk"; -Blockly.Msg["DUPLICATE_BLOCK"] = "duplikat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Dupliser kommentar"; -Blockly.Msg["ENABLE_BLOCK"] = "Aktiver blokk"; -Blockly.Msg["EXPAND_ALL"] = "Utvid blokker"; -Blockly.Msg["EXPAND_BLOCK"] = "Utvid blokk"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Eksterne kilder"; -Blockly.Msg["HELP"] = "Hjelp"; -Blockly.Msg["INLINE_INPUTS"] = "Interne kilder"; -Blockly.Msg["IOS_CANCEL"] = "Avbryt"; -Blockly.Msg["IOS_ERROR"] = "Feil"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Legg til parameter"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Tillat kommandoer"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Denne funksjonen har duplikatparametere."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "PARAMETERE"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Legg til"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Legg til variabel"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Slett"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Du kan ikke bruke et tomt variabelnavn."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Endre navn"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variabelnavn"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "opprett en tom liste"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returnerer en tom liste, altså med lengde 0"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "liste"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Legg til, fjern eller endre rekkefølgen for å endre på denne delen av listen."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "lag en liste med"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Tilføy et element til listen."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Lag en liste med et vilkårlig antall elementer."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "først"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# fra slutten"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "hent"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "hent og fjern"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "siste"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "tilfeldig"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "fjern"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returnerer det første elementet i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returner elementet på den angitte posisjonen i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returnerer det siste elementet i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returnerer et tilfeldig element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Fjerner og returnerer det første elementet i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Fjerner og returnerer elementet ved en gitt posisjon i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Fjerner og returnerer det siste elementet i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Fjerner og returnerer et tilfeldig element i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Fjerner det første elementet i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Fjerner et element ved en gitt posisjon i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Fjerner det siste elementet i en liste."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Fjerner et tilfeldig element i en liste."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "til # fra slutten"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "til #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "til siste"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "Hent en del av listen"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "Hent de siste # elementene"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "Hent del-listen fra #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Kopiérer en ønsket del av en liste."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 er det siste elementet."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 er det første elementet."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "finn første forekomst av elementet"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "finn siste forekomst av elementet"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returnerer indeksen av den første/siste forekomsten av elementet i lista. Returnerer %1 hvis ikke funnet."; -Blockly.Msg["LISTS_INLIST"] = "i listen"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 er tom"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returnerer sann hvis listen er tom."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "lengden på %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returnerer lengden til en liste."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Lag en liste hvor elementet %1 forekommer %2 ganger"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Lager en liste hvor den gitte verdien gjentas et antall ganger."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverser %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverser en kopi av ei liste."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "som"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "sett inn ved"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "sett"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Setter inn elementet i starten av en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Setter inn elementet ved den angitte posisjonen i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Tilføy elementet til slutten av en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Setter inn elementet ved en tilfeldig posisjon i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Angir det første elementet i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Setter inn elementet ved den angitte posisjonen i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Angir det siste elementet i en liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Angir et tilfeldig element i en liste."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "stigende"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "synkende"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sorter %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sorter en kopi av en liste."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetisk, ignorert store/små bokstaver"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numerisk"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetisk"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "lag liste av tekst"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "lag tekst av liste"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Føy sammen en liste tekster til én tekst, avskilt av en avgrenser."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Splitt teksten til en liste med tekster, brutt ved hver avgrenser."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "med avgrenser"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "usann"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returnerer enten sann eller usann."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "sann"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Returnerer sann hvis begge inputene er like hverandre."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Returnerer sant hvis det første argumentet er større enn den andre argumentet."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Returnerer sant hvis det første argumentet er større enn eller likt det andre argumentet."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Returnerer sant hvis det første argumentet er mindre enn det andre argumentet."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Returnerer sant hvis det første argumentet er mindre enn eller likt det andre argumentet."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Returnerer sant hvis begge argumentene er ulike hverandre."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ikke %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returnerer sant hvis argumentet er usant. Returnerer usant hvis argumentet er sant."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returnerer null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "og"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "eller"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Returnerer sant hvis begge argumentene er sanne."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Returnerer sant hvis minst ett av argumentene er sant."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "hvis usant"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "hvis sant"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Sjekk betingelsen i 'test'. Hvis betingelsen er sann, da returneres 'hvis sant' verdien. Hvis ikke returneres 'hvis usant' verdien."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://no.wikipedia.org/wiki/Aritmetikk"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Returnerer summen av to tall."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Returner kvotienten av to tall."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Returner differansen mellom to tall."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Returner produktet av to tall."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Returner det første tallet opphøyd i den andre tallet."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 av X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "endre %1 ved %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Addere et tall til variabelen '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Returner en av felleskonstantene π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), eller ∞ (uendelig)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "begrense %1 lav %2 høy %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Begrens et tall til å være mellom de angitte grenseverdiene (inklusiv)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "er delelig med"; -Blockly.Msg["MATH_IS_EVEN"] = "er et partall"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "er negativer negativt"; -Blockly.Msg["MATH_IS_ODD"] = "er et oddetall"; -Blockly.Msg["MATH_IS_POSITIVE"] = "er positivt"; -Blockly.Msg["MATH_IS_PRIME"] = "er et primtall"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Sjekk om et tall er et partall, oddetall, primtall, heltall, positivt, negativt, eller om det er delelig med et annet tall. Returnerer sant eller usant."; -Blockly.Msg["MATH_IS_WHOLE"] = "er et heltall"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resten av %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Returner resten fra delingen av to tall."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "x"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Et tall."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "gjennomsnittet av listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maksimum av liste"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "medianen til listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimum av listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "Listens typetall"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "tilfeldig element i listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standardavviket til listen"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summen av listen"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Returner det aritmetiske gjennomsnittet av tallene i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Returner det største tallet i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Returner listens median."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Returner det minste tallet i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Returner en liste av de vanligste elementene i listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Returner et tilfeldig element fra listen."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Returner listens standardavvik."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Returner summen av alle tallene i listen."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "tilfeldig flyttall"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Returner et tilfeldig flyttall mellom 0.0 (inkludert) og 1.0 (ikke inkludert)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "Et tilfeldig heltall mellom %1 og %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Returner et tilfeldig tall mellom de to spesifiserte grensene, inkludert de to."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "avrunding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "rund ned"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "rund opp"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Avrund et tall ned eller opp."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluttverdi"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadratrot"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Returner absoluttverdien av et tall."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Returner e opphøyd i et tall."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Returner den naturlige logaritmen til et tall."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Returner base-10 logaritmen til et tall."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Returner det negative tallet."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Returner 10 opphøyd i et tall."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Returner kvadratroten av et tall."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Returner arccosinus til et tall."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Returner arcsinus til et tall."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Returner arctangens til et tall."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Returner cosinus av en vinkel (ikke radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Returner sinus av en vinkel (ikke radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Returner tangenten av en vinkel (ikke radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Oppretter fargevariabel …"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Oppretter tallvariabel …"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Oppretter strengvariabel …"; -Blockly.Msg["NEW_VARIABLE"] = "Opprett variabel…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nytt variabelnavn:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Ny variabeltype:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "tillat uttalelser"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "med:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Kjør den brukerdefinerte funksjonen '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Kjør den brukerdefinerte funksjonen'%1' og bruk resultatet av den."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "med:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Opprett '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Beskriv denne funksjonen…"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "gjør noe"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "til"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Opprett en funksjon som ikke har noe resultat."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "returner"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Oppretter en funksjon som har et resultat."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Advarsel: Denne funksjonen har duplikate parametere."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Marker funksjonsdefinisjonen"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Hvis en verdi er sann, returner da en annen verdi."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Advarsel: Denne blokken kan bare benyttes innenfor en funksjonsdefinisjon."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Navn på parameter:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Legg til en input til funksjonen."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "parametere"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Legg til, fjern eller endre rekkefølgen på input til denne funksjonen."; -Blockly.Msg["REDO"] = "Gjør om"; -Blockly.Msg["REMOVE_COMMENT"] = "Fjern kommentar"; -Blockly.Msg["RENAME_VARIABLE"] = "Gi nytt navn til variabel…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Endre navnet til alle '%1' variabler til:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "til %1, legg til teksten %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Tilføy tekst til variabelen '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "til små bokstaver"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "til store forbokstaver"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "til STORE BOKSTAVER"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Returnerer en kopi av teksten der store og små bokstaver er byttet om."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hent første bokstav"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hent bokstav # fra slutten"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "hent bokstav #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hent den siste bokstaven"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "hent en tilfeldig bokstav"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "i teksten %1, %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returnerer bokstaven på angitt plassering."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "tell %1 i %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Tell hvor mange ganger noe tekst dukker opp i annen tekst."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Legg til et element til teksten."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "føy sammen"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Legg til, fjern eller forandre rekkefølgen for å forandre på denne tekstblokken."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "til bokstav # fra slutten"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "til bokstav #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "til siste bokstav"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "i tekst"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "hent delstreng fra første bokstav"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "hent delstreng fra bokstav # fra slutten"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "hent delstreng fra bokstav #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returnerer den angitte delen av teksten."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "finn første forekomst av tekst"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "finn siste forekomst av tekst"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "i teksten %1, %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returnerer posisjonen for første/siste forekomsten av den første tekst i den andre teksten. Returnerer %1 hvis teksten ikke blir funnet."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 er tom"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returnerer sann hvis den angitte teksten er tom."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "lag tekst med"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Opprett en tekst ved å sette sammen et antall elementer."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "lengden av %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returnerer antall bokstaver (inkludert mellomrom) i den angitte teksten."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "skriv ut %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Skriv ut angitt tekst, tall eller annet innhold."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Be brukeren om et tall."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Spør brukeren om tekst."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "spør om et tall med en melding"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "spør om tekst med en melding"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "erstatt %1 med %2 i %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Erstatter alle forekomster av noe tekst i en annen tekst."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverser %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverserer rekkefølgen på tegnene i teksten."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "En bokstav, ett ord eller en linje med tekst."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "fjern mellomrom fra begge sider av"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "fjern mellomrom fra venstre side av"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "fjern mellomrom fra høyre side av"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Returner en kopi av teksten med mellomrom fjernet fra en eller begge sidene."; -Blockly.Msg["TODAY"] = "I dag"; -Blockly.Msg["UNDO"] = "Angre"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Opprett 'sett %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returnerer verdien av denne variabelen."; -Blockly.Msg["VARIABLES_SET"] = "sett %1 til %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Opprett 'hent %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Setter verdien av denne variablen lik parameteren."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "En variabel med navn «%1» finnes allerede."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "En variabel med navn «%1» finnes allerede for en annen type: «%2»."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Si noe …"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/nl.js b/lib/blockly/msg/js/nl.js deleted file mode 100644 index 9722976..0000000 --- a/lib/blockly/msg/js/nl.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Opmerking toevoegen"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "De variabele \"%1\" kan niet verwijderd worden omdat die onderdeel uitmaakt van de definitie van de functie \"%2\""; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Waarde wijzigen:"; -Blockly.Msg["CLEAN_UP"] = "Blokken opschonen"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Samengevouwen blokken bevatten waarschuwingen."; -Blockly.Msg["COLLAPSE_ALL"] = "Blokken samenvouwen"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Blok samenvouwen"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "kleur 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "kleur 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "verhouding"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mengen"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mengt twee kleuren samen met een bepaalde verhouding (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://nl.wikipedia.org/wiki/Kleur"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Kies een kleur in het palet."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "willekeurige kleur"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Kies een willekeurige kleur."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blauw"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "groen"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "rood"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "kleuren met"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Maak een kleur met de opgegeven hoeveelheid rood, groen en blauw. Alle waarden moeten tussen 0 en 100 liggen."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "uit lus breken"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "doorgaan met de volgende iteratie van de lus"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "uit de bovenliggende lus breken"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "De rest van deze lus overslaan en doorgaan met de volgende herhaling."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Waarschuwing: dit blok mag alleen gebruikt worden in een lus."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "voor ieder item %1 in lijst %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Voor ieder item in een lijst, stel de variabele \"%1\" in op het item en voer daarna opdrachten uit."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "rekenen met %1 van %2 tot %3 in stappen van %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Laat de variabele \"%1\" de waarden aannemen van het beginnummer tot het laatste nummer, tellende met het opgegeven interval, en met uitvoering van de opgegeven blokken."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Voeg een voorwaarde toe aan het als-blok."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Voeg een laatste, vang-alles conditie toe aan het als-statement."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Voeg stukken toe, verwijder of wijzig de volgorde om dit \"als\"-blok te wijzigen."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "anders"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "anders als"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "als"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Als een waarde waar is, voer dan opdrachten uit."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Als een waarde waar is, voert dan het eerste blok met opdrachten uit. Voer andere het tweede blok met opdrachten uit."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Als de eerste waarde waar is, voer dan het eerste blok met opdrachten uit. Voer anders, als de tweede waarde waar is, het tweede blok met opdrachten uit."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Als de eerste waarde \"waar\" is, voer dan het eerste blok uit. Voer anders wanneer de tweede waarde \"waar\" is, het tweede blok uit. Als geen van beide waarden waar zijn, voer dan het laatste blok uit."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://nl.wikipedia.org/wiki/Repetitie_(informatica)#For_en_Foreach"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "voer uit"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 keer herhalen"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Voer een aantal opdrachten meerdere keren uit."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "herhalen totdat"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "herhalen zolang"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Terwijl een waarde onwaar is de volgende opdrachten uitvoeren."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Terwijl een waarde waar is de volgende opdrachten uitvoeren."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Alle %1 blokken verwijderen?"; -Blockly.Msg["DELETE_BLOCK"] = "Blok verwijderen"; -Blockly.Msg["DELETE_VARIABLE"] = "Verwijder de variabele \"%1\""; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "%1 gebruiken van de variabele \"%2\" verwijderen?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 blokken verwijderen"; -Blockly.Msg["DISABLE_BLOCK"] = "Blok uitschakelen"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicaat"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Opmerking dupliceren"; -Blockly.Msg["ENABLE_BLOCK"] = "Blok inschakelen"; -Blockly.Msg["EXPAND_ALL"] = "Blokken uitvouwen"; -Blockly.Msg["EXPAND_BLOCK"] = "Blok uitvouwen"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Externe invoer"; -Blockly.Msg["HELP"] = "Hulp"; -Blockly.Msg["INLINE_INPUTS"] = "Inline invoer"; -Blockly.Msg["IOS_CANCEL"] = "Annuleren"; -Blockly.Msg["IOS_ERROR"] = "Fout"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Invoer toevoegen"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Statements toestaan"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Deze functie heeft dubbele invoeren."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INVOER"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Toevoegen"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Variabele toevoegen"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Verwijderen"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "U kunt geen lege variabelenaam gebruiken."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Hernoemen"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variabelenaam"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "maak een lege lijst"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Geeft een lijst terug met lengte 0, zonder items"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lijst"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Voeg stukken toe, verwijder ze of wijzig de volgorde om dit lijstblok aan te passen."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "maak een lijst met"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Voeg iets toe aan de lijst."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Maak een lijst met een willekeurig aantal items."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "eerste"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# van einde"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "haal op"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "haal op en verwijder"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "laatste"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "willekeurig"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "verwijder"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Geeft het eerste item in een lijst terug."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Geeft het item op de opgegeven positie in een lijst."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Geeft het laatste item in een lijst terug."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Geeft een willekeurig item uit een lijst."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Geeft het laatste item in een lijst terug en verwijdert het."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Geeft het item op de opgegeven positie in een lijst terug en verwijdert het."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Geeft het laatste item uit een lijst terug en verwijdert het."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Geeft een willekeurig item in een lijst terug en verwijdert het."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Verwijdert het eerste item in een lijst."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Verwijdert het item op de opgegeven positie in een lijst."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Verwijdert het laatste item uit een lijst."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Verwijdert een willekeurig item uit een lijst."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "naar # vanaf einde"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "naar item"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "naar laatste"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "haal sublijst op vanaf eerste"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "haal sublijst op van positie vanaf einde"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "haal sublijst op vanaf positie"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Maakt een kopie van het opgegeven deel van de lijst."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "Item %1 is het laatste item."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "Item %1 is het eerste item."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "zoek eerste voorkomen van item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "zoek laatste voorkomen van item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Geeft de index terug van het eerste of laatste voorkomen van een item in de lijst. Geeft %1 terug als het item niet is gevonden."; -Blockly.Msg["LISTS_INLIST"] = "in lijst"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is leeg"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Geeft waar terug als de lijst leeg is."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; -Blockly.Msg["LISTS_LENGTH_TITLE"] = "lengte van %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Geeft de lengte van een lijst terug."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Maak lijst met item %1, %2 keer herhaald"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Maakt een lijst die bestaat uit de opgegeven waarde, het opgegeven aantal keer herhaald."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 omkeren"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Keert een kopie van een lijst om."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "als"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "tussenvoegen op"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "stel in"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Voegt het item toe aan het begin van de lijst."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Voegt het item op een opgegeven positie in een lijst in."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Voeg het item aan het einde van een lijst toe."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Voegt het item op een willekeurige positie in de lijst in."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Stelt het eerste item in een lijst in."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Zet het item op de opgegeven positie in de lijst."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Stelt het laatste item van een lijst in."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Stelt een willekeurig item uit de lijst in."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "oplopend"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "aflopend"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sorteer %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sorteer een kopie van een lijst."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetisch, negeer hoofd-/kleine letters"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeriek"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetisch"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "lijst maken van tekst"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "tekst maken van lijst"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Lijst van tekstdelen samenvoegen in één stuk tekst, waarbij de tekstdelen gescheiden zijn door een scheidingsteken."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Tekst splitsen in een lijst van teksten op basis van een scheidingsteken."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "met scheidingsteken"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "onwaar"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Geeft \"waar\" of \"onwaar\" terug."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "waar"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://nl.wikipedia.org/wiki/Ongelijkheid_(wiskunde)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Geeft \"waar\", als beide waarden gelijk aan elkaar zijn."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Geeft \"waar\" terug als de eerste invoer meer is dan de tweede invoer."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Geeft \"waar\" terug als de eerste invoer groter is of gelijk aan de tweede invoer."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Geeft \"waar\" als de eerste invoer kleiner is dan de tweede invoer."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Geeft \"waar\" terug als de eerste invoer kleiner of gelijk is aan de tweede invoer."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Geeft \"waar\" terug als de waarden niet gelijk zijn aan elkaar."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "niet %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Geeft \"waar\" terug als de invoer \"onwaar\" is. Geeft \"onwaar\" als de invoer \"waar\" is."; -Blockly.Msg["LOGIC_NULL"] = "niets"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Geeft niets terug."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "en"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; -Blockly.Msg["LOGIC_OPERATION_OR"] = "of"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Geeft waar als beide waarden waar zijn."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Geeft \"waar\" terug als in ieder geval één van de waarden waar is."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "als onwaar"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "als waar"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Test de voorwaarde in \"test\". Als de voorwaarde \"waar\" is, geef de waarde van \"als waar\" terug; geef anders de waarde van \"als onwaar\" terug."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://nl.wikipedia.org/wiki/Rekenen"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Geeft de som van 2 getallen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Geeft de gedeelde waarde van twee getallen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Geeft het verschil van de twee getallen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Geeft het product terug van de twee getallen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Geeft het eerste getal tot de macht van het tweede getal."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 van X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Geef de boogtangens van punt (X, Y) terug in graden tussen -180 naar 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1 wijzigen met %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Voegt een getal toe aan variabele \"%1\"."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://nl.wikipedia.org/wiki/Wiskundige_constante"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Geeft een van de vaak voorkomende constante waardes: π (3.141…), e (2.718…), φ (1.618…), √2 (1.414…), √½ (0.707…), of ∞ (oneindig)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "beperk %1 van minimaal %2 tot maximaal %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Beperk een getal tussen de twee opgegeven limieten (inclusief)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is deelbaar door"; -Blockly.Msg["MATH_IS_EVEN"] = "is even"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negatief"; -Blockly.Msg["MATH_IS_ODD"] = "is oneven"; -Blockly.Msg["MATH_IS_POSITIVE"] = "is positief"; -Blockly.Msg["MATH_IS_PRIME"] = "is priemgetal"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Test of een getal even, oneven, een priemgetal, geheel, positief of negatief is, of deelbaar is door een bepaald getal. Geeft \"waar\" of \"onwaar\"."; -Blockly.Msg["MATH_IS_WHOLE"] = "is geheel getal"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://nl.wikipedia.org/wiki/Modulair_rekenen"; -Blockly.Msg["MATH_MODULO_TITLE"] = "restgetal van %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Geeft het restgetal van het resultaat van de deling van de twee getallen."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://nl.wikipedia.org/wiki/Getal_%28wiskunde%29"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Een getal."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "gemiddelde van lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "hoogste uit lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediaan van lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "laagste uit lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modi van lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "willekeurige item van lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standaarddeviatie van lijst"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "som van lijst"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Geeft het gemiddelde terug van de numerieke waardes in een lijst."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Geeft het grootste getal in een lijst."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Geeft de mediaan in de lijst."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Geeft het kleinste getal uit een lijst."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Geeft een lijst van de meest voorkomende onderdelen in de lijst."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Geeft een willekeurig item uit de lijst terug."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Geeft de standaardafwijking van de lijst."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Geeft de som van alle getallen in de lijst."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://nl.wikipedia.org/wiki/Toevalsgenerator"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "willekeurige fractie"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Geeft een willekeurige fractie tussen 0.0 (inclusief) en 1.0 (exclusief)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://nl.wikipedia.org/wiki/Toevalsgenerator"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "willekeurig geheel getal van %1 tot %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Geeft een willekeurig getal tussen de 2 opgegeven limieten in, inclusief."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://nl.wikipedia.org/wiki/Afronden"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "afronden"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "naar beneden afronden"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "omhoog afronden"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Rondt een getal af omhoog of naar beneden."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://nl.wikipedia.org/wiki/Vierkantswortel"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "wortel"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Geeft de absolute waarde van een getal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Geeft e tot de macht van een getal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Geeft het natuurlijk logaritme van een getal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Geeft het logaritme basis 10 van een getal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Geeft de negatief van een getal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Geeft 10 tot de macht van een getal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Geeft de wortel van een getal."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://nl.wikipedia.org/wiki/Goniometrische_functie"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Geeft de arccosinus van een getal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Geeft de arcsinus van een getal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Geeft de arctangens van een getal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Geeft de cosinus van een graad (geen radialen)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Geeft de sinus van een graad (geen radialen)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Geeft de tangens van een graad (geen radialen)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Creëer kleurvariabele"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Creëer numeriek variabele"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Creëer tekstvariabele"; -Blockly.Msg["NEW_VARIABLE"] = "Variabele maken..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nieuwe variabelenaam:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nieuw soort variabele"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "statements toestaan"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "met:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://nl.wikipedia.org/wiki/Subprogramma"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Voer de door de gebruiker gedefinieerde functie \"%1\" uit."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://nl.wikipedia.org/wiki/Subprogramma"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Voer de door de gebruiker gedefinieerde functie \"%1\" uit en gebruik de uitvoer."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "met:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Maak \"%1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Deze functie beschrijven..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://nl.wikipedia.org/wiki/Subprogramma"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "doe iets"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "om"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Maakt een functie zonder uitvoer."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://nl.wikipedia.org/wiki/Subprogramma"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "uitvoeren"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Maakt een functie met een uitvoer."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Waarschuwing: deze functie heeft parameters met dezelfde naam."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Accentueer functiedefinitie"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Als de eerste waarde \"waar\" is, geef dan de tweede waarde terug."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Waarschuwing: dit blok mag alleen gebruikt worden binnen de definitie van een functie."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "invoernaam:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Een invoer aan de functie toevoegen."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ingangen"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Invoer van deze functie toevoegen, verwijderen of herordenen."; -Blockly.Msg["REDO"] = "Opnieuw"; -Blockly.Msg["REMOVE_COMMENT"] = "Opmerking verwijderen"; -Blockly.Msg["RENAME_VARIABLE"] = "Variabele hernoemen..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Alle variabelen \"%1\" hernoemen naar:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_APPEND_TITLE"] = "voor%1 voeg tekst toe van %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Voeg tekst toe aan de variabele \"%1\"."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "naar kleine letters"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "naar Hoofdletter Per Woord"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "naar HOOFDLETTERS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Geef een kopie van de tekst met veranderde hoofdletters terug."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "haal eerste letter op"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "haal letter # op vanaf einde"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "haal letter # op"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "haal laatste letter op"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "haal willekeurige letter op"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in tekst %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Geeft de letter op de opgegeven positie terug."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%1 in %2 tellen"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Tel hoe vaak bepaalde tekst voorkomt in andere tekst."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Voegt een item aan de tekst toe."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "samenvoegen"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Toevoegen, verwijderen of volgorde wijzigen van secties om dit tekstblok opnieuw in te stellen."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "van letter # tot einde"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "naar letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "naar laatste letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in tekst"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "haal subtekst op van eerste letter"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "haal subtekst op vanaf letter # vanaf einde"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "haal subtekst op vanaf letter #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Geeft het opgegeven onderdeel van de tekst terug."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "zoek eerste voorkomen van tekst"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "zoek het laatste voorkomen van tekst"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in tekst %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Geeft de index terug van het eerste of laatste voorkomen van de eerste tekst in de tweede tekst. Geeft %1 terug als de tekst niet gevonden is."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is leeg"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Geeft \"waar\" terug, als de opgegeven tekst leeg is."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "maak tekst met"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Maakt een stuk tekst door één of meer items samen te voegen."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_LENGTH_TITLE"] = "lengte van %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Geeft het aantal tekens terug (inclusief spaties) in de opgegeven tekst."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; -Blockly.Msg["TEXT_PRINT_TITLE"] = "tekst weergeven: %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Drukt de opgegeven tekst, getal of een andere waarde af."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Vraagt de gebruiker om een getal in te voeren."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Vraagt de gebruiker om invoer."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "vraagt de gebruiker om een getal met de tekst"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "vraagt om invoer met bericht"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "vervang %1 door %2 in %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Vervang alle voorkomens van tekst in een andere tekst."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1 omkeren"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Keert de volgorde van de tekens in de tekst om."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://nl.wikipedia.org/wiki/String_%28informatica%29"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Een letter, woord of een regel tekst."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "spaties van beide kanten afhalen van"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "spaties van de linkerkant verwijderen van"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "spaties van de rechterkant verwijderen van"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Geeft een kopie van de tekst met verwijderde spaties van één of beide kanten."; -Blockly.Msg["TODAY"] = "Vandaag"; -Blockly.Msg["UNDO"] = "Ongedaan maken"; -Blockly.Msg["UNNAMED_KEY"] = "zonder naam"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Maak \"verander %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Geeft de waarde van deze variabele."; -Blockly.Msg["VARIABLES_SET"] = "stel %1 in op %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Maak 'opvragen van %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Verandert de waarde van de variabele naar de waarde van de invoer."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Er bestaat al een variabele met de naam \"%1\"."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Een variabele met de naam '%1' bestaat al voor een ander soort variabele: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Zeg iets..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/oc.js b/lib/blockly/msg/js/oc.js deleted file mode 100644 index 9c2ee7c..0000000 --- a/lib/blockly/msg/js/oc.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Apondre un comentari"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Modificar la valor :"; -Blockly.Msg["CLEAN_UP"] = "Netejar los blòts"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Redusir los blòts"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Redusir lo blòt"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "color 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "color 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ratio"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mesclar"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://oc.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Causir una color dins la paleta."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "color aleatòria"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Causir una color a l'azard."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blau"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verd"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "roge"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "coloriar amb"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "quitar la bocla"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "passar a l’iteracion de bocla seguenta"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Sortir de la bocla englobanta."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "per cada element %1 dins la lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "comptar amb %1 de %2 a %3 per %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Apondre una condicion al blòt 'se'."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "siquenon"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "siquenon se"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "se"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://oc.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "far"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repetir %1 còps"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repetir fins a"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repetir tant que"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Suprimir totes los %1 blòts ?"; -Blockly.Msg["DELETE_BLOCK"] = "Suprimir lo blòt"; -Blockly.Msg["DELETE_VARIABLE"] = "Suprimir la variabla '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Suprimir %1 blòts"; -Blockly.Msg["DISABLE_BLOCK"] = "Desactivar lo blòt"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicar"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Activar lo blòt"; -Blockly.Msg["EXPAND_ALL"] = "Desvolopar los blòts"; -Blockly.Msg["EXPAND_BLOCK"] = "Desvolopar lo blòt"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entradas extèrnas"; -Blockly.Msg["HELP"] = "Ajuda"; -Blockly.Msg["INLINE_INPUTS"] = "Entradas en linha"; -Blockly.Msg["IOS_CANCEL"] = "Anullar"; -Blockly.Msg["IOS_ERROR"] = "Error"; -Blockly.Msg["IOS_OK"] = "D'acòrdi"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Apondre una entrada"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Òrdres autorizats"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Aquesta foncion a d'entradas duplicadas."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRADAS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Apondre"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Apondre una variabla"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Suprimir"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Podètz pas utilizar un nom de variabla void."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Renomenar"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nom de la variabla"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "crear una lista voida"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "crear una lista amb"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Apondre un element a la lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primièr"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# dempuèi la fin"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "obténer"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obténer e suprimir"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "darrièr"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aleatòri"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "suprimit"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Renvia lo primièr element dins una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Renvia l'element de la posicion especificada dins la lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "fins a # dempuèi la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "fins a #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "fins a la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 es lo darrièr element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 es lo primièr element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "dins la lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 es voida"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longitud de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inversar %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inversar la còpia d’una lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "coma"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserir en"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "metre"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "creissent"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descreissent"; -Blockly.Msg["LISTS_SORT_TITLE"] = "triar %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetic"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "amb lo separador"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "fals"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Renvia siá verai siá fals."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "verai"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://fr.wikipedia.org/wiki/Inegalite_(mathematiques)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Renviar verai se las doas entradas son egalas."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Renviar verai se las doas entradas son diferentas."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "pas %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "nul"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Renvia nul."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Renviar verai se las doas entradas son vertadièras."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "tèst"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se fals"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se verai"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://oc.wikipedia.org/wiki/Aritmetica"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Renvia la soma dels dos nombres."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "incrementar %1 per %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrénher %1 entre %2 e %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "es devesible per"; -Blockly.Msg["MATH_IS_EVEN"] = "es par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "es negatiu"; -Blockly.Msg["MATH_IS_ODD"] = "es impar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "es positiu"; -Blockly.Msg["MATH_IS_PRIME"] = "es primièr"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "es entièr"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "residú de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://oc.wikipedia.org/wiki/Nombre"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un nombre."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "mejana de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maximum de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimum de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "majoritaris de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "element aleatòri de lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "escart-tipe de la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "soma de la lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fraccion aleatòria"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arredondir"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arredondir a l’inferior"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arredondir al superior"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://fr.wikipedia.org/wiki/Racine_carree"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "raiç carrada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Renvia la valor absoluda d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Renvia a la poténcia d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Renvia lo logaritme natural d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Renvia lo logaritme decimal d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Renvia l’opausat d’un nombre"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Renvia 10 a la poténcia d’un nombre."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Renvia la raiç carrada d’un nombre."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Renvia l’arccosinus d’un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Renvia l’arcsinus d’un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Renvia l’arctangenta d’un nombre."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Renvia lo cosinus d’un angle en grases (pas en radians)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Renvia lo sinus d’un angle en grases (pas en radians)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Renvia la tangenta d’un angle en grases (pas en radians)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crear una variabla color…"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crear una variabla nombre…"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Crear una variabla cadena…"; -Blockly.Msg["NEW_VARIABLE"] = "Crear una variabla..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nom de la novèla variabla :"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Novèl tipe de variabla :"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "autorizar los òrdres"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "amb :"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "amb :"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Crear '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "far quicòm"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "a"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retorn"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nom de l’entrada :"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entradas"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Refar"; -Blockly.Msg["REMOVE_COMMENT"] = "Suprimir un comentari"; -Blockly.Msg["RENAME_VARIABLE"] = "Renomenar la variabla…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renomenar totas las variablas « %1 » a :"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 apondre lo tèxte %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "en minusculas"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "en Majuscula Al Començament De Cada Mot"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "en MAJUSCULAS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "obténer la primièra letra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "obténer la letra # dempuèi la fin"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "obténer la letra #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "obténer la darrièra letra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "obténer una letra a l'azard"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "dins lo tèxte %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Renvia la letra a la posicion indicada."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "nombre %1 sus %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "jónher"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "fins a la letra #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "fins a la darrièra letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "dins lo tèxte"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "dins lo tèxte %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 es void"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "crear un tèxte amb"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longor de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "afichar %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inversar %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Una letra, un mot o una linha de tèxte."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "suprimir los espacis dels dos costats"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Uèi"; -Blockly.Msg["UNDO"] = "Anullar"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crear 'fixar %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "fixar %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crear 'obténer %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Existís ja una variabla nomenada \"%1\"."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/pl.js b/lib/blockly/msg/js/pl.js deleted file mode 100644 index 4b9a8ce..0000000 --- a/lib/blockly/msg/js/pl.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Dodaj Komentarz"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Nie można usunąć zmiennej '%1', ponieważ jest częścią definicji funkcji '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Zmień wartość:"; -Blockly.Msg["CLEAN_UP"] = "Uporządkuj Bloki"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Zwiń Bloki"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Zwiń Klocek"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "kolor 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "kolor 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporcja"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "wymieszaj"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Miesza dwa kolory w danej proporcji (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Wybierz kolor z palety."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "losowy kolor"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Wybierz kolor w sposób losowy."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "niebieski"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zielony"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "czerwony"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "kolor z"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Utwórz kolor składający sie z podanej ilości czerwieni, zieleni i błękitu. Zakres wartości: 0 do 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "przerwij pętlę"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "przejdź do kolejnej iteracji pętli"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Przerwij działanie pętli."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Pomiń resztę pętli i kontynuuj w kolejnej iteracji."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Uwaga: Ten klocek może być użyty tylko wewnątrz pętli."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "dla każdego elementu %1 listy %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Przypisz zmiennej '%1' kolejno wartość każdego elementu listy, a następnie wykonaj kilka instrukcji."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "licz z %1 od %2 do %3 co %4 (wartość kroku)"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Zmiennej '%1' przypisuje wartości z podanego zakresu z podanym interwałem i wykonuje zadane bloki."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Dodaj warunek do klocka „jeśli”."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Dodaj ostatni zawsze prawdziwy warunek do klocka „jeśli”."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Dodaj, usuń lub zmień kolejność czynności, żeby zmodyfikować ten klocek „jeśli”."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "w przeciwnym razie"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "w przeciwnym razie, jeśli"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "jeśli"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Jeśli warunek jest spełniony, wykonaj zadane czynności."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Jeśli warunek jest spełniony, wykonaj pierwszy blok instrukcji. W przeciwnym razie, wykonaj drugi blok instrukcji."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Jeśli pierwszy warunek jest spełniony, wykonaj pierwszy blok instrukcji. W przeciwnym razie, jeśli drugi warunek jest spełniony, wykonaj drugi blok instrukcji."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Jeśli pierwszy warunek jest spełniony, wykonaj pierwszy blok czynności. W przeciwnym razie jeśli drugi warunek jest spełniony, wykonaj drugi blok czynności. Jeżeli żaden z warunków nie zostanie spełniony, wykonaj ostatni blok czynności."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "wykonaj"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "powtórz %1 razy"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Wykonaj niektóre instrukcje kilka razy."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "powtarzaj aż do"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "powtarzaj dopóki"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Dopóki wyrażenie jest nieprawdziwe, wykonaj zadane czynności."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Dopóki wyrażenie jest prawdziwe, wykonaj zadane czynności."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Usunąć wszystkie klocki z %1?"; -Blockly.Msg["DELETE_BLOCK"] = "Usuń Klocek"; -Blockly.Msg["DELETE_VARIABLE"] = "Usuń zmienną '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Usunąć %1 wystąpień zmiennej '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Usuń %1 Bloki(ów)"; -Blockly.Msg["DISABLE_BLOCK"] = "Wyłącz Klocek"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Powiel"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Zduplikowany komentarz"; -Blockly.Msg["ENABLE_BLOCK"] = "Włącz Blok"; -Blockly.Msg["EXPAND_ALL"] = "Rozwiń Bloki"; -Blockly.Msg["EXPAND_BLOCK"] = "Rozwiń Klocek"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Zewnętrzne Wejścia"; -Blockly.Msg["HELP"] = "Pomoc"; -Blockly.Msg["INLINE_INPUTS"] = "Wbudowane Wejścia"; -Blockly.Msg["IOS_CANCEL"] = "Anuluj"; -Blockly.Msg["IOS_ERROR"] = "Błąd"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Dodaj Wejście"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Zezwalaj na czynności."; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ta funkcja ma zduplikowane wejścia."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "WEJŚCIA"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Dodaj"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Dodaj Zmienną"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Usuń"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Nie możesz utworzyć funkcji bez nazwy."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Zmień nazwę"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nazwa zmiennej"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "utwórz pustą listę"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Zwraca listę o długości 0, nie zawierającą danych"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Dodaj, usuń lub zmień kolejność sekcji aby przekonfigurować blok tej listy."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "utwórz listę z"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Dodaj element do listy."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Utwórz listę z dowolną ilością elementów."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "pierwszy"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# od końca"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "pobierz"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "zabierz"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ostatni"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "losowy"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "usuń"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Zwraca pierwszy element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Zwraca element z konkretnej pozycji na liście."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Zwraca ostatni element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Zwraca losowy element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Usuwa i zwraca pierwszy element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Usuwa i zwraca element z określonej pozycji na liście."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Usuwa i zwraca ostatni element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Usuwa i zwraca losowy element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Usuwa pierwszy element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Usuwa element z określonej pozycji na liście."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Usuwa ostatni element z listy."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Usuwa losowy element z listy."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "do # od końca"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "do #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "do ostatniego"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "utwórz listę podrzędną od pierwszego"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "utwórz listę podrzędną z # od końca"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "utwórz listę podrzędną z #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Tworzy kopię żądanej części listy."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 to ostatni element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 to pierwszy element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "znajdź pierwsze wystąpienie elementu"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "znajdź ostatanie wystąpienie elementu"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Zwraca indeks pierwszego/ostatniego wystąpienia elementu z listy. Zwraca %1, jeśli nie zostanie znaleziony."; -Blockly.Msg["LISTS_INLIST"] = "na liście"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 jest pusta"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Zwraca \"prawda\" jeśli lista jest pusta."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "długość %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Zwraca długość listy."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "utwórz listę powtarzając %1 %2 razy."; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Tworzy listę zawierającą podaną wartość powtórzoną żądaną ilość razy."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "odwróć %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Odwraca kolejność danych w kopii listy."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "jako"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "wstaw w"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ustaw"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Wstawia element na początku listy."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Wstawia element na żądanej pozycji listy."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Dodaj element na koniec listy."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Wstawia element w losowym miejscu na liście."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Ustawia pierwszy element na liście."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Ustawia element w określonym miejscu na liście."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Ustawia ostatni element na liście."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Ustawia losowy element na liście."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "rosnąco"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "malejąco"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sortuj %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sortuj kopię listy."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetycznie, ignoruj wielkość liter"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numerycznie"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetycznie"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "utwórz listę z tekstu"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "utwórz tekst z listy"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Łączy listę tekstów w jeden tekst, rozdzielany separatorem."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Rozdziela tekst zgodnie z separatorem tworząc listę z powstałych elementów."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "z separatorem"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "fałsz"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Zwraca 'prawda' lub 'fałsz'."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "prawda"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://pl.wikipedia.org/wiki/Nierówność"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Zwraca \"prawda\", jeśli wejścia są identyczne."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Zwraca \"prawda\" jeśli pierwsze wejście jest większe od drugiego."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Zwraca \"prawda\", jeśli pierwsze wejście jest większe lub równe drugiemu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Zwraca \"prawda\" jeśli pierwsze wejście jest mniejsze od drugiego."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Zwraca \"prawda\", jeśli pierwsze wejście jest mniejsze lub równe drugiemu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Zwraca \"prawda\", jeśli wejścia nie są identyczne."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nie %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Zwraca \"prawda\", jeśli wejściu jest \"fałsz\". Zwraca \"fałsz\", jeśli na wejściu jest \"prawda\"."; -Blockly.Msg["LOGIC_NULL"] = "nic"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Zwraca nic."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "i"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "lub"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Zwraca \"prawda\" jeśli na obydwóch wejściach jest \"prawda\"."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Zwraca \"prawda\" jeśli co najmniej na jednyk wejściu jest \"prawda\"."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "jeśli fałsz"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "jeśli prawda"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Sprawdź warunek w „test”. Jeśli warunek jest prawdziwy, to zwróci „jeśli prawda”; jeśli nie jest prawdziwy to zwróci „jeśli fałsz”."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://pl.wikipedia.org/wiki/Arytmetyka"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Zwróć sumę dwóch liczb."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Zwróć iloraz dwóch liczb."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Zwróć różnicę dwóch liczb."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Zwróć iloczyn dwóch liczb."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Zwróć pierwszą liczbę podniesioną do potęgi o wykładniku drugiej liczby."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "zmień %1 o %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Dodaj liczbę do zmiennej '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://pl.wikipedia.org/wiki/Stała_(matematyka)"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Zwróć jedną wspólną stałą: π (3.141), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) lub ∞ (nieskończoność)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ogranicz %1 z dołu %2 z góry %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ogranicz liczbę, aby była w określonych granicach (włącznie)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "/"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "jest podzielna przez"; -Blockly.Msg["MATH_IS_EVEN"] = "jest parzysta"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "jest ujemna"; -Blockly.Msg["MATH_IS_ODD"] = "jest nieparzysta"; -Blockly.Msg["MATH_IS_POSITIVE"] = "jest dodatnia"; -Blockly.Msg["MATH_IS_PRIME"] = "jest liczbą pierwszą"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Sprawdź, czy liczba jest parzysta, nieparzysta, pierwsza, całkowita, dodatnia, ujemna, lub czy jest podzielna przez podaną liczbę. Zwraca wartość \"prawda\" lub \"fałsz\"."; -Blockly.Msg["MATH_IS_WHOLE"] = "jest liczbą całkowitą"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://pl.wikipedia.org/wiki/Modulo"; -Blockly.Msg["MATH_MODULO_TITLE"] = "reszta z dzielenia %1 przez %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Zwróć resztę z dzielenia dwóch liczb przez siebie."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Liczba."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "średnia elementów listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maksymalna wartość z listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimalna wartość z listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "dominanty listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "losowy element z listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "odchylenie standardowe listy"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma elementów listy"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Zwróć średnią (średnią arytmetyczną) wartości liczbowych z listy."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Zwróć największą liczbę w liście."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Zwróć medianę listy."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Zwróć najmniejszą liczbę w liście."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Zwróć listę najczęściej występujących elementów w liście."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Zwróć losowy element z listy."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Zwróć odchylenie standardowe listy."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Zwróć sumę wszystkich liczb z listy."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "losowy ułamek"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Zwróć losowy ułamek między 0.0 (włącznie), a 1.0 (wyłącznie)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "losowa liczba całkowita od %1 do %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Zwróć losową liczbę całkowitą w ramach dwóch wyznaczonych granic, włącznie."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://pl.wikipedia.org/wiki/Zaokrąglanie"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "zaokrąglij"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "zaokrąglij w dół"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "zaokrąglij w górę"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Zaokrąglij w górę lub w dół."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://pl.wikipedia.org/wiki/Pierwiastek_kwadratowy"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "wartość bezwzględna"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "pierwiastek kwadratowy"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Zwróć wartość bezwzględną danej liczby."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Zwróć e do potęgi danej liczby."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Zwróć logarytm naturalny danej liczby."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Zwraca logarytm dziesiętny danej liczby."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Zwróć negację danej liczby."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Zwróć 10 do potęgi danej liczby."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Zwróć pierwiastek kwadratowy danej liczby."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "arccos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctg"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://pl.wikipedia.org/wiki/Funkcje_trygonometryczne"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tg"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Zwróć arcus cosinus danej liczby."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Zwróć arcus sinus danej liczby."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Zwróć arcus tangens danej liczby."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Zwróć wartość cosinusa o stopniu (nie w radianach)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Zwróć wartość sinusa o stopniu (nie w radianach)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Zwróć tangens o stopniu (nie w radianach)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Utwórz zmienną colour"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Utwórz zmienną typu number"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Utwórz zmienną typu string"; -Blockly.Msg["NEW_VARIABLE"] = "Utwórz zmienną..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nowa nazwa zmiennej:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nowy typ zmiennej:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "zezwól na czynności"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "z:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://pl.wikipedia.org/wiki/Podprogram"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Uruchom zdefiniowaną przez użytkownika funkcję '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://pl.wikipedia.org/wiki/Podprogram"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Uruchom zdefiniowaną przez użytkownika funkcję '%1' i użyj jej wyjścia."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "z:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Utwórz '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Opisz tę funkcję..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "zrób coś"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "do"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Tworzy funkcję nie posiadającą wyjścia."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "zwróć"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Tworzy funkcję posiadającą wyjście."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Uwaga: Ta funkcja ma powtórzone parametry."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Podświetl definicję funkcji"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Jeśli warunek jest spełniony zwróć drugą wartość."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Uwaga: Ten klocek może być używany tylko w definicji funkcji."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nazwa wejścia:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Dodaj wejście do funkcji."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "wejścia"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Dodaj, usuń lub zmień kolejność wejść tej funkcji."; -Blockly.Msg["REDO"] = "Ponów"; -Blockly.Msg["REMOVE_COMMENT"] = "Usuń komentarz"; -Blockly.Msg["RENAME_VARIABLE"] = "Zmień nazwę zmiennej..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Zmień nazwy wszystkich '%1' zmiennych na:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "dodaj tekst %2 do %1"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Dołącz tekst do zmiennej '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "na małe litery"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "na Pierwsza Duża"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "na WIELKIE LITERY"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Zwraca kopię tekstu z odwruconą wielkością liter."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "pobierz pierwszą literę"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "pobierz literę # od końca"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "pobierz literę #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "pobierz ostatnią literę"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "pobierz losową literę"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "w tekście %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Zwraca literę z określonej pozycji."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "policz %1 w %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Liczy ile razy dany tekst występuje w innym tekście."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Dodaj element do tekstu."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "połącz"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Dodaj, usuń lub zmień kolejność sekcji, aby zmodyfikować klocek tekstowy."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "do # litery od końca"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "do # litery"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "do ostatniej litery"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "w tekście"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "pobierz podciąg od pierwszej litery"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "pobierz podciąg od # litery od końca"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "pobierz podciąg od # litery"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Zwraca określoną część tekstu."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "znajdź pierwsze wystąpienie tekstu"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "znajdź ostatnie wystąpienie tekstu"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "w tekście %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Zwraca indeks pierwszego/ostatniego wystąpienia pierwszego tekstu w drugim tekście. Zwraca wartość %1, jeśli tekst nie został znaleziony."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 jest pusty"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Zwraca prawda (true), jeśli podany tekst jest pusty."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "utwórz tekst z"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Tworzy fragment tekstu, łącząc ze sobą dowolną liczbę tekstów."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "długość %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Zwraca liczbę liter (łącznie ze spacjami) w podanym tekście."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "wydrukuj %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Wyświetl określony tekst, liczbę lub inną wartość."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Zapytaj użytkownika o liczbę."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Zapytaj użytkownika o jakiś tekst."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "poproś o liczbę z tą wiadomością"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "poproś o tekst z tą wiadomością"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "zamień %1 na %2 w %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Zastąp wszystkie wystąpienia danego tekstu innym."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "odwróć %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Odwraca kolejność znaków w tekście."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://pl.wikipedia.org/wiki/Tekstowy_typ_danych"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Litera, wyraz lub linia tekstu."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "usuń spacje po obu stronach"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "usuń spacje z lewej strony"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "usuń spacje z prawej strony"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Zwraca kopię tekstu z usuniętymi spacjami z jednego lub z obu końców tekstu."; -Blockly.Msg["TODAY"] = "Dzisiaj"; -Blockly.Msg["UNDO"] = "Cofnij"; -Blockly.Msg["UNNAMED_KEY"] = "bez nazwy"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Utwórz klocek 'ustaw %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Zwraca wartość tej zmiennej."; -Blockly.Msg["VARIABLES_SET"] = "przypisz %1 wartość %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Utwórz klocek 'pobierz %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Wartości zmiennej i wejście będą identyczne."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Zmienna o nazwie '%1' już istnieje."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Zmienna o nazwie '%1' już istnieje i jest typu '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Powiedz coś..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/pms.js b/lib/blockly/msg/js/pms.js deleted file mode 100644 index 57b699f..0000000 --- a/lib/blockly/msg/js/pms.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Gionté un coment"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "As peul nen eliminesse la variàbil '%1' përchè a l'é part ëd la definission dla fonsion '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Modifiché ël valor:"; -Blockly.Msg["CLEAN_UP"] = "Dëscancelé ij blòch"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Ij blòch sarà a conten-o dj'avertense."; -Blockly.Msg["COLLAPSE_ALL"] = "Arduve ij blòch"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Arduve ël blòch"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "color 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "color 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "rapòrt"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mës-cé"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "A mës-cia doi color ansema con un rapòrt dàit (0,0 - 1,0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Serne un color ant la taulòssa."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "color a asar"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Serne un color a asar."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "bleu"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verd"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ross"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "coloré con"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Creé un color con la quantità spessificà ëd ross, verd e bleu. Tuti ij valor a devo esse antra 0 e 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "seurte da la liassa"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continué con l'iterassion sucessiva dla liassa"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Seurte da la liassa anglobanta."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Sauté ël rest ëd sa liassa, e continué con l'iterassion apress."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Atension: Ës blòch a peul mach esse dovrà andrinta a na liassa."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "për minca n'element %1 ant la lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Për minca element an na lista, dé ël valor ëd l'element a la variàbil '%1', peui eseguì chèiche anstrussion."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "conté con %1 da %2 a %3 për %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Fé an manera che la variàbil \"%1\" a pija ij valor dal nùmer inissial fin-a al nùmer final, an contand për l'antërval ëspessificà, e eseguì ij bloch ëspessificà."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Gionté na condission al blòch si."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Gionté na condission final ch'a cheuj tut al blòch si."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Gionté, gavé o riordiné le session për cinfiguré torna ës blòch si."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "dësnò"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "dësnò si"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "si"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Si un valor a l'é ver, antlora eseguì chèiche anstrussion."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Si un valor a l'é ver, antlora eseguì ël prim blòch d'anstrussion. Dësnò, eseguì ël second blòch d'anstrussion."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Si ël prim valor a l'é ver, antlora fé andé ël prim blòch d'anstrussion. Dësnò, si ël second valor a l'é ver, fé andé ël second blòch d'anstrussion."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Si ël prim valor a l'é ver, antlora fé andé ël prim blòch d'anstrussion. Dësnò, si ël second valor a l'é ver, fé andé ël second blòcj d'anstrussion. Si gnun dij valor a l'é ver, fé andé l'ùltim blòch d'anstrussion."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "fé"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "arpete %1 vire"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Eseguì chèiche anstrussion vàire vire."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "arpete fin-a a"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "arpete antramentre che"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Cand un valor a l'é fàuss, eseguì chèiche anstrussion."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Cand un valor a l'é ver, eseguì chèiche anstrussion."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Scancelé tuti ij %1 blòch?"; -Blockly.Msg["DELETE_BLOCK"] = "Scancelé ël blòch"; -Blockly.Msg["DELETE_VARIABLE"] = "Eliminé la variàbil '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Eliminé %1 utilisassion ëd la variàbil '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Scancelé %1 blòch"; -Blockly.Msg["DISABLE_BLOCK"] = "Disativé ël blòch"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Dupliché"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Dupliché ël coment"; -Blockly.Msg["ENABLE_BLOCK"] = "Ativé ël blòch"; -Blockly.Msg["EXPAND_ALL"] = "Dësvlupé ij blòch"; -Blockly.Msg["EXPAND_BLOCK"] = "Dësvlupé ël blòch"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Imission esterne"; -Blockly.Msg["HELP"] = "Agiut"; -Blockly.Msg["INLINE_INPUTS"] = "Imission an linia"; -Blockly.Msg["IOS_CANCEL"] = "Anulé"; -Blockly.Msg["IOS_ERROR"] = "Eror"; -Blockly.Msg["IOS_OK"] = "Va bin"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Gionté n'imission"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Përmëtte le diciairassion"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Costa imission a dj'imission duplicà."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "IMISSION"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Gionté"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Gionté na variàbil"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Eliminé"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "A peul nen dovré un nòm ëd variàbil veuid."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Arnominé"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nòm ëd la variàbil"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "creé na lista veuida"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Smon-e na lista, ëd longheur 0, ch'a conten gnun-a argistrassion"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Gionté, gavé o riordiné le session për configuré torna cost blòch ëd lista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "creé na lista con"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Gionté n'element a la lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Creé na lista con un nùmer qualsëssìa d'element."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "prim"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# da la fin"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "oten-e"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "oten-e e eliminé"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ùltim"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "a l'ancàpit"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "eliminé"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "A smon ël prim element an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "A smon l'element a la posission ëspessificà an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "A smon l'ùltim element an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "A smon n'element a l'ancàpit an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "A gava e a smon ël prim element an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "A gava e a smon l'element a la posission ëspessificà an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "A gava e a smon l'ùltim element an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "A gava e a smon n'element a l'ancàpit an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "A gava ël prim element an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "A gava l'element a la posission ëspessificà an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "A gava l'ùltim element an na lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "A gava n'element a l'ancàpit da na lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "fin-a a # da la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "fin-a a #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "fin-a a l'ùltim"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "oten-e la sot-lista dal prim"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "oten-e la sot-lista da # da la fin"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "oten-e la sot-lista da #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "A crea na còpia dël tòch ëspessificà ëd na lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 a l'é l'ùltim element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 a l'é ël prim element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "trové la prima ocorensa dl'element"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "trové l'ùltima ocorensa dl'element"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "A smon l'ìndes ëd la prima/ùltima ocorensa dl'element ant la lista. A smon %1 se l'element a l'é nen trovà."; -Blockly.Msg["LISTS_INLIST"] = "ant la lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 a l'é veuid"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "A smon ver se la lista a l'é veuida."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longheur ëd %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "A smon la longheur ¨d na lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "creé na lista con l'element %1 arpetù %2 vire"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "A crea na lista ch'a consist dël valor dàit arpetù ël nùmer ëspessificà ëd vire."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "anversé %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Anversé na còpia ëd na lista"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "tanme"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "anserì an"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "buté"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "A anseriss l'element al prinsipi ëd na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "A anseriss l'element a la posission ëspessificà an na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Gionté l'element a la fin ëd na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "A anseriss l'element a l'ancàpit an na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "A fissa ël prim element an na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "A fissa l'element a la posission ëspessificà an na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "A fissa l'ùltim element an na lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "A fissa n'element a l'ancàpit an na lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "chërsent"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "calant"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ordiné %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordiné na còpia ëd na lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabétich, ignorand ël caràter minùscol o majùscol"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numérich"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabétich"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "fé na lista da 'n test"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "fé 'n test da na lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Gionze na lista ëd test ant un test sol, separandje con un separator."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Divide un test an na lista ëd test, tajand a minca 'n separator."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "con ël separator"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "fàuss"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "A rëspond ver o fàuss."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ver"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Rësponde ver si le doe imission a son uguaj."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Rësponde ver si la prima imission a l'é pi granda che la sconda."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Rësponde ver si la prima imission a l'é pi granda o ugual a la sconda."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Rësponde ver si la prima imission a l'é pi cita dla sconda."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Rësponde ver si la prima imission a l'é pi cita o ugual a la sconda."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Rësponde ver si le doe imission a son nen uguaj."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nen %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "A rëspond ver se l'imission a l'é fàussa. A rëspond fàuss se l'imission a l'é vera."; -Blockly.Msg["LOGIC_NULL"] = "gnente"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "A rëspond gnente."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Rësponde ver se tute doe j'imission a son vere."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Rësponde ver se almanch un-a d'imission a l'é vera."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "preuva"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se fàuss"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se ver"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Controlé la condission an 'preuva'. Se la condission a l'é vera, a rëspond con ël valor 'se ver'; dësnò a rëspond con ël valor 'se fàuss'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "A smon la soma ëd doi nùmer."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "A smon ël cossient dij doi nùmer."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "A smon la diferensa dij doi nùmer."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "A smon ël prodot dij doi nùmer."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "A smon ël prim nùmer alvà a la potensa dël second."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 ëd X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "A rëspond con l'arch-tangent dël pont (X, Y) an gre da -180 a 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "ancrementé %1 për %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Gionté un nùmer a la variàbil '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "A smon un-a dle costante comun-e π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) o ∞ (infinì)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "limité %1 antra %2 e %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Limité un nùmer a esse antra le limitassion ëspessificà (comprèise)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "a l'é divisìbil për"; -Blockly.Msg["MATH_IS_EVEN"] = "a l'é cobi"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "a l'é negativ"; -Blockly.Msg["MATH_IS_ODD"] = "a l'é dëscobi"; -Blockly.Msg["MATH_IS_POSITIVE"] = "a l'é positiv"; -Blockly.Msg["MATH_IS_PRIME"] = "a l'é prim"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "A contròla si un nùmer a l'é cobi, dëscobi, prim, antreghm positiv, negativ, o s'a l'é divisìbil për un nùmer dàit. A rëspond ver o fàuss."; -Blockly.Msg["MATH_IS_WHOLE"] = "a l'é antregh"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resta ëd %1:%2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "A smon la resta ëd la division dij doi nùmer."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un nùmer."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "media dla lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "màssim ëd la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mesan-a dla lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "mìnim ëd la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "mòde dla lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "element a l'ancàpit ëd la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "deviassion ëstàndard ëd la lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "soma dla lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "A smon la media (aritmética) dij valor numérich ant la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "A smon ël pi gròss nùmer ëd la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "A smon ël nùmer mesan ëd la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "A smon ël pi cit nùmer ëd la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "A smon na lista dj'element pi frequent ëd la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "A smon n'element a l'ancàpit da la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "A smon la deviassion ëstàndard ëd la lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "A smon la soma ëd tuti ij nùmer ant la lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "frassion aleatòria"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "A smon na frassion aleatòria antra 0,0 (comprèis) e 1,0 (esclus)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "antregh aleatòri antra %1 e %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "A smon n'antregh aleatòri antra ij doi lìmit ëspessificà, comprèis."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "ariondé"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ariondé për difet"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ariondé për ecess"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "A arionda un nùmer për difet o ecess."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "assolù"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "rèis quadra"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "A smon ël valor assolù d'un nùmer."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "A smon e a la potensa d'un nùmer."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "A smon ël logaritm natural d'un nùmer."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "A smon ël logaritm an base 10 d'un nùmer."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "A smon l'opòst d'un nùmer."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "A smon 10 a la potensa d'un nùmer."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "A smon la rèis quadra d'un nùmer."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "A smon l'arch-cosen d'un nùmer."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "A smon l'arch-sen d'un nùmer."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "A smon l'arch-tangenta d'un nùmer."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "A smon ël cosen ëd n'àngol an gré (pa an radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "A smon ël sen ëd n'àngol an gré (pa an radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "A smon la tangenta ëd n'àngol an gré (pa an radiant)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Creé na variàbil ëd color..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Creé na variàbil numérica..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Creé na variàbil dë stringa..."; -Blockly.Msg["NEW_VARIABLE"] = "Creé na variàbil..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nòm ëd la neuva variàbil:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Neuva sòrt ëd variàbil:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "përmëtte le diciairassion"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Eseguì la fonsion '%1' definìa da l'utent."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Eseguì la fonsion '%1' definìa da l'utent e dovré sò arzultà."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Creé '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Descrive sa fonsion..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fé cheicòs"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "a"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "A crea na fonsion sensa surtìa."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "artorn"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "A crea na fonsion con na surtìa."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Atension: Costa fonsion a l'ha dij paràmeter duplicà."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Sot-ligné la definission dla fonsion"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Se un valor a l'é ver, antlora smon-e un second valor."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Atension: Ës blòch a podria esse dovrà mach an na definission ëd fonsion."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nòm ëd l'imission:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Gionté n'imission a la fonsion."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "imission"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Gionté, gavé o riordiné j'imission ëd sa fonsion."; -Blockly.Msg["REDO"] = "Fé torna"; -Blockly.Msg["REMOVE_COMMENT"] = "Scancelé un coment"; -Blockly.Msg["RENAME_VARIABLE"] = "Arnomé la variàbil..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Arnomé tute le variàbij '%1' 'me:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 taché ël test %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Taché dël test a la variàbil '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "an minùscul"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "an Majùscol A L'Ancamin Ëd Minca Paròla"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "an MAJÙSCOL"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "A smon na còpia dël test ant un caràter diferent."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "oten-e la prima litra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "oten-e la litra # da la fin"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "oten-e la litra #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "oten-e l'ùltima litra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "oten-e na litra a l'ancàpit"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "ant ël test %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "A smon la litra ant la posission ëspessificà."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "nùmer %1 su %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Conté vàire vire un test dàit a compariss an n'àutr test."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Gionté n'element al test."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "gionze"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Gionté, gavé o riordiné le session për configuré torna ës blòch ëd test."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "fin-a a la litra # da la fin"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "fin-a a la litra #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "fin-a a l'ùltima litra"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ant ël test"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "oten-e la sota-stringa da la prima litra"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "oten-e la sota-stringa da la litra # da la fin"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "oten-e la sota-stringa da la litra #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "A smon un tòch ëspessificà dël test."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "trové la prima ocorensa dël test"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "trové l'ùltima ocorensa dël test"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ant ël test %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "A smon l'ìndes dla prima/ùltima ocorensa dël prim test ant ël second test. A smon %1 se ël test a l'é nen trovà."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 a l'é veuid"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "A smon ver se ël test fornì a l'é veuid."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "creé ël test con"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Creé un tòch ëd test an gionzend un nùmer qualsëssìa d'element."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longheur ëd %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "A smon ël nùmer ëd litre (spassi comprèis) ant ël test fornì."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "smon-e %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Smon-e ël test, ël nùmer o n'àutr valor ëspessificà."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Ciamé un nùmer a l'utent."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Ciamé un test a l'utent."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "anvit për un nùmer con un mëssagi"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "anvit për un test con un mëssagi"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "rampiassé %1 con %2 an %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Rampiassé tute j'ocorense d'un test con n'àutr."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "Anversé %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Anversé l'òrdin dij caràter ant ël test."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Na litra, na paròla o na linia ëd test."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "gavé jë spassi da le doe bande ëd"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "gavé jë spassi da la banda snistra ëd"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "gavé jë spassi da la banda drita ëd"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "A smon na còpia dël test con jë spassi gavà da n'estremità o da tute doe."; -Blockly.Msg["TODAY"] = "Ancheuj"; -Blockly.Msg["UNDO"] = "Anulé"; -Blockly.Msg["UNNAMED_KEY"] = "anònim"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Creé 'fissé %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "A smon ël valor ëd sa variàbil."; -Blockly.Msg["VARIABLES_SET"] = "fissé %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Creé 'oten-e %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Fissé costa variàbil ugual al valor d'imission."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Na variàbil con ël nòm '%1' a esist già."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Na variàbil ciamà '%1' a esist già për n'àutra sòrt: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Dì cheicòs..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/pt-br.js b/lib/blockly/msg/js/pt-br.js deleted file mode 100644 index 75a3d37..0000000 --- a/lib/blockly/msg/js/pt-br.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Adicionar comentário"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Não se pode deletar a variável '%1' porque é parte da definição da função '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Mudar valor:"; -Blockly.Msg["CLEAN_UP"] = "Limpar blocos"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Bloqueios recolhidos contêm avisos."; -Blockly.Msg["COLLAPSE_ALL"] = "Colapsar Blocos"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Colapsar Bloco"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "cor 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "cor 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporção"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "misturar"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mistura duas cores em uma dada proporção (0,0 - 1,0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://pt.wikipedia.org/wiki/Cor"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Escolher uma cor da palheta de cores."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "cor aleatória"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Escolher cor de forma aleatória."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "azul"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "vermelho"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colorir com"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Criar uma cor com a quantidade especificada de vermelho, verde e azul. Todos os valores devem estar entre 0 e 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "encerra o laço"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continua com a próxima iteração do laço"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Encerra o laço."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Ignora o resto deste laço, e continua com a próxima iteração."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Atenção: Este bloco só pode ser usado dentro de um laço."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "para cada item %1 na lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Para cada item em uma lista, atribua o item à variável '%1' e então realize algumas instruções."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "contar com %1 de %2 até %3 por %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Faça com que a variável '%1' assuma os valores do número inicial ao número final, contando de acordo com o intervalo especificado e execute os blocos especificados."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Acrescente uma condição para o bloco se."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Acrescente uma condição final para o bloco se."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Acrescente, remova ou reordene seções para reconfigurar este bloco."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "senão"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "senão se"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "se"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Se um valor for verdadeiro, então realize algumas instruções."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Se um valor for verdadeiro, então realize o primeiro bloco de instruções. Senão, realize o segundo bloco de instruções."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Se o primeiro valor for verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções. Se nenhum dos blocos for verdadeiro, realize o último bloco de instruções."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "faça"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repita %1 vezes"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Faça algumas instruções várias vezes."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repita até"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repita enquanto"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Enquanto um valor for falso, então faça algumas instruções."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Enquanto um valor for verdadeiro, então faça algumas instruções."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Deletar todos os blocos %1?"; -Blockly.Msg["DELETE_BLOCK"] = "Deletar bloco"; -Blockly.Msg["DELETE_VARIABLE"] = "Deletar a variável '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Deletar %1 usos da variável '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Deletar %1 blocos"; -Blockly.Msg["DISABLE_BLOCK"] = "Desabilitar bloco"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicar"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicar comentário"; -Blockly.Msg["ENABLE_BLOCK"] = "Habilitar bloco"; -Blockly.Msg["EXPAND_ALL"] = "Expandir blocos"; -Blockly.Msg["EXPAND_BLOCK"] = "Expandir bloco"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entradas externas"; -Blockly.Msg["HELP"] = "Ajuda"; -Blockly.Msg["INLINE_INPUTS"] = "Entradas incorporadas"; -Blockly.Msg["IOS_CANCEL"] = "blockly:IOS Cancelar/pt-br"; -Blockly.Msg["IOS_ERROR"] = "Erro"; -Blockly.Msg["IOS_OK"] = "Ok"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Adicionar Entrada"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permitir declarações"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Essa função tem entradas duplicadas."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRADAS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Adicionar"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Adicionar Variável"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Deletar"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Você não pode usar um nome de variável vazio."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Blockly:Renomear varioas botoens/pt-br"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nome variavel"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "criar lista vazia"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Retorna uma lista, de tamanho 0, contendo nenhum registro"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Acrescenta, remove ou reordena seções para reconfigurar este bloco de lista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "criar lista com"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Acrescenta um item à lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Cria uma lista com a quantidade de itens informada."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primeiro"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "nº a partir do final"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "nº"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "obter"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obter e remover"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "último"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aleatório"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remover"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Retorna o primeiro item em uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Retorna o item da lista na posição especificada."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Retorna o último item em uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Retorna um item aleatório de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Remove e retorna o primeiro item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Remove e retorna o item na posição especificada em uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Remove e retorna o último item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Remove e retorna um item aleatório de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Remove o primeiro item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Remove o item na posição especificada em uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Remove o último item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Remove um item aleatório de uma lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "até nº a partir do final"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "até nº"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "até último"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "obtém sublista a partir do primeiro"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "obtém sublista de nº a partir do final"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "obtém sublista de nº"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Cria uma cópia da porção especificada de uma lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 é o último item."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 é o primeiro item."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "encontre a primeira ocorrência do item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "encontre a última ocorrência do item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Retorna o índice da primeira/última ocorrência do item na lista. Retorna %1 se o item não for encontrado."; -Blockly.Msg["LISTS_INLIST"] = "na lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 é vazia"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Retorna ao verdadeiro se a lista estiver vazia."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "tamanho de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Retorna o tamanho de uma lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "criar lista com item %1 repetido %2 vezes"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Cria uma lista consistindo no valor informado repetido o número de vezes especificado."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Listas#invertendo-uma-lista"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inverter %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inverter uma cópia da lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "como"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserir em"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "definir"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Insere o item no início de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Insere o item na posição especificada em uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Insere o item no final de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Insere o item em uma posição qualquer de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Define o primeiro item de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Define o item da posição especificada de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Define o último item de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Define um item aleatório de uma lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascendente"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descendente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ordenar %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordenar uma cópia de uma lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabético, ignorar maiúscula/minúscula"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numérico"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabético"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "Fazer uma lista a partir do texto"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "fazer um texto a partir da lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Juntar uma lista de textos em um único texto, separado por um delimitador."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Dividir o texto em uma lista de textos, separando-o em cada delimitador."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "com delimitador"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falso"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Retorna verdadeiro ou falso."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "verdadeiro"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Retorna verdadeiro se ambas as entradas forem iguais."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Retorna verdadeiro se a primeira entrada for maior que a segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Retorna verdadeiro se a primeira entrada for maior ou igual à segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Retorna verdadeiro se a primeira entrada for menor que a segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Retorna verdadeiro se a primeira entrada for menor ou igual à segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Retorna verdadeiro se ambas as entradas forem diferentes."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "não %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Retorna verdadeiro se a entrada for falsa. Retorna falsa se a entrada for verdadeira."; -Blockly.Msg["LOGIC_NULL"] = "nulo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Retorna nulo."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ou"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Retorna verdadeiro se ambas as entradas forem verdadeiras."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Retorna verdadeiro se uma das estradas for verdadeira."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "teste"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se falso"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se verdadeiro"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Avalia a condição em \"teste\". Se a condição for verdadeira retorna o valor \"se verdadeiro\", senão retorna o valor \"se falso\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://pt.wikipedia.org/wiki/Aritm%C3%A9tica"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Retorna a soma dos dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Retorna o quociente da divisão dos dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Retorna a diferença entre os dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Retorna o produto dos dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Retorna o primeiro número elevado à potência do segundo número."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 de X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Retorne o arco tangente do ponto (X, Y) em graus de -180 a 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "alterar %1 por %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Soma um número à variável \"%1\"."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Retorna uma das constantes comuns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "restringe %1 inferior %2 superior %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Restringe um número entre os limites especificados (inclusivo)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "é divisível por"; -Blockly.Msg["MATH_IS_EVEN"] = "é par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "é negativo"; -Blockly.Msg["MATH_IS_ODD"] = "é ímpar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "é positivo"; -Blockly.Msg["MATH_IS_PRIME"] = "é primo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Verifica se um número é par, ímpar, inteiro, positivo, negativo, ou se é divisível por outro número. Retorna verdadeiro ou falso."; -Blockly.Msg["MATH_IS_WHOLE"] = "é inteiro"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resto da divisão de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Retorna o resto da divisão de dois números."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://pt.wikipedia.org/wiki/N%C3%BAmero"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Um número."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "média da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maior da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "menor da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "moda da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "item aleatório da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "desvio padrão da lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "soma de uma lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Retorna a média aritmética dos números da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Retorna o maior número da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Retorna a mediana dos números da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Retorna o menor número da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Retorna uma lista do(s) item(ns) mais comum(ns) da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Retorna um elemento aleatório da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Retorna o desvio padrão dos números da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Retorna a soma de todos os números na lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fração aleatória"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Retorna uma fração aleatória entre 0.0 (inclusivo) e 1.0 (exclusivo)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "inteiro aleatório entre %1 e %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Retorna um número inteiro entre os dois limites informados, inclusivo."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://pt.wikipedia.org/wiki/Arredondamento"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arredonda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arredonda para baixo"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arredonda para cima"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arredonda um número para cima ou para baixo."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://pt.wikipedia.org/wiki/Raiz_quadrada"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluto"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "raiz quadrada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Retorna o valor absoluto de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Retorna o número e elevado à potência de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Retorna o logaritmo natural de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Retorna o logaritmo em base 10 de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Retorna o oposto de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Retorna 10 elevado à potência de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Retorna a raiz quadrada de um número."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Retorna o arco cosseno de um número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Retorna o arco seno de um número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Retorna o arco tangente de um número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Retorna o cosseno de um grau (não radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Retorna o seno de um grau (não radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Retorna a tangente de um grau (não radiano)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Criar variável colorida..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Criar variável numérica..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Criar variável de segmentos de texto..."; -Blockly.Msg["NEW_VARIABLE"] = "Criar variável..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nome da nova variável:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tipo da nova variável:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permitir declarações"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "com:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://pt.wikipedia.org/wiki/Sub-rotina"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Executa a função definida pelo usuário \"%1\"."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://pt.wikipedia.org/wiki/Sub-rotina"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Executa a função definida pelo usuário \"%1\" e usa seu retorno."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "com:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Criar \"%1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Descreva esta função..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "faça algo"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "para"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Cria uma função que não tem retorno."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retorna"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Cria uma função que possui um valor de retorno."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Atenção: Esta função tem parâmetros duplicados."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Destacar definição da função"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Se um valor é verdadeiro, então retorna um valor."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Atenção: Este bloco só pode ser utilizado dentro da definição de uma função."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nome da entrada:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Adiciona uma entrada para esta função"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entradas"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Adiciona, remove, ou reordena as entradas para esta função."; -Blockly.Msg["REDO"] = "Refazer"; -Blockly.Msg["REMOVE_COMMENT"] = "Remover comentário"; -Blockly.Msg["RENAME_VARIABLE"] = "Renomear variável..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renomear todas as variáveis '%1' para:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "para %1 anexar texto %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Acrescentar um pedaço de texto à variável \"%1\"."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "para minúsculas"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "para Nomes Próprios"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "para MAIÚSCULAS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Retorna uma cópia do texto em um formato diferente."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "obter primeira letra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "obter letra # a partir do final"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "obter letra nº"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "obter última letra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "obter letra aleatória"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "no texto %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Retorna a letra na posição especificada."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "Contar %1 em %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Calcule quantas vezes algum texto aparece centro de algum outro texto."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Acrescentar um item ao texto."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Acrescenta, remove ou reordena seções para reconfigurar este bloco de texto."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "até letra nº a partir do final"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "até letra nº"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "até última letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "no texto"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "obter trecho de primeira letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "obter trecho de letra nº a partir do final"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "obter trecho de letra nº"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Retorna o trecho de texto especificado."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "encontre a primeira ocorrência do item"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "encontre a última ocorrência do texto"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "no texto %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Retorna a posição da primeira/última ocorrência do primeiro texto no segundo texto. Retorna %1 se o texto não for encontrado."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 é vazio"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Retorna verdadeiro se o texto fornecido for vazio."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "criar texto com"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Criar um pedaço de texto juntando qualquer número de itens."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "tamanho de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Retorna o número de letras (incluindo espaços) no texto fornecido."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "imprime %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Imprime o texto, número ou valor especificado."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Pede ao usuário um número."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Pede ao usuário um texto."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Pede um número com uma mensagem"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Pede um texto com uma mensagem"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Texto#substituindo-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "substituir %1 por %2 em %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Substitua todas as ocorrências de algum texto dentro de algum outro texto."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Texto#invertendo-texto"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inverter %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inverter a ordem dos caracteres no texto."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://pt.wikipedia.org/wiki/Cadeia_de_caracteres"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Uma letra, palavra ou linha de texto."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "remover espaços de ambos os lados de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "remover espaços à esquerda de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "remover espaços à direita de"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Retorna uma cópia do texto com os espaços removidos de uma ou ambas extremidades."; -Blockly.Msg["TODAY"] = "Hoje"; -Blockly.Msg["UNDO"] = "Desfazer"; -Blockly.Msg["UNNAMED_KEY"] = "Sem título"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Criar \"definir %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Retorna o valor desta variável."; -Blockly.Msg["VARIABLES_SET"] = "definir %1 para %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Criar \"obter %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Define esta variável para o valor da entrada."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variável chamada '%1' já existe."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Já existe uma variável chamada '%1' para outra do tipo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Diz algo..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/pt.js b/lib/blockly/msg/js/pt.js deleted file mode 100644 index f3ad694..0000000 --- a/lib/blockly/msg/js/pt.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Adicionar Comentário"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Não se pode eliminar a variável '%1' porque faz parte da definição da função '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Alterar valor:"; -Blockly.Msg["CLEAN_UP"] = "Limpar Blocos"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Os blocos ocultados contêm avisos."; -Blockly.Msg["COLLAPSE_ALL"] = "Ocultar Blocos"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Ocultar Bloco"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "cor 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "cor 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporção"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "misturar"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Mistura duas cores com a proporção indicada (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "http://pt.wikipedia.org/wiki/Cor"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Escolha uma cor da paleta de cores."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "cor aleatória"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Escolha uma cor aleatoriamente."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "azul"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "vermelho"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "pinte com"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Cria uma cor de acordo com a quantidade especificada de vermelho, verde e azul. Todos os valores devem estar entre 0 e 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "sair do ciclo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continuar com a próxima iteração do ciclo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Sair do ciclo que está contido."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Ignorar o resto deste ciclo, e continuar com a próxima iteração."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Aviso: Este bloco só pode ser usado dentro de um ciclo."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "para cada item %1 na lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Para cada item numa lista, define a variável \"%1\" para o item e então faz algumas instruções."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "contar com %1 de %2 até %3 por %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Faz com que a variável \"%1\" assuma os valores desde o número inicial até ao número final, contando de acordo com o intervalo especificado e executa os blocos especificados."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Acrescente uma condição ao bloco se."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Acrescente uma condição de excepação final para o bloco se."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Acrescente, remova ou reordene secções para reconfigurar este bloco se."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "senão"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "senão se"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "se"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Se um valor é verdadeiro, então realize alguns passos."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Se um valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, realize o segundo bloco de instruções"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções. Se nenhum dos blocos for verdadeiro, realize o último bloco de instruções."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "http://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "faça"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repetir %1 vez"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Faça algumas instruções várias vezes."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repetir até"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repetir enquanto"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Enquanto um valor for falso, então faça algumas instruções."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Enquanto um valor for verdadeiro, então faça algumas instruções."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Eliminar todos os %1 blocos?"; -Blockly.Msg["DELETE_BLOCK"] = "Eliminar Bloco"; -Blockly.Msg["DELETE_VARIABLE"] = "Eliminar a variável '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Eliminar %1 utilizações da variável '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Eliminar %1 Blocos"; -Blockly.Msg["DISABLE_BLOCK"] = "Desativar Bloco"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicar"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicar comentário"; -Blockly.Msg["ENABLE_BLOCK"] = "Ativar Bloco"; -Blockly.Msg["EXPAND_ALL"] = "Expandir Blocos"; -Blockly.Msg["EXPAND_BLOCK"] = "Expandir Bloco"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Entradas Externas"; -Blockly.Msg["HELP"] = "Ajuda"; -Blockly.Msg["INLINE_INPUTS"] = "Entradas Em Linhas"; -Blockly.Msg["IOS_CANCEL"] = "Cancelar"; -Blockly.Msg["IOS_ERROR"] = "Erro"; -Blockly.Msg["IOS_OK"] = "Aceitar"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Adicionar entrada"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permitir declarações"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Essa função tem entradas duplicadas."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ENTRADAS"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Adicionar"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Adicionar Variável"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Eliminar"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Você não pode usar um nome de variável vazio."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Renomear"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Nome da variável"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "criar lista vazia"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Retorna uma lista, de tamanho 0, contendo nenhum registo"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Acrescente, remova ou reordene as seções para reconfigurar este bloco lista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "criar lista com"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Acrescenta um item à lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Cria uma lista com qualquer número de itens."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primeiro"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# a partir do final"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "obter"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obter e remover"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "último"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aleatório"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remover"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Retorna o primeiro item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Retorna o item na posição especificada da lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Retorna o último item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Retorna um item aleatório de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Remove e retorna o primeiro item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Remove e retorna o item na posição especificada de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Remove e retorna o último item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Remove e retorna um item aleatório de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Remove o primeiro item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Remove o item de uma posição especifica da lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Remove o último item de uma lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Remove um item aleatório de uma lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "até #, a partir do final"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "até #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "para o último"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "obtem sublista da primeira lista"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "obtem sublista de # a partir do final"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "obtem sublista de #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Cria uma cópia da porção especificada de uma lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 é o último item."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 é o primeiro item."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "encontre a primeira ocorrência do item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "encontre a última ocorrência do item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Retorna a posição da primeira/última ocorrência do item na lista. Retorna %1 se o item não for encontrado."; -Blockly.Msg["LISTS_INLIST"] = "na lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 está vazia"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Retona verdadeiro se a lista estiver vazia."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "tamanho de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Retorna o tamanho de uma lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "criar lista com o item %1 repetido %2 vezes"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Cria uma lista constituída por um dado valor repetido o número de vezes especificado."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inverter %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inverter uma cópia da lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "como"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserir em"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "definir"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Insere o item no início da lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Insere o item numa posição especificada numa lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Insere o item no final da lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Insere o item numa posição aleatória de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Define o primeiro item de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Define o item na posição especificada de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Define o último item de uma lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Define um item aleatório de uma lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascendente"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descendente"; -Blockly.Msg["LISTS_SORT_TITLE"] = "ordenar %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Ordenar uma cópia de uma lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabética, ignorar maiúsculas/minúsculas"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numérica"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabética"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "fazer lista a partir de texto"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "fazer texto a partir da lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Juntar uma lista de textos num único texto, separado por um delimitador."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Dividir o texto numa lista de textos, separando-o em cada delimitador."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "com delimitador"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falso"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Retorna verdadeiro ou falso."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "verdadeiro"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "http://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Retorna verdadeiro se ambas as entradas forem iguais entre si."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Retorna verdadeiro se a primeira entrada for maior que a segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Retorna verdadeiro se a primeira entrada for maior ou igual à segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Retorna verdadeiro se a primeira entrada for menor que a segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Retorna verdadeiro se a primeira entrada for menor ou igual à segunda entrada."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Retorna verdadeiro se ambas as entradas forem diferentes entre si."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "não %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Retorna verdadeiro se a entrada for falsa. Retorna falso se a entrada for verdadeira."; -Blockly.Msg["LOGIC_NULL"] = "nulo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "http://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Retorna nulo."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "e"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ou"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Retorna verdadeiro se ambas as entradas forem verdadeiras."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Retorna verdadeiro se pelo menos uma das estradas for verdadeira."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "teste"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "http://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "se falso"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "se verdadeiro"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Avalia a condição em \"teste\". Se a condição for verdadeira retorna o valor \"se verdadeiro\", senão retorna o valor \"se falso\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "http://pt.wikipedia.org/wiki/Aritm%C3%A9tica"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Retorna a soma de dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Retorna o quociente da divisão de dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Retorna a diferença de dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Retorna o produto de dois números."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Retorna o primeiro número elevado à potência do segundo número."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 de X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Devolver o arco tangente do ponto (X, Y) em graus entre -180 e 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "http://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "alterar %1 por %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Soma um número à variável \"%1\"."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "http://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Retorna uma das constantes comuns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "restringe %1 inferior %2 superior %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Restringe um número entre os limites especificados (inclusive)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "é divisível por"; -Blockly.Msg["MATH_IS_EVEN"] = "é par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "é negativo"; -Blockly.Msg["MATH_IS_ODD"] = "é impar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "é positivo"; -Blockly.Msg["MATH_IS_PRIME"] = "é primo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Verifica se um número é par, impar, primo, inteiro, positivo, negativo, ou se é divisível por outro número. Retorna verdadeiro ou falso."; -Blockly.Msg["MATH_IS_WHOLE"] = "é inteiro"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "http://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resto da divisão de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Retorna o resto da divisão de dois números."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "http://pt.wikipedia.org/wiki/N%C3%BAmero"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Um número."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "média de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maior de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "menor de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "moda de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "item aleatório de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "desvio padrão de uma lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "soma da lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Retorna a média aritmética dos valores números da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Retorna o maior número da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Retorna a mediana da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Retorna o menor número da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Retorna a lista de item(ns) mais comum(ns) da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Retorna um elemento aleatório da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Retorna o desvio padrão dos números da lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Retorna a soma de todos os números da lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fração aleatória"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Insere uma fração aleatória entre 0.0 (inclusive) e 1.0 (exclusive)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "inteiro aleatório entre %1 e %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Retorna um número inteiro entre os dois limites especificados, inclusive."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "http://pt.wikipedia.org/wiki/Arredondamento"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arredonda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arredonda para baixo"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "arredonda para cima"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arredonda um número para cima ou para baixo."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "http://pt.wikipedia.org/wiki/Raiz_quadrada"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absoluto"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "raíz quadrada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Retorna o valor absoluto de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Retorna o número e elevado à potência de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Retorna o logarítmo natural de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Retorna o logarítmo em base 10 de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Retorna o oposto de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Retorna 10 elevado à potência de um número."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Retorna a raiz quadrada de um número."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "http://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Retorna o arco cosseno de um número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Retorna o arco seno de um número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Retorna o arco tangente de um número."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Retorna o cosseno de um grau (não radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Retorna o seno de um grau (não radiano)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Retorna a tangente de um grau (não radiano)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Criar variável colorida..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Criar variável numérica..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Criar variável de segmentos de texto..."; -Blockly.Msg["NEW_VARIABLE"] = "Criar variável…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nome da nova variável:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tipo da nova variável:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permitir declarações"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "com:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://pt.wikipedia.org/wiki/Sub-rotina"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Executa a função \"%1\"."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://pt.wikipedia.org/wiki/Sub-rotina"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Executa a função \"%1\" e usa o seu retorno."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "com:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Criar \"%1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Descreva esta função..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "faz algo"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "para"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Cria uma função que não tem retorno."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "retorna"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Cria uma função que possui um valor de retorno."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Aviso: Esta função tem parâmetros duplicados."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Destacar definição da função"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "se o valor é verdadeiro, então retorna um segundo valor."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Aviso: Este bloco só pode ser utilizado dentro da definição de uma função."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nome da entrada:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Adicionar uma entrada para a função."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entradas"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Adicionar, remover ou reordenar as entradas para esta função."; -Blockly.Msg["REDO"] = "Refazer"; -Blockly.Msg["REMOVE_COMMENT"] = "Remover Comentário"; -Blockly.Msg["RENAME_VARIABLE"] = "Renomear variável..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renomear todas as variáveis '%1' para:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "para %1 acrescentar texto %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Acrescentar um pedaço de texto à variável \"%1\"."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "para minúsculas"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "para Iniciais Maiúsculas"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "para MAIÚSCULAS"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Retorna uma cópia do texto em formato diferente."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "obter primeira letra"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "obter letra nº a partir do final"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "obter letra nº"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "obter última letra"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "obter letra aleatória"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "no texto %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Retorna a letra na posição especificada."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "contar %1 em %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Conte quantas vezes um certo texto aparece dentro de algum outro texto."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Acrescentar um item ao texto."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "unir"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Acrescenta, remove ou reordena seções para reconfigurar este bloco de texto."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "até letra nº a partir do final"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "até letra nº"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "até última letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "no texto"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "obter subsequência a partir da primeira letra"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "obter subsequência de tamanho # a partir do final"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "obter subsequência de tamanho #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Retorna a parte especificada do texto."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "primeira ocorrência do texto"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "última ocorrência do texto"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "no texto %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Retorna a posição da primeira/última ocorrência do primeiro texto no segundo texto. Retorna %1 se o texto não for encontrado."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 está vazio"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Retorna verdadeiro se o texto fornecido estiver vazio."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "criar texto com"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Criar um pedaço de texto juntando qualquer número de itens."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "tamanho de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Devolve o número de letras (incluindo espaços) do texto fornecido."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "imprime %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Imprime o texto, número ou outro valor especificado."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Pede ao utilizador um número."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Pede ao utilizador um texto."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "pede um número com a mensagem"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Pede um texto com a mensagem"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "substituir %1 por %2 em %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Substituir todas as ocorrências de um certo texto dentro de algum outro texto."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inverter %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inverte a ordem dos caracteres no texto."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "http://pt.wikipedia.org/wiki/Cadeia_de_caracteres"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Uma letra, palavra ou linha de texto."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "remover espaços de ambos os lados"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "remover espaços à esquerda de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "remover espaços à direita"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Retorna uma cópia do texto com os espaços removidos de uma ou ambas as extremidades."; -Blockly.Msg["TODAY"] = "Hoje"; -Blockly.Msg["UNDO"] = "Desfazer"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Criar \"definir %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Retorna o valor desta variável."; -Blockly.Msg["VARIABLES_SET"] = "definir %1 para %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Criar \"obter %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Define esta variável para o valor inserido."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Já existe uma variável com o nome de '%1'."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Já existe uma variável chamada '%1' para outra do tipo: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Diz algo..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ro.js b/lib/blockly/msg/js/ro.js deleted file mode 100644 index bb227fa..0000000 --- a/lib/blockly/msg/js/ro.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Adaugă un comentariu"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Nu se poate șterge variabila '%1' deoarece face parte din definiția funcției '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Schimbaţi valoarea:"; -Blockly.Msg["CLEAN_UP"] = "Curăță blocări"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Blocurile blocate conțin avertismente."; -Blockly.Msg["COLLAPSE_ALL"] = "Restrange blocurile"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Restrange blocul"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "culoare 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "culoare 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "Raport"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "amestec"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Amestecă două culori cu un raport dat (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ro.wikipedia.org/wiki/Culoare"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Alege o culoare din paleta de culori."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "culoare aleatorie"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Alege o culoare la întâmplare."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "albastru"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "verde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "roşu"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colorează cu"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Creează o culoare cu suma specificată de roşu, verde şi albastru. Toate valorile trebuie să fie între 0 şi 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ieşi din bucla"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continuă cu următoarea iterație a buclei"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Ieși din bucla care conţine."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Sari peste restul aceastei bucle, şi continuă cu urmatoarea iteratie."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Avertisment: Acest bloc pote fi utilizat numai în interiorul unei bucle."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "pentru fiecare element %1 în listă %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Pentru fiecare element din listă, setaţi variabila '%1' ca valoarea elementului, şi apoi faceţi unele declaraţii."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "numără cu %1 de la %2 la %3 prin %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Cu variablia \"%1\" ia o valoare din numărul început la numărul final, numara in intervalul specificat, apoi face blocurile specificate."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Adăugaţi o condiţie in blocul if."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Adauga o stare finala, cuprinde toata conditia din blocul if."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Adaugă, elimină sau reordonează secţiuni pentru a reconfigura acest bloc if."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "altfel"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "altfel dacă"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "dacă"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Dacă o valoare este adevărată, atunci fa unele declaraţii."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Dacă o valoare este adevărat, atunci face primul bloc de declaraţii. Altfel, face al doilea bloc de declaraţii."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Dacă prima valoare este adevărat, atunci face primul bloc de declaraţii. Altfel, dacă a doua valoare este adevărat, face al doilea bloc de declaraţii."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Dacă prima valoare este adevărat, atunci face primul bloc de declaraţii. Altfel, dacă a doua valoare este adevărat, face al doilea bloc de declaraţii. În cazul în care niciuna din valorilor nu este adevărat, face ultimul bloc de declaraţii."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "fă"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repetă de %1 ori"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Face unele afirmaţii de mai multe ori."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "Repetaţi până când"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repetă în timp ce"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "În timp ce o valoare este adevărat, atunci face unele declaraţii."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "În timp ce o valoare este adevărat, atunci face unele declaraţii."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ștergi toate cele %1 (de) blocuri?"; -Blockly.Msg["DELETE_BLOCK"] = "Șterge Bloc"; -Blockly.Msg["DELETE_VARIABLE"] = "Ștergeți variabila '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Șterge %1 utilizările variabilei '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Ștergeți %1 Blocuri"; -Blockly.Msg["DISABLE_BLOCK"] = "Dezactivaţi bloc"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicate"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Coment duplicat"; -Blockly.Msg["ENABLE_BLOCK"] = "Permite bloc"; -Blockly.Msg["EXPAND_ALL"] = "Extinde blocuri"; -Blockly.Msg["EXPAND_BLOCK"] = "Extinde bloc"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Intrări externe"; -Blockly.Msg["HELP"] = "Ajutor"; -Blockly.Msg["INLINE_INPUTS"] = "Intrări în linie"; -Blockly.Msg["IOS_CANCEL"] = "Anulare"; -Blockly.Msg["IOS_ERROR"] = "Eroare"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Adăugați intrare"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Permite declarațiile"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Această funcție are intrări duplicate."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INTRĂRI"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Adaugă"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+Adăugați variabilă"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Ştergeți"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Nu puteți utiliza un nume de variabilă gol."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Redenumire"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Numele variabilei"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "creează listă goală"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returnează o listă, de lungime 0, care nu conţine înregistrări de date"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "listă"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Adaugă, elimină sau reordonează secţiuni ca să reconfiguraţi aceste blocuri de listă."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "creează listă cu"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Adăugaţi un element la listă."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Creaţi o listă cu orice număr de elemente."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primul"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# de la sfârșit"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "obţine"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obţine şi elimină"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ultimul"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "aleator"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "elimină"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returnează primul element dintr-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returneaza elementul la poziţia specificată într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returnează ultimul element într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returneaza un element aleatoriu într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Elimină şi returnează primul element într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Elimină şi returneaza elementul la poziţia specificată într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Elimină şi returnează ultimul element într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Elimină şi returnează un element aleatoriu într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Elimină primul element într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Elimină elementul la poziţia specificată într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Elimină ultimul element într-o listă."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Elimină un element aleatoriu într-o listă."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "la # de la sfarsit"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "la #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "la ultima"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "obţine sub-lista de la primul"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "obţine sub-lista de la # de la sfârşitul"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "obţine sub-lista de la #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creează o copie a porţiunii specificate dintr-o listă."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 este ultimul element."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 este primul element."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "Găseşte prima apariţie a elementului"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "găseşte ultima apariţie a elementului"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returnează indexul primei/ultimei apariții a articolului din listă. Returnează %1 dacă elementul nu este găsit."; -Blockly.Msg["LISTS_INLIST"] = "în listă"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 este gol"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returnează adevărat dacă lista este goală."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "lungime de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returnează lungimea unei liste."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "creaza lista cu %1 elemente repetate de %2 ori"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creează o listă alcătuită dintr-o anumită valoare repetată de numărul specificat de ori."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "inversă %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Inversați copia unei liste."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "ca"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "introduceţi la"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "seteaza"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserează elementul la începutul unei liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserează elementul la poziţia specificată într-o listă."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Adăugă elementul la sfârşitul unei liste."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserează elementul aleatoriu într-o listă."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Setează primul element într-o listă."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Setează elementul la poziţia specificată într-o listă."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Setează ultimul element într-o listă."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Setează un element aleator într-o listă."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "crescător"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descrescător"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sortați %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sortați o copie a unei liste."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetic, ignorați cazul"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetic"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "convertește textul în listă"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "convertește lista în text"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Concatenează o listă de texte (alternate cu separatorul) într-un text unic"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Împarte textul într-o listă de texte, despărțite prin fiecare separator"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "cu separatorul"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "fals"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returnează adevărat sau fals."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "adevărat"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Returnează adevărat dacă ambele intrări sunt egale."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Returnează adevărat dacă prima intrare este mai mare decât a doua intrare."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Returnează adevărat dacă prima intrare este mai mare sau egală cu a doua intrare."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Returnează adevărat dacă prima intrare este mai mică decât a doua intrare."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Returnează adevărat dacă prima intrare este mai mică sau egală cu a doua intrare."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Returnează adevărat daca cele două intrări nu sunt egale."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "non %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returnează adevărat dacă intrarea este falsă. Returnează fals dacă intrarea este adevărată."; -Blockly.Msg["LOGIC_NULL"] = "nul"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "returnează nul."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "şi"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "sau"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Returnează adevărat daca ambele intrări sunt adevărate."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Returnează adevărat dacă cel puţin una din intrări este adevărată."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "dacă este fals"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "dacă este adevărat"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Verifică condiţia din \"test\". Dacă condiţia este adevărată, returnează valoarea \"în cazul în care adevărat\"; în caz contrar întoarce valoarea \"în cazul în care e fals\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ro.wikipedia.org/wiki/Aritmetic%C4%83"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Returnează suma a două numere."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Returnează câtul celor două numere."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Returneaza diferenţa dintre cele două numere."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Returnează produsul celor două numere."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Returneaza numărul rezultat prin ridicarea primului număr la puterea celui de-al doilea."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Întoarceți arctangentul punctului (X, Y) în grade de la -180 la 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "schimbă %1 de %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Adaugă un număr variabilei '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ro.wikipedia.org/wiki/Constant%C4%83_matematic%C4%83"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Întoarcă una din constantele comune: π (3.141...), e (2.718...), φ (1,618...), sqrt(2) (1.414...), sqrt(½) (0.707...) sau ∞ (infinitate)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrânge %1 redus %2 ridicat %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrânge un număr să fie între limitele specificate (inclusiv)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "este divizibil cu"; -Blockly.Msg["MATH_IS_EVEN"] = "este par"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "este negativ"; -Blockly.Msg["MATH_IS_ODD"] = "este impar"; -Blockly.Msg["MATH_IS_POSITIVE"] = "este pozitiv"; -Blockly.Msg["MATH_IS_PRIME"] = "este prim"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Verifică dacă un număr este un par, impar, prim, întreg, pozitiv, negativ, sau dacă este divizibil cu un anumit număr. Returnează true sau false."; -Blockly.Msg["MATH_IS_WHOLE"] = "este întreg"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "restul la %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Întoarce restul din împărţirea celor două numere."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Un număr."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "media listei"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maximul listei"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "media listei"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimul listei"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "moduri de listă"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "element aleatoriu din lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "deviația standard a listei"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma listei"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Întoarce media (aritmetică) a valorilor numerice în listă."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Întoarce cel mai mare număr din listă."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Întoarce numărul median în listă."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Returnează cel mai mic număr din listă."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Returnează o listă cu cel(e) mai frecvent(e) element(e) din listă."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Returnează un element aleatoriu din listă."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Întoarce deviația standard a listei."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Returnează suma tuturor numerelor din lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fracții aleatorii"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Returnează o fracţie aleatoare între 0.0 (inclusiv) si 1.0 (exclusiv)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "un număr întreg aleator de la %1 la %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Returnează un număr întreg aleator aflat între cele două limite specificate, inclusiv."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "rotund"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "rotunjit"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "rotunjește în sus"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Rotunjirea unui număr în sus sau în jos."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolută"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "rădăcina pătrată"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Returnează valoarea absolută a unui număr."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Returnează e la puterea unui număr."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Întoarce logaritmul natural al unui număr."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Returnează logaritmul în baza 10 a unui număr."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Returnează negaţia unui număr."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Returnează 10 la puterea unui număr."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Returnează rădăcina pătrată a unui număr."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "arccos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctg"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ro.wikipedia.org/wiki/Funcții_trigonometrice"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tg"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Returnează arccosinusul unui număr."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Returnează arcsinusul unui număr."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Returnează arctangenta unui număr."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Întoarce cosinusul unui grad (nu radianul)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Întoarce cosinusul unui grad (nu radianul)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Întoarce tangenta unui grad (nu radianul)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crează o variabilă culoare"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crează o variabilă număr"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Crează o variabilă string"; -Blockly.Msg["NEW_VARIABLE"] = "Crează variabilă"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Noul nume de variabilă:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tip nou de variabilă"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permite declarațiile"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "cu:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Executați funcția '%1 'definită de utilizator."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Executați funcția '%1 'definită de utilizator şi folosiţi producţia sa."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "cu:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Creaţi '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Descrieți această funcție ..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fă ceva"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "la"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Crează o funcţie cu nici o ieşire."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://ro.wikipedia.org/wiki/Subrutină"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "returnează"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creează o funcţie cu o ieşire."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Atenţie: Această funcţie are parametri duplicaţi."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Evidenţiază definiţia funcţiei"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Dacă o valoare este adevărată, atunci returnează valoarea a doua."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Avertisment: Acest bloc poate fi utilizat numai în definiţia unei funcţii."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nume de intrare:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Adaugă un parametru de intrare pentru funcție."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "intrări"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Adăugă, șterge sau reordonează parametrii de intrare ai acestei funcții."; -Blockly.Msg["REDO"] = "Refă"; -Blockly.Msg["REMOVE_COMMENT"] = "Elimină comentariu"; -Blockly.Msg["RENAME_VARIABLE"] = "Redenumirea variabilei..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Redenumeşte toate variabilele '%1' în:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "la %1 Adăugaţi text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Adăugaţi text la variabila '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "la litere mici"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "către Titlul de caz"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "la MAJUSCULE"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Întoarce o copie a textului într-un caz diferit."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "obţine prima litera"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "obţine litera # de la sfârșit"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "obtine litera #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "obţine o litera oarecare"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "obtine o litera oarecare"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "în text %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returnează litera la poziția specificată."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "numără %1 in %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Aflați de câte ori apare un text într-un alt text."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Adaugă un element în text."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "alăturaţi-vă"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Adaugă, elimină sau reordonează secțiuni ca să reconfigureze blocul text."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "la litera # de la sfarsit"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "la litera #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "la ultima literă"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "în text"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "obţine un subșir de la prima literă"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "obține un subșir de la litera # de la sfârșit"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "obține subșir de la litera #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returnează o anumită parte din text."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "găseşte prima apariţie a textului"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "găseşte ultima apariţie a textului"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "în text %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returnează indicele primei/ultimei apariţii din primul text în al doilea text. Returnează %1 dacă textul nu este găsit."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 este gol"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returnează adevărat dacă textul furnizat este gol."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "crează text cu"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Creaţi o bucată de text prin unirea oricărui număr de elemente."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "lungime de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returnează numărul de litere (inclusiv spaţiile) în textul furnizat."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "imprimare %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Afișează textul specificat, numărul sau altă valoare."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Solicită utilizatorul pentru un număr."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Solicită utilizatorul pentru text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "solicită pentru număr cu mesaj"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "solicită pentru text cu mesaj"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "înlocuiți %1 cu %2 în %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Înlocuiți toate aparițiile anumitor texte într-un alt text."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "inversă %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Inversează ordinea caracterelor din text."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "O literă, cuvânt sau linie de text."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "taie spațiile de pe ambele părți ale"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "tăiaţi spațiile din partea stângă a"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "taie spațiile din partea dreaptă a"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Returnează o copie a textului fără spațiile de la unul sau ambele capete."; -Blockly.Msg["TODAY"] = "Astăzi"; -Blockly.Msg["UNDO"] = "Anulează"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crează 'set %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returnează valoarea acestei variabile."; -Blockly.Msg["VARIABLES_SET"] = "seteaza %1 la %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crează 'get %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Setează această variabilă sa fie egală la intrare."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "O variabilă cu numele '%1' există deja."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "o variabilă numită '%1' există deja pentru alt tip: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Spune ceva..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ru.js b/lib/blockly/msg/js/ru.js deleted file mode 100644 index eb5dbcc..0000000 --- a/lib/blockly/msg/js/ru.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Добавить комментарий"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Невозможно удалить переменную '%1', поскольку она является частью определения функции '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Измените значение:"; -Blockly.Msg["CLEAN_UP"] = "Убрать блоки"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Свёрнутые блоки содержат предупреждения."; -Blockly.Msg["COLLAPSE_ALL"] = "Свернуть блоки"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Свернуть блок"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "цвет 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "цвет 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "доля цвета 1"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "смешать"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Смешивает два цвета в заданном соотношении (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ru.wikipedia.org/wiki/Цвет"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Выберите цвет из палитры."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "случайный цвет"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Выбирает цвет случайным образом."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "синего"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зелёного"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "красного"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "цвет из"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Создаёт цвет с указанной пропорцией красного, зеленого и синего. Все значения должны быть между 0 и 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "выйти из цикла"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "перейти к следующему шагу цикла"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Прерывает этот цикл."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Пропускает остаток цикла и переходит к следующему шагу."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Предупреждение: этот блок может использоваться только внутри цикла."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "для каждого элемента %1 в списке %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Для каждого элемента в списке, присваивает переменной '%1' значение элемента и выполняет указанные команды."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "цикл по %1 от %2 до %3 с шагом %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Присваивает переменной '%1' значения от начального до конечного с заданным шагом и выполняет указанные команды."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Добавляет условие к блоку \"если\""; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Добавить заключительный подблок для случая, когда все условия ложны."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Добавьте, удалите, переставьте фрагменты для переделки блока \"если\"."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "иначе"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "иначе если"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "если"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Если условие истинно, выполняет команды."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Если условие истинно, выполняет первый блок команд. Иначе выполняется второй блок команд."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Если первое условие истинно, то выполняет первый блок команд. Иначе, если второе условие истинно, выполняет второй блок команд."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Если первое условие истинно, то выполняет первый блок команд. В противном случае, если второе условие истинно, выполняет второй блок команд. Если ни одно из условий не истинно, выполняет последний блок команд."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ru.wikipedia.org/wiki/Цикл_(программирование)"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "выполнить"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "повторить %1 раз"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Выполняет некоторые команды несколько раз."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "повторять, пока не"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "повторять, пока"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Пока значение ложно, выполняет команды"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Пока значение истинно, выполняет команды."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Удалить все блоки (%1)?"; -Blockly.Msg["DELETE_BLOCK"] = "Удалить блок"; -Blockly.Msg["DELETE_VARIABLE"] = "Удалить переменную '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Удалить %1 использований переменной '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Удалить %1 блоков"; -Blockly.Msg["DISABLE_BLOCK"] = "Отключить блок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Дублировать"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Клонировать комментарий"; -Blockly.Msg["ENABLE_BLOCK"] = "Включить блок"; -Blockly.Msg["EXPAND_ALL"] = "Развернуть блоки"; -Blockly.Msg["EXPAND_BLOCK"] = "Развернуть блок"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Вставки снаружи"; -Blockly.Msg["HELP"] = "Справка"; -Blockly.Msg["INLINE_INPUTS"] = "Вставки внутри"; -Blockly.Msg["IOS_CANCEL"] = "Отмена"; -Blockly.Msg["IOS_ERROR"] = "Ошибка"; -Blockly.Msg["IOS_OK"] = "ОК"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Добавить входную переменную"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Разрешить операторы"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "У этой функции есть дублирующиеся входные переменные."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ВХОД"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Добавить"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Добавить переменную"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Удалить"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Вы не можете использовать пустое имя переменной."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Переименовать"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Имя переменной"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "создать пустой список"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Возвращает список длины 0, не содержащий данных"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "список"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Добавьте, удалите, переставьте элементы для переделки блока списка."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "создать список из"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Добавляет элемент к списку."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Создаёт список с любым числом элементов."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "первый"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "№ с конца"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "взять"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "взять и удалить"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "последний"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "произвольный"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "удалить"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Возвращает первый элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Возвращает элемент в указанной позиции списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Возвращает последний элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Возвращает случайный элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Удаляет и возвращает первый элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Удаляет и возвращает элемент в указанной позиции списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Удаляет и возвращает последний элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Удаляет и возвращает случайный элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Удаляет первый элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Удаляет элемент в указанной позиции списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Удаляет последний элемент списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Удаляет случайный элемент списка."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "по № с конца"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "по №"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "по последний"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "взять подсписок с первого"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "взять подсписок с № с конца"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "взять подсписок с №"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Создаёт копию указанной части списка."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 - последний элемент."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 - первый элемент."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "найти первое вхождение элемента"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "найти последнее вхождение элемента"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Возвращает номер позиции первого/последнего вхождения элемента в списке. Возвращает %1, если элемент не найден."; -Blockly.Msg["LISTS_INLIST"] = "в списке"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 пуст"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Возвращает значение истина, если список пуст."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "длина %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Возвращает длину списка."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "создать список из элемента %1, повторяющегося %2 раз"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Создаёт список, состоящий из заданного числа копий элемента."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "изменить порядок на обратный %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Изменить порядок списка на обратный."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "="; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "вставить в"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "присвоить"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Вставляет элемент в начало списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Вставляет элемент в указанной позиции списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Добавляет элемент в конец списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Вставляет элемент в случайное место в списке."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Присваивает значение первому элементу списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Присваивает значение элементу в указанной позиции списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Присваивает значение последнему элементу списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Присваивает значение случайному элементу списка."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "по возрастанию"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "по убыванию"; -Blockly.Msg["LISTS_SORT_TITLE"] = "сортировать %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Сортировать копию списка."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "по алфавиту, без учёта регистра"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "числовая"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "по алфавиту"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "сделать список из текста"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "собрать текст из списка"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Соединяет список текстов в один текст с разделителями."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Разбивает текст в список текстов, по разделителям."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "с разделителем"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ложь"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Возвращает значение истина или ложь."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "истина"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://ru.wikipedia.org/wiki/Неравенство"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Возвращает положительное значение, если вводы равны."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Возвращает значение истина, если первая вставка больше второй."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Возвращает значение истина, если первая вставка больше или равна второй."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Возвращает положительное значение, если первый ввод меньше второго."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Возвращает значение истина, если первая вставка меньше или равна второй."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Возвращает положительное значение, если вводы не равны."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "не %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Возвращает значение истина, если вставка ложна. Возвращает значение ложь, если вставка истинна."; -Blockly.Msg["LOGIC_NULL"] = "ничто"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Возвращает ничто."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "и"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "или"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Возвращает значение истина, если обе вставки истинны."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Возвращает значение истина, если хотя бы одна из вставок истинна."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "выбрать по"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://ru.wikipedia.org/wiki/Тернарная_условная_операция"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "если ложь"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "если истина"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Проверяет условие выбора. Если условие истинно, возвращает первое значение, в противном случае возвращает второе значение."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ru.wikipedia.org/wiki/Арифметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Возвращает сумму двух чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Возвращает частное от деления первого числа на второе."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Возвращает разность двух чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Возвращает произведение двух чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Возвращает первое число, возведённое в степень второго числа."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 от X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Возвращает арктангенс точки (X, Y) в градусах от -180 до 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B8%D0%BE%D0%BC%D0%B0_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29#.D0.98.D0.BD.D0.BA.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D1.82"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "увеличить %1 на %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Добавляет число к переменной '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ru.wikipedia.org/wiki/Математическая_константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Возвращает одну из распространённых констант: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (бесконечность)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ограничить %1 снизу %2 сверху %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ограничивает число нижней и верхней границами (включительно)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "делится на"; -Blockly.Msg["MATH_IS_EVEN"] = "чётное"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "отрицательное"; -Blockly.Msg["MATH_IS_ODD"] = "нечётное"; -Blockly.Msg["MATH_IS_POSITIVE"] = "положительное"; -Blockly.Msg["MATH_IS_PRIME"] = "простое"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Проверяет, является ли число чётным, нечётным, простым, целым, положительным, отрицательным или оно кратно определённому числу. Возвращает значение истина или ложь."; -Blockly.Msg["MATH_IS_WHOLE"] = "целое"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://ru.wikipedia.org/wiki/Деление_с_остатком"; -Blockly.Msg["MATH_MODULO_TITLE"] = "остаток от %1 : %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Возвращает остаток от деления двух чисел."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ru.wikipedia.org/wiki/Число"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Число."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "среднее арифметическое списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "наибольшее в списке"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "медиана списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "наименьшее в списке"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "моды списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "случайный элемент списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "стандартное отклонение списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "сумма списка"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Возвращает среднее арифметическое списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Возвращает наибольшее число списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Возвращает медиану списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Возвращает наименьшее число списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Возвращает список наиболее часто встречающихся элементов списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Возвращает случайный элемент списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Возвращает стандартное отклонение списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Возвращает сумму всех чисел в списке."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "случайное число от 0 (включительно) до 1"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Возвращает случайное число от 0.0 (включительно) до 1.0."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "случайное целое число от %1 для %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Возвращает случайное число между двумя заданными пределами (включая и их)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://ru.wikipedia.org/wiki/Округление"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "округлить"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "округлить к меньшему"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "округлить к большему"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Округляет число до большего или меньшего."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ru.wikipedia.org/wiki/Квадратный_корень"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "модуль"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "квадратный корень"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Возвращает модуль числа"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Возвращает е в указанной степени."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Возвращает натуральный логарифм числа."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Возвращает десятичный логарифм числа."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Возвращает противоположное число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Возвращает 10 в указанной степени."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Возвращает квадратный корень числа."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ru.wikipedia.org/wiki/Тригонометрические_функции"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Возвращает арккосинус (в градусах)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Возвращает арксинус (в градусах)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Возвращает арктангенс (в градусах)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Возвращает косинус угла в градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Возвращает синус угла в градусах."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Возвращает тангенс угла в градусах."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Создать переменную цвета..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Создать числовую переменную..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Создать строковую переменную..."; -Blockly.Msg["NEW_VARIABLE"] = "Создать переменную…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Имя новой переменной:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Новый тип переменной:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "разрешить операторы"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "с:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ru.wikipedia.org/wiki/Подпрограмма"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Исполняет определённую пользователем процедуру '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ru.wikipedia.org/wiki/Подпрограмма"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Исполняет определённую пользователем процедуру '%1' и возвращает вычисленное значение."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "с:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Создать вызов '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Опишите эту функцию…"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "выполнить что-то"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "чтобы"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Создаёт процедуру, не возвращающую значение."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "вернуть"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Создаёт процедуру, возвращающую значение."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Предупреждение: эта функция имеет повторяющиеся параметры."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Выделить определение процедуры"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Если первое значение истинно, возвращает второе значение."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Предупреждение: Этот блок может использоваться только внутри определения функции."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "имя параметра:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Добавить входной параметр в функцию."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "параметры"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Добавить, удалить или изменить порядок входных параметров для этой функции."; -Blockly.Msg["REDO"] = "Повторить"; -Blockly.Msg["REMOVE_COMMENT"] = "Удалить комментарий"; -Blockly.Msg["RENAME_VARIABLE"] = "Переименовать переменную…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Переименовать все переменные '%1' в:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "к %1 добавить текст %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Добавить текст к переменной «%1»."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "в строчные буквы"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "в Заглавные Начальные Буквы"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "в ЗАГЛАВНЫЕ БУКВЫ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Возвращает копию текста с ЗАГЛАВНЫМИ или строчными буквами."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "взять первую букву"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "взять букву № с конца"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "взять букву №"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "взять последнюю букву"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "взять случайную букву"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "в тексте %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Возвращает букву в указанной позиции."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "подсчитать количество %1 в %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Подсчитать, сколько раз отрывок текста появляется в другом тексте."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Добавить элемент к тексту."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "соединить"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Добавьте, удалите, переставьте фрагменты для переделки текстового блока."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "по букву № с конца"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "по букву №"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "по последнюю букву"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "в тексте"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "взять подстроку с первой буквы"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "взять подстроку с буквы № с конца"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "взять подстроку с буквы №"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Возвращает указанную часть текста."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "найти первое вхождение текста"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "найти последнее вхождение текста"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "в тексте %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Возвращает номер позиции первого/последнего вхождения первого текста во втором. Возвращает %1, если текст не найден."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 пуст"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Возвращает значение истина, если предоставленный текст пуст."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "создать текст из"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Создаёт фрагмент текста, объединяя любое число элементов"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "длина %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Возвращает число символов (включая пробелы) в заданном тексте."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "напечатать %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Печатает текст, число или другой объект."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Запросить у пользователя число."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Запросить у пользователя текст."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "запросить число с подсказкой"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "запросить текст с подсказкой"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "заменить %1 на %2 в %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Заменить все вхождения некоторого текста другим текстом."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "изменить порядок на обратный %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Меняет порядок символов в тексте на обратный."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ru.wikipedia.org/wiki/Строковый_тип"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Буква, слово или строка текста."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "обрезать пробелы с двух сторон"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "обрезать пробелы слева"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "обрезать пробелы справа"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Возвращает копию текста с пробелами, удалёнными с одного или обоих концов."; -Blockly.Msg["TODAY"] = "Сегодня"; -Blockly.Msg["UNDO"] = "Отменить"; -Blockly.Msg["UNNAMED_KEY"] = "без названия"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "элемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Создать блок \"присвоить\" для %1"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Возвращает значение этой переменной."; -Blockly.Msg["VARIABLES_SET"] = "присвоить %1 = %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Создать вставку %1"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Присваивает переменной значение вставки."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Переменная с именем '%1' уже существует."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Название переменной '%1' уже используется другой типа: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Напишите здесь что-нибудь..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sc.js b/lib/blockly/msg/js/sc.js deleted file mode 100644 index ec8c1d6..0000000 --- a/lib/blockly/msg/js/sc.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Agiunghe unu cumentu"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Muda valori:"; -Blockly.Msg["CLEAN_UP"] = "Lìmpia is brocus"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Serra e stringi Brocus"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Serra e stringi Brocu"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "colori 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "colori 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "raportu"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mestura"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Amestura duus coloris cun unu raportu (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Scebera unu colori de sa tauledda."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "Unu colori a brítiu"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Scebera unu colori a brítiu."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blue"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "birdi"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "arrùbiu"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "colora cun"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Cuncorda unu colori cun su tanti de arrubiu, birdi, e blue. Totu is valoris depint essi intra 0 e 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "sàrtiat a foras de sa lòriga"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "sighit cun su repicu afatànti"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Bessit de sa lòriga."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Sartiat su chi abarrat de sa loriga, e sighit cun su repicu afatànti."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Amonestu: Custu brocu ddu podis ponni sceti aintru de una lòriga."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "po dònnia item %1 in lista %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Po dònnia item in sa lista, ponit sa variàbili '%1' pari a s'item, e tandu fait pariga de cumandus."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "po %1 de %2 fintzas %3 a passus de %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Fait pigai a sa variàbili \"%1\" i valoris de su primu numeru a s'urtimu, a su passu impostau e fait su brocu."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Aciungi una cunditzioni a su brocu si."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Aciungi una urtima cunditzioni piga-totu a su brocu si."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Aciungi, fùlia, o assenta is partis po torrai a sètiu custu brocu si."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "sinuncas"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "sinuncas si"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "si"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Si su valori est berus, tandu fait pariga de cumandus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Si su valori est berus, tandu fai su primu brocu de is cumandus. Sinuncas, fai su segundu brocu de is cumandus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Si su primu valori est beridadi, tandu fai su primu brocu de is cumandus. Sinuncas, si su segundu valori est beridadi, fai su segundu brocu de is cumandus."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Si su primu valori est berus, tandu fai su primu brocu de is cumandus. Sinuncas, si su segundu valori est berus, fai su segundu brocu de is cumandus. Si mancu unu valori est berus, tandu fai s'urtimu brocu de is cumandus."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "fai"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repiti %1 bortas"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Fait pariga de cumandus prus bortas."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "repiti fintzas"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repiti interis"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Interis su valori est frassu, tandu fai pariga de cumandus."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Interis su valori est berus, tandu fai pariga de cumandus."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Scancellu su %1 de is brocus?"; -Blockly.Msg["DELETE_BLOCK"] = "Fùlia Blocu"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "Fulia %1 Blocus"; -Blockly.Msg["DISABLE_BLOCK"] = "Disabìlita Blocu"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Dùplica"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Abìlita Blocu"; -Blockly.Msg["EXPAND_ALL"] = "Aberi Brocus"; -Blockly.Msg["EXPAND_BLOCK"] = "Aberi Brocu"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Intradas esternas"; -Blockly.Msg["HELP"] = "Agiudu"; -Blockly.Msg["INLINE_INPUTS"] = "Intradas in lìnia"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "fait una lista buida"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Torrat una lista, de longària 0, chena records de datus."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Aciungi, fùlia, o assenta is partis po torrai a sètiu custu brocu lista."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "fait una lista cun"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Acciungi unu item a sa lista."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Fait una lista cun calisiollat numeru de items."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primu"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# de sa fini"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "piga"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "piga e fùlia"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "urtimu"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "a brìtiu (random)"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "fùlia"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Torrat su primu elementu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Torrat s'elementu de su postu inditau de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Torrat s'urtimu elementu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Torrat un'elementu a brìtiu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Fùliat e torrat su primu elementu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Fùliat e torrat s'elementu de su postu inditau de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Fùliat e torrat s'urtimu elementu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Fùliat e torrat un'elementu a brìtiu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Fùliat su primu elementu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Fùliat s'elementu de su postu inditau de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Fùliat s'urtimu elementu de una lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Fùliat unu elementu a brìtiu de una lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "a # de sa fini"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "fintzas a #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "a s'urtimu"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "bogandi suta-lista de su primu"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "bogandi suta-lista de # de sa fini."; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "bogandi suta-lista de #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Fait una copia de sa parti inditada de sa lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 est po s'urtimu elementu."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 est po su primu elementu."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "circa prima ocasioni de s'item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "circa urtima ocasioni de s'item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Torrat s'indixi de sa primu/urtima ocasioni de s'item in sa lista. Torrat %1 si s'item non s'agatat."; -Blockly.Msg["LISTS_INLIST"] = "in lista"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 est buidu"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Torrat berus si sa lista est buida."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "longària de %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Torrat sa longària de una lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "fait una lista cun item %1 repitiu %2 bortas"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Fait una lista cun unu numeru giau repitiu su tanti de is bortas inditadas."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "a"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "inserta a"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "imposta"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Insertat s'elementu a su cumintzu de sa lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Insertat s'elementu in su postu inditau in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Aciungit s'elementu a sa fini de sa lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Aciungit s'elementu a brítiu in sa lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Impostat su primu elementu in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Impostat s'elementu in su postu inditau de una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Impostat s'urtimu elementu in una lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Impostat unu elementu random in una lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "fai una lista de unu testu"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "fai unu testu de una lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Auni una lista de testus in d-unu sceti, ponendi separadoris."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Dividi su testu in un'elencu de testus, firmendi po dònnia separadori."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "cun separadori"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "frassu"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Torrat berus o frassu."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "berus"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Torrat berus si is inputs funt unu uguali a s'àteru."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Torrat berus si su primu input est prus mannu de s'àteru."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Torrat berus si su primu input est prus mannu o uguali a s'àteru."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Torrat berus si su primu input est prus piticu de s'àteru."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Torrat berus si su primu input est prus piticu o uguali a s'àteru."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Torrat berus si is inputs non funt unu uguali a s'àteru."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "non %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Torrat berus si s'input est frassu. Torrat frassu si s'input est berus."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Torrat null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "and"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "or"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Torrat berus si ambos is inputs funt berus."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Torrat berus si assumancu unu de is inputs est berus."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "cumpròa"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "si frassu"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "si berus"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "‎Cumproa sa cunditzioni in 'cumproa'. Si sa cunditzioni est berus, torrat su valori 'si berus'; sinuncas torrat su valori 'si frassu'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Torrat sa summa de is duus nùmerus."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Torrat su cuotzienti de is duus nùmerus."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Torrat sa diferèntzia de is duus nùmerus."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Torrat su produtu de is duus nùmerus."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Torrat su primu numeru artziau a sa potenza de su segundu nùmeru."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "muda %1 de %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Aciungi unu numeru a sa variabili '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Torrat una de is costantis comunas: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), o ∞ (infiniu)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "custringi %1 de %2 a %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Custringi unu numeru aintru de is liminaxus giaus (cumprendius)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "fait a ddu dividi po"; -Blockly.Msg["MATH_IS_EVEN"] = "est paris"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "est negativu"; -Blockly.Msg["MATH_IS_ODD"] = "est dísparu"; -Blockly.Msg["MATH_IS_POSITIVE"] = "est positivu"; -Blockly.Msg["MATH_IS_PRIME"] = "est primu"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Cumprova si unu numeru est paris, dìsparis, primu, intreu, positivu, negativu o si fait a ddu dividi po unu numeru giau. Torrat berus o frassu."; -Blockly.Msg["MATH_IS_WHOLE"] = "est intreu"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "arrestu de %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Torrat s'arrestu de sa divisioni de duus numerus."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Unu numeru"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "mèdia de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "massimu de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "medianu de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimu de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modas de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "unu item a brìtiu de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "deviadura standard de sa lista"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "suma sa lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Torrat sa mèdia (aritimètica) de is valoris de sa lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Torrat su numeru prus mannu de sa lista"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Torrat su numeru medianu de sa lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Torrat su numeru prus piticu de sa lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Torrat una lista de is itams prus frecuentis de sa lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Torrat unu item a brìtiu de sa lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Torrat sa deviadura standard de sa lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Torrat sa suma de totu is numerus de sa lista."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "una fratzioni a brìtiu"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Torrat una fratzioni a brìtiu intra 0.0 (cumpresu) e 1.0 (bogau)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "numeru intreu a brítiu de %1 a %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Torrat unu numeru intreu a brìtiu intra duus nùmerus giaus (cumpresus)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "arretunda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "arretunda faci a bàsciu."; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "Arretunda faci a susu"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Arretunda unu numeru faci a susu o faci a bàsciu."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "assolutu"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "arraxina cuadra"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Torrat su valori assolútu de unu numeru."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Torrat (e) a sa potèntzia de unu numeru."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Torrat su logaritmu naturali de unu numeru."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Torrat su logaritmu a basi 10 de unu numeru."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Torrat su valori negau de unu numeru."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Torrat (10) a sa potèntzia de unu numeru."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Torrat s'arraxina cuadra de unu numeru."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Torrat su arccosinu de unu numeru."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Torrat su arcsinu de unu numeru."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Torrat su arctangenti de unu numeru."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Torrat su cosinu de unu gradu (no radianti)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Torrat su sinu de unu gradu (no radianti)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Torrat sa tangenti de unu gradu (no radianti)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Variabili noa..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nòmini de sa variabili noa:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "permiti decraratzionis"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "con:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Arròllia sa funtzione '%1' cuncordada dae s'impitadore."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Arròllia sa funtzione '%1' cuncordada dae s'impitadore e imprea s'output suu."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "cun"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Ingenerau'%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "fait calincuna cosa"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "po"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Fait una funtzioni chena output."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "torrat"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Fait una funtzioni cun output."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Amonestu: Custa funtzioni tenit parametrus duplicaus."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Marca sa definitzioni de funtzioni."; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Si unu valori est berus, tandu torrat unu segundu valori."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Amonestu: Custu brocu ddu podis ponni sceti aintru de una funtzioni."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "nomini input:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Aciungi un input a sa funtzioni."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Aciungi, fùlia, o assenta is inputs a custa funtzioni."; -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "Fùlia unu cumentu"; -Blockly.Msg["RENAME_VARIABLE"] = "Muda nòmini a variabili..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "A is variabilis '%1' muda nòmini a:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 acciungi su testu %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Aciungit testu a sa variàbili '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "a minúdu"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "cun Primu lìtera a Mauschínu"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "a mauschínu"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Torrat una copia de su testu inditau mudendi mauschínu/minúdu."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "piga sa prima lìtera"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "piga sa lìtera # de sa fini"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "piga sa lìtera #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "piga s'urtima lìtera"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "piga una lìtera a brìtiu"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Torrat sa lìtera de su postu giau."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Acciungi unu item a su testu."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "auni a pari"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Aciungi, fùlia, o assenta is partis po torrai a sètiu custu brocu de testu."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "a sa lìtera # de sa fini"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "a sa lìtera #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "a s'urtima lìtera"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in su testu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "piga suta-stringa de sa primu lìtera"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "piga suta-stringa de sa lìtera # fintzas a fini"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "piga suta-stringa de sa lìtera #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Torrat su testu inditau."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "circa prima ocasioni de su testu"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "circa urtima ocasioni de su testu"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in su testu %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Torrat s'indixi de sa primu/urtima ocasioni de su primu testu in su segundu testu. Torrat %1 si su testu no ddu agatat."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 est buidu"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Torrat berus si su testu giau est buidu."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "scri testu cun"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Fait unu testu ponendi a pari parigas de items."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "longària de %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Torrat su numeru de lìteras (cun is spàtzius) in su testu giau."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "scri %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Scri su testu, numeru o àteru valori."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Pregonta unu nùmeru a s'impitadore."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Pregonta testu a s'impitadore."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "pregonta po unu numeru"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "pregonta po su testu"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Una lìtera, paràula, o linia de testu."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "bogat spàtzius de ambus càbudus de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "bogat spàtzius de su càbudu de manca de"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "bogat spàtzius de su càbudu de dereta de"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Torrat una copia de su testu bogaus is spàtzius de unu o de ambus is càbudus."; -Blockly.Msg["TODAY"] = "Oe"; -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Fait 'imposta %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Torrat su valori de custa variabili."; -Blockly.Msg["VARIABLES_SET"] = "imposta %1 a %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Fait 'piga %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Imposta custa variabili uguali a s'input."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sd.js b/lib/blockly/msg/js/sd.js deleted file mode 100644 index 41afade..0000000 --- a/lib/blockly/msg/js/sd.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "رايو ڏيو"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "قدر بدلايو"; -Blockly.Msg["CLEAN_UP"] = "بندشون هٽايو"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "بلاڪَ ڍڪيو"; -Blockly.Msg["COLLAPSE_BLOCK"] = "بلاڪ ڍڪيو"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رنگ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رنگ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "تناسب"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "گڏيل"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ڄاڻايل تناسب سان ٻہ رنگ پاڻ ۾ ملايو (0.0-1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "رنگ دٻيءَ مان رنگ چونڊيو."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "بنا ترتيب رنگ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ڪو بہ ‌رنگ چونڊيو."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "نيرو"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "سائو"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ڳاڙهو"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "سان رڱيو"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ڳاڙهي، سائي، ۽ نيري جو مقدار ڄاڻائي گھربل رنگ ٺاهيو. سمورا قدر 0 ۽ 100 جي وچ ۾ هجن."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "چڪر مان ٻاهر نڪرو"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "چڪر جاري رکندي نئين ڦيري پايو"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "نہ تہ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "نہ تہ جي"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "جيڪڏهن"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ڪريو"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "1٪ ڀيرا ورجايو"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ورجايو جيستائين"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ورجايو جڏهن"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "سڀ %1 بلاڪ ڊاھيون؟"; -Blockly.Msg["DELETE_BLOCK"] = "بلاڪ ڊاهيو"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "1٪ بلاڪ ڊاهيو"; -Blockly.Msg["DISABLE_BLOCK"] = "بلاڪ کي غيرفعال بڻايو"; -Blockly.Msg["DUPLICATE_BLOCK"] = "نقل"; -Blockly.Msg["DUPLICATE_COMMENT"] = "نقل رايو"; -Blockly.Msg["ENABLE_BLOCK"] = "بلاڪ کي فعال بڻايو"; -Blockly.Msg["EXPAND_ALL"] = "بلاڪَ نمايو"; -Blockly.Msg["EXPAND_BLOCK"] = "بلاڪ نمايو"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ٻاهرين داخلائون"; -Blockly.Msg["HELP"] = "مدد"; -Blockly.Msg["INLINE_INPUTS"] = "اِنلائين اِن پٽس"; -Blockly.Msg["IOS_CANCEL"] = "رد"; -Blockly.Msg["IOS_ERROR"] = "چُڪَ"; -Blockly.Msg["IOS_OK"] = "ٺيڪ (او ڪي) آهي"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "داخلائون (اِن پٽس)"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "شامل ڪيو"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "تبديل ٿيندڙ (ويريئيبل) وجهو"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "ڊاهيو"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "ٻيهر نالو ڏيو"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "تبيديل ٿيندڙ (ويريئيبل) جو نالو"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "خالي فهرست تخليق ڪريو"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "لسٽ"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "سان فهرست تخليق ڪيو"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "فهرست ۾ ڪا شي شامل ڪريو."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "پهريون"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# آخر کان"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "آخري"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "بي ترتيب"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "هٽايو"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ڏانهن # آخر کان"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ڏانهن #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "آخري ڏانهن"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "فهرست ۾"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 خالي آهي"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "جيان"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "تي داخل ڪريو"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ميڙ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "اُڀو (اَسينڊنگ)"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "ترتيب ڏيو %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "الف ب وار (الفابيٽڪ)"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ڪُوڙ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "درست يا غير درست وراڻي ٿو."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "سچ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "جيڪڏهن ٻئي ان پُٽس برابر آهن تہ درست وراڻيو"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان وڏو آهي تہ درست وراڻيو."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان وڏو آهي يا ٻئي برابر آهن تہ درست وراڻيو."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان ننڍو آهي تہ درست وراڻيو"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان ننڍو آهي يا ٻئي برابر آهن تہ درست وراڻيو"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "جيڪڏهن ٻئي ان پُٽس اڻ برابر آهن تہ درست وراڻيو"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "نڪي %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "ان پُٽ غير درست آهي تہ درست وراڻيو. ان پُٽ درست آهي تہ غير درست وراڻيو."; -Blockly.Msg["LOGIC_NULL"] = "null"; // untranslated -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "۽"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "يا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "جيڪڏهن ٻئي ان پُٽ درست آهن تہ درست وراڻيو."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "جيڪڏهن ٻنهي ان پُٽس مان ڪو هڪ بہ درست آهي تہ درست وراڻيو."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "پرک (ٽيسٽ)"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "جيڪڏهن ڪوڙو"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "جيڪڏهن سچو"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "ٻن انگن جي جوڙ اپت ڏيو."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "ٻنهي انگن جي ونڊ ڏيو."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "ٻنهي انگن جو تفاوت ڏيو."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "ٻنهي انگن جي ضرب اُپت ڏيو."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1 کي %2 سان مَٽايو"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/رياضياتي استقلال"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "سان ونڊجندڙ آهي"; -Blockly.Msg["MATH_IS_EVEN"] = "ٻڌي آهي"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ڪاٽو آهي"; -Blockly.Msg["MATH_IS_ODD"] = "اِڪي آهي"; -Blockly.Msg["MATH_IS_POSITIVE"] = "واڌو آهي"; -Blockly.Msg["MATH_IS_PRIME"] = "مفرد آهي"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "سڄو آهي"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ڪو انگ."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "لسٽ جي سراسري"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "لسٽ جو وڏي ۾ وڏو قدر"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "لسٽ جو مڌيان"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "لسٽ جو ننڍي ۾ ننڍو قدر"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "فهرست جا طريقيڪا (موڊز آف لسٽ)"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "بي ترتيب جذن جي فهرست (رينڊم آئيٽم آف لسٽ)"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "فهرست جو وچور"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "لسٽ ۾ وڏي کان وڏو قدر ڄاڻايو."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "لسٽ جو مڌيان انگ ڄاڻايو."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "لسٽ ۾ ننڍي کان ننڍو قدر ڄاڻايو."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "هيٺ ڦيرايو (رائونڊ ڊائون)"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ويڙهيو (رائونڊ اَپ)"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/ٻيون مول"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ٺپ"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "ٻيون مول"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "ڪنهن انگ جو قدرتي لاگ ڄاڻايو."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "ڪنهن انگ جو 10 بنيادي لاگ ڄاڻايو."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "ڪنهن انگ جو ڪاٽو ڄاڻايو."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "ڪنهن انگ جو ٻيون مول ڄاڻايو."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/ٽڪنڊور ڪاڄ"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "نئون ڦرڻو..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ڦرڻي جو نئون نالو:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "سان:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "سان:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "تخليق ڪريو '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "ڪجھ ڪريو"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "ڏانهن"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "واپس ورو"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ان پُٽس"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "ٻيهر ڪريو"; -Blockly.Msg["REMOVE_COMMENT"] = "رايو ڊاهيو"; -Blockly.Msg["RENAME_VARIABLE"] = "ڦرڻي کي نئون نالو ڏيو..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; // untranslated -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "ننڍن اکر ڏانهن"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "وڏن اکرن ڏانهن"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "ڳڻيو %1 ۾ %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "شامل ٿيو"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "متن ۾"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "۾ متن %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "سان مواد تخليق ڪيو (ڪريئيٽ ٽيڪسٽ وِد)"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "ڇاپيو %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "ڄاڻايل تحرير، انگ يا ڪو ٻيو قدر ڇاپيو."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "اڄ"; -Blockly.Msg["UNDO"] = "ڊاهيو"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "اسم"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/shn.js b/lib/blockly/msg/js/shn.js deleted file mode 100644 index 213150d..0000000 --- a/lib/blockly/msg/js/shn.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "သႂ်ႇၶေႃႈၶႆႈၸႂ်"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "လႅၵ်ႈလၢႆႈၼမ်ႉၵတ်ႉ"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "လွင်ႈႁႄႉတတ်းၸိူဝ်းလႅဝ်"; -Blockly.Msg["COLLAPSE_BLOCK"] = "လွင်ႈႁႄႉတတ်းလႅဝ်"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "သီ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "သီ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "သႅၼ်း"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "လေႃးလႄး"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ဢဝ်သီသွင်ဢၼ်လေႃးၵၼ် ၸွမ်းၼမ် သႅၼ်းဢၼ်ပၼ်ဝႆႉ (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color သီ"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "လိူၵ်ႈသီ တမ်ႈတီႈ ၽႃးလႅတ်ႉ"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "သီလၢမ်းလိမ်း"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "လိူၵ်ႈသီတမ်ႈတီႈလွၵ်းလၢမ်းလိမ်း"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "သွမ်ႇ"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ၶဵဝ်"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "လီင်"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ႁူမ်ႈၵိုၵ်းသီ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ႁဵတ်းတူၺ်း သီဢၼ်ၼိုင်ႈ ၸွမ်းၼင်ႇမၵ်းမၼ်ႈဝႆႉ ၼႂ်းၶႂၢင်ႇ သီလႅင်, ၶဵဝ် လႄႈ သွမ်ႇ။ ၼမ်ႉၼၵ်းသီ တေလႆႈမီးၼႂ်းဝူင်ႈၵၢင် 0 တေႃႇ 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ဢွၵ်ႇတီႈၶွပ်ႇမူၼ်း"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "သိုပ်ႇပၼ်ႇထႅင်ႈ ၶွပ်ႇမူၼ်းတၢင်ႇဢၼ်"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "ၵိုတ်းပႅတ်ႈ ၶွပ်ႇမူၼ်း ဢၼ်မီးဝႆႉ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "ဝဵၼ်ႉဝႆႉ ၶွပ်ႇမူၼ်း ဢၼ်ၵိုတ်းၸိူဝ်ႈဝႆႉ, သေ သိုပ်ႇထႅင်ႈတၢင်ႇဢၼ်"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "ၾၢင်ႉ: ပလွၵ်ႉဢၼ်ၼႆႉ ၵူၺ်းၸႂ်ႉလူၺ်ႈတႃႇ ၶွပ်ႇမူၼ်းၵူၺ်း"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "တႃႇၵူႈဢၼ်ဢၼ် ၼႂ်း %1 သဵၼ်ႈမၢႆ %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "တႄႇဢၢၼ်ႇၵိုၵ်း %1 တေႃႇ %2 တေႃႇ %3 လူၺ်ႈ %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "သင်ဝႃႈ ပလွၵ်ႉၸိုင် သႂ်ႇပၼ်လွင်ႈတၢင်းမၼ်း တမ်ႈ"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "သႂ်ႇၵမ်းလိုၼ်း, သင်ဝႃႈ ပလွၵ်ႉၸိုင် ဢဝ်လွင်ႈတၢင်းမၼ်းတင်းသဵင်ႈ တမ်ႈ"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "လိူဝ်သေၼၼ်ႉ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "သင်ဝႃႈ လိူဝ်သေၼၼ်ႉ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "သင်ဝႃႈ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢၼ်ႇမႅၼ်ႈယဝ်ႉၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ လိူဝ်သေၼၼ်ႉ ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႉၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆသွင်မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ လိူဝ်သေၼၼ်ႉ, သင်ဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢႆသွင် မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ) ဢမ်ႇမီးလွင်ႈမၢၼ်ႇမႅၼ်ႈ သင်ၸိုင် ႁဵတ်းပႅတ်ႈပလွၵ်ႉ ၵမ်းလိုမ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop တႃႇတူင်ႇမူၼ်း"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ႁဵတ်း"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ပၼ်ႇၶိုၼ်း %1 ၵမ်း"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ တင်းၼမ်"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "တိုၵ်ႉလိုမ်ႉထိုင်"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ၶၢဝ်းတိုၵ်ႉလိုမ်ႉ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) ဢမ်ႇမၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ် ၵမ်ႈၽွင်ႈ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢၼ်ႇမႅၼ်ႈယဝ်ႉၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; // untranslated -Blockly.Msg["DELETE_BLOCK"] = "မွတ်ႇပလွၵ်ႉ"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "မွတ်ႇလွင်ႈႁႄႉတတ်း %1"; -Blockly.Msg["DISABLE_BLOCK"] = "ဢိုတ်းၸႂ်ႉ လွင်ႈႁႄႉတတ်း"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ထုတ်ႇ"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ပိုတ်ႇၸႂ်ႉ လွင်ႈႁႄႉတတ်း"; -Blockly.Msg["EXPAND_ALL"] = "ၶႂၢၵ်ႈၸိူဝ်းႁႄႉတတ်း"; -Blockly.Msg["EXPAND_BLOCK"] = "ၶႂၢၵ်ႈလွင်ႈႁႄႉတတ်း"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ၶိူင်ႈဢၼ်လုၵ်ႉတၢင်းၼွၵ်ႈၶဝ်ႈမႃး"; -Blockly.Msg["HELP"] = "ၸွႆႈထႅမ်"; -Blockly.Msg["INLINE_INPUTS"] = "ၶိူင်ႈဢၼ်ၶဝ်ႈမႃးၸွမ်းလႅင်း"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ဢမ်ႇၼႅၼ်ႈၼႃ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "မၢၼ်ႇမႅၼ်ႈလႄႈသင် ဢမ်ႇၼႅၼ်ႈၼႃလႄႈသင် ႁူၼ်ၶိုၼ်း"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "မၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(ပၢႆးၼပ်ႉ)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ တင်းသွင် မိူၼ်တၢင်ႇဢၼ်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း ယႂ်ႇလိူဝ် ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း ယႂ်ႇလိူဝ် ဢမ်ႇၼၼ် ၽဵင်ႇပဵင်း ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း မိူၼ် ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း မိူၼ် ဢမ်ႇၼၼ် ၽဵင်ႇပဵင်း ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ တင်းသွင် ဢမ်ႇမိူၼ်တၢင်ႇဢၼ်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ဢမ်ႇၸႂ်ႈ %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢမ်ႇၼႅၼ်ႈၼႃၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ။ သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢၼ်ႇမႅၼ်ႈၸိုင် ၶိုၼ်းမူၼ်ႉမႄး ႁႂ်ႈၼႅၼ်ႈၼႃ"; -Blockly.Msg["LOGIC_NULL"] = "ဢမ်ႇၶဝ်ႈၶႂၢင်ႇ"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "လဵဝ်ၶိုၼ်း ဢမ်ႇၶဝ်ႈၶႂၢင်ႇ"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "လႄႈ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ဢမ်ႇၼၼ်"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ တင်းသွင်ဢၼ် မၢၼ်ႇမႅၼ်ႈၸိုင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ၵမ်းလိုၼ်းသုတ်း မၢၼ်ႇမႅၼ်ႈၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ၸၢမ်း"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "သင်ဝႃႈ ဢမ်ႇၼႅၼ်ႈၼႃ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "သင်ဝႃႈ မၢၼ်ႇမႅၼ်ႈ"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "ၸၢမ်းၵူတ်ႇတူၺ်း သၢႆငၢႆ။ သင်ဝႃႈ သၢႆငၢႆမၢၼ်ႇမႅၼ်ႈ, လဵဝ်ၶိုၼ်း ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) 'သင်မၢၼ်ႇမႅၼ်ႈ'; လိူဝ်ၼၼ်ႉ လဵဝ်ၶိုၼ်း ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) 'သင်ဢမ်ႇၼႅၼ်ႈၼႃ'။"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/ပၢႆးၼပ်ႉ"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "လဵဝ်ၶိုၼ်း တၢင်းၼမ် ၼႂ်းမၢႆၼပ်ႉ သွင်"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "လဵဝ်ၶိုၼ်း ပမႃႇၼ ၼႂ်းမၢႆၼပ်ႉ သွင်"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "လဵဝ်ၶိုၼ်း ဢၼ်ပႅၵ်ႇပိူင်ႈ ၼႂ်းမၢႆၼပ်ႉ သွင်"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "လဵဝ်ၶိုၼ်း ဢၼ်ဢဝ်ဢွၵ်ႇ ၼႂ်းမၢႆၼပ်ႉ သွင်"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "လဵဝ်ၶိုၼ်း တူဝ်ၼပ်ႉမၢႆၼိုင်ႈၼႆႉ ၸွႆႈႁႅင်းပၼ် တူဝ်ၼပ်ႉမၢႆသွင်"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "ပဵၼ်ၵူပ်ႉ"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; // untranslated -Blockly.Msg["MATH_IS_ODD"] = "ပဵၼ်ၵိၵ်ႈ"; -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; // untranslated -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/မၢႆၼပ်ႉ"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "မၢႆၼပ်ႉ ၼိုင်ႈဢၼ်"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root (မၢႆတူပ်ႉမိူၼ်)"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ပၵတိ"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "မၢႆတူပ်ႉမိူၼ်"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "လဵဝ်ၶိုၼ်း ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) ပၵတိ ၼႂ်းမၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "လဵဝ်ၶိုၼ်း e ၵႂႃႇတီႈ ပႃႇဝႃႇ ၼႂ်းမၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "လဵဝ်ၶိုၼ်း လွၵ်းလၢႆးၼပ်ႉ ၼႂ်းမၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "လဵဝ်ၶိုၼ်း ပိုၼ်ႉထၢၼ် 10 လွၵ်းလၢႆးၼပ်ႉ ၼႂ်းမၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "လဵဝ်ၶိုၼ်း ဢၼ်သၢၼ်ၶတ်း ၼႂ်း မၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "လဵဝ်ၶိုၼ်း 10 ၵႂႃႇတီႈ ပႃႇဝႃႇ ၼႂ်းမၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "လဵဝ်ၶိုၼ်း မၢႆတူပ်ႉမိူၼ် ၼႂ်းမၢႆၼပ်ႉ"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "ၵေႃႇသၢင်ႈ တူဝ်ၼိုင်..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ၸိုဝ်ႈဢၼ်လၢႆႈမႂ်ႇ"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "ထွၼ်ပႅတ်ႈ ၶေႃႈၶႆႈၸႂ်"; -Blockly.Msg["RENAME_VARIABLE"] = "လိုမ်ႉၶိုၼ်း ဢၼ်လၢႆႈမႂ်ႇ"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "လိုမ်ႉၶိုၼ်း ဢၼ်လၢႆႈမႂ်ႇၸိူဝ်းၼၼ်ႉ '%1' ထိုင်"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "မိူဝ်ႈၼႆႉ"; -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ဢၼ်"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sk.js b/lib/blockly/msg/js/sk.js deleted file mode 100644 index 01ad8c5..0000000 --- a/lib/blockly/msg/js/sk.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Pridať komentár"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Nie je možné zmazať premennú „%1“, pretože je súčasťou definície funkcie „%2“"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Zmeniť hodnotu:"; -Blockly.Msg["CLEAN_UP"] = "Narovnať bloky"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Zvinúť bloky"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Zvinúť blok"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "farba 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "farba 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "pomer"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "zmiešať"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Zmieša dve farby v danom pomere (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Zvoľte farbu z palety."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "náhodná farba"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Zvoliť farbu náhodne."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "modrá"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zelená"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "červená"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ofarbiť s"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Vytvoriť farbu pomocou zadaného množstva červenej, zelenej a modrej. Množstvo musí byť medzi 0 a 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "opustiť slučku"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "prejdi na nasledujúce opakovanie slučky"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Opustiť túto slučku."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Vynechať zvyšok tejto slučky a pokračovať ďalším opakovaním."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Upozornenie: Tento blok sa môže používať len v rámci slučky."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "pre každý prvok %1 v zozname %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Pre každý prvok v zozname priraď jeho hodnotu do premenej '%1' a vykonaj príkazy."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "počítať s %1 od %2 do %3 o %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Nechá premennú '%1' nadobúdať hodnoty od začiatočného čísla po konečné s daným medzikrokom a vykoná zadané bloky."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Pridať podmienku k \"ak\" bloku."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Pridať poslednú záchytnú podmienku k \"ak\" bloku."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Pridať, odstrániť alebo zmeniť poradie oddielov tohto \"ak\" bloku."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "inak"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "inak ak"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ak"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ak je hodnota pravda, vykonaj príkazy."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ak je hodnota pravda, vykonaj príkazy v prvom bloku. Inak vykonaj príkazy v druhom bloku."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ak je prvá hodnota pravda, vykonaj príkazy v prvom bloku. Inak, ak je druhá hodnota pravda, vykonaj príkazy v druhom bloku."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ak je prvá hodnota pravda, vykonaj príkazy v prvom bloku. Inak, ak je druhá hodnota pravda, vykonaj príkazy v druhom bloku. Ak ani jedna hodnota nie je pravda, vykonaj príkazy v poslednom bloku."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "rob"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "opakuj %1 krát"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Opakuj určité príkazy viackrát."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "opakuj kým nebude"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "opakuj kým"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Kým je hodnota nepravdivá, vykonávaj príkazy."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Kým je hodnota pravdivá, vykonávaj príkazy."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Zmazať všetkých %1 dielcov?"; -Blockly.Msg["DELETE_BLOCK"] = "Odstrániť blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Odstrániť premennú '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Odstrániť %1 použití premennej '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Odstrániť %1 blokov"; -Blockly.Msg["DISABLE_BLOCK"] = "Vypnúť blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplikovať"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Povoliť blok"; -Blockly.Msg["EXPAND_ALL"] = "Rozvinúť bloky"; -Blockly.Msg["EXPAND_BLOCK"] = "Rozvinúť blok"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Vonkajšie vstupy"; -Blockly.Msg["HELP"] = "Pomoc"; -Blockly.Msg["INLINE_INPUTS"] = "Riadkové vstupy"; -Blockly.Msg["IOS_CANCEL"] = "Zrušiť"; -Blockly.Msg["IOS_ERROR"] = "Chyba"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Pridať vstup"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Povoľujú príkazy"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Táto funkcia obsahuje duplikáty vstupov."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "Vstupy"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Pridať"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Pridať premennú"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Zmazať"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Nie je možné použiť premennú bez mena."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Premenovať"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Názov premennej"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "prázdny zoznam"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Vráti zoznam nulovej dĺžky, ktorý neobsahuje žiadne prvky."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "zoznam"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Pridaj, odstráň alebo zmeň poradie v tomto zoznamovom bloku."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "vytvor zoznam s"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Pridaj prvok do zoznamu."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Vytvor zoznam s ľubovoľným počtom prvkov."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "prvý"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# od konca"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "zisti"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "zisti a odstráň"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "posledný"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "náhodný"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "odstráň"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Vráti počiatočný prvok zoznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Vráti prvok na určenej pozícii v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Vráti posledný prvok zoznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Vráti náhodný prvok zoznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Odstráni a vráti prvý prvok v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Odstráni a vráti prvok z určenej pozície v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Odstráni a vráti posledný prvok v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Odstráni a vráti náhodný prvok v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Odstráni prvý prvok v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Odstráni prvok na určenej pozícii v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Odstráni posledný prvok v zozname."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Odstráni náhodný prvok v zozname."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "po # od konca"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "po #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "po koniec"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "Získať podzoznam od začiatku"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "Získať podzoznam od # od konca"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "získať podzoznam od #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Skopíruje určený úsek zoznamu."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 je posledný prvok."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 je počiatočný prvok."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "nájdi prvý výskyt prvku"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "nájdi posledný výskyt prvku"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Vráti index prvého/posledného výskytu prvku v zozname. Ak sa nič nenašlo, vráti %1."; -Blockly.Msg["LISTS_INLIST"] = "v zozname"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 je prázdny"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Vráti pravda, ak je zoznam prázdny."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "dĺžka %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Vráti dĺžku zoznamu"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "vytvor zoznam s prvkom %1 opakovaným %2 krát"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Vytvorí zoznam s niekoľkými rovnakými prvkami s danou hodnotou."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "obrátiť %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Obrátiť kópiu zoznamu."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "ako"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "vložiť na"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "nastaviť"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Vsunie prvok na začiatok zoznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Vsunie prvok na určenú pozíciu v zozname."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Pripojí prvok na koniec zoznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Vsunie prvok na náhodné miesto v zozname."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Nastaví prvý prvok v zozname."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Nastaví prvok na určenej pozícii v zozname."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Nastaví posledný prvok v zozname."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Nastaví posledný prvok v zozname."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "Vzostupne"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "Zostupne"; -Blockly.Msg["LISTS_SORT_TITLE"] = "zoradiť %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Zoradiť kópiu zoznamu."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "abecedne, ignorovať veľkosť písmen"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numericky"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "abecedne"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "vytvoriť zoznam z textu"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "vytvoriť text zo zoznamu"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Spojiť zoznam textov do jedného textu s oddeľovačmi."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Rozdelenie textu do zoznamu textov, lámanie na oddeľovačoch."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "s oddeľovačom"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "nepravda"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Vráť buď hodnotu pravda alebo nepravda."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "pravda"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Vráť hodnotu pravda, ak sú vstupy rovnaké."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Vráť hodnotu pravda ak prvý vstup je väčší než druhý."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Vráť hodnotu pravda ak prvý vstup je väčší alebo rovný druhému."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Vráť hodnotu pravda, ak prvý vstup je menší než druhý."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Vráť hodnotu pravda ak prvý vstup je menší alebo rovný druhému."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Vráť hodnotu pravda, ak vstupy nie sú rovnaké."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nie je %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Vráti hodnotu pravda, ak je vstup nepravda. Vráti hodnotu nepravda ak je vstup pravda."; -Blockly.Msg["LOGIC_NULL"] = "nič"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Vráti hodnotu nula."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "a"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "alebo"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Vráť hodnotu pravda, ak sú vstupy pravdivé."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Vráť hodnotu pravda, ak je aspoň jeden vstup pravda."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ak nepravda"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ak pravda"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Skontroluj podmienku testom. Ak je podmienka pravda, vráť hodnotu \"ak pravda\", inak vráť hodnotu \"ak nepravda\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Vráť súčet dvoch čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Vráť podiel dvoch čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Vráť rozdiel dvoch čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Vráť súčin dvoch čísel."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Vráť prvé číslo umocnené druhým."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "zmeniť %1 o %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Pridaj číslo do premennej \"%1\"."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant‎"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Vráť jednu zo zvyčajných konštánt: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), alebo ∞ (nekonečno)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "obmedz %1 od %2 do %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Obmedzí číslo do zadaných hraníc (vrátane)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "je deliteľné"; -Blockly.Msg["MATH_IS_EVEN"] = "je párne"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "je záporné"; -Blockly.Msg["MATH_IS_ODD"] = "je nepárne"; -Blockly.Msg["MATH_IS_POSITIVE"] = "je kladné"; -Blockly.Msg["MATH_IS_PRIME"] = "je prvočíslo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Skontroluj či je číslo párne, nepárne, celé, kladné, záporné alebo deliteľné určitým číslom. Vráť hodnotu pravda alebo nepravda."; -Blockly.Msg["MATH_IS_WHOLE"] = "je celé číslo"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "zvyšok po delení %1 + %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Vráť zvyšok po delení jedného čísla druhým."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Číslo."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "priemer zoznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "najväčšie v zozname"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "medián zoznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "najmenšie v zozname"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "najčastejšie v zozname"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "náhodný prvok zoznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "smerodajná odchýlka zoznamu"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "súčet zoznamu"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Vráť aritmetický priemer čísel v zozname."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Vrátiť najväčšie číslo v zozname."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Vráť medián čísel v zozname."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Vrátiť najmenšie číslo v zozname."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Vrátiť najčastejší prvok v zozname."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Vráť náhodne zvolený prvok zoznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Vráť smeroddajnú odchýlku zoznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Vráť súčet všetkých čísel v zozname."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "náhodné číslo od 0 do 1"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Vráť náhodné číslo z intervalu 0.0 (vrátane) až 1.0."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "náhodné celé číslo od %1 do %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Vráť náhodné celé číslo z určeného intervalu (vrátane)."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "zaokrúhli"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "zaokrúhli nadol"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "zaokrúhli nahor"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Zaokrúhli číslo nahor alebo nadol."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolútna hodnota"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "druhá odmocnina"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Vráť absolútnu hodnotu čísla."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Vráť e umocnené číslom."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Vráť prirodzený logaritmus čísla."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Vráť logaritmus čísla so základom 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Vráť opačné číslo."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Vráť 10 umocnené číslom."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Vráť druhú odmocninu čísla."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "arccos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Vráť arkus kosínus čísla."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Vráť arkus sínus čísla."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Vráť arkus tangens čísla."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Vráť kosínus uhla (v stupňoch)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Vráť sínus uhla (v stupňoch)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Vráť tangens uhla (v stupňoch)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Vytvoriť premennú..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Názov novej premennej:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "povoliť príkazy"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "s:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://sk.wikipedia.org/wiki/Podprogram"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Spustí používateľom definovanú funkciu '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://sk.wikipedia.org/wiki/Podprogram"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Spustí používateľom definovanú funkciu '%1' a použije jej výstup."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "s:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Vytvoriť '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Doplň, čo robí táto funkcia..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "urob niečo"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "na"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Vytvorí funciu bez výstupu."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "vrátiť"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Vytvorí funkciu s výstupom."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Upozornenie: Táto funkcia má duplicitné parametre."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Zvýrazniť definíciu funkcie"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ak je hodnota pravda, tak vráti druhú hodnotu."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Upozornenie: Tento blok môže byť len vo vnútri funkcie."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "názov vstupu:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Pridať vstup do funkcie."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "vstupy"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Pridať, odstrániť alebo zmeniť poradie vstupov tejto funkcie."; -Blockly.Msg["REDO"] = "Znova"; -Blockly.Msg["REMOVE_COMMENT"] = "Odstrániť komentár"; -Blockly.Msg["RENAME_VARIABLE"] = "Premenovať premennú..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Premenovať všetky premenné '%1' na:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "do %1 pridaj text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Pridaj určitý text do premennej '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "na malé písmená"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "na Veľké Začiatočné Písmená"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "na VEĽKÉ PÍSMENÁ"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Vráť kópiu textu s inou veľkosťou písmen."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "zisti prvé písmeno"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "zisti # písmeno od konca"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "zisti písmeno #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "zisti posledné písmeno"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "vyber náhodné písmeno"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "v texte %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Vráti písmeno na určenej pozícii."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "počet výskytov %1 v %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Počet výskytov textu nachádzajúcom sa v inom texte."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Pridaj prvok do textu."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "spoj"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Pridaj, odstráň alebo zmeň poradie oddielov v tomto textovom bloku."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "po # písmeno od konca"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "po písmeno #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "po koniec"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "v texte"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "vyber podreťazec od začiatku"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "vyber podreťazec od # písmena od konca"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "vyber podreťazec od písmena #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Vráti určenú časť textu."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "nájdi prvý výskyt textu"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "nájdi posledný výskyt textu"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "v texte %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Vráti index prvého/posledného výskytu prvého textu v druhom texte. Ak nenájde, vráti %1."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 je prázdny"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Vráti hodnotu pravda, ak zadaný text je prázdny."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "vytvor text z"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Vytvor text spojením určitého počtu prvkov."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "dĺžka %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Vráti počet písmen (s medzerami) v zadanom texte."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "píš %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Napíš zadaný text, číslo alebo hodnotu."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Výzva pre používateľa na zadanie čísla."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Výzva pre používateľa na zadanie textu."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "výzva na zadanie čísla so správou"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "výzva za zadanie textu so správou"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "zameniť %1 za %2 v reťazci %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Zameniť všetky výskyty textu za iný text."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "text odzadu %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Obrátiť poradie písmen v texte."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Písmeno, slovo alebo riadok textu."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "odstráň medzery z oboch strán"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "odstráň medzery z ľavej strany"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "odstráň medzery z pravej strany"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Vráť kópiu textu bez medzier na jednom alebo oboch koncoch."; -Blockly.Msg["TODAY"] = "Dnes"; -Blockly.Msg["UNDO"] = "Späť"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "prvok"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Vytvoriť \"nastaviť %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Vráti hodnotu tejto premennej."; -Blockly.Msg["VARIABLES_SET"] = "nastaviť %1 na %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Vytvoriť \"získať %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Nastaví túto premennú, aby sa rovnala vstupu."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Premenná s názvom %1 už existuje."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Premenná s názvom '%1' už existuje pre inú premennú typu '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/skr-arab.js b/lib/blockly/msg/js/skr-arab.js deleted file mode 100644 index 80552a5..0000000 --- a/lib/blockly/msg/js/skr-arab.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "تبصرہ کرو"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "ویلیو تبدیل کرو:"; -Blockly.Msg["CLEAN_UP"] = "بلاک صاف کرو"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "بلاک کٹھے کرو"; -Blockly.Msg["COLLAPSE_BLOCK"] = "بلا ک کٹھے کرو"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رنگ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رنگ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نسبت"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "مرکب"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Choose a colour from the palette."; // untranslated -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "بنا ترتيب رنگ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Choose a colour at random."; // untranslated -Blockly.Msg["COLOUR_RGB_BLUE"] = "نیلا"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ساوا"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "رتا"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "نال رن٘گ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "گھیرے کنوں ٻاہر نکلݨ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "وکھرا"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ٻیا اگر"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "جے"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "کرو"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "repeat %1 times"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تائیں دہرائے"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repeat while"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "بھلا %1 بلاکاں کوں مٹاؤں؟"; -Blockly.Msg["DELETE_BLOCK"] = "بلاک مٹاؤ"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 بلاکاں کوں مٹاؤ"; -Blockly.Msg["DISABLE_BLOCK"] = "بلاک ہٹاؤ"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ڈپلیکیٹ"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "بلاک فعال کرو"; -Blockly.Msg["EXPAND_ALL"] = "بلاکوں کوں کھنڈاؤ"; -Blockly.Msg["EXPAND_BLOCK"] = "بلاک کھنڈاؤ"; -Blockly.Msg["EXTERNAL_INPUTS"] = "باہرلے انپٹ"; -Blockly.Msg["HELP"] = "مدد"; -Blockly.Msg["INLINE_INPUTS"] = "ان لائن ان پٹ"; -Blockly.Msg["IOS_CANCEL"] = "منسوخ"; -Blockly.Msg["IOS_ERROR"] = "نقص"; -Blockly.Msg["IOS_OK"] = "ٹھیک ہے"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ان پٹ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "شامل کرو"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ متغیر شامل کرو"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "مٹاؤ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "نواں ناں لکھو"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "متغیر ناں"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "خالی تندیر بݨاؤ"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "فہرست"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "پہلا"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# چھیکڑ کنوں"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "گھنو"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "گھنو تے ہٹاؤ"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "چھیکڑی"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "پُٹھے سِدھے"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ہٹاؤ"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "فہرست وچ"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 خالی ہے"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "بطور"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "تے درج کرو"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "سیٹ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "چڑھدا ہویا"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "لہندا ہویا"; -Blockly.Msg["LISTS_SORT_TITLE"] = "سارٹ کرو%1%2%3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "عددی"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "الف بے دی"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "غلط"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "سچ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 کائنی"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "کوئی وی کائنی"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "اتے"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "یا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ٹیسٹ"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "اگر کوڑ ہے"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "اگر سچ ہے"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "جفت ہے"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "منفی ہے"; -Blockly.Msg["MATH_IS_ODD"] = "طاق ہے"; -Blockly.Msg["MATH_IS_POSITIVE"] = "مثبت ہے"; -Blockly.Msg["MATH_IS_PRIME"] = "مفرد ہے"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "مکمل ہے"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ہک عدد"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "فہرست دی اوسط"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "لسٹ وچوں سب توں ودھ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "لسٹ وچوں سب توں گھٹ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "لسٹ دا مجموعہ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "مطلق"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "مربعی جذر"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "متغیر بݨاؤ۔۔۔"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "نواں متغیر ناں:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "نال:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "نال:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "کوں"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "واپس آ ونڄو"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "ان پُٹ ناں:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "ولدا کرو"; -Blockly.Msg["REMOVE_COMMENT"] = "رائے مٹاؤ"; -Blockly.Msg["RENAME_VARIABLE"] = "متغیر دا ولدا ناں رکھو۔۔۔"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; // untranslated -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "پہلا حرف گھنو"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "# حرف گھنو"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "چھیکڑی حرف گھنو"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "شامل تھیوو"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ٹیکسٹ وچ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 خالی ہے"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 دی لمباݨ"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 چھاپو"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "اڄ"; -Blockly.Msg["UNDO"] = "واپس"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "آئٹم"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' نامی متغیر پہلے موجود ہے۔"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sl.js b/lib/blockly/msg/js/sl.js deleted file mode 100644 index c57392f..0000000 --- a/lib/blockly/msg/js/sl.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Dodaj komentar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ni mogoče izbrisati spremenljivke %1, ker je uporabljena v definiciji funkcije %2"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Spremeni vrednost:"; -Blockly.Msg["CLEAN_UP"] = "Ponastavi kocke"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Skrči kocke"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Skrči kocko"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "barva 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "barva 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "razmerje"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "mešanica"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Zmeša dve barvi v danem razmerju (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Izberi barvo s palete."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "naključna barva"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Izbere naključno barvo."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "modra"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zelena"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "rdeča"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "določena barva"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Ustvari barvo z določeno količino rdeče, zelene in modre. Vse vrednosti morajo biti med 0 in 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "izstopi iz zanke"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "nadaljuj z naslednjo ponovitvijo zanke"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Izstopi iz trenutne zanke."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Preskoči preostanek te zanke in nadaljuje z naslednjo ponovitvijo."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Pozor: To kocko lahko uporabiš samo znotraj zanke."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "za vsak element %1 v seznamu %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Za vsak element v seznamu, nastavi spremenljivko '%1' na ta element. Pri tem se izvedejo določene kocke."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; -Blockly.Msg["CONTROLS_FOR_TITLE"] = "štej s/z %1 od %2 do %3 po %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Vrednost spremenljivke '%1' se spreminja od začetnega števila do končnega števila, z določenim korakom. Pri tem se izvedejo določene kocke."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Dodaj pogoj »če« kocki."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Dodaj končni pogoj »če« kocki."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Dodaj, odstrani ali spremeni vrstni red odsekov za ponovno nastavitev »če« kocke."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "sicer"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "sicer če"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "če"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Če je vrednost resnična, izvedi določene kocke."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Če je vrednost resnična, izvedi prvo skupino kock. Sicer izvedi drugo skupino kock."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Če je prva vrednost resnična, izvedi prvo skupino kock. Sicer, če je resnična druga vrednost, izvedi drugo skupino kock."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Če je prva vrednost resnična, izvedi prvo skupino kock. Sicer, če je resnična druga vrednost, izvedi drugo skupino kock. Če nobena izmed vrednosti ni resnična, izvedi zadnjo skupino kock."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "izvedi"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ponovi %1 krat"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Kocke se izvedejo večkrat."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ponavljaj do takrat, ko"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ponavljaj dokler"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Kocke se izvajajo dokler je vrednost neresnična."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Kocke se izvajajo dokler je vrednost resnična."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Izbrišem vseh %1 kock?"; -Blockly.Msg["DELETE_BLOCK"] = "Izbriši kocko"; -Blockly.Msg["DELETE_VARIABLE"] = "Izbriši spremenljivko »%1«"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Izbrišem %1 uporab spremenljivke »%2«?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Izbriši %1 bloke/-a/-ov"; -Blockly.Msg["DISABLE_BLOCK"] = "Onemogoči kocko"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Podvoji"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Podvoji komentar"; -Blockly.Msg["ENABLE_BLOCK"] = "Omogoči kocko"; -Blockly.Msg["EXPAND_ALL"] = "Razširi kocke"; -Blockly.Msg["EXPAND_BLOCK"] = "Razširi kocko"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Zunanji vnosi"; -Blockly.Msg["HELP"] = "Pomoč"; -Blockly.Msg["INLINE_INPUTS"] = "Vrstični vnosi"; -Blockly.Msg["IOS_CANCEL"] = "Prekliči"; -Blockly.Msg["IOS_ERROR"] = "Napaka"; -Blockly.Msg["IOS_OK"] = "V redu"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Dodaj vnos"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Dovoli izjave"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ta funkcija ima podvojene vnose"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "VHODI"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Dodaj"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Dodaj spremenljivko"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Izbriši"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ne moreš uporabiti spremenljivko praznega imena"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Preimenuj"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Ime spremenljivke"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ustvari prazen seznam"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Vrne seznam, dolžine 0, ki ne vsebuje nobenih podatkov."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "seznam"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Doda, odstrani ali spremeni vrstni red elementov tega seznama."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ustvari seznam s/z"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Doda element seznamu."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Ustvari seznam s poljubnim številom elementov."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "prvo mesto"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "mesto št. od konca"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "št."; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "vrni"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "odstrani in vrni"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "zadnje mesto"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "naključno mesto"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "odstrani"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Vrne prvi element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Vrne element na določenem mestu v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Vrne zadnji element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Vrne naključni element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Odstrani in vrne prvi element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Odstrani in vrne element na določenem mestu v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Odstrani in vrne zadnji element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Odstrani in vrne naključni element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Odstrani prvi element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Odstrani element na določenem mestu v seznamu."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Odstrani zadnji element seznama."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Odstrani naključni element seznama."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "do mesta št. od konca"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "do mesta št."; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "do zadnjega mesta"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "ustvari podseznam od prvega mesta"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "ustvari podseznam od mesta št. od konca"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "ustvari podseznam od mesta št."; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Ustvari nov seznam, kot kopijo določenega dela seznama."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "Zadnji element je št. %1."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "Prvi element je št. %1."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "najdi prvo pojavitev elementa"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "najdi zadnjo pojavitev elementa"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Vrne mesto (indeks) prve/zadnje pojavitve elementa v seznamu. Če elementa ne najde, vrne %1."; -Blockly.Msg["LISTS_INLIST"] = "v seznamu"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 je prazen"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Vrne resnično, če je seznam prazen."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; -Blockly.Msg["LISTS_LENGTH_TITLE"] = "dolžina %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Vrne dolžino seznama."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_REPEAT_TITLE"] = "ustvari seznam z elementom %1, ki se ponovi %2 krat"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Ustvari seznam z danim elementom, ki se poljubno mnogo krat ponovi."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "obrni %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Obrnjena kopija seznama."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "element"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "vstavi na"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "nastavi na"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Vstavi element na začetek seznama."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Vstavi element na določeno mesto v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Doda element na konec seznama."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Vstavi element na naključno mesto v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Nastavi prvi element seznama."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Nastavi element na določenem mestu v seznamu."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Nastavi zadnji element seznama."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Nastavi naključni element seznama."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "naraščajoče"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "padajoče"; -Blockly.Msg["LISTS_SORT_TITLE"] = "uredi %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Uredi kopijo seznama."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "abecedno, brez velikosti črk"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "številčno"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "abecedno"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "ustvari seznam iz besedila"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ustvari besedilo iz seznama"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Združi seznam besedil v eno besedilo, ločeno z ločilom."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Razdruži besedilo v seznam besedil. Za razdruževanje besedila uporabi ločilo."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "z ločilom"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "neresnično"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Vrne resnično ali neresnično."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "resnično"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Vrne resnično, če sta vnosa enaka."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Vrne resnično, če je prvi vnos večji od drugega."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Vrne resnično, če je prvi vnos večji ali enak drugemu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Vrne resnično, če je prvi vnos manjši od drugega."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Vrne resnično, če je prvi vnos manjši ali enak drugemu."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Vrne resnično, če vnosa nista enaka."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ne %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Vrne resnično, če je vnos neresničen. Vrne neresnično, če je vnos resničen."; -Blockly.Msg["LOGIC_NULL"] = "prazno"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Vrne prazno."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "in"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; -Blockly.Msg["LOGIC_OPERATION_OR"] = "ali"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Vrne resnično, če sta oba vnosa resnična."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Vrne resnično, če je vsaj eden od vnosov resničen."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "če neresnično"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "če resnično"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Preveri pogoj v »testu«. Če je pogoj resničen, potem vrne vrednost »če resnično«; sicer vrne vrednost »če neresnično«."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Vrne vsoto dveh števil."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Vrne kvocient dveh števil."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Vrne razliko dveh števil."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Vrne zmnožek dveh števil."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Vrne prvo število na potenco drugega števila."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 koordinate X:%1 in Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "spremeni %1 za %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Prišteje število k spremenljivki '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Vrne eno izmed običajnih konstant: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ali ∞ (neskončno)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_%28graphics%29"; -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "omeji %1 na najmanj %2 in največ %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Omeji število, da bo med določenima (vključenima) mejama."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "je deljivo s/z"; -Blockly.Msg["MATH_IS_EVEN"] = "je sodo"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "je negativno"; -Blockly.Msg["MATH_IS_ODD"] = "je liho"; -Blockly.Msg["MATH_IS_POSITIVE"] = "je pozitivno"; -Blockly.Msg["MATH_IS_PRIME"] = "je praštevilo"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Preveri, če je število sodo, liho, praštevilo, celo, pozitivno, negativno ali, če je deljivo z določenim številom. Vrne resnično ali neresnično."; -Blockly.Msg["MATH_IS_WHOLE"] = "je celo"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "ostanek pri %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Vrne ostanek pri deljenju dveh števil."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Število."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "povprečje seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maksimum seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minimum seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modus seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "naključni element seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standardni odklon seznama"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "vsota seznama"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Vrne povprečje (aritmetično sredino) števil na seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Vrne največje število na seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Vrne mediano števil na seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Vrne najmanjše število na seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Vrne seznam najpogostejšega elementa(-ov) na seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Vrne naključno število izmed števil na seznamu."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Vrne standardni odklon seznama."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Vrne vsoto vseh števil na seznamu."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "naključni ulomek"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Vrne naključni ulomek med (vključno) 0.0 in 1.0 (izključno)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "naključno število med %1 in %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Vrne naključno število med dvema določenima mejama, vključno z mejama."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "zaokroži"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "zaokroži navzdol"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "zaokroži navzgor"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Zaokroži število navzgor ali navzdol."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolutno"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadratni koren"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Vrne absolutno vrednost števila."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Vrne e na potenco števila."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Vrne naravni logaritem števila."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Vrne desetiški logaritem števila."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Vrne negacijo števila."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Vrne 10 na potenco števila."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Vrne kvadratni koren števila."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Vrne arkus kosinus števila."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Vrne arkus sinus števila."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Vrne arkus tangens števila."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Vrne kosinus kota v stopinjah (ne radianih)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Vrne sinus kota v stopinjah (ne radianih)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Vrne tangens kota v stopinjah (ne radianih)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Ustvari spremenljivko barve"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Ustvari spremenljivko števila"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Ustvari spremenljivko niza"; -Blockly.Msg["NEW_VARIABLE"] = "Ustvari spremenljivko ..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Ime nove spremenljivke:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Novi tip spremenljivke:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "dovoli korake"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "s/z:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Izvede uporabniško funkcijo '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Izvede uporabniško funkcijo '%1' in uporabi njen izhod."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "s/z:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Ustvari '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Opišite funkcijo ..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "nekaj"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "izvedi"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Ustvari funkcijo brez izhoda."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "vrni"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Ustvari funkcijo z izhodom."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Pozor: Ta funkcija ima podvojene parametre."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Označi definicijo funkcije"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Če je vrednost resnična, vrne drugo vrednost."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Pozor: To kocko lahko uporabiš samo znotraj definicije funkcije."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "ime vnosa:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Funkciji doda vnos."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "vnosi"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Doda, odstrani ali spremeni vrstni red vnosov te funkcije."; -Blockly.Msg["REDO"] = "Ponovi"; -Blockly.Msg["REMOVE_COMMENT"] = "Odstrani komentar"; -Blockly.Msg["RENAME_VARIABLE"] = "Preimenuj spremenljivko..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Preimenuj vse spremenljivke '%1' v:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_APPEND_TITLE"] = "k %1 dodaj besedilo %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Doda besedilo k spremenljivki '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "v male črke"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "v Velike Začetnice"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "v VELIKE ČRKE"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Vrne kopijo besedila v drugi obliki."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "vrni prvo črko"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "vrni črko št. od konca"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "vrni črko št."; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "vrni zadnjo črko"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "vrni naključno črko"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Vrne črko na določenem mestu v besedilu."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Doda element k besedilu."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "združi"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Doda, odstrani ali spremeni vrstni red elementov tega besedila."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "do črke št. od konca"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "do črke št."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "do zadnje črke"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "iz besedila"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "vrni del od prve črke"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "vrni del od črke št. od konca"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "vrni del od črke št."; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Vrne določen del besedila."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "najdi prvo pojavitev besedila"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "najdi zadnjo pojavitev besedila"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "v besedilu %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Vrne mesto (indeks) prve/zadnje pojavitve drugega besedila v prvem besedilu. Če besedila ne najde, vrne %1."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 je prazno"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Vrne resnično, če je določeno besedilo prazno."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ustvari besedilo iz"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Ustvari besedilo tako, da združi poljubno število elementov."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; -Blockly.Msg["TEXT_LENGTH_TITLE"] = "dolžina %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Vrne število črk oz. znakov (vključno s presledki) v določenem besedilu."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; -Blockly.Msg["TEXT_PRINT_TITLE"] = "izpiši %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Izpiše določeno besedilo, število ali drugo vrednost."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Vpraša uporabnika za vnos števila."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Vpraša uporabnika za vnos besedila."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "vprašaj za število s sporočilom"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "vprašaj za besedilo s sporočilom"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "zamenjaj %1 z %2 v %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "obrni %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Obrne vrstni red znakov v besedilu."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Črka, beseda ali vrstica besedila."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "odstrani presledke z obeh strani"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "odstrani presledke z leve strani"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "odstrani presledke z desne strani"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Vrne kopijo besedila z odstranjenimi presledki z ene ali obeh strani."; -Blockly.Msg["TODAY"] = "Danes"; -Blockly.Msg["UNDO"] = "Razveljavi"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "element"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Ustvari 'nastavi %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Vrne vrednost spremenljivke."; -Blockly.Msg["VARIABLES_SET"] = "nastavi %1 na %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Ustvari 'vrni %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Nastavi, da je vrednost spremenljivke enaka vnosu."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Spremenljivka »%1« že obstaja."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Spremenljivka z imenom %1 že obstaja za tip %2"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sq.js b/lib/blockly/msg/js/sq.js deleted file mode 100644 index 5484e4b..0000000 --- a/lib/blockly/msg/js/sq.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Vendos nje Koment"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Nuk mund të fshihet variabla '%1' sepse është pjesë e definicionit të funksionit '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ndrysho Vlerat:"; -Blockly.Msg["CLEAN_UP"] = "Pastro blloqet"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Mbyll blloqet"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Mbyll bllokun"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "Ngjyra 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "Ngjyra 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "Perpjesetim"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "Përzierje"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Perzien dy ngjyra së bashku me një raport të dhënë (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "http://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Zgjidh nje ngjyre nga nje game ngjyrash."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ngjyre e rastesishme"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Zgjidhni një ngjyrë në mënyrë të rastësishme."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blu"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "jeshile"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "e kuqe"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ngjyre me"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Krijo një ngjyrë me shumën e specifikuar te te kuqes, te gjelbëres, dhe bluse. Te gjitha vlerat duhet te jene mes 0 dhe 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "dil nga nje faze perseritese"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "vazhdo me elementin tjeter te nje faze perseritese"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Ndahu nga unaza."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Kapërce pjesën e mbetur të unazës, dhe vazhdo me ripërsëritjen tjetër."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Paralajmërim: Ky bllok mund të përdoret vetëm brenda unazës."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "per cdo produkt %1 ne liste %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Per cdo produkt ne nje \"liste\" \"vendos\" ndryshoren '%1' produktit, dhe pastaj bej disa deklarata."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "numero me %1 nga %2 ne %3 me nga %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Bëje identifikuesin \"%1\" që ta ketë vlerat prej numrit të fillimit deri tek numri i fundit, duke numëruar nga intervali i specifikuar, dhe ti bëj blloqet e specifikuara."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "\"Vendos\" \"kushtein\"tek \"pjesa\" \"if\""; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Shto një përfundues, që i mbërrin të gjitha kushtet në bllokun nëse."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këte bllok nëse."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "përndryshe"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "përndryshe nëse"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "nëse"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Nëse një vlerë është e saktë, atëherë ekzekuto disa fjali."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Nëse një vlerë është e saktë, atëherë ekzekuto bllokun e parë të fjalive. Përndryshe, ekzekuto bllokun e dytë të fjalive."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Nëse vlera e parë është e saktë, atëherë ekzekuto bllokun e parë të fjalive. Përndryshe, nëse vlera e dytë është e saktë, ekzekuto bllokun e dytë të fjalive."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Nëse vlera e parë është e saktë, atëherë ekzekuto bllokun e parë të fjalive. Përndryshe, nëse vlera e dytë është e saktë, ekzekuto bllokun e dytë të fjalive. Nëse asnjëra nga vlerat nuk është e saktë, ekzekuto bllokun e fundit të fjalive."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "http://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ekzekuto"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "përsërit %1 herë"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Ekzekuto disa fjali disa herë."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "përsërit derisa"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "përsërit përderisa"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Përderisa një vlerë është e pasaktë, atëherë ekzekuto disa fjali."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Përderisa një vlerë është e saktë, atëherë ekzekuto disa fjali."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Fshijë të gjitha %1 të blloqeve?"; -Blockly.Msg["DELETE_BLOCK"] = "Fshij bllokun"; -Blockly.Msg["DELETE_VARIABLE"] = "Fshi variablën '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Fshi përdorimin %1 të variablës '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Fshij %1 blloqe"; -Blockly.Msg["DISABLE_BLOCK"] = "Çaktivizo bllokun"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Kopjo"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Aktivizo bllokun"; -Blockly.Msg["EXPAND_ALL"] = "Zmadho blloqet"; -Blockly.Msg["EXPAND_BLOCK"] = "Zmadho bllokun"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Hyrjet e jashtme"; -Blockly.Msg["HELP"] = "Ndihmë"; -Blockly.Msg["INLINE_INPUTS"] = "Hyrjet e brendshme"; -Blockly.Msg["IOS_CANCEL"] = "Anulo"; -Blockly.Msg["IOS_ERROR"] = "Gabim"; -Blockly.Msg["IOS_OK"] = "Në rregull"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Shto Inputet"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Lejo deklaratat"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ky funksion ka inpute të dyfishta."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTET"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Shto"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Shto Variabël"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Grise"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Nuk mund të përdorni variabël pa emër."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Riemro"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Emri i variablës"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "krijo një listë të zbrazët"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Kthen një listë, te gjatësisë 0, duke mos përmbajtur asnjë regjistrim të të dhënave"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "listë"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këtë bllok të listës."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "krijo listë me"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Shto një send në listë."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Krijo një listë me ndonjë numbër të sendeve."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "i parë"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# nga fundi"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "merr"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "merr dhe fshij"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "i fundit"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "i rastësishëm"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "largo"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Rikthen tek artikulli i par në list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Kthen një send në pozicionin e specifikuar në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Kthen artikullin e fundit në list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Kthen një send të rastësishëm në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Fshin dhe kthen sendin e parë në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Fshin dhe kthen sendin në pozicionin e specifikuar në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Fshin dhe kthen sendin e fundit në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Fshin dhe kthen një send të rastësishëm në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Fshin sendin e parë në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Fshin sendin në pozicionin e specifikuar në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Fshin sendin e fundit në listë."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Kthen një send të rastësishëm në listë."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "tek # nga fundi"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "tek #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "tek i fundit"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "merr nën-listën nga i pari"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "merr nën listën nga # nga fundi"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "merr nën-listën nga #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Krijon në kopje të pjesës së specifikuar të listës."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 është sendi i fundit."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 është sendi i parë."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "gjen ndodhjen e parë të sendit"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "gjen ndodhjen e fundit të sendit"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Kthen indeksin e ndodhjes së parë/fudit të sendit në listë. Kthen %1 nëse teksti nuk është gjetur."; -Blockly.Msg["LISTS_INLIST"] = "në listë"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 është e zbraztë"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Kthehet i saktë nëse lista është e zbraztë."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "gjatësia e %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Kthen gjatësinë e listës."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "krijo listën me sendin %1 të përsëritur %2 herë"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Krijon në listë qe përmban vlerën e dhënë të përsëritur aq herë sa numri i specifikuar."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "kthe %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Ndërro renditjen e një kopjeje të listës."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "sikurse"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "fut në"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "vendos"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Fut sendin në fillim të listës."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Fut sendin në pozicionin e specifikuar të listës."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Bashkangjit sendin në fund të listës."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Fut sendin rastësisht në listë."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Vendos sendin e parë në listë."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Vendos sendin në pozicionin e specifikuar në listë."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Vendos sendin e fundit në listë."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Vendos një send të rastësishëm në listë."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ngjitje"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "zbritje"; -Blockly.Msg["LISTS_SORT_TITLE"] = "rendit %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Rendit një kopje të listës."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetike, injoro madhësinë e shkronjave"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numerike"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetike"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "bëj listë nga teksti"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "bëj tekst nga lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Ngjit një listë tekstesh në një, të ndara me ndarës."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Ndaj tekstin në një listë tekstesh, duke ndarë në secilin ndarës."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "me ndarës"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "e pasaktë"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Kthehet ose të saktë ose të pasaktë."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "e saktë"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "http://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Ktheje të saktë nëse të dy hyrjet janë të barabarta me njëra-tjetrën."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Ktheje të saktë nëse hyrja e parë është më e madhe se hyrja e dytë."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Ktheje të saktë nëse hyrja e parë është më e madhe ose e barabartë me hyrjen e dytë."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Ktheje të saktë nëse hyrja e parë është më e vogël se hyrja e dytë."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Ktheje të saktë nëse hyrja e parë është më e vogël ose e barabartë me hyrjen e dytë."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Ktheje të saktë nëse të dy hyrjet nuk janë të barabarta me njëra-tjetrën."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "jo %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Kthehet e saktë nëse hyrja është e pasaktë. Kthehet e pasaktë nëse hyrja është e saktë."; -Blockly.Msg["LOGIC_NULL"] = "pavlerë"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "http://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Kthehet e pavlerë."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "dhe"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ose"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Kthehet të saktë nëse të dy hyrjet janë të sakta."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Kthehet e saktë nëse së paku njëra nga hyrjet është e saktë."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "http://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "nëse e pasaktë"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "nëse e saktë"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kontrollo kushtin në 'test'. Nëse kushti është i saktë, kthen vlerën 'nëse e saktë'; përndryshe kthen vlerën 'nëse e pasaktë'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "http://sq.wikipedia.org/wiki/Aritmetika"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Kthen shumën e dy numrave."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Kthen herësin e dy numrave."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Kthen ndryshimin e dy numrave."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Kthen produktin e dy numrave."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Kthen numrin e parë të ngritur në fuqinë e numrit të dytë."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "http://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "ndrysho %1 nga %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Shto një numër në ndryshoren '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "http://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Kthen një nga konstantet e përbashkëta: : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infiniti)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "detyro %1 e ulët %2 e lartë %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Vëni një numër që të jetë në mes të kufive të specifikuara(përfshirëse)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "është i pjestueshme me"; -Blockly.Msg["MATH_IS_EVEN"] = "është çift"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "është negativ"; -Blockly.Msg["MATH_IS_ODD"] = "është tek"; -Blockly.Msg["MATH_IS_POSITIVE"] = "është pozitiv"; -Blockly.Msg["MATH_IS_PRIME"] = "është prim"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kontrollo nëse një numër është çift, tek, prim, i plotë, pozitiv, negativ, ose nëse është i pjestueshëm me një numër të caktuar. Kthehet e saktë ose e pasaktë."; -Blockly.Msg["MATH_IS_WHOLE"] = "është i plotë"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "http://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "mbetësi i %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Kthen mbetësin nga pjestimi i dy numrave."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "x"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "http://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Një numër."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "mesatarja e listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "numri më i madh i listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "mediana e listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "numri më i ulët i listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modat e listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "send i rastësishëm i listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "devijimi standard i listës"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "mbledhja e listës"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Kthen mesatarën (kuptimi aritmetik) i vlerave numerike të listës."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Kthe numrin më të madh të listës."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Kthe numrin median të listës."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Kthe numrin me të vogël të listës."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Kthe listën e sendit(eve) më të zakonshme të listës."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Kthe një element të rastësishëm nga lista."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Kthe devijimin standard të listës."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Kthe shumën e të gjithë numrave të listës."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "http://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "fraksioni i rastësishëm"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Kthe fraksionin e rastësishëm në mes të 0.0 (përfshirëse) dhe 1.0 (jopërfshirëse)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "http://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "numër i plotë i rastësishëm nga %1 deri në %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Kthe një numër të plotë të rastësishëm të dy kufijve të specifikuar, të përfshirë."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "http://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "rrumbullakësimi"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "rrumbullakësimi i ulët"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "rrumbullakësimi i lartë"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Rrumbullakësimi i numrit të lartë ose të ulët."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "http://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "rrënja katrore"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Kthen vlerën absolute të një numri."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Kthen e në fuqinë e një numri."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Kthen logaritmën natyrale të një numri."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Kthen 10 logaritmet bazë të një numri."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Kthe negacionin e një numri."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Kthen 10 në fuqinë e një numri."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Kthen rrënjën katrore të një numri."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acosinus"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asinus"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atangjentë"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "http://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Rikthe cos-1 e nje numeri."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Rikthe sin-1 e nje numeri."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Kthe tg-1 e nje numeri."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Kthe kosinusin e nje grade (jo ne radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Kthe kosinusin e nje kendi (jo ne radiant)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Kthe tangentin e nje kendi (jo radiant)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Krijo variabël ngjyrë..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Krijo variabël numër"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Krijo variabël varg"; -Blockly.Msg["NEW_VARIABLE"] = "Krijo variabël..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Emri i identifikatorit të ri:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Tip i ri i variablës:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "lejo deklaratat"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "me:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Lësho funksionin e definuar nga përdoruesi '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Lëho funksionin e definuar nga përdoruesi '%1' dhe përdor daljen e tij."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "me:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Krijo '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Përshkruaj këtë funksion..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "bëj diqka"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "te"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Krijon një funksion pa dalje."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "rikthe"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Krijon një funksion me një dalje."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Paralajmërim: Ky funksion ka parametra të dyfishuar."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Thekso definicionin e funksionit"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Nëse një vlerë është e saktë, atëherë kthe një vlerë të dytë."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Paralajmërim: Ky bllok mund të përdoret vetëm brenda definicionit të funksionit."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Fut emrin:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Shto një input në këtë funksion."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "Informacioni i futur"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Shto, hiq, ose rirendit inputet e këtij funksioni."; -Blockly.Msg["REDO"] = "Ribëj"; -Blockly.Msg["REMOVE_COMMENT"] = "Fshij komentin"; -Blockly.Msg["RENAME_VARIABLE"] = "Ndrysho emrin variables..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Ndrysho emrin e te gjitha '%1' variablave ne :"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "ne %1 shto tekst %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "shto tekst tek varibla '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "me shkronja te vogla shtypi"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Fillimi me shkronje te madhe shtypi"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "me shkronja te medha shtypi"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Kthe nje kopje te tekstit ne nje rast te ndryshem."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "merr shkronjen e pare"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "merr shkronjen # nga fundi"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "merr shkronjen #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "merr shkronjen e fundit"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "merr nje shkronje te rastesishme"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "në tekst %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Kthe nje shkronje nga nje pozicion i caktuar."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "numro %1 në %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Numrin sa herë paraqitet një tekst brenda një teksti tjetër."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Shto nje gje ne tekst"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "bashkangjit"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këtë bllok teksti."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "ne shkronjen # nga fundi"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "ne shkronjen #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "tek shkronja e fundit"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ne tekst"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "merr vlerat qe vazhdojne me shkronjen e pare"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "merr nenvargun nga shkronja # nga fundi"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "Merr nenvargun nga shkronja #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Pergjigjet me nje pjese te caktuar teksti."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "gjej rastisjen e pare te tekstit"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "gjej rastisjen e fundit te tekstit"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ne tekst %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Pergjigjet me indeksin e pare/fundit te rastisjes se tekstit te pare ne tekstin e dyte. Pergjigjet me %1 ne qofte se teksti nuk u gjet."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 eshte bosh"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Kthehet e vertete neqoftese teksti i dhene eshte bosh."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "krijo tekst me"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Krijo nje pjese te tekstit duke bashkuar se bashku disa sende"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "gjatesi %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Pergjigjet me nje numer shkronjash (duke perfshire hapesire) ne tekstin e dhene."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "printo %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Printo tekstin e caktuar, numer ose vlere tjeter."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Kerkoji perdoruesit nje numer."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Kerkoji perdoruesit ca tekst."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "kerko nje numer me njoftim"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "kerko tekst me njoftim"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "zëvendëso %1 me %2 në %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Zëvendëso të gjitha paraqitjet e një teksti brenda një teksti tjetër."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "kthe %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Kthen renditjen e karaktereve në tekst."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "http://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Nje shkronje, fjale, ose rresht teksti."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "prit hapesirat nga te dyja anet"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "prit hapesirat nga ana e majte"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "prit hapesirat nga ana e djathte"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Pergjigju me nje kopje te tekstit me hapesira te fshira nga njera ane ose te dyja anet."; -Blockly.Msg["TODAY"] = "Sot"; -Blockly.Msg["UNDO"] = "Zhbëj"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "send"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Krijo 'vendos %1"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Pergjigjet me nje vlere te kesaj variable."; -Blockly.Msg["VARIABLES_SET"] = "vendos %1 ne %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Krijo 'merr %1"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Vendos kete variable te jete e barabarte me te dhenat ne hyrje."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Një variabël e quajtur '%1' tashmë ekziston."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Një variabël me emrin '%1' veç ekziston për një tip tjetër: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sr-latn.js b/lib/blockly/msg/js/sr-latn.js deleted file mode 100644 index 3ef765e..0000000 --- a/lib/blockly/msg/js/sr-latn.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Dodaj komentar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Ne mogu da obrišem varijablu ’%1’ jer je deo definicije funkcije ’%2’"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Promeni vrednost:"; -Blockly.Msg["CLEAN_UP"] = "Ukloni blokove"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Skupi blokove"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Skupi blok"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "boja 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "boja 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "odnos"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "pomešaj"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Pomešati dve boje zajedno sa datim odnosom (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://sr.wikipedia.org/wiki/Boja"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Izaberite boju sa palete."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "slučajna boja"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Izaberite boju nasumice."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "plava"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "zelena"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "crvena"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "boja sa"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Kreiraj boju sa određenom količinom crvene,zelene, i plave. Sve vrednosti moraju biti između 0 i 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "Izađite iz petlje"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "nastavi sa sledećom iteracijom petlje"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Napusti sadržaj petlje."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Preskoči ostatak ove petlje, i nastavi sa sledećom iteracijom(ponavljanjem)."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Upozorenje: Ovaj blok može da se upotrebi samo unutar petlje."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "za svaku stavku %1 na spisku %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Za svaku stavku unutar liste, podesi promenjivu '%1' po stavci, i onda načini neke izjave-naredbe."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "prebroj sa %1 od %2 do %3 od %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Imaj promenjivu \"%1\" uzmi vrednosti od početnog broja do zadnjeg broja, brojeći po određenom intervalu, i izvrši određene blokove."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Dodajte uslov bloku „ako“."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Dodaj konačni, catch-all (uhvati sve) uslove if bloka."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Dodaj, ukloni, ili preuredi delove kako bih rekonfigurisali ovaj if blok."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "inače"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "inače-ako"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ako"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ako je vrednost tačna, onda izvrši neke naredbe-izjave."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "ako je vrednost tačna, onda izvrši prvi blok naredbi, U suprotnom, izvrši drugi blok naredbi."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ako je prva vrednost tačna, onda izvrši prvi blok naredbi, u suprotnom, ako je druga vrednost tačna , izvrši drugi blok naredbi."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ako je prva vrednost tačna, onda izvrši prvi blok naredbi, u suprotnom, ako je druga vrednost tačna , izvrši drugi blok naredbi. Ako ni jedna od vrednosti nije tačna, izvrši poslednji blok naredbi."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://sr.wikipedia.org/wiki/For_petlja"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "izvrši"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ponovi %1 puta"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Odraditi neke naredbe nekoliko puta."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ponavljati do"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ponavljati dok"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Dok vrednost nije tačna, onda izvršiti neke naredbe."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Dok je vrednost tačna, onda izvršite neke naredbe."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Da obrišem svih %1 blokova?"; -Blockly.Msg["DELETE_BLOCK"] = "Obriši blok"; -Blockly.Msg["DELETE_VARIABLE"] = "Obriši promenljivu '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Da obrišem %1 upotreba promenljive '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Obriši %1 blokova"; -Blockly.Msg["DISABLE_BLOCK"] = "Onemogući blok"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Dupliraj"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Omogući blok"; -Blockly.Msg["EXPAND_ALL"] = "Proširi blokove"; -Blockly.Msg["EXPAND_BLOCK"] = "Proširi blok"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Spoljni ulazi"; -Blockly.Msg["HELP"] = "Pomoć"; -Blockly.Msg["INLINE_INPUTS"] = "Unutrašnji ulazi"; -Blockly.Msg["IOS_CANCEL"] = "Otkaži"; -Blockly.Msg["IOS_ERROR"] = "Greška"; -Blockly.Msg["IOS_OK"] = "U redu"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Dodaj unos"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Dozvoli izjave"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ova funkcija ima duplicirane unose."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "UNOSI"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Dodaj"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Dodaj varijablu"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Obriši"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ne možete da koristite prazno ime varijable."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Preimenuj"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Ime varijable"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "napravi prazan spisak"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "vraća listu, dužine 0, ne sadržavajući evidenciju podataka"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "spisak"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Dodajte, izbrišite, ili preuredite delove kako bi se reorganizovali ovaj blok liste."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "napravi spisak sa"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Dodajte stavku na spisak."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Kreiraj listu sa bilo kojim brojem stavki."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "prva"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# sa kraja"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "preuzmi"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "preuzmi i ukloni"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "poslednja"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "slučajna"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ukloni"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Vraća prvu stavku na spisku."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Vraća stavku na određenu poziciju na listi."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Vraća poslednju stavku na spisku."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Vraća slučajnu stavku sa spiska."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Uklanja i vraća prvu stavku sa spiska."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Uklanja i vraća stavku sa određenog položaja na spisku."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Uklanja i vraća poslednju stavku sa spiska."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Uklanja i vraća slučajnu stavku sa spiska."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Uklanja prvu stavku sa spiska."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Uklanja stavku sa određenog položaja na spisku."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Uklanja poslednju stavku sa spiska."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Uklanja slučajnu stavku sa spiska."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "do # od kraja"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "do #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "do poslednje"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "preuzmi podspisak od prve"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "preuzmi podspisak iz # sa kraja"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "preuzmi podspisak od #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Pravi kopiju određenog dela liste."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 je poslednja stavka."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 je prva stavka."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "pronađi prvo pojavljivanje stavke"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "pronađi poslednje pojavljivanje stavke"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Vraća broj prvog i/poslednjeg ulaska elementa u listu. Vraća %1 Ako element nije pronađen."; -Blockly.Msg["LISTS_INLIST"] = "na spisku"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 je prazan"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Vraća vrednost tačno ako je lista prazna."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "dužina spiska %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Vraća dužinu spiska."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Napraviti listu sa stavkom %1 koja se ponavlja %2 puta"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Pravi listu koja se sastoji od zadane vrednosti koju ponavljamo određeni broj šuta."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "obrnuto %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Obrni kopiju spiska."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "kao"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ubaci na"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "postavi"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Ubacuje stavku na početak spiska."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Ubacuje stavku na određeni položaj na spisku."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Dodajte stavku na kraj spiska."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Ubacuje stavku na slučajno mesto na spisku."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Postavlja prvu stavku na spisku."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Postavlja stavku na određeni položaj na spisku."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Postavlja poslednju stavku na spisku."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Postavlja slučajnu stavku na spisku."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "rastuće"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "opadajuće"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sortiraj %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sortirajte kopiju spiska."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "azbučno, ignoriši mala i velika slova"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "kao brojeve"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "azbučno"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "napravite listu sa teksta"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "da tekst iz liste"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Da se pridruži listu tekstova u jedan tekst, podeljenih za razdvajanje."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Podeliti tekst u listu tekstova, razbijanje na svakom graničnik."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "sa razdvajanje"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "netačno"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Vraća ili tačno ili netačno."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "tačno"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://sr.wikipedia.org/wiki/Nejednakost"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Vraća vrednost „tačno“ ako su oba ulaza jednaka."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Vraća vrednost „tačno“ ako je prvi ulaz veći od drugog."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Vraća vrednost „tačno“ ako je prvi ulaz veći ili jednak drugom."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Vraća vrednost „tačno“ ako je prvi ulaz manji od drugog."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Vraća vrednost „tačno“ ako je prvi ulaz manji ili jednak drugom."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Vraća vrednost „tačno“ ako su oba ulaza nejednaka."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "nije %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Vraća vrednost „tačno“ ako je ulaz netačan. Vraća vrednost „netačno“ ako je ulaz tačan."; -Blockly.Msg["LOGIC_NULL"] = "bez vrednosti"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Vraća „bez vrednosti“."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "i"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ili"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Vraća vrednost „tačno“ ako su oba ulaza tačna."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Vraća vrednost „tačno“ ako je bar jedan od ulaza tačan."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "proba"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ako je netačno"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ako je tačno"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Proveri uslov u 'test'. Ako je uslov tačan, tada vraća 'if true' vrednost; u drugom slučaju vraća 'if false' vrednost."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Vratite zbir dva broja."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Vraća količnik dva broja."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Vraća razliku dva broja."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Vraća proizvod dva broja."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Vraća prvi broj stepenovan drugim."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "promeni %1 za %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Dodajte broj promenljivoj „%1“."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://sr.wikipedia.org/wiki/Matematička_konstanta"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "vrati jednu od zajedničkih konstanti: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ili ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ograniči %1 nisko %2 visoko %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ograničava broj na donje i gornje granice (uključivo)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "je deljiv sa"; -Blockly.Msg["MATH_IS_EVEN"] = "je paran"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "je negativan"; -Blockly.Msg["MATH_IS_ODD"] = "je neparan"; -Blockly.Msg["MATH_IS_POSITIVE"] = "je pozitivan"; -Blockly.Msg["MATH_IS_PRIME"] = "je prost"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Provjerava da li je broj paran, neparan, prost, cio, pozitivan, negativan, ili da li je deljiv sa određenim brojem. Vraća tačno ili netačno."; -Blockly.Msg["MATH_IS_WHOLE"] = "je ceo"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://sr.wikipedia.org/wiki/Kongruencija"; -Blockly.Msg["MATH_MODULO_TITLE"] = "podsetnik od %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Vraća podsetnik od deljenja dva broja."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Neki broj."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "prosek spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "maks. spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "medijana spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min. spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modus spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "slučajna stavka spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standardna devijacija spiska"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "zbir spiska"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Vraća prosek numeričkih vrednosti sa spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Vraća najveći broj sa spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Vraća medijanu sa spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Vraća najmanji broj sa spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Vraća najčešće stavke sa spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Vraća slučajni element sa spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Vraća standardnu devijaciju spiska."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Vraća zbir svih brojeva sa spiska."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://sr.wikipedia.org/wiki/Generator_slučajnih_brojeva"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "slučajni razlomak"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Vraća slučajni razlomak između 0.0 (uključivo) i 1.0 (isključivo)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://sr.wikipedia.org/wiki/Generator_slučajnih_brojeva"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "sličajno odabrani cijeli broj od %1 do %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Vraća slučajno odabrani celi broj između dve određene granice, uključivo."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://sr.wikipedia.org/wiki/Zaokruživanje"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "zaokruži"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "zaokruži naniže"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "zaokruži naviše"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Zaokružite broj na veću ili manju vrednost."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://sr.wikipedia.org/wiki/Kvadratni_koren"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "apsolutan"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadratni koren"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Vraća apsolutnu vrednost broja."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "vratiti e na vlasti broja."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Vraća prirodni logaritam broja."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Vraća logaritam broja sa osnovom 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Vraća negaciju broja."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Vraća 10-ti stepen broja."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Vraća kvadratni koren broja."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "arc cos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arc sin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arc tan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://sr.wikipedia.org/wiki/Trigonometrijske_funkcije"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Vraća arkus kosinus broja."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Vraća arkus broja."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Vraća arkus tangens broja."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Vraća kosinus stepena (ne radijan)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Vraća sinus stepena (ne radijan)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Vraća tangens stepena (ne radijan)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Napravi promenljivu…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Ime nove promenljive:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "dozvoliti izreke"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "sa:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Pokrenite prilagođenu funkciju „%1“."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Pokrenite prilagođenu funkciju „%1“ i koristi njen izlaz."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "sa:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Napravi „%1“"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Opisati ovu funkciju..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "uradite nešto"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "da"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Pravi funkciju bez izlaza."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "vrati"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Pravi funkciju sa izlazom."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Upozorenje: Ova funkcija ima duplikate parametara."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Istakni definiciju funkcije"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ukoliko je vrednost tačna, vrati drugu vrednost."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Upozorenje: Ovaj blok se može koristiti jedino u definiciji funkcije."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "naziv ulaza:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Dodajte ulazna funkcija."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ulazi"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Da dodate, uklonite ili pereuporяdočitь ulaza za ovu funkciju."; -Blockly.Msg["REDO"] = "Ponovi"; -Blockly.Msg["REMOVE_COMMENT"] = "Ukloni komentar"; -Blockly.Msg["RENAME_VARIABLE"] = "Preimenuj promenljivu…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Preimenuj sve „%1“ promenljive u:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "na %1 dodaj tekst %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Dodajte tekst na promenljivu „%1“."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "malim slovima"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "svaka reč velikim slovom"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "velikim slovima"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Vraća primerak teksta sa drugačijom veličinom slova."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "preuzmi prvo slovo"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "preuzmi slovo # sa kraja"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "preuzmi slovo #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "preuzmi poslednje slovo"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "preuzmi slučajno slovo"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "u tekstu %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Vraća slovo na određeni položaj."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "broj %1 u %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Broji koliko puta se neki tekst pojavljuje unutar nekog drugog teksta."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Dodajte stavku u tekst."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "spajanjem"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Dodaj, ukloni, ili drugačije poredaj odjelke kako bi iznova postavili ovaj tekst blok."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "slovu # sa kraja"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "slovu #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "poslednjem slovu"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "u tekstu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "preuzmi podnisku iz prvog slova"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "preuzmi podnisku iz slova # sa kraja"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "preuzmi podnisku iz slova #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Vraća određeni deo teksta."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "pronađi prvo pojavljivanje teksta"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "pronađi poslednje pojavljivanje teksta"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "u tekstu %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Vraća odnos prvog/zadnjeg pojavljivanja teksta u drugom tekstu. Vrađa %1 ako tekst nije pronađen."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 je prazan"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Vraća tačno ako je dostavljeni tekst prazan."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "napiši tekst sa"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Napraviti dio teksta spajajući različite stavke."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "dužina teksta %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Vraća broj slova (uključujući razmake) u datom tekstu."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "prikaži %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Prikažite određeni tekst, broj ili drugu vrednost na ekranu."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Pitajte korisnika za broj."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Pitajte korisnika za unos teksta."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "pitaj za broj sa porukom"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "pitaj za tekst sa porukom"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "zamena %1 sa %2 u %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Zamena svih pojava nekog teksta unutar nekog drugog teksta."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "obrnuto %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Obrće redosled karaktera u tekstu."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://sr.wikipedia.org/wiki/Niska"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Slovo, reč ili red teksta."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim praznine sa obe strane"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "skratiti prostor sa leve strane"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "skratiti prostor sa desne strane"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Vraća kopiju teksta sa uklonjenim prostorom sa jednog od dva kraja."; -Blockly.Msg["TODAY"] = "Danas"; -Blockly.Msg["UNDO"] = "Opozovi"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "stavka"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Napravi „postavi %1“"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Vraća vrednost ove promenljive."; -Blockly.Msg["VARIABLES_SET"] = "postavi %1 u %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Napravi „preuzmi %1“"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Postavlja promenljivu tako da bude jednaka ulazu."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Promenljiva pod imenom '%1' već postoji."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Varijabla po imenu '%1' već postoji za drugu varijablu tipa '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sr.js b/lib/blockly/msg/js/sr.js deleted file mode 100644 index 2e16a73..0000000 --- a/lib/blockly/msg/js/sr.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Додај коментар"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Није могуће избрисати променљиву „%1” јер је део дефиниције функције „%2”"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Промена вредности:"; -Blockly.Msg["CLEAN_UP"] = "Очисти блокове"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Скупи блокове"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Скупи блок"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "боја 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "боја 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "однос"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "помешај"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Меша две боје заједно са датим односом (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://sr.wikipedia.org/wiki/Боја"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Одаберите боју са палете."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "случајна боја"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Одаберите боју насумично."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "плава"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зелена"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "црвена"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "боја са"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Направите боју са одређеном количином црвене, зелене и плаве. Све вредности морају бити између 0 и 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "изађи из петље"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "настави са следећом итерацијом петље"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Напусти садржај петље."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Прескочи остатак ове петље, и настави са следећом итерацијом(понављанјем)."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Упозорење: Овај блок може да се употреби само унутар петље."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "за сваку ставку %1 на списку %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "За сваку ставку унутар листе, подеси промењиву '%1' по ставци, и онда начини неке изјаве-наредбе."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "преброј са %1 од %2 до %3 од %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Имај промењиву \"%1\" узми вредности од почетног броја до задњег броја, бројећи по одређеном интервалу, и изврши одређене блокове."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Додајте услов блоку „ако“."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Додај коначни, catch-all (ухвати све) услове иф блока."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Додај, уклони, или преуреди делове како бих реконфигурисали овај иф блок."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "иначе"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "иначе-ако"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ако"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ако је вредност тачна, онда изврши неке наредбе-изјаве."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "ако је вредност тачна, онда изврши први блок наредби, У супротном, изврши други блок наредби."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ако је прва вредност тачна, онда изврши први блок наредби, у супротном, ако је друга вредност тачна , изврши други блок наредби."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ако је прва вредност тачна, онда изврши први блок наредби, у супротном, ако је друга вредност тачна , изврши други блок наредби. Ако ни једна од вредности није тачна, изврши последнји блок наредби."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://sr.wikipedia.org/wiki/For_петља"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "изврши"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "понови %1 пута"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Изврши неке наредбе неколико пута."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "понављати до"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "понављати док"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Док је вредност нетачна, извршава неке наредбе."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Док је вредност тачна, извршава неке наредбе."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Избрисати свих %1 блокова?"; -Blockly.Msg["DELETE_BLOCK"] = "Избриши блок"; -Blockly.Msg["DELETE_VARIABLE"] = "Избриши променљиву ’%1’"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Избрисати %1 употребу променљиве „%2”?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Избриши %1 блокова"; -Blockly.Msg["DISABLE_BLOCK"] = "Онемогући блок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Дуплирај"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Дуплирај коментар"; -Blockly.Msg["ENABLE_BLOCK"] = "Омогући блок"; -Blockly.Msg["EXPAND_ALL"] = "Прошири блокове"; -Blockly.Msg["EXPAND_BLOCK"] = "Прошири блок"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Спољашњи улази"; -Blockly.Msg["HELP"] = "Помоћ"; -Blockly.Msg["INLINE_INPUTS"] = "Редни улази"; -Blockly.Msg["IOS_CANCEL"] = "Откажи"; -Blockly.Msg["IOS_ERROR"] = "Грешка"; -Blockly.Msg["IOS_OK"] = "У реду"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Додај унос"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Дозволи изјаве"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Ова функција има дуплиране уносе."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "УНОСИ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Додај"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Додај променљиву"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Избриши"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Не можете да користите празно име променљиве."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Преименуј"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Име променљиве"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "направи празан списак"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Враћа списак, дужине 0, без података"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "списак"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Додајте, избришите, или преуредите делове како би се реорганизовали овај блок листе."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "направи списак са"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Додајте ставку на списак."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Направите списак са било којим бројем ставки."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "прва"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# са краја"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "преузми"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "преузми и уклони"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "последња"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "случајна"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "уклони"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Враћа прву ставку на списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Враћа ставку на одређену позицију на списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Враћа последњу ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Враћа случајну ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Уклања и враћа прву ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Уклања и враћа ставку са одређеног положаја са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Уклања и враћа последњу ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Уклања и враћа случајну ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Уклања прву ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Уклања ставку са одређеног положаја са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Уклања последњу ставку са списка."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Уклања случајну ставку са списка."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "до # од краја"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "до #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "до последње"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "преузми подсписак од прве"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "преузми подсписак из # са краја"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "преузми подсписак од #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Прави копију одређеног дела списка."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 је последња ставка."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 је прва ставка."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "пронађи прво појављивање ставке"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "пронађи последње појављивање ставке"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Враћа индекс прве/последње појаве ставке на списку. Враћа %1 ако ставка није пронађена."; -Blockly.Msg["LISTS_INLIST"] = "на списку"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 је празан"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Враћа вредност „тачно” ако је списак празан."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "дужина списка %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Враћа дужину списка."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "Направити списак са ставком %1 која се понавља %2 пута"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Прави листу која се састоји од задане вредности коју понавлјамо одређени број шута."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "обрнуто %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Обрни копију списка."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "као"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "убаци на"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "постави"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Убацује ставку на почетак списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Убацује ставку на одређени положај на списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Додајте ставку на крај списка."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Убацује ставку на случајно место на списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Поставља прву ставку на списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Поставља ставку на одређени положај на списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Поставља последњу ставку на списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Поставља случајну ставку на списку."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "растуће"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "опадајуће"; -Blockly.Msg["LISTS_SORT_TITLE"] = "сортирај %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Сортирајте копију списка."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "азбучно, игнориши мала и велика слова"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "као бројеве"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "азбучно"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "направите листу са текста"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "направи текст из списка"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Спаја списак текстова у један текст, раздвојених граничником."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Раздваја текст у списак текстова, преламањем на сваком граничнику."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "са граничником"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "нетачно"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Враћа или „тачно“ или „нетачно“."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "тачно"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://sr.wikipedia.org/wiki/Неједнакост"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Враћа вредност „тачно“ ако су оба улаза једнака."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Враћа вредност „тачно“ ако је први унос већи од другог."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Враћа вредност „тачно“ ако је први унос већи или једнак другом."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Враћа вредност „тачно“ ако је први унос мањи од другог."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Враћа вредност „тачно“ ако је први унос мањи или једнак другом."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Враћа вредност „тачно“ ако су оба уноса неједнака."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "није %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Враћа вредност „тачно“ ако је унос нетачан. Враћа вредност „нетачно“ ако је унос тачан."; -Blockly.Msg["LOGIC_NULL"] = "без вредности"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Враћа „без вредности“."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "и"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "или"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Враћа вредност „тачно“ ако су оба уноса тачна."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Враћа вредност „тачно“ ако је бар један од уноса тачан."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "проба"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ако је нетачно"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ако је тачно"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Проверите услов у „проба”. Ако је услов тачан, тада враћа „ако је тачно” вредност; у другом случају враћа „ако је нетачно” вредност."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://sr.wikipedia.org/wiki/Аритметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Враћа збир два броја."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Враћа количник два броја."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Враћа разлику два броја."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Враћа производ два броја."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Враћа први број степенован другим."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "атан2 од X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Врати арктангенту тачке (X, Y) у степенима од -180 до 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "промени %1 за %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Додаје број променљивој „%1”."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://sr.wikipedia.org/wiki/Математичка_константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Враћа једну од заједничких константи: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), или ∞ (бесконачно)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "ограничи %1 ниско %2 високо %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ограничава број на доње и горње границе (укључиво)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "је дељив са"; -Blockly.Msg["MATH_IS_EVEN"] = "је паран"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "је негативан"; -Blockly.Msg["MATH_IS_ODD"] = "је непаран"; -Blockly.Msg["MATH_IS_POSITIVE"] = "је позитиван"; -Blockly.Msg["MATH_IS_PRIME"] = "је прост"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Проверава да ли је број паран, непаран, прост, цео, позитиван, негативан, или дељив са одређеним бројем. Враћа „тачно” или „нетачно”."; -Blockly.Msg["MATH_IS_WHOLE"] = "је цео"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://sr.wikipedia.org/wiki/Конгруенција"; -Blockly.Msg["MATH_MODULO_TITLE"] = "подсетник од %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Враћа подсетник од дељења два броја."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://sr.wikipedia.org/wiki/Број"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Број."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "просек списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "макс. списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "медијана списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "мин. списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "модус списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "случајна ставка списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "стандардна девијација списка"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "збир списка"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Враћа просек (аритметичку средину) бројева са списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Враћа највећи број са списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Враћа медијану са списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Враћа најмањи број са списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Враћа списак најчешћих ставки на списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Враћа случајни елемент са списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Враћа стандардну девијацију списка."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Враћа збир свих бројева са списка."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://sr.wikipedia.org/wiki/Генератор_случајних_бројева"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "случајни разломак"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Враћа случајни разломак између 0.0 (укључиво) и 1.0 (искључиво)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://sr.wikipedia.org/wiki/Генератор_случајних_бројева"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "сличајно одабрани цијели број од %1 до %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Враћа случајно одабрани цели број између две одређене границе, уклјучиво."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://sr.wikipedia.org/wiki/Заокруживање"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "заокружи"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "заокружи наниже"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "заокружи навише"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Заокружује број на већу или мању вредност."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://sr.wikipedia.org/wiki/Квадратни_корен"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "апсолутно"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "квадратни корен"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Враћа апсолутну вредност броја."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Враћа е-број на степен броја."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Враћа природни логаритам броја."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Враћа логаритам броја са основом 10."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Враћа негацију броја."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Враћа 10-ти степен броја."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Враћа квадратни корен броја."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "арц цос"; -Blockly.Msg["MATH_TRIG_ASIN"] = "арц син"; -Blockly.Msg["MATH_TRIG_ATAN"] = "арц тан"; -Blockly.Msg["MATH_TRIG_COS"] = "цос"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://sr.wikipedia.org/wiki/Тригонометријске_функције"; -Blockly.Msg["MATH_TRIG_SIN"] = "син"; -Blockly.Msg["MATH_TRIG_TAN"] = "тан"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Враћа аркус косинус броја."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Враћа аркус синус броја."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Враћа аркус тангенс броја."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Враћа косинус степена (не радијан)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Враћа синус степена (не радијан)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Враћа тангенс степена (не радијан)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Направи променљиву боје..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Направи променљиву броја..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Направи променљиву ниске..."; -Blockly.Msg["NEW_VARIABLE"] = "Направи променљиву…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Име нове променљиве:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Нова врста променљиве:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "дозволи изјаве"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "са:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://sr.wikipedia.org/wiki/Потпрограм"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Покреће кориснички дефинисану функцију „%1”."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://sr.wikipedia.org/wiki/Потпрограм"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Покреће кориснички дефинисану функцију „%1” и користи њен излаз."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "са:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Направи „%1”"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Опишите ову функцију…"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "урадите нешто"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "до"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Прави функцију без излаза."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "врати"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Прави функцију са излазом."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Упозорење: Ова функција има дуплиране параметре."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Истакни дефиницију функције"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ако је прва вредност тачна, враћа другу вредност."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Упозорење: Овај блок се може користити једино унутар дефиниције функције."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "име параметра:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Додајте улазни параметар финкцији."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "улази"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Додајте, уклоните или преуредите уносе за ову функцију."; -Blockly.Msg["REDO"] = "Понови"; -Blockly.Msg["REMOVE_COMMENT"] = "Уклони коментар"; -Blockly.Msg["RENAME_VARIABLE"] = "Преименуј променљиву…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Преименуј све ’%1’ променљиве у:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "на %1 додај текст %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Додаје текст променљивој „%1”."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "малим словима"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "свака реч великим словом"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "великим словима"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Враћа примерак текста са другачијом величином слова."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "преузми прво слово"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "преузми слово # са краја"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "преузми слово #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "преузми последње слово"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "преузми случајно слово"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "у тексту %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Враћа слово на одређени положај."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "број %1 у %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Броји колико пута се неки текст појављује унутар неког другог текста."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Додајте ставку у текст."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "спој"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Додај, уклони, или другачије поредај одјелке како би изнова поставили овај текст блок."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "слову # са краја"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "слову #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "последњем слову"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "у тексту"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "преузми подниску из првог слова"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "преузми подниску из слова # са краја"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "преузми подниску из слова #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Враћа одређени део текста."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "пронађи прво појављивање текста"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "пронађи последње појављивање текста"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "у тексту %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Враћа индекс првог/задњег појављивања првог текста у другом тексту. Враћа %1 ако текст није пронађен."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 је празан"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Враћа „тачно” ако је достављени текст празан."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "напиши текст са"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Направити дио текста спајајући различите ставке."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "дужина текста %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Враћа број слова (уклјучујући размаке) у датом тексту."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "прикажи %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Прикажите одређени текст, број или другу вредност на екрану."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Питајте корисника за број."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Питајте корисника за унос текста."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "питај за број са поруком"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "питај за текст са поруком"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "замена %1 са %2 у %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Замена свих појава неког текста унутар неког другог текста."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "обрнуто %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Обрће редослед карактера у тексту."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://sr.wikipedia.org/wiki/Ниска"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Слово, реч или ред текста."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "трим празнине са обе стране"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "скратити простор са леве стране"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "скратити простор са десне стране"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Враћа копију текста са уклонјеним простором са једног од два краја."; -Blockly.Msg["TODAY"] = "Данас"; -Blockly.Msg["UNDO"] = "Опозови"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ставка"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Направи блок за доделу вредности %1"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Враћа вредност ове променљиве."; -Blockly.Msg["VARIABLES_SET"] = "постави %1 у %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Направи блок за преузимање вредности из „%1”"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Поставља променљиву тако да буде једнака улазу."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Променљива под именом ’%1’ већ постоји."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Променљива под именом ’%1’ већ постоји за други тип: ’%2’."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Кажите нешто…"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/sv.js b/lib/blockly/msg/js/sv.js deleted file mode 100644 index d8d447f..0000000 --- a/lib/blockly/msg/js/sv.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Lägg till kommentar"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Kan inte radera variabeln '%1' eftersom den är en del av definition för funktionen '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ändra värde:"; -Blockly.Msg["CLEAN_UP"] = "Städa upp block"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Hopfällda block innehåller varningar."; -Blockly.Msg["COLLAPSE_ALL"] = "Fäll ihop block"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Fäll ihop block"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "färg 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "färg 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "förhållande"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "blanda"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blandar ihop två färger med ett bestämt förhållande (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://sv.wikipedia.org/wiki/Färg"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Välj en färg från paletten."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "slumpfärg"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Slumpa fram en färg."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "blå"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "grön"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "röd"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "färg med"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Skapa en färg med det angivna mängden röd, grön och blå. Alla värden måste vara mellan 0 och 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "bryt ut ur loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "fortsätta med nästa upprepning av loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Bryt ut ur den innehållande upprepningen."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Hoppa över resten av denna loop och fortsätt med nästa loop."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Varning: Detta block kan endast användas i en loop."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "för varje föremål %1 i listan %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "För varje objekt i en lista, ange variabeln '%1' till objektet, och utför sedan några kommandon."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "räkna med %1 från %2 till %3 med %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Låt variabeln \"%1\" anta värden från starttalet till sluttalet, beräknat med det angivna intervallet, och utför de angivna blocken."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Lägg till ett villkor blocket \"om\"."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Lägg till ett sista villkor som täcker alla alternativ som är kvar för \"if\"-blocket."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Lägg till, ta bort eller ändra ordningen för sektioner för att omkonfigurera blocket \"om\"."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "annars"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "annars om"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "om"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Om ett värde är sant, utför några kommandon."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Om värdet är sant, utför det första kommandoblocket. Utför annars det andra kommandoblocket."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Om det första värdet är sant, utför det första kommandoblocket. Annars, om det andra värdet är sant, utför det andra kommandoblocket."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Om det första värdet är sant, utför det första kommandoblocket. Annars, om det andra värdet är sant, utför det andra kommandoblocket. Om ingen av värdena är sanna, utför det sista kommandoblocket."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "utför"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "upprepa %1 gånger"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Utför några kommandon flera gånger."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "upprepa tills"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "upprepa så länge"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Medan ett värde är falskt, utför några kommandon."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Medan ett värde är sant, utför några kommandon."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Radera alla %1 block?"; -Blockly.Msg["DELETE_BLOCK"] = "Radera block"; -Blockly.Msg["DELETE_VARIABLE"] = "Radera variabeln \"%1\""; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Radera %1 användningar av variabeln \"%2\"?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Radera %1 block"; -Blockly.Msg["DISABLE_BLOCK"] = "Inaktivera block"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicera"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicera kommentar"; -Blockly.Msg["ENABLE_BLOCK"] = "Aktivera block"; -Blockly.Msg["EXPAND_ALL"] = "Fäll ut block"; -Blockly.Msg["EXPAND_BLOCK"] = "Fäll ut block"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Externa inmatningar"; -Blockly.Msg["HELP"] = "Hjälp"; -Blockly.Msg["INLINE_INPUTS"] = "Radinmatning"; -Blockly.Msg["IOS_CANCEL"] = "Avbryt"; -Blockly.Msg["IOS_ERROR"] = "Fel"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Lägg till inmatning"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Tillåt kommandon"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Denna funktion har dubblettinmatningar."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INMATNINGAR"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Lägg till"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Lägg till variabel"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Radera"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Du kan inte använda ett tomt variabelnamn."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Döp om"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variabelnamn"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "skapa tom lista"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Ger tillbaka en lista utan någon data, alltså med längden 0"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "lista"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Lägg till, ta bort eller ändra ordningen på objekten för att göra om det här \"list\"-blocket."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "skapa lista med"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Lägg till ett föremål till listan."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Skapa en lista med valfritt antal föremål."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "första"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# från slutet"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "hämta"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "hämta och ta bort"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "sista"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "slumpad"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ta bort"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returnerar det första objektet i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Ger tillbaka objektet på den efterfrågade positionen i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returnerar det sista objektet i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returnerar ett slumpmässigt objekt i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Tar bort och återställer det första objektet i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Tar bort och återställer objektet på den specificerade positionen i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Tar bort och återställer det sista objektet i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Tar bort och återställer ett slumpmässigt objekt i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Tar bort det första objektet i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Tar bort objektet på den specificerade positionen i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Tar bort det sista objektet i en lista."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Tar bort en slumpmässig post i en lista."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "till # från slutet"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "till #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "till sista"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "få underlista från första"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "få underlista från # från slutet"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "få underlista från #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Skapar en kopia av den specificerade delen av en lista."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 är det sista objektet."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 är det första objektet."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "hitta första förekomsten av objektet"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "hitta sista förekomsten av objektet"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Ger tillbaka den första/sista förekomsten av objektet i listan. Returnerar %1 om objektet inte hittas."; -Blockly.Msg["LISTS_INLIST"] = "i listan"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 är tom"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returnerar sant om listan är tom."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "längden på %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returnerar längden på en lista."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "skapa lista med föremålet %1 upprepat %2 gånger"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Skapar en lista som innehåller ett valt värde upprepat ett bestämt antalet gånger."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "vänd på %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Vänd på en kopia av en lista."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "som"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "Sätt in vid"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ange"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "sätter in objektet i början av en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Sätter in objektet vid en specificerad position i en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Lägg till objektet i slutet av en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "sätter in objektet på en slumpad position i en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Anger det första objektet i en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sätter in objektet vid en specificerad position i en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Anger det sista elementet i en lista."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sätter in ett slumpat objekt i en lista."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "stigande"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "fallande"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sortera %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sortera en kopia av en lista."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetiskt, ignorera skiftläge"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeriskt"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetiskt"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "skapa lista från text"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "skapa text från lista"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Sammanfoga en textlista till en text, som separeras av en avgränsare."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Dela upp text till en textlista och bryt vid varje avgränsare."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "med avgränsare"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "falskt"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returnerar antingen sant eller falskt."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "sant"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://sv.wikipedia.org/wiki/Olikhet"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Ger tillbaka sant om båda värdena är lika med varandra."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Ger tillbaka sant om det första värdet är större än det andra."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Ger tillbaka sant om det första värdet är större än eller lika med det andra."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Ger tillbaka sant om det första värdet är mindre än det andra."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Ger tillbaka sant om det första värdet är mindre än eller lika med det andra."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Ger tillbaka sant om båda värdena inte är lika med varandra."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "inte %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Ger tillbaka sant om inmatningen är falsk. Ger tillbaka falskt och inmatningen är sann."; -Blockly.Msg["LOGIC_NULL"] = "null"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://sv.wikipedia.org/wiki/Null"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returnerar null."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "och"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "eller"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Ger tillbaka sant om båda värdena är sanna."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Ger tillbaka sant om minst ett av värdena är sant."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "om falskt"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "om sant"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kontrollera villkoret i \"test\". Om villkoret är sant, ge tillbaka \"om sant\"-värdet; annars ge tillbaka \"om falskt\"-värdet."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://sv.wikipedia.org/wiki/Aritmetik"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Returnerar summan av de två talen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Returnerar kvoten av de två talen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Returnerar differensen mellan de två talen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Returnerar produkten av de två talen."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Ger tillbaka det första talet upphöjt till det andra talet."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 av X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Returnerar arcustangens av punkt (X, Y) i grader från -180 till 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "ändra %1 med %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Lägg till ett tal till variabeln '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://sv.wikipedia.org/wiki/Matematisk_konstant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Returnerar en av de vanliga konstanterna: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) eller ∞ (oändligt)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "begränsa %1 till mellan %2 och %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Begränsa ett tal till att mellan de angivna gränsvärden (inkluderande)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "är delbart med"; -Blockly.Msg["MATH_IS_EVEN"] = "är jämnt"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "är negativt"; -Blockly.Msg["MATH_IS_ODD"] = "är ojämnt"; -Blockly.Msg["MATH_IS_POSITIVE"] = "är positivt"; -Blockly.Msg["MATH_IS_PRIME"] = "är ett primtal"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kontrollera om ett tal är jämnt, ojämnt, helt, positivt, negativt eller det är delbart med ett bestämt tal. Returnerar med sant eller falskt."; -Blockly.Msg["MATH_IS_WHOLE"] = "är helt"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "resten av %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Returnerar kvoten från divisionen av de två talen."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://sv.wikipedia.org/wiki/Tal"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Ett tal."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "medelvärdet av listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "högsta talet i listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "medianen av listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "minsta talet i listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "typvärdet i listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "slumpmässigt objekt i listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standardavvikelsen i listan"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "summan av listan"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Ger tillbaka medelvärdet (aritmetiskt) av de numeriska värdena i listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Ger tillbaka det största talet i listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Returnerar medianen av talen i listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Ger tillbaka det minsta talet i listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Ger tillbaka en lista med de(t) vanligaste objekte(t/n) i listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Returnerar ett slumpmässigt element från listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Ger tillbaka standardavvikelsen i listan."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Ger tillbaka summan av alla talen i listan."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://sv.wikipedia.org/wiki/Slumptalsgenerator"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "slumpat decimaltal"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Ger tillbaka ett slumpat decimaltal mellan 0.0 (inkluderat) och 1.0 (exkluderat)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://sv.wikipedia.org/wiki/Slumptalsgenerator"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "slumpartat heltal från %1 till %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Ger tillbaka ett slumpat heltal mellan två värden, inkluderande."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://sv.wikipedia.org/wiki/Avrundning"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "avrunda"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "avrunda nedåt"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "avrunda uppåt"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Avrunda ett tal uppåt eller nedåt."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://sv.wikipedia.org/wiki/Kvadratrot"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolut"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "kvadratrot"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Returnerar absolutvärdet av ett tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Ger tillbaka e upphöjt i ett tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Returnera den naturliga logaritmen av ett tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Returnerar logaritmen för bas 10 av ett tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Returnerar negationen av ett tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Ger tillbaka 10 upphöjt i ett tal."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Returnerar kvadratroten av ett tal."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "arccos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "arctan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://sv.wikipedia.org/wiki/Trigonometrisk_funktion"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Ger tillbaka arcus cosinus (arccos) för ett tal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Ger tillbaka arcus sinus (arcsin) för ett tal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Ger tillbaka arcus tangens (arctan) av ett tal."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Ger tillbaka cosinus för en grad (inte radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Ger tillbaka sinus för en grad (inte radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Ger tillbaka tangens för en grad (inte radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Skapa färgvariabel..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Skapa siffervariabel..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Skapa strängvariabel..."; -Blockly.Msg["NEW_VARIABLE"] = "Skapa variabel..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nytt variabelnamn:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Ny variabeltyp:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "tillåta uttalanden"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "med:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Kör den användardefinierade funktionen \"%1\"."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Kör den användardefinierade funktionen \"%1\" och använd resultatet av den."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "med:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Skapa '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Beskriv denna funktion..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://sv.wikipedia.org/wiki/Funktion_%28programmering%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "göra något"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "för att"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Skapar en funktion utan output."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://sv.wikipedia.org/wiki/Funktion_%28programmering%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "returnera"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Skapar en funktion med output."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Varning: Denna funktion har dubbla parametrar."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Markera funktionsdefinition"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Om ett värde är sant returneras ett andra värde."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Varning: Detta block får användas endast i en funktionsdefinition."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "inmatningsnamn:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Lägg till en inmatning till funktionen."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inmatningar"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Lägg till, ta bort och ändra ordningen för inmatningar till denna funktion."; -Blockly.Msg["REDO"] = "Gör om"; -Blockly.Msg["REMOVE_COMMENT"] = "Radera kommentar"; -Blockly.Msg["RENAME_VARIABLE"] = "Byt namn på variabel..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Byt namn på alla'%1'-variabler till:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "för att %1 lägga till text %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Lägg till lite text till variabeln '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "till gemener"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "till Versala Initialer"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "till VERSALER"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Returnerar en kopia av texten i ett annat skiftläge."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "hämta första bokstaven"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "hämta bokstaven # från slutet"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "hämta bokstaven #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "hämta sista bokstaven"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "hämta slumpad bokstav"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "i texten %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Ger tillbaka bokstaven på den specificerade positionen."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "räkna %1 i %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Räkna hur många gånger en text förekommer inom en annan text."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Lägg till ett föremål till texten."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "sammanfoga"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Lägg till, ta bort eller ändra ordningen för sektioner för att omkonfigurera detta textblock."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "till bokstav # från slutet"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "till bokstav #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "till sista bokstaven"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "i texten"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "få textdel från första bokstaven"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "få textdel från bokstav # från slutet"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "få textdel från bokstav #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Ger tillbaka en viss del av texten."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "hitta första förekomsten av texten"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "hitta sista förekomsten av texten"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "i texten %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Ger tillbaka indexet för den första/sista förekomsten av första texten i den andra texten. Ger tillbaka %1 om texten inte hittas."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 är tom"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returnerar sant om den angivna texten är tom."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "skapa text med"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Skapa en textbit genom att sammanfoga ett valfritt antal föremål."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "längden på %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Ger tillbaka antalet bokstäver (inklusive mellanslag) i den angivna texten."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "skriv %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Skriv den angivna texten, talet eller annat värde."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Fråga användaren efter ett tal."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Fråga användaren efter lite text."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "fråga efter ett tal med meddelande"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "fråga efter text med meddelande"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "ersätt %1 med %2 i %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Ersätt alla förekomster av en text inom en annan text."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "vänd på %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Vänder på teckenordningen i texten."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://sv.wikipedia.org/wiki/Str%C3%A4ng_%28data%29"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "En bokstav, ord eller textrad."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "ta bort mellanrum från båda sidorna av"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "ta bort mellanrum från vänstra sidan av"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "ta bort mellanrum från högra sidan av"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Returnerar en kopia av texten med borttagna mellanrum från en eller båda ändar."; -Blockly.Msg["TODAY"] = "Idag"; -Blockly.Msg["UNDO"] = "Ångra"; -Blockly.Msg["UNNAMED_KEY"] = "namnlös"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "föremål"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Skapa \"välj %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returnerar värdet av denna variabel."; -Blockly.Msg["VARIABLES_SET"] = "ange %1 till %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Skapa 'hämta %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Gör så att den här variabeln blir lika med inputen."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "En variabel med namn \"%1\" finns redan."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "En variabel med namnet \"%1\" finns redan för en annan typ: \"%2\"."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Säg någonting..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ta.js b/lib/blockly/msg/js/ta.js deleted file mode 100644 index 13f549e..0000000 --- a/lib/blockly/msg/js/ta.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "கருத்தை சேர்"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "மதிப்பை மாற்றவும்:"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "உறுப்புகளை மரை"; -Blockly.Msg["COLLAPSE_BLOCK"] = "உறுப்பை மரை"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "நிறம் 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "நிறம் 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "விகிதம்"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "கலப்பு (வண்ணம்)"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "கொடுக்கப்பட்ட விகதத்தில் (0.0 - 1.0) இரு நிறங்களை கலக்குக."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "வண்ண தட்டிலிருந்து ஒரு நிறத்தைத் தேர்ந்தெடுக்கவும்."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "தற்போக்கு நிறம்"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "தற்போக்கில் ஒரு நிறத்தை தேர்ந்தெடுக்கவும்."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "நீலம்"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "பச்சை"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "சிகப்பு"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "நிறத்துடன்"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "குறிப்பிட்ட அளவு சிவப்பு,பச்சை மற்றும் நீலம் சேர்த்து புது நிறம் உருவாக்கு. மதிப்புகள் 0 முதல் 100 வரை மட்டுமே இருக்க வேண்டும்."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "மடக்கு கட்டளையை நிறுத்து."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "மடக்கு கட்டளையின் அடுத்த இயக்கநிலைக்கு செல்"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "மடக்கு கட்டளையின் இயக்கத்தில் இருந்து நிறுத்து."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "மடக்கு கட்டளையின் மீதியை விட்டுவிட்டு அடுத்த இயக்கநிலைக்கு செல்"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "எச்சரிக்கை : மடக்கு கூற்றில் இந்த தொகுதி ஒரு முறை மட்டுமே செயல்படுத்தப் படலாம்."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "உருப்படி ஒவ்வொன்றாக %1 பட்டியலில் உள்ள %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "பட்டியலில் உள்ள உருப்படியில் ஒவ்வொன்றாக, மாறியின் பொருள் '%1' ஆக வைக்க."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "மாறியை வைத்து எண்ண %1 %2 இல் இருந்து %3 வரை %4-இன் படியாக"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "முதல் எண்ணில் இருந்து கடை எண் வரை எடுத்துக்கொள்ள ஒரு மாறியை வைத்துக்கொள், குறித்த இடைவெளியை சேர்த்தவறே தொகுதிகளை செயலாக்கு."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "ஆனால் தொகுப்பிற்கு நிபந்தனை சேர்க்க"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "ஆனால் தொகுப்பிற்கு விதிவிலக்கு காப்பை சேர்க்க"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "கட்டளைகளை தொகுப்பு திருத்துதம் செய்"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "இல்லையெனில்"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "இல்லைஆனால்"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "எனில்"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு. அல்லது மற்ற (அடுத்த) கட்டளைகளை இயக்கு."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை தொகுப்பு இயக்கு. அல்லது மற்ற (அடுத்த) கட்டளைகளை தொகுப்பு இயக்கு."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை தொகுப்பு இயக்கு. அல்லது மற்ற (அடுத்த) கட்டளைகளை தொகுப்பு இயக்கு. இரண்டும் இல்லை என்றால் கடைசி தொகுப்பு இயக்கு."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "செய்க"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "'%1' முரை திரும்ப செய்"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "கட்டளைகளை பல முரை செய்ய"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "பலமுரை திரும்ப செய் (முடயேனில்)"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "பலமுரை திரும்ப செய் (வரை)"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "மாறி பொய் ஆக உள்ள வரை, கட்டளைகளை இயக்கு"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "அனைத்து %1 நிரல் துண்டுகளையும் அழிக்கவா??"; -Blockly.Msg["DELETE_BLOCK"] = "உறுப்பை நீக்கு"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 உறுப்பை நீக்கு"; -Blockly.Msg["DISABLE_BLOCK"] = "உறுப்பை இயங்காது செய்"; -Blockly.Msg["DUPLICATE_BLOCK"] = "மறுநகல்"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "உறுப்பை இயங்குமாரு செய்"; -Blockly.Msg["EXPAND_ALL"] = "உறுப்புகளை காட்டு"; -Blockly.Msg["EXPAND_BLOCK"] = "உறுப்பை காட்டு"; -Blockly.Msg["EXTERNAL_INPUTS"] = "வெளி கருவிகளுடன் உள்ளீடு"; -Blockly.Msg["HELP"] = "உதவி"; -Blockly.Msg["INLINE_INPUTS"] = "சூழமைவில் உள்ளீடு"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "சேர்க்கவும்"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "நீக்கவும்"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "பெயர் மாற்றுக"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "காலி பட்டியல் உருவாக்க"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "காலி பட்டியல் பின்கொடு."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "பட்டியல்"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "கட்டளைகளை தொகுப்பு திருத்துதம் செய்"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "வைத்து பட்டியல் உருவாக்க"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "பட்டியலில் ஒரு பொருளை சேர்க்க."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "இவ்வளவு உருப்படிகளை கொண்டு வேண்டுமாலும் ஒரு பட்டியலை உருவாக்கு."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "முதல்"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "கடைசியில் இருந்து #"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "எடு"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "பெற்று நீக்குக"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "கடைசி"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "ஏதோ ஒன்று"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "நீக்குக"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "பட்டியல் முதல் உருப்படியை பின்கொடு,"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "பட்டியலில் இடத்தில் உருப்படி பின்கொடு."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "பட்டியல் கடைசி உருப்படியை பின்கொடு,"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "பட்டியல் சீரற்ற உருப்படியை பின்கொடு,"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "பட்டியல் முதல் உருப்படியை நீக்கியபின் பின்கொடு,"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "பட்டியலில் கேட்ட இடத்தின் உருப்படி நீக்கி பின்கொடு."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "பட்டியல் இறுதி உருப்படியை நீக்கியபின் பின்கொடு,"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "பட்டியல் சீரற்ற உருப்படியை நீக்கியபின் பின்கொடு,"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "பட்டியலில் முதல் உருப்படியை நீக்கு"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "பட்டியலில் கேட்ட இடத்தின் உருப்படி நீக்கு."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "பட்டியலில் கடைசி உருப்படியை நீக்கு"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "பட்டியல் சீரற்ற உருப்படியை நீக்கு,"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "முடிவில் இருந்து # வரை"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "# வரை"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "முடிவு வரை"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "# முதலில் இருந்து பகுதி பட்டியலை கொடு"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "# கடைசியில் இருந்து பகுதி பட்டியலை கொடு"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "பகுதி பட்டியலை # இடத்தில் இருந்து கொடு"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "குறிப்பட்ட பகுதி பட்டியலின் நகலை கொடு"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 கடைசி உருப்படி.ி"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 முதல் உருப்படி."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "உரையில் முதல் தோற்ற இடத்தை காட்டு"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "உரையில் கடைசி தோற்ற இடத்தை காட்டு"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "பட்டியலில் மதிப்பின் முதல், கடைசி தோற்ற இடத்தை பின்கொடு. காணாவிட்டால் %1 பின்கொடு."; -Blockly.Msg["LISTS_INLIST"] = "பட்டியலில் உள்ள"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 காலியானது"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "பட்டியல் காலியானது மெய் பின்கொடு,"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 இன் நீளம்"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "பட்டியல் நீளம் பின்கொடு"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "உருப்படி %1-யை, %2 தடவைகள் உள்ளவாறு ஒரு பட்டியலை உருவாக்கு"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "கொடுக்க பட்ட மதிப்பை, கூறியுள்ள தடவைகள் உள்ளவாறு ஒரு பட்டியலை உருவாக்கு"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "இதுபொல"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "அவ்விடத்தில் நுழை"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "நியமி"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "மதிப்பை பட்டியலின் முதலில் நுழை"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "பட்டியலில் கேட்ட இடத்தில் உருப்படியை நுழை."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "மதிப்பை பட்டியலின் முடிவில் நுழை"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "மதிப்பை பட்டியலின் சீற்ற இடத்தில் நுழை"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "மதிப்பை பட்டியலில் முதல் உருப்படியில் வை"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "பட்டியலில் கேட்ட இடத்தில் உருப்படியை வை."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "மதிப்பை பட்டியலில் கடைசி உருப்படியில் வை"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "மதிப்பை பட்டியலில் சீரற்ற உருப்படியில் வை"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "உரையில் இருந்து பட்டியல் உருவாக்கு"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "பட்டியலில் இருந்து உரை உருவாக்கு"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "வரம்புச் சுட்டியை இடையில் இட்டு, உரைதுண்டுகளை ஒன்று சேர்"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "உரையை வரம்புச் சுட்டி கொண்டு துண்டாக்கு."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "தடை எழுத்து"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "பொய்"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "மெய், அல்லது பொய் பின்கொடு."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "மெய்"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "இரண்டு மாறியும் ஈடானால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "முதல் உள்ளீடு இரண்டாவதைவிட அதிகமாக இருந்தால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "முதல் உள்ளீடு இரண்டாவதைவிட அதிகமாக அல்ல சமமாக இருந்தால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "முதல் உள்ளீடு இரண்டாவதைவிட குறைவாக இருந்தால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "முதல் உள்ளீடு இரண்டாவதைவிட குறைவாக அல்ல சமமாக இருந்தால், மெய் பின்கொடு"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "இரண்டு மாறியும் ஈடாகாவிட்டால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 இல்லை"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "மெய் ஆனால், பொய் பின்கொடு. பொய் ஆனால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_NULL"] = "பூஜியம்"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "பூஜியம் பின்கொடு"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "மற்றும்"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "அல்லது"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "இரண்டு மாறியும் மெய் ஆனால், மெய் பின்கொடு."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "ஏதேனும் ஒரு மதிப்பு மெய் ஆனால், மெய் பின்கொடு"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "சோதனை"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "பொய்யெனில்"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "மெய்யெனில்"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'test' உள்ள நிபந்தனையை சரிபார்க்கவும், நிபந்தனை மெய்யானால்,'if true'வை பின்கொடுக்கும் இல்லையெனில் 'if false'வை பின்கொடுக்கும்."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ta.wikipedia.org/wiki/%E0%AE%8E%E0%AE%A3%E0%AF%8D%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A4%E0%AE%AE%E0%AF%8D"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "இரு எண்களின் கூட்டை பின்கொடு"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "இரு எண்களின் வகுத்தல் பின்கொடு"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "இரு எண்களின் கழிப்பை பின்கொடு"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "இரு எண்களின் பெருக்கலை பின்கொடு"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "முதல் உள்ளீடு இரண்டாவது எண் அளவான அடுக்கு பெருக்கை கணித்து பின்கொடு."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "மாற்று %1 மூலம் %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "எண்னை '%1' மதிப்பால் கூட்டு,"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ta.wikipedia.org/wiki/%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A4_%E0%AE%AE%E0%AE%BE%E0%AE%B1%E0%AE%BF%E0%AE%B2%E0%AE%BF"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "ஒரு மாறிலியை பின்கொடு π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (முடிவிலி)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1 மாறியை %2 மேலும் %3 கீழும் வற்புறுத்து"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "எண் மாறி வீசுகளம் உள்ளடங்கிய வாறு வற்புறுத்து"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ஆல் வகுபடக் கூடியது"; -Blockly.Msg["MATH_IS_EVEN"] = "2-ஆல் பகும்"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "எண் குறைவானதா ?"; -Blockly.Msg["MATH_IS_ODD"] = "2-ஆல் பகாத"; -Blockly.Msg["MATH_IS_POSITIVE"] = "எண் நேர்ம முழுதானதா ?"; -Blockly.Msg["MATH_IS_PRIME"] = "எண் பகாத்தனிதானதா?"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "எண் முழுதானதா?"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2ன் மீதி"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "இரண்டு எண்கள் மூலம் பிரிவில் இருந்து எஞ்சியதை பின்கொடு."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ta.wikipedia.org/wiki/%E0%AE%8E%E0%AE%A3%E0%AF%8D"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ஒரு எண்."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "பட்டியலின் எண் சராசரி"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "பட்டியலின் மிகுதி"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "பட்டியலின் நடுக்கோடு"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "பட்டியலின் கறைவு"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "பட்டியலின் பொதுவகைகள்"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "ஒரு பட்டியலில் இருந்து சீரற்ற உருப்படி"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "பட்டியலின் நியமவிலகல்"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "பட்டியலின் கூட்டு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "முழு பட்டியலின் எண் சராசரி பின்கொடு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "பட்டியலின் அதிகமான எண் பின்கொடு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "பட்டியலின் நடுக்கோடு பின்கொடு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "பட்டியலின் குறைவான எண் பின்கொடு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "பட்டியலின் பொதுவகைகள் பின்கொடு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "ஒரு பட்டியலில் இருந்து சீரற்ற உருப்படி பின்கொடு"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "பட்டியலின் நியமவிலகலை பின்கொடு."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "முழு பட்டியலின் எண் சமம் பின்கொடு,"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "சீரற்ற எண் பின்னம்"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "சீரற்ற எண் பின்னம், 0.0 இல் இருந்து 1.0 உட்பட, பின்கொடு."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "வீசுகளம் %1 இல் இருந்து %2 உள்ளடங்கிய வாறு சீரற்ற எண்"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "வீசுகளம் இல் இருந்த (உள்ளடங்கிய) வாறு சீரற்ற எண் பின்கொடு."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "முழுமையாக்கு"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "கீழ்வழி முழுமையாக்கு"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "மேல்வழி முழுமையாக்கு"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "மேல்/கீழ் வழி முழு எண் ஆக மாற்று."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ta.wikipedia.org/wiki/%E0%AE%B5%E0%AE%B0%E0%AF%8D%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AE%AE%E0%AF%82%E0%AE%B2%E0%AE%AE%E0%AF%8D"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "தனித்த"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "வர்க்கமூலம்"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "ஒரு எண்ணின் தனித்த மதிப்பை பின்கொடு"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "e-இன் எண் அடுக்கு பெருக்கை பின்கொடு."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "ஒரு எண்ணின் (இயற்கை) மடக்கை மதிப்பை பின்கொடு."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "ஒரு எண்ணின் (10) மடக்கை மதிப்பை பின்கொடு."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "ஒரு எண்ணின் எதிர்மறை மதிப்பை பின்கொடு"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "10-இன் எண் அடுக்கு பெருக்கை பின்கொடு."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "ஒரு எண்ணின் வர்க்கமூலத்தைத் தரும்."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ta.wikipedia.org/wiki/%E0%AE%AE%E0%AF%81%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AF%8B%E0%AE%A3%E0%AE%B5%E0%AE%BF%E0%AE%AF%E0%AE%B2%E0%AF%8D_%E0%AE%9A%E0%AE%BE%E0%AE%B0%E0%AF%8D%E0%AE%AA%E0%AF%81%E0%AE%95%E0%AE%B3%E0%AF%8D"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "மதிப்பின் நேர்மாறு கோசைன் பின்கொடு"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "மதிப்பின் நேர்மாறு சைன் பின்கொடு"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "மதிப்பின் நேர்மாறு டேஞ்சன்டு பின்கொடு"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "டிகிரீ கோசைன் மதிப்பை பின்கொடு"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "டிகிரீ சைன் மதிப்பை பின்கொடு."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "டிகிரீ டேஞ்சன்டு மதிப்பை பின்கொடு"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "மாறிலியை உருவாக்குக..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "புதிய மாறிலியின் பெயர்:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "வாக்குமூலங்களை அனுமதிக்கவும்"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "இத்துடன்"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "பயனரின் '%1' செயற்கூற்றை ஓட்டு."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "பயனரின் '%1' செயற்கூற்றை ஓட்டி வரும் வெளியீட்டை பயன்படுத்து."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "இத்துடன்:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' உருவாக்குக"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "கட்டளைகள் செய்ய (இடம்காட்டி)"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "இந்த மாறியிற்கு"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "வெளியீடு இல்லாத ஒரு செயல்பாடு உருவாக்குகிறது"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "பின்கொடு"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "வெளியீடு உள்ள ஒரு செயல்பாடு உருவாக்குகிறது"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "எச்சரிக்கை: இந்த செயற்கூறில் போலியான அளபுருக்கள் உண்டு."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "நிரல்பாகத்தை விளக்கமாக காட்டு"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "மதிப்பு உண்மையானால், இரண்டாவது மதிப்பை பின்கொடு."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "பெயரை உள்ளிடுக:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "செயல்கூறுக்கு ஒரு உள்ளீட்டை சேர்."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "உள்ளீடுகள்"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "செயல்கூறுகளின் உள்ளீட்டை சேர், நீக்கு, or மீண்டும் வரிசை செய்."; -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "கருத்தை நீக்கு"; -Blockly.Msg["RENAME_VARIABLE"] = "மாறிலியை மறுபெயரிடுக..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "அனைத்து '%1' மாறிலிகளையும் பின்வருமாறு மறுபெயரிடுக:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "இந்த மாறியிற்கு %1 உரை சேர்க்க %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "'%1' மாறியில் உரையை சேர்"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "சின்ன எழுத்துக்கு மாற்று"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "தலைப்பு எழுத்துக்கு மாற்று"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "பொரிய எழுத்துக்கு மாற்று"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "உரை நகல் எடுத்து பொரிய/சின்ன எழுத்து மாற்றி பின்கொடு."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "முதல் எழுத்தைப் பெறுக"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "முடிவில் இருந்து # எழுத்தை எடு"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "# எழுத்தை எடு"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "இறுதி எழுத்தைப் பெறுக"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "சமவாய்ப்புள்ள எழுத்தை எடு"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "கூறிய இடத்தில் உள்ள எழுத்தை எடு"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "உருபடியை உரையில் சேர்க்க."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "சேர்க்க"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "தொகுப்பு உரை திருத்துதம் செய்"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "எழுத்து கடைசியில் இருந்து # வரை"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "எழுத்து # வரை"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "கடைசி எழுத்து வரை"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "உரையில்"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "-இல் உட்கணம் முதல் எழுத்திலிருந்து"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "-இல் உட்கணம் கடைசி # எழுத்திலிருந்து"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "-இல் உட்கணம் # எழுத்திலிருந்து"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "உரையின் குறியிடப்பட்ட சரம் பின்கொடு"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "உரையில் முதல் தோற்ற இடத்தை பின்கொடு"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "உரையில் கடைசி தோற்ற இடத்தை பின்கொடு"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "உரையில் %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "இரண்டாவது உரையில் முதல் உரையின் முதல்/கடை இருக்கை குறிஎண்ணை பின்கொடு."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 காலியானது"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "காலியானது என்றால் மெய் மதிப்பை பின்கொடு"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "வைத்து உரை உருவாக்க"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "பல பொருட்களை ஒன்றாக சேர்வதன் மூலம் உரை உருவாக்க."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1ன் நீளம்"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "தொடரில் உள்ள எழுத்துக்களின் (இடைவெளிகளையும் சேர்த்து) எண்ணிகையை பின்கொடு."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 அச்சிடுக"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "மதிப்பை அச்சிடு"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "எண்-உள்ளீடு தூண்டுதலை காட்டு"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "உரை-உள்ளீடு தூண்டுதலை காட்டு"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "உரை கொண்டு எண்-உள்ளீடு தூண்டுதலை காட்டு"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "உரை கொண்டு உரை-உள்ளீடு தூண்டுதலை காட்டு"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ta.wikipedia.org/wiki/%E0%AE%9A%E0%AE%B0%E0%AE%AE%E0%AF%8D_%28%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A9%E0%AE%BF%E0%AE%AF%E0%AE%BF%E0%AE%AF%E0%AE%B2%E0%AF%8D%29"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "எழுத்து, சரம், சொல், அல்லது உரை சொற்தொடர்."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "இரு பக்கத்திலும் இடைவெளி எழுத்து நேர்த்தி செய்."; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "இடது பக்கத்தில் இடைவெளி எழுத்து நேர்த்தி செய்."; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "வலது பக்கத்தில் இடைவெளி எழுத்து நேர்த்தி செய்."; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "உரை நகல் எடுத்து இடைவெளி எழுத்து நீக்கி பின்கொடு."; -Blockly.Msg["TODAY"] = "இன்று"; -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "பெயரிடப்படாதது"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "உருப்படி"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'%1 நியமி' உருவாக்கு"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "இந்த மாறி மதிப்பை பின்கொடு"; -Blockly.Msg["VARIABLES_SET"] = "நியமி %1 இந்த மாறியிற்கு %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'எடு %1' உருவாக்கு"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "மாறியின் மதிப்பாய் உள்ளீட்டு மதிப்பை வை."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "ஏதாகினும் பகர்க..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/tcy.js b/lib/blockly/msg/js/tcy.js deleted file mode 100644 index bd36651..0000000 --- a/lib/blockly/msg/js/tcy.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "ಟಿಪ್ಪಣಿ ಸೇರ್ಸಲೆ"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "ಮೌಲ್ಯೊನು ಬದಲ್ ಮಲ್ಪು"; -Blockly.Msg["CLEAN_UP"] = "ಬ್ಲಾಕ್‍ಲೆನ್ ಸ್ವೊಚ್ಚೊ ಮಲ್ಪುಲೆ"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ಮಾತಾ ತಡೆಕ್ಲೆನ ಮಾಹಿತಿನ್ ಎಲ್ಯ ಮಲ್ಪು"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ಎಲ್ಯೆ ಮಲ್ತ್‌ದ್ ತಡೆಲೆ"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "ಬಣ್ಣೊ ೧(ಒಂಜಿ)"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "ಬಣ್ಣೊ ೨(ರಡ್ಡ್)"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ಅನುಪಾತೊ"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ಬೆರಕ್ಕೆ ಮಲ್ಪು"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ಕೊರಿನ ಅನುಪಾತೊಡು (0.0- 1.0) ರಡ್ಡ್ ಬಣ್ಣೊಲೆನ್ ಬೆರಕೆ ಮಲ್ಪುಂಡು."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/ಬಣ್ಣೊ"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "ಬಣ್ಣೊ ಪಟೊಡ್ದು ಒಂಜಿ ಬಣ್ಣೊನು ಆಯ್ಕೆ ಮಲ್ಪುಲೆ."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ಒವ್ವೇ ಒಂಜಿ ಬಣ್ಣೊ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಬಣ್ಣೊನು ಆಯ್ಕೆ ಮಲ್ಪುಲೆ"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "ನೀಲಿ"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ಪಚ್ಚೆ"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ಕೆಂಪು"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ಬಣ್ಣೊದ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ತೊಜಪಾಯಿನ ಪ್ರಮಾಣೊದ ಕೆಂಪು, ಪಚ್ಚೆ ಬೊಕ್ಕ ನೀಲಿ ಬಣ್ಣೊಡ್ದು ಒಂಜಿ ಬಣ್ಣೊನು ಉಂಡು ಮಲ್ಪುಲೆ. ಮಾತಾ ಮೌಲ್ಯೊಲು 0 ಬುಕ್ಕೊ 100 ತ ನಡುಟೆ ಇಪ್ಪೊಡು."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ಲೂಪ್ ಕಡಿಯುನಿ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ಬೊಕ್ಕದ ಲೂಪ್ ಪುನರಾವರ್ತನೆದೊಟ್ಟುಗು ದುಂಬರಿಲೆ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "ಇತ್ತಿನ ಲೂಪ್‍ಡ್ದ್ ಪದಿಯಿ ಬಲೆ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "ಈ ಲೂಪುನು ಅರ್ದೊಡೆ ಬುಡುದ್ ಬೊಕ್ಕ ನನತ್ತ ಪುನರಾವರ್ತನೆಗ್ ದುಂಬರಿಲೆ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "ಎಚ್ಚರೊ: ಈ ತಡೆನ್ ಕಾಲಿ ಒಂಜಿ ಲೂಪುದುಲಯಿ ಮಾತ್ರ ಗಳಸೊಲಿ."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "%2 ಪಟ್ಟಿಡ್ ಪ್ರತಿ ಒಂಜಿ ವಿಸಯ %1 ಗ್"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಪ್ರತಿ ವಿಸಯೊಗು, '%1' ವ್ಯತ್ಯಾಯೊನು ವಿಸಯೊಗು ಜೋಡಾಲೆ, ಬೊಕ್ಕ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪುಲೆ."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "%2 ಡ್ದ್ %3 ಮುಟ %4 ಸರ್ತಿ %1 ದ ಒಟ್ಟುಗು ಗೆನ್ಪು"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "ನಿರ್ದಿಸ್ಟೊ ಮದ್ಯಂತರೊದ ಮೂಲಕೊ ದೆತೊಂದು '%1' ವ್ಯತ್ಯಯೊಡ್ ಸುರುತ್ತ ಅಂಕೆಡ್ದ್ ಕಡೆತ್ತ ಅಂಕೆ ಮುಟ್ಟದ ಮೌಲ್ಯೊನು ದೆತ್ತೊನಾವ್ ಬೊಕ್ಕ ನಿಗಂಟ್ ಮಲ್ತಿನ ತಡೆಕ್ಲೆನ್ ಮಲ್ಪು"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "'ಒಂಜಿ ವೇಲೆ' ತಡೆಕ್ಕ್ ಒಂಜಿ ಶರ್ತನ್ ಸೇರಾವ್"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "'ಒಂಜಿ ವೇಲೆ' ತಡೆಕ್ಕ್ ಒಂಜಿ ಕಡೆತ್ತ ಮಾತೆನ್ಲಾ-ಪತ್ತ್ (catch-all) ಶರ್ತನ್ ಸೇರಾವ್"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "ಸೇರಾವ್, ದೆತ್ತ್‌ ಬುಡು, ಅತ್ತಂಡ ಈ 'ಒಂಜಿ ವೇಲೆ' ತಡೆನ್ ಕುಡ ಸಂರಚಣೆ ಮಲ್ಪೆರೆ ವಿಭಾಗೊಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ಅತ್ತಂಡ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ಅತ್ತಂಡ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ಒಂಜಿ ವೇಲೆ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ಮೌಲ್ಯ ನಿಜ ಆದಿತ್ತ್ಂಡ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪು"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್‌ಂಡ, ಪಾತೆರೊಲೆನ ಸುರುತ್ತ ತಡೆ ಮಲ್ಪು. ಇಜ್ಜಿಂಡ ಪಾತೆರೊಲೆನ ರಡ್ಡನೆ ತಡೆ ಮಲ್ಪು."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "ಸುರುತ್ತ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್‌ಂಡ, ಪಾತೆರೊಲೆನ ಸುರುತ್ತ ತಡೆ ಮಲ್ಪು. ಇಜ್ಜಿಂಡ, ರಡ್ಡನೆ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್ಂಡ, ಪಾತೆರೊಲೆನ ರಡ್ಡನೆ ತಡೆ ಮಲ್ಪು."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "ಸುರುತ್ತ ಮೌಲ್ಯೊ ನಿಜವಾದಿತ್ತ್‌ಂಡ, ಪಾತೆರೊಲೆನ ಸುರುತ್ತ ತಡೆ ಮಲ್ಪು. ಇಜ್ಜಿಂಡ, ರಡ್ಡನೆದ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್ಂಡ, ಪಾತೆರೊಲೆನ ರಡ್ಡನೆ ತಡೆ ಮಲ್ಪು. ಒಂಜೇಲೆ ಒವ್ವೇ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತಿಜಿಂಡ, ಪಾತೆರೊಲೆನ ಕಡೆತ್ತ ತಡೆ ಮಲ್ಪು."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ಮಲ್ಪುಲೆ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = " %1 ಸರ್ತಿ ಕೂಡೊರ ಮಲ್ಪು"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಸ್ತ್ ಸರ್ತಿ ಮಲ್ಪು"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ಉಂದು ನಿಜ ಆಪಿಲೆಕೊ ಕುಡೊರ ಮಲ್ಪು:"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ಉಂದು ನಿಜ ಆಂಡ ಕುಡೊರ ಮಲ್ಪು:"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "ಮೌಲ್ಯ ತಪ್ಪು ಆದಿತ್ತ್ಂಡ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪು"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ಮೌಲ್ಯ ನಿಜ ಆದಿತ್ತ್ಂಡ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪು"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "ಮಾತ %1 ಬ್ಲಾಕ್‍ಲೆನ್ ದೆತ್ತ್‌ದ್ ಬುಡೊಡೆ?"; -Blockly.Msg["DELETE_BLOCK"] = "ಬ್ಲಾಕ್‍ನ್ ಮಾಜಾವು"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' ವ್ಯತ್ಯಯೊನು ಮಾಜಾಲೆ"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' ವ್ಯತ್ಯಯೊದ %1 ಉಪಯೋಗೊಲೆನ್ ಮಾಜಾವೊಡೆ?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 ಬ್ಲಾಕ್‍ಲೆನ್ ಮಾಜಾವು"; -Blockly.Msg["DISABLE_BLOCK"] = "ಬ್ಲಾಕ್‍ನ್ ದೆತ್ತ್‌ಪಾಡ್"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ನಕಲ್"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ತಡೆನ್ ಸಕ್ರಿಯೊ ಮಲ್ಪು"; -Blockly.Msg["EXPAND_ALL"] = "ಮಾತಾ ತಡೆಕ್ಲೆನ ಮಾಹಿತಿನ್ ಪರಡಾವು"; -Blockly.Msg["EXPAND_BLOCK"] = "ಬ್ಲಾಕ್‍ದ ಮಾಹಿತಿನ್ ಪರಡಾವು"; -Blockly.Msg["EXTERNAL_INPUTS"] = "ಪಿದಯಿದ ಪರಿಪು"; -Blockly.Msg["HELP"] = "ಸಕಾಯೊ"; -Blockly.Msg["INLINE_INPUTS"] = "ಉಳಸಾಲ್‍ದ ಉಳಪರಿಪು"; -Blockly.Msg["IOS_CANCEL"] = "ವಜಾ ಮಲ್ಪುಲೆ"; -Blockly.Msg["IOS_ERROR"] = "ದೋಷ"; -Blockly.Msg["IOS_OK"] = "ಸರಿ"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ ಇನ್‌ಪುಟ್ ಸೇರಾಲೆ"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "ಹೇಳಿಕೆಗ್ ಅವಕಾಸೊ"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "ಈ ಕಾರ್ಯೊಡು ಡುಪ್ಲಿಕೇಟ್ ಇನ್‌ಪುಟ್ ಉಂಡು."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ಇನ್‌ಪುಟ್‌ಲು"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "ಸೇರಾಲೆ"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ ವ್ಯತ್ಯಯೊನು ಸೇರಾಲೆ"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "ಮಾಜಾಲೆ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "ವ್ಯತ್ಯಯೊದ ಪುದರ್‌ನ್ ಖಾಲಿ ಬುಡಿಯೆರೆ ಆಪುಜಿ"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "ಪೊಸ ಪುದರ್"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "ವ್ಯತ್ಯಯೊದ ಪುದರ್"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "ಕಾಲಿ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "ಒಂಜಿ ಪಟ್ಟಿ, ೦ ಉದ್ದೊದ, ಒವ್ವೇ ಮಾಹಿತಿ ದಾಂತಿನ ದಾಖಲೆ ಪಿರಕೊರು."; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "ಪಟ್ಟಿ"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "ಈ ಪಟ್ಟಿ ತಡೆನ್ ಕುಡ ಸಂರಚನೆ ಮಲ್ಪೆರೆ ಸೇರಾಲೆ, ದೆತ್ತ್ ಬುಡುಲೆ, ಅತ್ತಂಡ ವಿಬಾಗೊಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ಒಟ್ಟುಗು ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "ಪಟ್ಟಿಗ್ ಒಂಜಿ ವಿಸಯೊನು ಸೇರಾಲೆ."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "ಏತೇ ವಿಸಯೊಲುಪ್ಪುನ ಒಂಜಿ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "ಸುರುತ"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "ಅಕೇರಿಡ್ದ್ #"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "ದೆತೊನು"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "ದೆತ್ತೊನು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡು"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ಕಡೆತ"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "ಗೊತ್ತು ಗುರಿದಾಂತಿನ"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "ದೆಪ್ಪುಲೆ"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ಅಕೇರಿಡ್ದ್ # ಗ್"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "# ಗ್"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ಅಕೇರಿಗ್"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "ಸುರುಡ್ದು ಉಪ-ಪಟ್ಟಿನ್ ದೆತ್ತೊನು"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "ಅಕೇರಿಡ್ದ್ # ಡ್ದ್ ಉಪ-ಪಟ್ಟಿನ್ ದೆತ್ತೊನು"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "# ಡ್ದ್ ಉಪ-ಪಟ್ಟಿನ್ ದೆತ್ತೊನು"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "ಪಟ್ಯೊದ ನಿರ್ದಿಷ್ಟ ಬಾಗೊದ ಪ್ರತಿನ್ ಉಂಡುಮಲ್ಪುಂಡು."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ಅಕೇರಿತ ವಿಸಯೊ"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ಸುರುತ ವಿಸಯೊ"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "ವಿಸಯೊ ಸುರುಕ್ಕು ಬತ್ತಿನೇನ್ ನಾಡ್"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "ವಿಸಯೊ ಅಕೇರಿಗ್ ಬತ್ತಿನೇನ್ ನಾಡ್"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ವಿಸಯೊ ಸುರುಕ್ಕು/ಅಕೇರಿಗ್ ಬತ್ತಿನೆತ್ತ ಸೂಚಿನ್ ಪಿರಕೊರ್ಪುಂಡು. ವಿಸಯೊ ತಿಕ್ಕಿಜ್ಜಾಂಡ %1 ನ್ ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["LISTS_INLIST"] = "ಪಟ್ಟಿಡ್"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ಕಾಲಿ"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "ಪಟ್ಯೊ ಖಾಲಿ ಇತ್ತ್ಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 ಉದ್ದೊ"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "ಪಟ್ಟಿದ ಉದ್ದೊನು ಪಿರಕೊರು."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "%1 ವಿಸಯೊ %2 ಸರ್ತಿ ಪುನರಾವರ್ತನೆ ಆದುಪ್ಪುನ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ."; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "ಕೊರಿನ ಮೌಲ್ಯೊ ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಸಂಕ್ಯೆದಾತ್ ಸರ್ತಿ ಪುನರಾವರ್ತನೆ ಆದುಪ್ಪುನ ಒಂಜಿ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "ಲೆಕ"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "ಸೇರಾವ್"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ಸೆಟ್ ಮಲ್ಪು"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "ಒಂಜಿ ಪಟ್ಟಿದ ಸುರುಕ್ಕು ವಿಸಯೊನು ಸೇರಾವುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಸೇರಾವುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "ಒಂಜಿ ಪಟ್ಟಿದ ಅಕೇರಿಗ್ ವಿಸಯೊನು ಸೇರಾವುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಓಲಾಂಡಲ ವಿಸಯೊನು ಸೇರಾವುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ಏರುನು"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "ಜಪ್ಪುನು"; -Blockly.Msg["LISTS_SORT_TITLE"] = "%1 %2 %3 ಇಂಗಡಿಪು"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "ಒಂಜಿ ಪಟ್ಟಿದ ಒಂಜಿ ಪ್ರತಿನ್ ಇಂಗಡಿಪು"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "ಅಕ್ಷರೊ, ನಮೂನೆ (case) ಅಲಕ್ಷ್ಯೊ ಮಲ್ಪುಲೆ"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "ಸಂಖ್ಯೆ"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "ಅಕ್ಷರೊ"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "ಪಟ್ಯೊಲೆ ಪಟ್ಟಿನ್ ತಯಾರ್ ಮಲ್ಪುಲೆ"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ಪಟ್ಟಿದ ಪಟ್ಯೊನು ತಯಾರ್ ಮಲ್ಪುಲೆ"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "ಪಟ್ಯೊಲೆನ ಒಂಜಿ ಪಟ್ಟಿನ್ ಮಿತಿಸೂಚಕೊದ ಮೂಲಕೊ ಬೇತೆ ಮಲ್ತ್‌ದ್ ಒಂಜಿ ಪಟ್ಯೊಗು ಸೇರಾಲೆ."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "ಪಟ್ಯೊಲೆನ್ ಪ್ರತಿ ಮಿತಿಸೂಚಕೊಡು ತುಂಡು ಮಲ್ತ್‌ದ್ ಪಟ್ಯೊಲೆನ ಒಂಜಿ ಪಟ್ಟಿಗ್ ಬಾಗೊ ಮಲ್ಪುಲೆ."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "ಮಿತಿಸೂಚಕೊದ ಒಟ್ಟುಗು"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ಸುಲ್ಲು"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "ಒಂಜೆ ನಿಜ ಅತ್ತಂಡ ಸುಲ್ಲುನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ಸತ್ಯೊ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "ರಡ್ದ್ ಇನ್‌ಪುಟ್‌ಲಾ ಸಮ ಇತ್ತ್ಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಮಲ್ಲ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಮಲ್ಲ ಅತ್ತಂಡ ಅಯಿಕ್ಕ್ ಸಮ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಎಲ್ಯ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಎಲ್ಯ ಅತ್ತಂಡ ಅಯಿಕ್ಕ್ ಸಮ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "ರಡ್ದ್ ಇನ್‌ಪುಟ್‌ಲಾ ಸಮ ಅತ್ತಾಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 ಅತ್ತ್"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "ಇನ್‌ಪುಟ್ ಸುಲ್ಲಾದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು. ಇನ್‌ಪುಟ್ ನಿಜ ಆದಿತ್ತ್ಂಡ, 'ಸುಲ್ಲು'ನ್ ಪಿರಕೊರು."; -Blockly.Msg["LOGIC_NULL"] = "ಸೊನ್ನೆ"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "ಸೊನ್ನೆನ್ ಪಿರಕೊರ್ಪುಂಡು"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ಬುಕ್ಕೊ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ಅತ್ತಂಡ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "ರಡ್ಡ್‌ಲಾ ಇನ್‌ಪುಟ್ ನಿಜ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಇನ್‌ಪುಟ್ ನಿಜ ಆಂಡಲಾ, 'ನಿಜ'ನ್ ಪಿರಕೊರು."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ಪರೀಕ್ಷೆ"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ಒಂಜಿ ವೇಲೆ ಸುಲ್ಲಾಂಡ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ಒಂಜಿ ವೇಲೆ ನಿಜ ಆಂಡ"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'ಪರೀಕ್ಷೆ'ಡ್ ಶರ್ತನ್ ಸರಿತೂಲೆ. ಶರ್ತ ನಿಜವಾದಿತ್ತ್ಂಡ, 'ಒಂಜಿ ವೇಲೆ ನಿಜ ಆಂಡ' ಮೌಲ್ಯೊನು ಪಿರಕೊರ್ಪುಂಡು; ಇಜ್ಜಿಂಡ 'ಒಂಜಿ ವೇಲೆ ಸುಲ್ಲಾಂಡ' ಮೌಲ್ಯೊನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/ಅಂಕಗಣಿತ"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "ರಡ್ಡ್ ಸಂಖ್ಯೆದ ಮೊತ್ತನ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "ಸಂಖ್ಯೆದ ಭಾಗಲಬ್ದೊನು ಪಿರಕೊರು."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "ರಡ್ಡ ಸ್ಂಖ್ಯೆದ ವ್ಯತ್ಯಾಸೊನು ಪಿರಕೊರು."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "ಸಂಖ್ಯೆದ ಗುಣಲಬ್ಧೊನು ಪಿರಕೊರು."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "ಸುರುತ್ತ ಸಂಖ್ಯೆದ ಘಾತೊನು ರಡ್ಡನೆ ಸಂಖ್ಯೆಗ್ ಏರ್ಪಾದ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1 ನ್ %2 ಟ್ ಬದಲ್ ಮಲ್ಪು"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "'%1' ವ್ಯತ್ಯಯೊಗು ಒಂಜಿ ಸಂಖ್ಯೆನ್ ಸೇರಾವ್"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/ಗಣಿತ_ನಿರಂತರ"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "ಒಂಜಿ ಸಾಮಾನ್ಯ ಸ್ಥಿರಾಂಕೊನು ಪಿರಕೊರು: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%2 ಕಮ್ಮಿ %3 ಜಾಸ್ತಿ %1 ನಿರ್ಬಂಧ ಮಲ್ಪು"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "ನಿಗದಿತ ಮಿತಿತ ನಡುಟು ಒಂಜಿ ಸಂಖ್ಯೆನ್ ನಿರ್ಬಂಧ ಮಲ್ಪು"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ಭಾಗಿಪೊಲಿ"; -Blockly.Msg["MATH_IS_EVEN"] = "ಸಮ ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "ಋಣ ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_IS_ODD"] = "ಬೆಸ ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_IS_POSITIVE"] = "ಧನ ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_IS_PRIME"] = "ಅವಿಭಾಜ್ಯ ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "ಒಂಜಿ ಸಂಖ್ಯೆ ಸಮನಾ, ಬೆಸನಾ, ಅವಿಭಾಜ್ಯನಾ, ಪೂರ್ಣನಾ, ಧನನಾ, ಋಣನಾ, ಅತ್ತಂಡ ಅವೆನ್ ಬೇತೆ ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಡ್ದ್ ಭಾಗಿಪೊಲಿಯಾ ಪಂದ್ ಪರೀಕ್ಷೆ ಮಲ್ಪು. ನಿಜ ಅತ್ತಂಡ ಸುಲ್ಲುನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["MATH_IS_WHOLE"] = "ಪೂರ್ಣ ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/ಮೋಡ್ಯುಲೊ_ಒಪರೇಶನ್"; -Blockly.Msg["MATH_MODULO_TITLE"] = " %1 ÷ %2 ತ ಶೇಷ"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "ರಡ್ಡ್ ಸಂಖ್ಯೆಲೆನ್ ಭಾಗ ಮಲ್ತ್‌ದ್ ಶೇಷೊನು ಪಿರಕೊರು."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/ಸಂಖ್ಯೆ"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ಅ ನಂಬ್ರೊ"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "ಪಟ್ಟಿದ ಸರಾಸರಿ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "ಪಟ್ಟಿಡ್ ಮಲ್ಲವ್"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "ಪಟ್ಟಿದ ನಡುತ್ತವ್"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "ಪಟ್ಟಿಡ್ ಕಿಞ್ಞವ್"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "ಪಟ್ಟಿದ ಮಸ್ತ್ ಸಾಮಾನ್ಯ ಮೌಲ್ಯ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "ಪಟ್ಟಿದ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಷಯ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "ಪಟ್ಟಿದ ಪ್ರಮಾಣಿತ ವಿಚಲನ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "ಪಟ್ಟಿದ ಮೊತ್ತ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಾತಾ ಸಂಖ್ಯೆಲೆನ ಸರಾಸರಿನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಲ್ಲ ಸಂಖ್ಯೆನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ನಡುತ್ತ ಸಂಖ್ಯೆನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ಕಿಞ್ಞ ಸಂಕ್ಯೆನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಸ್ತ್ ಸಾಮಾನ್ಯ ವಿಷಯೊನು ಪಿರಕೊರು"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "ಪಟ್ಟಿದ ಒವ್ವಾಂಡಲ ಒಂಜಿ ಅಂಶೊನು ಪಿರಕೊರು."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "ಪಟ್ಟಿದ ಪ್ರಮಾಣಿತ ವಿಚಲನೊನು ಪಿರಕೊರು"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಾತಾ ಸಂಖ್ಯೆಲೆನ ಮೊತ್ತನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/ರಾಂಡಮ್_ನಂಬರ್_ಜನರೇಶನ್"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಭಿನ್ನರಾಶಿ"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "0.0 (ಸೇರ್‌ದ್) ಬೊಕ್ಕ 1.0 (ಸೇರಂದೆ) ನಡುತ ಒವ್ವಾಂಡಲ ಒಂಜಿ ಭಿನ್ನರಾಶಿನ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/ರಾಂಡಮ್_ನಂಬರ್_ಜನರೇಶನ್"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = " %1 ಡ್ದ್ %2 ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊ"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "ರಡ್ಡ್ ನಿಗದಿತ ಮಿತಿತ ನಡುತ್ತ ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊನು ಪಿರಕೊರು"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/ಪೂರ್ಣಾಂಕೊ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "ರೌಂಡ್"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ತಿರ್ತ್‌ಗ್ ರೌಂಡ್"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ಮಿತ್ತ್‌ಗ್ ರೌಂಡ್"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "ಒಂಜಿ ಸಂಖ್ಯೆನ್ ಮಿತ್ತ್‌ಗ್ ಅತ್ತಂಡ ತಿರ್ತ್‌ಗ್ ರೌಂಡ್ ಮಲ್ಪು"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ಸಂಪೂರ್ನೊ"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "ವರ್ಗಮೂಲೊ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "ಸಂಖ್ಯೆದ ಸರಿಯಾಯಿನ ಮೌಲ್ಯೊನು ಕೊರು"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "ಒಂಜಿ ಸಂಖ್ಯೆದ ಘಾತೊಗು 'e'ನ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "ಸಂಖ್ಯೆದ ಪ್ರಾಕೃತಿಕ ಲಘುಗಣಕನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "ಸಂಖ್ಯೆದ ದಶಮಾನ ಲಘುಗಣಕನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "ಸಂಖ್ಯೆದ ನಿಷೇಧೊನು ಪಿರಕೊರು"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "ಒಂಜಿ ಸಂಖ್ಯೆದ ಘಾತೊಗು ೧೦ನ್ ಪಿರಕೊರು"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "ಸಂಖ್ಯೆದ ವರ್ಗಮೂಲೊನು ಪಿರಕೊರು."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/ತ್ರಿಕೋನಮಿತಿದ_ಕಾರ್ಯೊಲು"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "ಒಂಜಿ ಸಂಖ್ಯೆದ ಆರ್ಕ್‌‌ಕೊಸೈನ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "ಒಂಜಿ ಸಂಖ್ಯೆದ ಆರ್ಕ್‌ಸೈನ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "ಒಂಜಿ ಸಂಖ್ಯೆದ ಆರ್ಕ್‌ಟ್ಯಾನ್‌ಜ್ಂಟ್ ಪಿರಕೊರು."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "ಒಂಜಿ ಡಿಗ್ರಿದ ಕೊಸೈನ್ (cosine) ಪಿರಕೊರು (ರೇಡಿಯನ್ ಅತ್ತ್)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "ಒಂಜಿ ಡಿಗ್ರಿದ ಸೈನ್ (sine) ಪಿರಕೊರು (ರೇಡಿಯನ್ ಅತ್ತ್)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "ಒಂಜಿ ಡಿಗ್ರಿದ ಟ್ಯಾನ್‌ಜೆಂಟ್ (tangent) ಪಿರಕೊರು (ರೇಡಿಯನ್ ಅತ್ತ್)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "ವ್ಯತ್ಯಯೊನು ಉಂಡು ಮಲ್ಪುಲೆ"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ಪೊಸ ವ್ಯತ್ಯಯೊದ ಪುದರ್:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "ಹೇಳಿಕೆಗ್ ಅವಕಾಸೊ"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ಒಟ್ಟುಗು:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "'%1' ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊನು ನಡಪಾಲೆ."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = " ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊ '%1' ನು ನಡಪಾಲೆ ಬುಕ್ಕೊ ಅಯಿತ ಉತ್ಪಾದನೆನ್ ಗಲಸ್‌ಲೆ."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ಒಟ್ಟುಗು:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = " '%1'ನ್ ಉಂಡುಮಲ್ಪುಲೆ"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "ಈ ಕಾರ್ಯೊನು ಇವರಿಪುಲೆ..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "ಎಂಚಿನಾಂಡಲ ಮಲ್ಪುಲೆ"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "ಇಂದೆಕ್"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "ಔಟ್‌ಪುಟ್ ದಾಂತಿನ ಕಾರ್ಯೊನು ಉಂಡುಮಲ್ಪುಂಡು."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "ಪಿರಕೊರು"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "ಔಟ್‌ಪುಟ್ ಇತ್ತಿನ ಕಾರ್ಯೊನು ಉಂಡುಮಲ್ಪುಂಡು."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "ಎಚ್ಚರಿಕೆ: ಈ ಕಾರ್ಯೊಡು ನಕಲಿ ಮಾನದಂಡೊ ಉಂಡು."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "ದೆರ್ತ್ ತೋಜುನ ಕಾರ್ಯೊದ ವ್ಯಾಕ್ಯಾನೊ"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "ಮೌಲ್ಯೊ ಸತ್ಯೊ ಆಂಡ, ರಡ್ಡನೆ ಮೌಲ್ಯೊನು ಪಿರಕೊರು."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "ಎಚ್ಚರಿಕೆ: ಒಂಜಿ ಕಾರ್ಯ ವ್ಯಾಕ್ಯಾನೊದುಲಯಿ ಮಾತ್ರ ಈ ತಡೆನ್ ಗಲಸೊಲಿ."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "ಉಲಪರಿಪುದ ಪುದರ್:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "ಕಾರ್ಯೊಗು ಒಂಜಿ ಉಲಪರಿಪುನು ಸೇರಲೆ."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "ಉಲಪರಿಪು"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "ಸೇರಾಲೆ, ದೆತ್ತ್‌ ಬುಡುಲೆ, ಅತ್ತಂಡ ಈ ಕಾರ್ಯೊಗು ಉಲಪರಿಪುಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ."; -Blockly.Msg["REDO"] = "ಕುಡ ಮಲ್ಪು"; -Blockly.Msg["REMOVE_COMMENT"] = "ಟಿಪ್ಪಣಿನ್ ದೆತ್ತ್‌ದ್ ಬುಡ್ಲೆ"; -Blockly.Msg["RENAME_VARIABLE"] = "ವ್ಯತ್ಯಯೊಗು ಕುಡೊರ ಪುದರ್ ದೀಲೆ"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "ಮಾತಾ '%1' ವ್ಯತ್ಯಯೊಲೆನ ಪುದರ್‌ನ್ ನೆಕ್ಕ್ ಬದಲ್ ಮಲ್ಪುಲೆ:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "ಇಂದೆಕ್ %1 ಪಟ್ಯೊನು ಸೇರವೆ %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "%1 ವ್ಯತ್ಯಯೊಗು ಕೆಲವು ಪಟ್ಯೊಲೆನ್ ಸೇರಾವ್"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "ಎಲ್ಯ ಅಕ್ಷರೊಗು"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "ತರೆಬರವುದ ಅಕ್ಷರೊಗು"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "ಮಲ್ಲ ಅಕ್ಷರೊಗು"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "ಪಟ್ಯೊದ ಒಂಜಿ ನಕಲ್‍ನ್ ಬೇತೆ ನಮೂನೆಡ್ (case) ಪಿರಕೊರು."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "ಸುರುತ್ತ ಅಕ್ಷರೊನು ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "ಅಕೇರಿಡ್ದ್ ಅಕ್ಷರೊ #ನ್ ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "ಅಕ್ಸರೊ #ನ್ ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "ಅಕೇರಿದ ಅಕ್ಷರೊನು ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಅಕ್ಷರೊನು ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "%1 %2 ಪದೊಟ್ಟು"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "ಅಕ್ಷರೊನು ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "ಪಟ್ಯೊಗು ಒಂಜಿ ವಿಷಯೊನು ಸೇರಾವ್"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "ಸೇರಾವ್"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "ಈ ಪಠ್ಯ ತಡೆನ್ ಕುಡ ಸಂರಚಣೆ ಮಲ್ಪೆರೆ, ಸೇರಾವ್, ದೆತ್ತ್ ಬುಡು, ಅತ್ತಂಡ ವಿಭಾಗೊಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪು."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "ಅಕೇರಿಡ್ದ್ ಅಕ್ಷರೊ #ಗು"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "ಅಕ್ಷರೊ #ಗು"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "ಅಕೇರಿದ ಅಕ್ಷರೊಗು"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ಪಟ್ಯೊಡು"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "ಸುರುತ್ತ ಅಕ್ಷರೊ #ಡ್ದು ಉಪವಾಕ್ಯೊನು ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "ಅಕೇರಿಡ್ದ್ ಅಕ್ಷರೊ #ಡ್ದು ಉಪವಾಕ್ಯೊನು ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "ಅಕ್ಷರೊ #ಡ್ದು ಉಪವಾಕ್ಯೊ ದೆತ್ತೊನು"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "ಪಟ್ಯೊದ ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಬಾಗೊನು ಪಿರಕೊರ್ಪುಂಡು."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "ಪಟ್ಯೊ ಸುರುಕ್ಕು ಬತ್ತಿನೇನ್ ನಾಡ್"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "ಪಟ್ಯೊ ಅಕೇರಿಗ್ ಬತ್ತಿನೇನ್ ನಾಡ್"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ಪಟ್ಯೊಡು %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "ರಡ್ಡನೆ ಪಟ್ಯೊಡು ಉಪ್ಪುನ ಸುರುತ ಪಟ್ಯೊ ಸುರುಕ್ಕು/ಅಕೇರಿಗ್ ಬತ್ತಿನೆತ್ತ ಸೂಚಿನ್ ಪಿರಕೊರು. ಪಟ್ಯೊ ತಿಕ್ಕಿಜ್ಜಾಂಡ %1 ನ್ ಪಿರಕೊರು."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ಖಾಲಿ"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "ಕೊರಿನ ಪಟ್ಯೊ ಖಾಲಿ ಇತ್ತ್ಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ನೆಡ್ದ್ ಪಟ್ಯೊನು ಉಂಡು ಮಲ್ಪು"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "ಏತಾಂಡಲ ವಿಷಯಲೆನ್ ಒಟ್ಟುಗು ಸೇರಾದ್ ಒಂಜಿ ಪಟ್ಯೊದ ತುಂಡುನು ಉಂಡುಮಲ್ಪು."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 ಉದ್ದೊ"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "ಕೊರಿನ ಪಟ್ಯೊದ ಅಕ್ಷರೊಲೆನ (ಅಂತರೊಲು ಸೇರ್‌ದ್) ಸಂಖ್ಯೆನ್ ಪಿರಕೊರು."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 ಮುದ್ರಣ"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "ನಿರ್ದಿಷ್ಟ ಪಟ್ಯೊ, ಸಂಖ್ಯೆ ಅತ್ತಂಡ ಬೇತೆ ಮೌಲ್ಯೊನು ಮುದ್ರಿಪುಲೆ."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "ಒಂಜಿ ಸಂಖ್ಯೆಗ್ ಸದಸ್ಯೆರೆನ್ ಕೇನ್"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "ಕೆಲವು ಪಟ್ಯೊಗು ಸದಸ್ಯೆರೆನ್ ಕೇನ್."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "ಸಂದೇಶೊದೊಟ್ಟುಗು ಸಂಕ್ಯೆನ್ ಕೇನ್"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "ಸಂದೇಶೊದೊಟ್ಟುಗು ಪಟ್ಯೊಗು ಕೇನ್."; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/ಸ್ಟ್ರಿಂಗ್_(ಕಂಪ್ಯೂಟರ್_ಸೈನ್ಸ್)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "ಒಂಜಿ ಅಕ್ಷರೊ, ಪದೊ ಅತ್ತಂಡ ಪಾಟೊದ ಒಂಜಿ ಸಾಲ್"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "ರಡ್ಡ್ ಮೆಯಿತ್ತಲ ಅಂತರೊಲೆನ್ (space) ಕತ್ತೆರ್."; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "ಎಡತ್ತ ಮೆಯಿತ್ತ ಅಂತರೊಲೆನ್ (space) ಕತ್ತೆರ್."; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "ಬಲತ್ತ ಮೆಯಿತ್ತ ಅಂತರೊಲೆನ್ (space) ಕತ್ತೆರ್."; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "ಒಂಜಿ ಅತ್ತಂಡ ರಡ್ಡ್ ಕೊಡಿಡ್ದ್ ಅಂತರೊಲೆನ್ (space) ದೆತ್ತ್‌ದ್ ಪಟ್ಯೊದ ಪ್ರತಿನ್ ಪಿರಕೊರು."; -Blockly.Msg["TODAY"] = "ಇನಿ"; -Blockly.Msg["UNDO"] = "ದುಂಬುದಲೆಕೊ"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ವಸ್ತು"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'ಸೆಟ್ %1' ಉಂಡುಮಲ್ಪುಲೆ"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "ಈ ವ್ಯತ್ಯಯೊದ ಮೌಲ್ಯೊನು ಪಿರಕೊರು."; -Blockly.Msg["VARIABLES_SET"] = "%1 ನ್ %2 ಕ್ಕ್ ಸೆಟ್ ಮಲ್ಪುಲೆ"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'ದೆತ್ತೊನು %1' ಉಂಡುಮಲ್ಪುಲೆ"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "ಈ ವ್ಯತ್ಯಯೊನು ಇನ್‌ಪುಟ್‌ಗ್ ಸಮ ಆಪಿಲೆಕ ಸೆಟ್ ಮಲ್ಪುಂಡು."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' ಪನ್ಪಿ ಪುದರ್‌ದ ವ್ಯತ್ಯಯೊ ದುಂಬೆ ಅಸ್ತಿತ್ವೊಡು ಉಂಡು."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/te.js b/lib/blockly/msg/js/te.js deleted file mode 100644 index 2cee047..0000000 --- a/lib/blockly/msg/js/te.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "వ్యాఖ్య చేర్చు"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "విలువ మార్చు"; -Blockly.Msg["CLEAN_UP"] = "నిరోదనలను శుభ్రపరుచు"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "నిరోదనలను కూల్చు"; -Blockly.Msg["COLLAPSE_BLOCK"] = "నరోదన కూల్చు"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "రంగు 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "రంగు 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "నిష్పత్తి"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "మిశ్రమం"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "రెండు రంగులను (0.0 - 1.0) నిష్పత్తిలో మిశ్రమించాలి."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://te.wikipedia.org/wiki/రంగు"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "చిత్రకారుడు ఉపయోగించే రంగుల నుండి ఒక దానిని ఎంచుకో."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "యాదృచ్ఛిక రంగు"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "యాదృచ్ఛికంగా ఒక రంగును ఎంచుకో."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "నీలం"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ఆకుపచ్చ"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ఎరుపు"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "తో రంగు"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ఎరుపు,పచ్చ మరియు బులుగు రంగులను సమంగా ఉపయోగించి ఒక రంగును సృష్ఠించండి.అన్ని విలువలు 0 నుండి 100 మధ్యలో ఉండాలి."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "break out of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Warning: This block may only be used within a loop."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "ఒక అంశం కోసం %1 జాబితా లో %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "దీనితో లెక్కించు %1 నుండి %2 వరకు %3 తో %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "else"; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "else if"; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "అయితే"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://te.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "చేయు"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 సార్లు మళ్ళీ కొనసాగించు"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "కొన్ని నివేదికలు లేదా ప్రతిపాదనలు అనేక మార్లు చెయ్యండి."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "అంతవరకు మళ్ళీ కొనసాగించండి"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "repeat while"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "ఒక వె తప్పైనప్పుడు కొన్ని నివేదికలు లేదా ప్రతిపాదనలు చెయ్యండి."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ఒక వెల నిజమైనప్పుడు కొన్ని నివేదికలు లేదా ప్రతిపాదనలు చెయ్యండి."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "మెుత్తం %1నిరోదనలను తొలగించు?"; -Blockly.Msg["DELETE_BLOCK"] = "నిరోదన తొలగించు"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "%1నిరోదనలను తోలగించు"; -Blockly.Msg["DISABLE_BLOCK"] = "నిరోదన పని చేయకుండా చేయు"; -Blockly.Msg["DUPLICATE_BLOCK"] = "నకలు"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "నిరోదన ప్రారంబించు"; -Blockly.Msg["EXPAND_ALL"] = "నిరోదనలను విస్తరించు"; -Blockly.Msg["EXPAND_BLOCK"] = "నిరోదన విస్తరించు"; -Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; // untranslated -Blockly.Msg["HELP"] = "సహాయం"; -Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "జాబితా"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "మొదటి"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "#చివరి నుండి"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "పొందు"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "పొందు మరియు తొలగించు"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "చివరి"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "యాదృచ్చిక"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "తొలగించు"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "చివరి నుండి # వరకు"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "# కు"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "తుదకు"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "జాబితాలో"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "గా"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "అసత్యం"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "సత్యం"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 కాదు"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "చెల్లని"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "మరియు"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "లేదా"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "పరీక్షించు"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "అసత్యమైతే"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "సత్యమైతే"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://te.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "రెండు సంఖ్యల మొత్తానికి తిరిగి వెళ్ళండి."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "రెండు సంఖ్యల తేడాకి తిరిగి వెళ్ళండి"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "దీనితో భాగించబడును"; -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "ప్రతికూలంగా ఉంది"; -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "అనుకూలంగా ఉంది"; -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ఒ సంఖ్య."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "జాబితా సగటు"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "జాబితా మొత్తం"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "కొత్త వ్యత్యాసం..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "కొత్త వ్యత్యాసం పేరు:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "తో:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "తో:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "ఏదో ఒకటి చేయి"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "కు"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "తిరిగి వెళ్ళు"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "మళ్ళీ చెయ్యి"; -Blockly.Msg["REMOVE_COMMENT"] = "వ్యాఖ్యను తొలగించు"; -Blockly.Msg["RENAME_VARIABLE"] = "పునఃనామకరణ వ్యత్యాసం..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "మొత్తం వ్యత్యాసాలను '%1' దీనికి పునఃనామకరణించు:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "మొదటి వర్ణాన్ని పొందు"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "చివరి వర్ణాన్ని పొందు"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "యాదృశ్చిక వర్ణాన్ని పొందు"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "చేరు"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "% 1 ఖాళీ"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 పొడువు"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "నేడు"; -Blockly.Msg["UNDO"] = "రద్దుచెయ్యి"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "అంశం"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/th.js b/lib/blockly/msg/js/th.js deleted file mode 100644 index a8460ad..0000000 --- a/lib/blockly/msg/js/th.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "ใส่คำอธิบาย"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "ไม่สามารถลบตัวแปร '%1' ได้เนื่องจากเป็นส่วนหนึ่งของนิยามของฟังก์ชัน '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "เปลี่ยนค่า:"; -Blockly.Msg["CLEAN_UP"] = "จัดเรียงบล็อกให้เป็นแถว"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "บล็อกที่ถูกพับมีคำเตือนอยู่ข้างใน."; -Blockly.Msg["COLLAPSE_ALL"] = "ย่อบล็อก"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ย่อบล็อก"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "สีที่ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "สีที่ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "อัตราส่วน"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ผสม"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ผสมสองสีเข้าด้วยกันด้วยอัตราส่วน (0.0 - 1.0)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://th.wikipedia.org/wiki/สี"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "เลือกสีจากจานสี"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "สุ่มสี"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "เลือกสีแบบสุ่ม"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "ค่าสีน้ำเงิน"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "ค่าสีเขียว"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ค่าสีแดง"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "สีที่ประกอบด้วย"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "สร้างสีด้วยการกำหนดค่าสีแดง เขียว และน้ำเงิน ค่าทั้งหมดต้องอยู่ระหว่าง 0 ถึง 100"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ออกจากการวนซ้ำ"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "เริ่มการวนซ้ำรอบต่อไป"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "ออกจากการวนซ้ำที่อยู่"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "ข้ามคำสั่งที่เหลืออยู่ และเริ่มต้นวนซ้ำรอบต่อไป"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "คำเตือน: บล็อกนี้ใช้งานได้ภายในการวนซ้ำเท่านั้น"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "จากทุกรายการ %1 ในรายชื่อ %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "จากทุกรายการในรายชื่อ ตั้งค่าตัวแปร \"%1\" เป็นรายการ และทำตามคำสั่งที่กำหนดไว้"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "นับด้วย %1 จาก %2 จนถึง %3 เปลี่ยนค่าทีละ %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "ตัวแปร '%1' จะเริ่มจากจำนวนเริ่มต้น ไปจนถึงจำนวนสุดท้าย ตามระยะที่กำหนด และ ทำบล็อกที่กำหนดไว้"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "กำหนดเงื่อนไขของบล็อก \"ถ้า\""; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "เพิ่มสิ่งสุดท้าย ที่จะตรวจจับความเป็นไปได้ทั้งหมดของบล็อก \"ถ้า\""; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "เพิ่ม ลบ หรือจัดเรียงบล็อก \"ถ้า\" นี้ใหม่"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "นอกเหนือจากนี้"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "นอกเหนือจากนี้ ถ้า"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ถ้า"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ถ้าเงื่อนไขเป็นจริง ก็จะ \"ทำ\" ตามที่กำหนด"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "ถ้าเงื่อนไขเป็นจริง ก็จะ \"ทำ\" ตามที่กำหนด แต่ถ้าเงื่อนไขเป็นเท็จก็จะทำ \"นอกเหนือจากนี้\""; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "ถ้าเงื่อนไขแรกเป็นจริง ก็จะทำตามคำสั่งในบล็อกแรก แต่ถ้าไม่ก็จะไปตรวจเงื่อนไขที่สอง ถ้าเงื่อนไขที่สองเป็นจริง ก็จะทำตามเงื่อนไขในบล็อกที่สองนี้"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "ถ้าเงื่อนไขแรกเป็นจริง ก็จะทำคำสั่งในบล็อกแรก จากนั้นจะข้ามคำสั่งในบล็อกที่เหลือ แต่ถ้าเงื่อนไขแรกเป็นเท็จ ก็จะทำการตรวจเงื่อนไขที่สอง ถ้าเงื่อนไขที่สองเป็นจริง ก็จะทำตามคำสั่งในบล็อกที่สอง จากนั้นจะข้ามคำสั่งในบล็อกที่เหลือ แต่ถ้าทั้งเงื่อนไขแรกและเงื่อนไขที่สองเป็นเท็จทั้งหมด ก็จะมาทำบล็อกที่สาม"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ทำ"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ทำซ้ำ %1 ครั้ง"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "ทำซ้ำบางคำสั่งหลายครั้ง"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ทำซ้ำจนกระทั่ง"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ทำซ้ำขณะที่"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "ขณะที่ค่าเป็นเท็จ ก็จะทำบางคำสั่ง"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ขณะที่ค่าเป็นจริง ก็จะทำบางคำสั่ง"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "ลบ %1 บล็อกทั้งหมด?"; -Blockly.Msg["DELETE_BLOCK"] = "ลบบล็อก"; -Blockly.Msg["DELETE_VARIABLE"] = "ลบตัวแปร '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "ลบการใช้ตัวแปร %2 %1 ครั้งหรือไม่"; -Blockly.Msg["DELETE_X_BLOCKS"] = "ลบ %1 บล็อก"; -Blockly.Msg["DISABLE_BLOCK"] = "ปิดใช้งานบล็อก"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ทำสำเนา"; -Blockly.Msg["DUPLICATE_COMMENT"] = "ทำสำเนาความเห็น"; -Blockly.Msg["ENABLE_BLOCK"] = "เปิดใช้งานบล็อก"; -Blockly.Msg["EXPAND_ALL"] = "ขยายบล็อก"; -Blockly.Msg["EXPAND_BLOCK"] = "ขยายบล็อก"; -Blockly.Msg["EXTERNAL_INPUTS"] = "อินพุตภายนอก"; -Blockly.Msg["HELP"] = "ช่วยเหลือ"; -Blockly.Msg["INLINE_INPUTS"] = "อินพุตในบรรทัด"; -Blockly.Msg["IOS_CANCEL"] = "ยกเลิก"; -Blockly.Msg["IOS_ERROR"] = "ข้อผิดพลาด"; -Blockly.Msg["IOS_OK"] = "ตกลง"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ เพิ่มอินพุต"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "อนุญาตคำสั่ง"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "ฟังก์ชันนี้มีอินพุตที่ซ้ำกัน"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "อินพุต"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "เพิ่ม"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ เพิ่มตัวแปร"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "ลบ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "คุณไม่สามารถใช้ชื่อตัวแปรที่ว่างเปล่าได้"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "เปลี่ยนชื่อ"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "ชื่อตัวแปร"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "สร้างรายการเปล่า"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "สร้างรายการเปล่า (ความยาวเป็น 0) ยังไม่มีข้อมูลใดๆ อยู่"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "รายการ"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "เพิ่ม ลบ หรือจัดเรียงบล็อกรายการนี้ใหม่"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "สร้างข้อความด้วย"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "เพิ่มไอเท็มเข้าไปในรายการ"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "สร้างรายการพร้อมด้วยไอเท็ม"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "แรกสุด"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# จากท้าย"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "เรียกดู"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "เรียกดูและเอาออก"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ท้ายสุด"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "สุ่ม"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "เอาออก"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "คืนค่าไอเท็มอันแรกในรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "คืนค่าเป็นไอเท็มตามตำแหน่งที่ระบุ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "คืนค่าไอเท็มอันสุดท้ายในรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "คืนค่าไอเท็มแบบสุ่มจากรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "เอาออก และคืนค่าไอเท็มอันแรกในรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "เอาออก และคืนค่าไอเท็มในตำแหน่งที่ระบุจากรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "เอาออก และคืนค่าไอเท็มอันสุดท้ายในรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "เอาออก และคืนค่าไอเท็มแบบสุ่มจากรายการ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "เอาไอเท็มแรกสุดในรายการออก"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "คืนค่าเป็นไอเท็มตามตำแหน่งที่ระบุ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "เอาไอเท็มอันท้ายสุดในรายการออก"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "เอาไอเท็มแบบสุ่มจากรายการออก"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ถึง # จากท้ายสุด"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "จนถึง #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ถึง ท้ายสุด"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "ดึงรายการย่อยทั้งแต่แรกสุด"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "ดึงรายการย่อยจาก # จากท้ายสุด"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "ดึงรายการย่อยจาก #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "สร้างสำเนารายการในช่วงที่กำหนด"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 คือไอเท็มอันท้ายสุด"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 คือไอเท็มอันแรกสุด"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "หาอันแรกที่พบ"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "หาอันสุดท้ายที่พบ"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "คืนค่าตำแหน่งของไอเท็มอันแรก/สุดท้ายที่พบในรายการ คืนค่า %1 ถ้าหาไม่พบ"; -Blockly.Msg["LISTS_INLIST"] = "ในรายการ"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ว่างเปล่า"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "คืนค่าเป็นจริง ถ้ารายการยังว่างเปล่า"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "ความยาวของ %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "ส่งคืนค่าความยาวของรายการ"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "สร้างรายการที่มีไอเท็ม %1 จำนวน %2"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "สร้างรายการที่ประกอบด้วยค่าตามที่ระบุในจำนวนตามที่ต้องการ"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "เรียง %1 แบบย้อนกลับ"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "เรียงลำดับสำเนาของรายชื่อแบบย้อนกลับ"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "เป็น"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "แทรกที่"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "กำหนด"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "แทรกไอเท็มเข้าไปเป็นอันแรกสุดของรายการ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "แทรกไอเท็มเข้าไปในตำแหน่งที่กำหนด"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "เพิ่มไอเท็มเข้าไปท้ายสุดของรายการ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "เพิ่มไอเท็มเข้าไปในรายการแบบสุ่ม"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "กำหนดไอเท็มอันแรกในรายการ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "กำหนดไอเท็มในตำแหน่งที่ระบุในรายการ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "กำหนดไอเท็มอันสุดท้ายในรายการ"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "กำหนดไอเท็มแบบสุ่มในรายการ"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "น้อยไปหามาก"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "มากไปหาน้อย"; -Blockly.Msg["LISTS_SORT_TITLE"] = "เรียงลำดับ %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "เรียงลำดับสำเนาของรายชื่อ"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "ตัวอักษร"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "ตัวเลข"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "ตัวอักษร"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "สร้างรายการจากข้อความ"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "สร้างข้อความจากรายการ"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "รวมรายการข้อความเป็นข้อความเดียว แบ่งด้วยตัวคั่น"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "แบ่งข้อความเป็นรายการข้อความ แยกแต่ละรายการด้วยตัวคั่น"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "ด้วยตัวคั่น"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "เท็จ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "คืนค่าเป็นจริงหรือเท็จ"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "จริง"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://th.wikipedia.org/wiki/อสมการ"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "คืนค่าเป็น \"จริง\" ถ้าค่าที่ใส่ทั้งสองค่านั้นเท่ากัน"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "คืนค่าเป็น \"จริง\" ถ้าค่าแรกมากกว่าค่าที่สอง"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "คืนค่าเป็น \"จริง\" ถ้าค่าแรกมากกว่าหรือเท่ากับค่าที่สอง"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "คืนค่าเป็น \"จริง\" ถ้าค่าแรกน้อยกว่าค่าที่สอง"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "คืนค่าเป็น \"จริง\" ถ้าค่าแรกน้อยกว่าหรือเท่ากับค่าที่สอง"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "คืนค่าเป็น \"จริง\" ถ้าค่าที่ใส่ทั้งสองค่านั้นไม่เท่ากัน"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ไม่ %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "คืนค่าเป็น \"จริง\" ถ้าค่าที่ใส่เป็นเท็จ คืนค่าเป็น \"เท็จ\" ถ้าค่าที่ใส่เป็นจริง"; -Blockly.Msg["LOGIC_NULL"] = "ไม่กำหนด"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "คืนค่า \"ไม่กำหนด\""; -Blockly.Msg["LOGIC_OPERATION_AND"] = "และ"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "หรือ"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "คืนค่าเป็น \"จริง\" ถ้าค่าทั้งสองค่าเป็นจริง"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "คืนค่าเป็น \"จริง\" ถ้ามีอย่างน้อยหนึ่งค่าที่เป็นจริง"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ทดสอบ"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ถ้า เป็นเท็จ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ถ้า เป็นจริง"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "ตรวจสอบเงื่อนไขใน \"ทดสอบ\" ถ้าเงื่อนไขเป็นจริง จะคืนค่า \"ถ้า เป็นจริง\" ถ้าเงื่อนไขเป็นเท็จ จะคืนค่า \"ถ้า เป็นเท็จ\""; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://th.wikipedia.org/wiki/เลขคณิต"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "คืนค่าผลรวมของตัวเลขทั้งสองจำนวน"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "คืนค่าผลหารของตัวเลขทั้งสองจำนวน"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "คืนค่าผลต่างของตัวเลขทั้งสองจำนวน"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "คืนค่าผลคูณของตัวเลขทั้งสองจำนวน"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "คืนค่าผลการยกกำลัง โดยตัวเลขแรกเป็นฐาน และตัวเลขที่สองเป็นเลขชี้กำลัง"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "เปลี่ยนอาร์กแทนเจนต์ของชุด (X, Y) จากองศา 180 เป็น -180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "เปลี่ยนค่า %1 เป็น %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "เพิ่มค่าของตัวแปร \"%1\""; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://th.wikipedia.org/wiki/ค่าคงตัวทางคณิตศาสตร์"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "คืนค่าคงตัวทางคณิตศาสตร์ที่พบบ่อยๆ เช่น π (3.141…), e (2.718…), φ (1.618…), รากที่สอง (1.414…), รากที่ ½ (0.707…), ∞ (อนันต์)"; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "จำกัดค่า %1 ต่ำสุด %2 สูงสุด %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "จำกัดค่าของตัวเลขให้อยู่ในช่วงที่กำหนด"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "หารลงตัว"; -Blockly.Msg["MATH_IS_EVEN"] = "เป็นจำนวนคู่"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "เป็นเลขติดลบ"; -Blockly.Msg["MATH_IS_ODD"] = "เป็นจำนวนคี่"; -Blockly.Msg["MATH_IS_POSITIVE"] = "เป็นเลขบวก"; -Blockly.Msg["MATH_IS_PRIME"] = "เป็นจำนวนเฉพาะ"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "ตรวจว่าตัวเลขเป็นจำนวนคู่ จำนวนคี่ จำนวนเฉพาะ จำนวนเต็ม เลขบวก เลขติดลบ หรือหารด้วยเลขที่กำหนดลงตัวหรือไม่ คืนค่าเป็นจริงหรือเท็จ"; -Blockly.Msg["MATH_IS_WHOLE"] = "เป็นเลขจำนวนเต็ม"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "เศษของ %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "คืนค่าเศษที่ได้จากการหารของตัวเลขทั้งสองจำนวน"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://th.wikipedia.org/wiki/จำนวน"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "จำนวน"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "ค่าเฉลี่ยของรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "มากที่สุดในรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "ค่ามัธยฐานของรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "น้อยที่สุดในรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "ฐานนิยมของรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "สุ่มรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "ส่วนเบี่ยงเบนมาตรฐานของรายการ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "ผลรวมของรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "คืนค่าเฉลี่ยของรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "คืนค่าตัวเลขที่มากที่สุดในรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "คืนค่ามัธยฐานของรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "คืนค่าตัวเลขที่น้อยที่สุดในรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "คืนค่าฐานนิยมของรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "สุ่มคืนค่าสิ่งที่อยู่ในรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "คืนค่าส่วนเบี่ยงเบนมาตรฐานของรายการ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "คืนค่าผลรวมของตัวเลขทั้งหมดในรายการ"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "สุ่มเลขเศษส่วน"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "สุ่มเลขเศษส่วน ตั้งแต่ 0.0 แต่ไม่เกิน 1.0"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "สุ่มเลขจำนวนเต็มตั้งแต่ %1 จนถึง %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "สุ่มเลขจำนวนเต็มจากช่วงที่กำหนด"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://th.wikipedia.org/wiki/การปัดเศษ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "ปัดเศษ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "ปัดเศษลง"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "ปัดเศษขึ้น"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "ปัดเศษของตัวเลขขึ้นหรือลง"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "ค่าสัมบูรณ์"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "รากที่สอง"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "คืนค่าค่าสัมบูรณ์ของตัวเลข"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "คืนค่า e ยกกำลังด้วยตัวเลข"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "คืนค่าลอการิทึมธรรมชาติของตัวเลข"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "คืนค่าลอการิทึมฐานสิบของตัวเลข"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "คืนค่าติดลบของตัวเลข"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "คืนค่า 10 ยกกำลังด้วยตัวเลข"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "คืนค่ารากที่สองของตัวเลข"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://th.wikipedia.org/wiki/ฟังก์ชันตรีโกณมิติ"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "คืนค่า arccosine ของตัวเลข"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "คืนค่า arcsine ของตัวเลข"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "คืนค่า arctangent ของตัวเลข"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "คืนค่า cosine ขององศา (ไม่ใช่เรเดียน)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "คืนค่า sine ขององศา (ไม่ใช่เรเดียน)"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "คืนค่า tangent ขององศา (ไม่ใช่เรเดียน)"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "สร้างตัวแปรสี"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "สร้างตัวแปรจำนวน"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "สร้างตัวแปร string"; -Blockly.Msg["NEW_VARIABLE"] = "สร้างตัวแปร..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ชื่อตัวแปรใหม่:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "ชนิดตัวแปรใหม่"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "ข้อความที่ใช้ได้"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ด้วย:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://th.wikipedia.org/wiki/ซับรู้ทีน"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "เรียกใช้ฟังก์ชันที่สร้างโดยผู้ใช้ \"%1\""; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://th.wikipedia.org/wiki/ซับรูทีน"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "เรียกใช้ฟังก์ชันที่สร้างโดยผู้ใช้ \"%1\" และใช้ผลลัพธ์ของมัน"; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ด้วย:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "สร้าง \"%1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "อธิบายฟังก์ชันนี้"; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "ทำอะไรบางอย่าง"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "ถึง"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "สร้างฟังก์ชันที่ไม่มีผลลัพธ์"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "คืนค่า"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "สร้างฟังก์ชันที่มีผลลัพธ์"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "ระวัง: ฟังก์ชันนี้มีพารามิเตอร์ที่มีชื่อซ้ำกัน"; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "เน้นฟังก์ชันนิยาม"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "ถ้ามีค่าเป็นจริง ให้คืนค่าที่สอง"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "ระวัง: บล็อกนี้ใช้เฉพาะในการสร้างฟังก์ชันเท่านั้น"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "ชื่อนำเข้า:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "เพิ่มค่าป้อนเข้าฟังก์ชัน"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "นำเข้า"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "เพิ่ม, ลบ, หรือจัดเรียง ข้อมูลที่ป้อนเข้าฟังก์ชันนี้"; -Blockly.Msg["REDO"] = "ทำซ้ำ"; -Blockly.Msg["REMOVE_COMMENT"] = "เอาคำอธิบายออก"; -Blockly.Msg["RENAME_VARIABLE"] = "เปลี่ยนชื่อตัวแปร..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "เปลี่ยนชื่อตัวแปร '%1' ทั้งหมดเป็น:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "นำเอา %1 ต่อด้วยข้อความ %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "ต่อข้อความให้ตัวแปร \"%1\""; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "เปลี่ยนเป็น ตัวพิมพ์เล็ก"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "เปลี่ยนเป็น ตัวอักษรแรกเป็นตัวพิมพ์ใหญ่"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "เปลี่ยนเป็น ตัวพิมพ์ใหญ่"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "คืนค่าสำเนาของข้อความในกรณีต่างๆ"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "ดึง ตัวอักษรตัวแรก"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "ดึง ตัวอักษรตัวที่ # จากท้าย"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "ดึง ตัวอักษรตัวที่"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "ดึง ตัวอักษรตัวสุดท้าย"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "ถึงตัวอักษรแบบสุ่ม"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "ในข้อความ %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "คืนค่าตัวอักษรจากตำแหน่งที่ระบุ"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "นับ %1 ภายใน %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "นับจำนวนข้อความแรกที่พบอยู่ในข้อความที่สอง"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "เพิ่มรายการเข้าไปในข้อความ"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "รวม"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "เพิ่ม ลบ หรือจัดเรียงบล็อกข้อความนี้ใหม่"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "จนถึง ตัวอักษรที่ # จากท้าย"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "จนถึง ตัวอักษรที่"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "จนถึง ตัวอักษรสุดท้าย"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ในข้อความ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "แยกข้อความย่อยตั้งแต่ ตัวอักษรแรก"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "แยกข้อความย่อยตั้งแต่ ตัวอักษรที่ # จากท้าย"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "แยกข้อความย่อยตั้งแต่ ตัวอักษรที่"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "คืนค่าบางส่วนของข้อความ"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "หาข้อความแรกที่พบ"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "หาข้อความสุดท้ายที่พบ"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ในข้อความ %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "คืนค่าตำแหน่งที่พบข้อความแรกอยู่ในข้อความที่สอง คืนค่า %1 ถ้าหาไม่พบ"; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 ว่าง"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "คืนค่าจริง ถ้าข้อความยังว่างเปล่า"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "สร้างข้อความด้วย"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "สร้างข้อความด้วยการรวมจำนวนของรายการเข้าด้วยกัน"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "ความยาวของ %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "คืนค่าความยาวของข้อความ (รวมช่องว่าง)"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "พิมพ์ %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "พิมพ์ข้อความ ตัวเลข หรือค่าอื่นๆ"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "แสดงหน้าต่างให้ผู้ใช้ใส่ตัวเลข"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "แสดงหน้าต่างให้ผู้ใช้ใส่ข้อความ"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "แสดงหน้าต่างตัวเลข"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "แสดงหน้าต่างข้อความ"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "แทนที่ %1 ด้วย %2 ใน %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "แทนที่ข้อความแรกทั้งหมดที่พบในข้อความที่สอง"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "เรียง %1 แบบย้อนกลับ"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "เรียงตัวอักษรทั้งหมดของข้อความแบบย้อนกลับ"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://th.wikipedia.org/wiki/สายอักขระ"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "ตัวหนังสือ คำ หรือข้อความ"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "ลบช่องว่างทั้งสองข้างของ"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "ลบช่องว่างด้านหน้าของ"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "ลบช่องว่างข้างท้ายของ"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "คืนค่าสำเนาของข้อความที่ลบเอาช่องว่างหน้าและหลังข้อความออกแล้ว"; -Blockly.Msg["TODAY"] = "วันนี้"; -Blockly.Msg["UNDO"] = "ย้อนกลับ"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "รายการ"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "สร้าง \"กำหนด %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "คืนค่าของตัวแปรนี้"; -Blockly.Msg["VARIABLES_SET"] = "กำหนด %1 จนถึง %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "สร้าง \"get %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "กำหนดให้ตัวแปรนี้เท่ากับการป้อนข้อมูล"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "มีตัวแปรชื่อ '%1' อยู่แล้ว"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "ตัวแปรชื่อ '%1' มีอยู่แล้วสำหรับตัวแปรอื่นของชนิด: '%2'"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "เขียนอะไรสักอย่าง"; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/tl.js b/lib/blockly/msg/js/tl.js deleted file mode 100644 index 5a168a1..0000000 --- a/lib/blockly/msg/js/tl.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Dagdag komento"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "pagbago ng value:"; -Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "bloke"; -Blockly.Msg["COLLAPSE_BLOCK"] = "bloke"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "kulay 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "kulay 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporsyon"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "halo"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Paghalo ng dalawang kulay kasama ng ibinigay na proporsyon (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; // untranslated -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "pagpili ng kulay sa paleta."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "iba ibang kulay"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "pagpili ng iba't ibang kulay."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "asul"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "berde"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "pula"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "kulayan ng"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "gumawa ng kulay ng may espisipikong dami ng kulay pula, berde, at asul. lahat ng halaga ay dapat sa pagitan ng 0 at 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "putulin ang paulit ulit"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "Magpatuloy sa susunod na pag-ulit ng loop"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Hatiin ang nilalaman ng loop."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Laktawan ang natitirang bahagi ng loop, at magpatuloy sa susunod na pag-ulit."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Babala: Ang block ito ay maaari lamang magamit sa loob ng loop."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "sa bawat bagay %1 sa listahan %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Para sa bawat item sa isang list, i-set ang variable ng '%1' sa mga item, at pagkatapos ay gumawa ng ilang mga statements."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "bilangin %1 mula %2 hanggang %3 ng %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Magkaroon ng mga variable na \"%1\" na tanggalin ng mga halaga mula sa simulang numero hanggang sa dulong numero, at bilangin sa pamamagitan ng tinukoy na agwat, at gawin ang mga tinukoy na mga blocks."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Mag dagdag ng condition sa if block."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Mag Add ng final, kunin lahat ng condition sa if block."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Mag Add, remove o kaya mag reorder ng sections para maayos ang if block."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "else"; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "else if"; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "kung"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "kung ang value ay true, gagawin ang do statements."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Kung ang value ay true, gagawin ang unang block ng do statements. Kung hindi, gagawin ang pangalawang block ng statement."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Kung ang unang value ay true, gagawin ang first block ng statement. Kung hindi, kung ang second value ay true, gagawin ang second block ng statement."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Kung ang first value ay true, gagawin ang first block ng statement. Kung hindi true ang second value, gagawin ang second block ng statement. Kung wala sa mga values ay true, gagawin ang last block ng statements."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "gawin"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ulitin %1 beses"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "gumawa ng ilang pangungusap ng ilang ulit."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ulitin hanggang"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ulitin habang"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Habang ang value ay false, gagawin ang ibang statements."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Habang ang value ay true, gagawin ang ibang statements."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; // untranslated -Blockly.Msg["DELETE_BLOCK"] = "burahin ang bloke"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "burahin %1 ng bloke"; -Blockly.Msg["DISABLE_BLOCK"] = "Ipangwalang bisa ang Block"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Kaparehas"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "Bigyan ng bisa ang Block"; -Blockly.Msg["EXPAND_ALL"] = "Palawakin ang Blocks"; -Blockly.Msg["EXPAND_BLOCK"] = "Palawakin ang Block"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Panlabas na Inputs"; -Blockly.Msg["HELP"] = "Tulong"; -Blockly.Msg["INLINE_INPUTS"] = "Inline na Inputs"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Gumawa ng walang laman na list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Ibabalik ang list, na may haba na 0, nag lalaman ng walang data records"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Magdagdag, mag tanggal or mag ayos ng sections para muling maayos ang listahan ng block."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "gumawa ng list kasama"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Mag dagdag ng item sa list."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Gumawa ng list na may kahit anong number ng items."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "Una"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# mula katapusan"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "kunin"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "kunin at tanggalin"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "huli"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "nang hindi pinipili"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "tanggalin"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Ibalik ang unang item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Ibalik ang item sa itinakdang posisyon sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Ibalik ang huling item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Nag babalik ng hindi pinipiling item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Nag tatanggal at nag babalik ng mga unang item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Nag tatanggal at nag babalik ng mga items sa tinukoy na posisyon sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Nag tatanggal at nag babalik ng huling item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Nag tatanggal at nag babalik ng mga hindi pinipiling item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Nag tatanggal ng unang item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Nag tatanggal ng item sa tinukoy na posisyon sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Nag tatanggal ng huling item sa list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Nag tatanggal ng item mula sa walang pinipiling list."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "mula # hanggang huli"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "mula #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "hanggang huli"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "pag kuha ng sub-list mula sa una"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "pag kuha ng sub-list mula sa # mula huli"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "pag kuha ng sub-list mula #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Gumagawa ng kopya ng tinukoy na bahagi ng list."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ay ang huling item."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ay ang unang item."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "Hanapin ang unang pangyayari ng item"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "hanapin ang huling pangyayari ng item"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Pagbalik ng index ng una/huli pangyayari ng item sa list. Pagbalik ng %1 kung ang item ay hindi makita."; -Blockly.Msg["LISTS_INLIST"] = "sa list"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ay walang laman"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Nagbabalik ng true kung ang list ay walang laman."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "haba ng %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Pag balik ng haba ng list."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "pag gawa ng list kasama ng item %1 inuulit %2 beses"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Pag gawa ng list na binubuo ng binigay na value at inulit na tinuloy na bilang ng beses."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "gaya ng"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "isingit sa"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Nag singit ng item sa simula ng list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Nag singit ng item sa tinukoy na posistion sa list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Idagdag ang item sa huli ng isang list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Isingit ang item ng walang pinipili sa isang list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Pag set ng unang item sa isang list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Pag set ng item sa tinukoy na position sa isang list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Pag set sa huling item sa isang list."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Pag set ng walang pinipiling item sa isang list."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "mali"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Nag babalik ng true or false."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "tama"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Nag babalik ng true kung ang pinasok ay parehong magkatumbas."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Nagbabalik ng true kung ang unang pinasok ay mas malaki kaysa pangalawang pinasok."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Nag babalik ng true kung ang unang pinasok ay mas malaki or katumbas ng pangalawang pinasok."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Nag babalik ng true kung ang unang pinasok ay maliit kaysa sa pangalawang pinasok."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Nag babalik ng true kung ang unang pinasok ay maliit sa o katumbas sa pangalawang pinasok."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "not %1"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "blangko"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "at"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "o"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; // untranslated -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "kung mali"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "kung tama"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "baguhin %1 by %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "ay negatibo"; -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "ay positibo"; -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "A number."; // untranslated -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "absolute"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "square root"; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "Create variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE_TITLE"] = "New variable name:"; // untranslated -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "Redo"; // untranslated -Blockly.Msg["REMOVE_COMMENT"] = "Remove Comment"; // untranslated -Blockly.Msg["RENAME_VARIABLE"] = "Rename variable..."; // untranslated -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; // untranslated -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "Today"; // untranslated -Blockly.Msg["UNDO"] = "Undo"; // untranslated -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "item"; // untranslated -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/tlh.js b/lib/blockly/msg/js/tlh.js deleted file mode 100644 index 08fe0de..0000000 --- a/lib/blockly/msg/js/tlh.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "QInHom chel"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "choH:"; -Blockly.Msg["CLEAN_UP"] = "ngoghmeyvaD tlhegh rurmoH"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ngoghmey DejmoH"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ngogh DejmoH"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "rItlh wa'"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "rItlh cha'"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "'ar"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "DuD"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; // untranslated -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Choose a colour from the palette."; // untranslated -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "rItlh vISaHbe'"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Choose a colour at random."; // untranslated -Blockly.Msg["COLOUR_RGB_BLUE"] = "chal rItlh"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "tI rItlh"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "'Iw rItlh"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "rItlh wIv"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "gho Haw'"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "gho taHqa'"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Break out of the containing loop."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "yIqIm! ghoDaq neH ngoghvam lo'laH vay'."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "ngIq Doch %1 ngaSbogh tetlh %2 nuDDI'"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "togh %1 mung %2 ghoch %3 Do %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "pagh"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "pagh teHchugh"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "teHchugh"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "If a value is true, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ruch"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1-logh qaSmoH"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "teHpa' qaSmoH"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "teHtaHvIS qaSmoH"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Hoch %1 ngoghmey Qaw'?"; -Blockly.Msg["DELETE_BLOCK"] = "ngogh Qaw'"; -Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 ngoghmey Qaw'"; -Blockly.Msg["DISABLE_BLOCK"] = "ngogh Qotlh"; -Blockly.Msg["DUPLICATE_BLOCK"] = "velqa' chenmoH"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ngogh QotlhHa'"; -Blockly.Msg["EXPAND_ALL"] = "ngoghmey DejHa'moH"; -Blockly.Msg["EXPAND_BLOCK"] = "ngogh DejHa'moH"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Hur rar"; -Blockly.Msg["HELP"] = "QaH"; -Blockly.Msg["INLINE_INPUTS"] = "qoD rar"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "tetlh chIm"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "tetlh"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "tetlh ghom"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "wa'DIch"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# Qav"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "Suq"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "Suq vaj pej"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "Qav"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "Sahbe'"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "pej"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "mojaQ # Qav"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "mojaQ #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "mojaQ Qav"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "tetlhHom moHaq wa'DIch"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "tetlhHom moHaq # Qav"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "tetlhHom moHaq #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = "Suq"; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "Doch sam wa'DIch"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "Doch sam Qav"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "tetlhDaq"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 chIm'a'"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "chuq %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "tetlh ghom %2 Dochmey %1 pus"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "Dos"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "lIH"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "choH"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "tetlh ghermeH ghItlh wav"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ghItlh chenmoHmeH tetlh gherHa'"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "rarwI'Hom lo'"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "teHbe'"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "teH"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "yoymoH %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "paghna'"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "'ej"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "qoj"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "chov"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "teHbe'chugh"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "teHchugh"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "choH %1 chel %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "jon %1 bIng %2 Dung %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "wav'a'"; -Blockly.Msg["MATH_IS_EVEN"] = "lang'a' mI'"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "bIng pagh"; -Blockly.Msg["MATH_IS_ODD"] = "ror'a' mI'"; -Blockly.Msg["MATH_IS_POSITIVE"] = "Dung pagh"; -Blockly.Msg["MATH_IS_PRIME"] = "potlh'a' mI'"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "ngoHlaHbe''a'"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "ratlwI' SIm %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; // untranslated -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "A number."; // untranslated -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "beQwI' SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "tInwI''a' SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "beQwI'botlh SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "machwI''a' SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "beQwI' motlh SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "SaHbe' SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "motlhbe'wI' SIm tetlh"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "chelwI' SIm tetlh"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "mI'HomSaHbe'"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "ngoH mI'SaHbe' bIng %1 Dung %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "ngoH"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "bIng ngoH"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "Dung ngoH"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "Dung pagh choH"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "cha'DIch wav"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; -Blockly.Msg["MATH_TRIG_COS"] = "cos"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "lIw chu'..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "lIw chu' pong:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "mu'tlhegh chaw'"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "qel:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "qel:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "chel '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "mIw yIDel..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "mIw"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "ruch"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "chegh"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "ghuHmoHna': qelwI' cha'logh chen."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "mIwna' wew"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "ghoHmoHna': ngoghvam ngaSbe' mIwDaq."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "pong:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "qelwI'mey"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "vangqa'"; -Blockly.Msg["REMOVE_COMMENT"] = "QInHom chelHa'"; -Blockly.Msg["RENAME_VARIABLE"] = "lIw pong choH..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Hoch \"%1\" lIwmey pongmey choH:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "chel %1 ghItlh %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "machchoH"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "DojchoH"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "tInchoH"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "mu'Hom wa'DIch"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "mu'Hom # Qav"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "mu'Hom #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "mu'Hom Qav"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "mu'Hom SaHbe'"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = "Suq"; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "ghom"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "mojaq mu'Hom # Qav"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "mojaq mu'Hom #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "mojaq mu'Hom Qav"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ghItlhDaq"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "ghItlhHom moHaq mu'Hom wa'DIch"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "ghItlhHom moHaq mu'Hom # Qav"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "ghItlhHom moHaq mu'Hom #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = "Suq"; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "ghItlh wa'DIch Sam"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "ghItlh Qav Sam"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ghItlhDaq %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 chIm'a'"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ghItlh ghom"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "chuq %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "maq %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "mI' tlhob 'ej maq"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "ghItln tlhob 'ej maq"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "poSnIHlogh pei"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "poSlogh pei"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "nIHlogh pei"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "DaHjaj"; -Blockly.Msg["UNDO"] = "vangHa'"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Doch"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "chel 'choH %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "choH %1 %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "chel 'Suq %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/tr.js b/lib/blockly/msg/js/tr.js deleted file mode 100644 index 6a812a8..0000000 --- a/lib/blockly/msg/js/tr.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Yorum Ekle"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "'%1' değişkeni, '%2' fonksiyonunun tanımının bir parçası olduğu için silinemez"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Değeri değiştir:"; -Blockly.Msg["CLEAN_UP"] = "Blokları temizle"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Daraltılmış bloklar uyarı içerir."; -Blockly.Msg["COLLAPSE_ALL"] = "Blokları Daralt"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Bloğu Daralt"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "1. renk"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "2. renk"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "oran"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "karıştır"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Verilen bir orana (0.0 - 1.0) bağlı olarak iki rengi karıştırır."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://tr.wikipedia.org/wiki/Renk"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Paletten bir renk seç."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "rastgele renk"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Rastgele bir renk seç."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "mavi"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "yeşil"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "kırmızı"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "renk değerleri"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Kırmızı, yeşil ve mavinin belirtilen miktarıyla bir renk oluştur. Tüm değerler 0 ile 100 arasında olmalıdır."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "döngüden çık"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "döngünün sonraki adımından devam et"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "İçeren döngüden çık."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Bu döngünün geri kalanını atlayın ve sonraki adım ile devam edin."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Uyarı: Bu blok sadece bir döngü içinde kullanılabilir."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "her öğe için %1 listede %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Bir listedeki her öğe için '%1' değişkenini maddeye atayın ve bundan sonra bazı açıklamalar yapın."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "ile sayılır %1 %2 den %3 ye, her adımda %4 değişim"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Başlangıç sayısından bitiş sayısına kadar belirtilen aralık ve belirtilen engeller ile devam eden değerler alan '%1' değişkeni oluştur."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "If bloğuna bir koşul ekleyin."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "If bloğuna kalan durumları \"yakalayan\" bir son ekle."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "If bloğuna ekle, kaldır veya yeniden düzenleme yap."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "değilse"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "değilse eğer"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "eğer"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Eğer değişken true , yani gerçekleşmiş ise , ardından gelen işlemi yerine getir ."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Eğer değişken true, yani gerçekleşiyor ise ilk blok'taki işlemleri yerine getir, Aksi halde ikinci blok'taki işlemleri yerine getir."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Eğer ilk değişken true, yani koşul gerçekleşmiş ise ilk blok içerisindeki işlem(ler)i gerçekleştir. Eğer ikinci değişken true ise, ikinci bloktaki işlem(ler)i gerçekleştir ."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Eğer ilk değer true, yani olumlu ise, ilk blok'taki işlem(ler)i gerçekleştir. İlk değer true değil ama ikinci değer true ise, ikinci bloktaki işlem(ler)i gerçekleştir. Eğer değerlerin hiçbiri true değil ise son blok'taki işlem(ler)i gerçekleştir."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://tr.wikipedia.org/wiki/For_döngüsü"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "yap"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 kez tekrarla"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Bazı işlemleri birkaç kez yap."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "kadar tekrarla"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "tekrar ederken"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Bir değer yanlış olduğunda bazı beyanlarda bulun."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Bir değer doğru olduğunda bazı beyanlarda bulun."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Tüm %1 blok silinsin mi?"; -Blockly.Msg["DELETE_BLOCK"] = "Bloğu Sil"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' değişkenini silmek istiyor musunuz?"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' değişkeninin %1 kullanımını silmek istiyor musunuz?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 Bloğu Sil"; -Blockly.Msg["DISABLE_BLOCK"] = "Bloğu Devre Dışı Bırak"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Yinelenen"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Yinelenen Yorum"; -Blockly.Msg["ENABLE_BLOCK"] = "Bloğu Etkinleştir"; -Blockly.Msg["EXPAND_ALL"] = "Blokları Genişlet"; -Blockly.Msg["EXPAND_BLOCK"] = "Bloğu Genişlet"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Harici Girişler"; -Blockly.Msg["HELP"] = "Yardım"; -Blockly.Msg["INLINE_INPUTS"] = "Satır içi girdiler"; -Blockly.Msg["IOS_CANCEL"] = "İptal"; -Blockly.Msg["IOS_ERROR"] = "Hata"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Giriş Ekle"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Açıklamalara izin ver"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Bu fonksiyonda mükerrer girdi tanımlı."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "GİRDİLER"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Ekle"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Değişkeni ekle"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Sil"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Değişken adı kısmı boş bırakılamaz."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Yeniden adlandır"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Değişken adı"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Boş liste oluştur"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Veri kaydı içermeyen uzunluğu 0 olan bir listeyi verir"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "liste"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Bu liste bloğunu yeniden yapılandırmak için bölüm ekle,kaldır veya yeniden çağır."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "İle liste oluşturma"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Listeye bir nesne ekle."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Herhangi sayıda nesne içeren bir liste oluştur."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "ilk"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# sonundan"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "# Kare"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "Al"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "al ve kaldır"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "son"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "rastgele"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "kaldır"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Listedeki ilk öğeyi verir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Listede belirli pozisyondaki bir öğeyi verir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Listedeki son öğeyi verir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Listedeki rastgele bir öğeyi verir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Kaldırır ve listedeki ilk öğeyi döndürür."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Kaldırır ve listede belirtilen konumdaki bir öğeyi döndürür."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Kaldırır ve listedeki son öğeyi döndürür."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Kaldırır ve listedeki rastgele bir öğeyi verir."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Listedeki ilk nesneyi kaldırır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Bir liste içerisinde , tanımlanan pozisyonda ki öğeyi kaldırır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Listedeki son nesneyi kaldırır."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Listedeki rastgele bir nesneyi kaldırır."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "Sondan #'a kadar"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "#'a"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "Sona kadar"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "ilk öğeden alt liste al"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "# işaretinden sonra gelen ifadeye göre alt liste al , # sondan"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "# dan alt liste al"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Listenin belirli bir kısmının kopyasını yaratır."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 son öğedir."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ilk öğedir."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "Öğenin ilk varolduğu yeri bul"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "Öğenin son varolduğu yeri bul"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Listedeki öğenin ilk/son oluşumunun indeksini döndürür. Eğer öğe bulunamaz ise %1 döndürür."; -Blockly.Msg["LISTS_INLIST"] = "Listede"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 boş"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Eğer liste boş ise true döndürür ."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1'in uzunluğu"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Bir listenin uzunluğunu verir."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "%1 nesnenin %2 kez tekrarlandığı bir liste yarat"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Verilen bir değerin , belirli bir sayıda tekrarlanmasından oluşan bir liste yaratır ."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "%1 kalemlerini ters çevir."; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Bir listenin bir kopyasını tersine çevirin."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "olarak"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "e yerleştir"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "yerleştir"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Nesneyi listenin başlangıcına ekler."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Bir öğeyi belirtilen pozisyona göre listeye yerleştirir ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Öğeyi listenin sonuna ekle ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Bir öğeyi listeye rast gele ekler ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Bir listenin ilk öğesini yerleştirir ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Bir öğeyi belirtilen yere göre listeye yerleştirir ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Bir listedeki son öğeyi yerleştirir ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Listeye rast gele bir öğe yerleştirir ."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "artan"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "azalan"; -Blockly.Msg["LISTS_SORT_TITLE"] = "kısa %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Listenin kısa bir kopyası."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alfabetik, gözardı et"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "sayısal"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alfabetik"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "metinden liste yap"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "listeden metin yap"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Bir sınırlayıcı tarafından kesilen metinlerin listesini bir metine ekle."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Her sınırlayıcıda kesen metinleri bir metin listesine ayır."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "sınırlayıcı ile"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "false = Olumsuz"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Ya 'True' yada 'False' değerini verir."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "Olumlu"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://tr.wikipedia.org/wiki/E%C5%9Fitsizlikler"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Girilen iki değer birbirine eşitse \"True\" değerini verir."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Girilen ilk değer ikinci değerden daha büyükse \"True\" değerini verir."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Girilen ilk değer ikinci değerden büyük veya eşitse \"True\" değerini verir."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Girilen ilk değer ikinci değerden küçükse \"True\" değerini verir."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Girilen ilk değer ikinci değerden küçük veya eşitse \"True\" değerini verir."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Girilen iki değerde birbirine eşit değilse \"True\" değerini verir."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 değil"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Girilen değer yanlışsa \"True\" değerini verir.Girilen değer doğruysa \"False\" değerini verir."; -Blockly.Msg["LOGIC_NULL"] = "sıfır"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "sıfır verir."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ve"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "veya"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Girilen iki değerde doğruysa \"True\" değerini verir."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Girilen iki değerden en az biri doğruysa \"True\" değerini verir."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "yanlış ise"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "doğru ise"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "'test'deki şartı test eder. Eğer şart doğru ise 'doğru' değeri döndürür, aksi halde 'yanlış' değeri döndürür."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://tr.wikipedia.org/wiki/Aritmetik"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "İki rakamın toplamını döndür."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "İki sayının bölümünü döndür."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "İki sayını farkını döndür."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "İki sayının çarpımını döndür."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "İlk sayinin ikincinin kuvvetine yükseltilmişini döndür."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2, X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Noktanın (X, Y) arktanjantını -180 ila 180 derece arasında döndürün."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "%1'i %2 kadar değiştir"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "'%1' değişkenine bir sayı ekle."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Yaygın sabitlerden birini döndür:π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (sonsuz)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "%1 i en düşük %2 en yüksek %3 ile sınırla"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Bir sayıyı belirli iki sayı arasında sınırlandır(dahil)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "bölünebilir"; -Blockly.Msg["MATH_IS_EVEN"] = "çift"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "negatif"; -Blockly.Msg["MATH_IS_ODD"] = "tek"; -Blockly.Msg["MATH_IS_POSITIVE"] = "pozitif"; -Blockly.Msg["MATH_IS_PRIME"] = "asal"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Bir sayinin çift mi tek mi , tam mı, asal mı , pozitif mi, negatif mi, veya tam bir sayıyla bölünebilirliğini kontrol et.'True' veya 'False' değerini döndür."; -Blockly.Msg["MATH_IS_WHOLE"] = "Bütün olduğunu"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 ÷ %2 nin kalanı"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "İki sayının bölümünden kalanı döndür."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "x"; -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Bir sayı."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "listenin ortalaması"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "en büyük sayı"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Listenin medyanı"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "Listenin en küçüğü"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "Listenin modları"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Listenin rastgele öğesi"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "Listenin standart sapması"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Listenin toplamı"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Listedeki sayısal değerlerin ortalamasını (aritmetik anlamda) döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Listenin en büyüğünü döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Listenin medyanını döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Listenin en küçüğünü döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Listede ki en yaygın öğe veya öğelerinin listesini döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Listeden rastgele bir element döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Listenin standart sapmasını döndür."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Listede ki tüm sayıların toplamını döndür."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "üst alma"; -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://tr.wikipedia.org/wiki/Rastgele_say%C4%B1_%C3%BCretimi"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "Rast gele kesirli sayı , yada parça"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "0.0(dahil) ve 1.0 (hariç) sayıları arasında bir sayı döndür ."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://tr.wikipedia.org/wiki/Rastgele_say%C4%B1_%C3%BCretimi"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "%1 ile %2 arasında rastgele tam sayı üret"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Herhangi iki sayı arasında , sayılar dahil olmak üzere , rastgele bir tam sayı döndür."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding Yuvarlama fonksiyonu için araştırma yapınız, sayfanın Türkçe çevirisi henüz mevcut değil."; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "Yuvarla"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "aşağı yuvarla"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "yukarı yuvarla"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Bir sayı yı yukarı yada aşağı yuvarla ."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://tr.wikipedia.org/wiki/Karek%C3%B6k"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "Kesin"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Kare kök"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Bir sayının tam değerini döndür ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Bir sayının e ' inci kuvvetini döndür ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Bir sayının doğal logaritmasını döndür ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Bir sayının 10 temelinde logaritmasını döndür ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Bir sayıyı geçersiz olarak döndür ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Bir sayının 10. kuvvetini döndür ."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Bir sayının karekökü nü döndür ."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "tire"; -Blockly.Msg["MATH_TRIG_ACOS"] = "akosünüs"; -Blockly.Msg["MATH_TRIG_ASIN"] = "asinüs"; -Blockly.Msg["MATH_TRIG_ATAN"] = "atanjant"; -Blockly.Msg["MATH_TRIG_COS"] = "kosünüs"; -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://tr.wikipedia.org/wiki/Trigonometrik_fonksiyonlar"; -Blockly.Msg["MATH_TRIG_SIN"] = "Sinüs"; -Blockly.Msg["MATH_TRIG_TAN"] = "tanjant"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Bir sayının ters kosunusunu döndür ."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Bir sayının ters sinüsünü döndür ."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Bir sayının ters tanjantını döndür ."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Bir açının kosinüsünü döndür(radyan olarak değil)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Bir açının sinüsünü döndür(radyan olarak değil)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Bir açının tanjantını döndür(radyan olarak değil)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Renk değişkeni oluştur..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Sayı değişkeni oluştur..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Dizi değişkeni oluştur..."; -Blockly.Msg["NEW_VARIABLE"] = "Değişken oluştur..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Yeni değişken ismi :"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Yeni değişken tipi:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "Eğer ifadelerine izin ver"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ile :"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Kullanıcı tanımlı fonksiyonu çalıştır '%1' ."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Kullanıcı tanımlı fonksiyonu çalıştır '%1' ve çıktısını kullan ."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "ile :"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "'%1' oluştur"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Bu işlevi açıkla..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "birşey yap"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "e"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Çıktı vermeyen bir fonksiyon yaratır ."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "Geri dön"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Çıktı veren bir fonksiyon oluşturur."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Uyarı: Bu fonksiyon yinelenen parametreler vardır."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Fonksiyon tanımı vurgulamak"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Eğer değer doğruysa, ikinci değere geri dön."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Uyarı: Bu blok yalnızca bir fonksiyon tanımı içinde kullanılır."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "girdi adı:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "İşleve bir girdi ekleyin."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "girdiler"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Bu işlevin girdilerini ekleyin, çıkarın, ya da yeniden sıralayın."; -Blockly.Msg["REDO"] = "Yinele"; -Blockly.Msg["REMOVE_COMMENT"] = "Yorumu Sil"; -Blockly.Msg["RENAME_VARIABLE"] = "Değişkeni yeniden adlandır..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Tüm '%1' değişkenini yeniden adlandır:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "%1 için %2 metnini ekle."; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Değişken '%1' e bazı metinler ekleyin."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "küçük harf"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Baş Harfler Büyük"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "büyük harf"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Metnin bir kopyasını farklı bir harf durumunda (HEPSİ BÜYÜK - hepsi küçük) getirir."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "İlk harfini al"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "# dan sona harfleri al"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "# harfini al"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "son harfi al"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "Rastgele bir harf al"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "%1 içinde %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Belirli pozisyonda ki bir harfi döndürür."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "%1 içinde %2 yi say."; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Başka bir metnin içinde kaç kez metnin geçtiğini say."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Metine bir öğe ekle."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "Katıl"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Bu metin bloğunu düzenlemek için bölüm ekle,sil veya yeniden görevlendir."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "Sondan # harfe"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "# harfe"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "son harfe"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "metinde"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "ilk harften başlayarak alt-string alma"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "n inci harften sona kadar alt-string alma"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "n inci harften alt-string alma"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Metinin belirli bir kısmını döndürür."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "Metnin ilk varolduğu yeri bul"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "Metnin son varolduğu yeri bul"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "%1 metni içinde %2.kez %3 metnini bul."; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "İlk metnin ikinci metnin içindeki ilk ve son varoluşlarının indeksini döndürür.Metin bulunamadıysa %1 döndürür."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 boş"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Verilen metin boşsa true(doğru) değerini verir."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ile metin oluştur"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Herhangi bir sayıda ki öğeleri bir araya getirerek metnin bir parçasını oluştur."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1 in uzunluğu"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Yazı içerisinde verilen harflerin ( harf arasındaki boşluklar dahil) sayısını verir ."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "%1 ' i Yaz"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Belirli bir metni,sayıyı veya başka bir değeri yaz."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Kullanıcıdan sayı al ."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Kullanıcıdan Yazım al ."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Kullanıcıdan sayı al , istek mesajı göstererek"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Kullanıcıdan yazım al , istek mesajıyla"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "%3 metni içinde %1 metnini %2 metni ile değiştir."; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Metni başka bir metnin içindeki tüm yerlerde değiştir."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "%1 karakterlerini ters çevir."; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Metnin içindeki karakterlerin sıralarını ters çevirir."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Metnin bir harfi,kelimesi veya satırı."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "iki tarafından da boşlukları temizle"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "solundan boşlukları temizle"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "sağından boşlukları temizle"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Metnin bir veya her iki sondan da boşlukları silinmiş şekilde kopyasını verir."; -Blockly.Msg["TODAY"] = "Bugün"; -Blockly.Msg["UNDO"] = "Geri al"; -Blockly.Msg["UNNAMED_KEY"] = "isimsiz"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "öge"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "'set %1' oluştur"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Bu değişkenin değerini verir."; -Blockly.Msg["VARIABLES_SET"] = "Atamak %1 e %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "'get %1' oluştur"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Bu değişkeni girilen değere eşitler."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "'%1' isimli değişken adı zaten var."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "'%1' isimli değişken '%2' tipli başka bir değişkende tanımlı."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Bir şeyler söyle..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ug-arab.js b/lib/blockly/msg/js/ug-arab.js deleted file mode 100644 index 9fb36c8..0000000 --- a/lib/blockly/msg/js/ug-arab.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "ئىزاھات قوشۇش"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "قىممەت ئۆزگەرتىش:"; -Blockly.Msg["CLEAN_UP"] = "بۆلەكنى رەتلەش"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "قاتلىنىش بۆلىكى"; -Blockly.Msg["COLLAPSE_BLOCK"] = "قاتلىنىش بۆلىكى"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رەڭ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رەڭ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "نىسبەت"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ئارىلاش"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Blends two colours together with a given ratio (0.0 - 1.0)."; // untranslated -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://zh.wikipedia.org/wiki/رەڭگى"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = " تاختىدىن رەڭنى تاللاڭ"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "خالىغان رەڭ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ئىختىيارىي بىر رەڭنى تاللاڭ"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "كۆك"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "يېشىل"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "قىزىل"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "رەڭگى"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ئۈزۈلۈپ ئايلىنىش"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = " كىيىنكى قېتىم داۋاملىق ئايلىنىشن"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "ئۇنىڭ دەۋرىي ئۈزۈلۈش ئۆز ئىچىگە ئالىدۇ ."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "بۇ ئايلىنىشنىڭ قالغان قىسمى ئاتلاپ ئۆتۈپ كېتىدۇ ، ھەمدە داۋاملىق كېلەر قېتىملىق ئىتېراتسىيە ."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "ئاگاھلاندۇرۇش : بۇ پەقەت بىر ئايلىنىش دەۋرى ئىچىدە ئىشلىتىشكە بولىدۇ ."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "بۇ بىلمەيمىز جۈملە بۆلىكى قوشۇلۇپ بىر if شەرتى ."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "ئەڭ ئاخىرقى قوشۇش ، ھەممە ئەھۋالنى ئۆز ئىچىگە ئالىدۇ بايرىمىدا بىلمەيمىز ifپارچىلىرى ."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "كۆپۈيۈپ كىتىدۇ، ئۆچۈرۈش ياكى قايتا تىزىلغان بايرام « if ( سۆزىنىڭ پارچە قايتىدىن تەقسىملەش ."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "ئۇنداق بولمىسا"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "ئۇنداق بولمىسا ئەگەر"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ئەگەر"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "ئەگەر قىممىتى ھەقىقەتەن ، بەزى جۈملە ."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "ئەگەر قىممىتى ھەقىقەتەن ، ئۇنداقتا نىڭ بىر جۈملە . ئۇنداق بولمايدىكەن، ئىككىنچى جۈملىسى ئىجرا قىلىندى ."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "ئەگەر تۇنجى قىممىتى ھەقىقەتەن ، ئۇنداقتا نىڭ بىر جۈملە . ئۇنداق بولمايدىكەن، ئەگەر ئىككىنچى قىممىتى ، ئۇنداقتا ئىككىنچى پارچىنىڭ جۈملە ."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "ئەگەر تۇنجى قىممىتى ھەقىقەتەن ، ئۇنداقتا نىڭ بىر جۈملە . ئۇنداق بولمايدىكەن، ئەگەر ئىككىنچى قىممىتى ، بولسا ئىجرا قىلىش جۈملىسى ئىشككى پارچە . ئەگەر قىممىتى يوق ، ئۇنداقتا ئەڭ ئاخىرقى بىر جۈملىسى ."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://zh.wikipedia.org/wiki/Forئايلىنىش"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ئىجرا"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "تەكرار %1قېتىم"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Do some statements several times."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تەكرارلىقى"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "تەكرار بولۇش"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated -Blockly.Msg["DELETE_ALL_BLOCKS"] = "ھەممىنى ئۆچۈرۈش %1 پارچىمۇ؟"; -Blockly.Msg["DELETE_BLOCK"] = "بۆلەك ئۆچۈرۈش"; -Blockly.Msg["DELETE_VARIABLE"] = "“%1” ئۆزگەرگۈچى مىقدارنى ئۆچۈرۈش"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "ئۆچۈرۈش “%2” ئۆزگەرگۈچى مىقدار%1 ئىشلىتىلىش ئورنى بارمۇ؟"; -Blockly.Msg["DELETE_X_BLOCKS"] = "بۆلەك %1 نى ئۆچۈرۈش"; -Blockly.Msg["DISABLE_BLOCK"] = "چەكلەنگەن بۆلەك"; -Blockly.Msg["DUPLICATE_BLOCK"] = "كۆچۈرۈش"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "قوزغىتىلغان بۆلەك"; -Blockly.Msg["EXPAND_ALL"] = "ئېچىلىش بۆلىكى"; -Blockly.Msg["EXPAND_BLOCK"] = "ئېچىلىش بۆلىكى"; -Blockly.Msg["EXTERNAL_INPUTS"] = "سىرتقى كىرگۈزۈش"; -Blockly.Msg["HELP"] = "ياردەم"; -Blockly.Msg["INLINE_INPUTS"] = "تاق قۇرلۇق كىرگۈزۈش"; -Blockly.Msg["IOS_CANCEL"] = "ۋاز كەچ"; -Blockly.Msg["IOS_ERROR"] = "خاتالىق"; -Blockly.Msg["IOS_OK"] = "ماقۇل"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ كىرگۈزۈپ قوشۇش"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "كېلىشىمگە قوشۇلۇش"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "بۇنىڭدا مەزمۇننى قايتا كىرگۈزۈش ئىقتىدارى بار ."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "كىرگۈزۈش"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "قوشۇش"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ ئۆزگەرگۈچى مىقدار قوشۇش"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "ئۆچۈرۈش"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "سىز ئۆزگەرگۈچى مىقدار نامى ئىشلىتىشكە بولمايدۇ ."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "ئىسىم ئۆزگەرتىش"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "ئۆزگەرگۈچى مىقدارنىڭ نامى"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "تۇنجى"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "قولغا كەلتۈرۈش"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "ئاخىرقى"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "خالىغانچە"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "چىقىرىۋىتىش"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "قىستۇرۇڭ"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "تەڭشەك"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "يۇقىرىغا"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "تۆۋەنگە"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "ھەرب بويىچە تىزىل، چوڭ كىچىك يېزىلىش ھېساپ قىلىنمايدۇ"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "سان بويىچە تىزىل"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = " ھەرپ بويىچە تىزىل"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "يالغان"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "راست ياكى يالغان قايتىش"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ھەقىقىي"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://zh.wikipedia.org/wiki/ تەڭ ئەمەس"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "ئەگەر ئىككى دانە كىرگۈزۈش نەتىجىسى تەڭ بولسا ، راستىنلا كەينىگە قايتسا."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "ئەگەر تۇنجى كىرگۈزۈش نەتىجىسى ئىشككىنچى چوڭ بولسا راستىنلا كەينىگە قايتسا ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "ئەگەر تۇنجى كىرگۈزۈش نەتىجىدە ئىشككىنچى كىچىك بولسا راستىنلا كەينىگە قايتسا ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "ئەگەر تۇنجى كىرگۈزۈش نەتىجىدە ئىشككىنچى كىچىك بولسا راستىنلا كەينىگە قايتسا ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "ئەگەر تۇنجى كىرگۈزۈش نەتىجىسى ئىككىنچى كىرگۈزۈش نەتىجىسى تىن تۆۋەن ياكى شۇنىڭغا تەڭ بولسا راستىنلا كەينىگە قايتسا ."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "ئەگەر ئىككى دانە كىرگۈزۈش نەتىجىسى تەڭ بولمايدۇ ، بەك كەلدى ."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "ئەمەس%1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "قۇرۇق"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = " نۆلگە قايتىش"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ۋە"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ياكى"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "سىناق"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ئەگەر يالغان بولسا"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ئەگەر راست بولسا"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://zh.wikipedia.org/wiki/ئارىفمېتىكىلىق"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://zh.wikipedia.org/wiقوشۇش"; -Blockly.Msg["MATH_CHANGE_TITLE"] = " ئۆزگەرتىش %1 دىن %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://zh.wikipedia.org/wiki/ماتېماتىكا تۇراقلىق سانى"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "پۈتۈن بۆلۈنۈش"; -Blockly.Msg["MATH_IS_EVEN"] = "جۈپ سان"; -Blockly.Msg["MATH_IS_NEGATIVE"] = " مەنپى"; -Blockly.Msg["MATH_IS_ODD"] = " تاق سان"; -Blockly.Msg["MATH_IS_POSITIVE"] = "مۇسبەت"; -Blockly.Msg["MATH_IS_PRIME"] = "تۈپ سان"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "پۈتۈن سان"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://zh.wikipedia.org/wiki/مودېل ھېسابى"; -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://zh.wikipedia.org/wiki/سان"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "بىر سان."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "جەدۋەل ئىچىدىكى ئوتتۇرىچە سان"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = " جەدۋەلدىكى ئەڭ چوڭ قىممەت"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "جەدۋەلدىكى ئوتتۇرا سان"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "جەدۋەل ئىچىدىكى ئەڭ كىچىك قىممەت"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = " جەدۋەل ھالىتى"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = " جەدۋەلدىكى ئوتتۇرا سانغا قايتىش"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = " جەدۋەلدىكى ئەڭ كىچىك سانغا قايتىش"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://zh.wikipedia.org/wiki/سانلىق قىممەت تۈزىتىش"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "تۆۋەنگە تارتىڭ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "تۆۋەنگە تارتىڭ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = " تۆۋەنگە تارتىڭ"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://zh.wikipedia.org/wiki/كۋادرات يىلتىز"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "مۇتلەق"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = " كۋادرات يىلتىز"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://zh.wikipedia.org/wiki/ترىگونومېتىرىيىلىك فۇنكسىيە"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "ئۆزگەرگۈچى مىقدار ... قۇرۇش"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "يېڭى ئۆزگەرگۈچى مىقدار نامى:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "قايتىلاش"; -Blockly.Msg["REMOVE_COMMENT"] = "ئىزاھاتنى ئۆچۈرۈش"; -Blockly.Msg["RENAME_VARIABLE"] = "ئۆزگەرگۈچى مىقدارغا قايتا نام قويۇش"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "بارلىق بۆلەك “%1\" ئۆزگەرگۈچى مىقدار قايتا ناملىنىپ :"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = " قوشۇش"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "بۈگۈن"; -Blockly.Msg["UNDO"] = "يېنىۋال"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "تۈر"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "ئىسم مەۋجۇت “%1” ئۆزگەرگۈچى"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "ئىسىملىك“%1” ئۆزگەرگۈچى مىقدار مەۋجۇت بولۇپ تۇرىدۇ ، لېكىن يەنە بىر ئۆزگەرگۈچى مىقدار تىپى بولۇش سۈپىتى بىلەن “%2” مەۋجۇت ."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/uk.js b/lib/blockly/msg/js/uk.js deleted file mode 100644 index 7be1180..0000000 --- a/lib/blockly/msg/js/uk.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Додати коментар"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Неможливо видалити змінну '%1', тому що це частина визначення функції '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Змінити значення:"; -Blockly.Msg["CLEAN_UP"] = "Вирівняти блоки"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Звернуті блоки містять попередження."; -Blockly.Msg["COLLAPSE_ALL"] = "Згорнути блоки"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Згорнути блок"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "колір 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "колір 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "http://meyerweb.com/eric/tools/color-blend/"; -Blockly.Msg["COLOUR_BLEND_RATIO"] = "співвідношення"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "змішати"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Змішує два кольори разом у вказаному співвідношені (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://uk.wikipedia.org/wiki/Колір"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Вибрати колір з палітри."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "випадковий колір"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Вибрати колір навмання."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "синій"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "зелений"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; -Blockly.Msg["COLOUR_RGB_RED"] = "червоний"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "колір з"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Створити колір зі вказаними рівнями червоного, зеленого та синього. Усі значення мають бути від 0 до 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "перервати цикл"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "продовжити з наступної ітерації циклу"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Перервати виконання циклу."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Пропустити залишок цього циклу і перейти до виконання наступної ітерації."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Попередження: цей блок може бути використаний тільки в межах циклу."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "для кожного елемента %1 у списку %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Для кожного елемента в списку змінна '%1' отримує значення елемента, а потім виконуються певні дії."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "рахувати з %1 від %2 до %3 через %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Наявна змінна \"%1\" набуває значень від початкового до кінцевого, враховуючи заданий інтервал, і виконуються вказані блоки."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Додайте умову до блока 'якщо'."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Додати остаточну, всеосяжну умову до блоку 'якщо'."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Додайте, вилучіть або змініть порядок секцій, щоб переналаштувати цей блок 'якщо'."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "інакше"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "інакше якщо"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "якщо"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Якщо значення істинне, то виконати певні дії."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Якщо значення істинне, то виконується перший блок операторів. В іншому випадку виконується другий блок операторів."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Якщо перше значення істинне, то виконується перший блок операторів. В іншому випадку, якщо друге значення істина, то виконується другий блок операторів."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Якщо перше значення істинне, то виконується перший блок операторів. В іншому випадку, якщо друге значення істинне, то виконується другий блок операторів. Якщо жодне із значень не є істинним, то виконується останній блок операторів."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://uk.wikipedia.org/wiki/Цикл_(програмування)#.D0.A6.D0.B8.D0.BA.D0.BB_.D0.B7_.D0.BB.D1.96.D1.87.D0.B8.D0.BB.D1.8C.D0.BD.D0.B8.D0.BA.D0.BE.D0.BC"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "виконати"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "повторити %1 разів"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Виконати певні дії декілька разів."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "повторювати, доки не"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "повторювати поки"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Поки значення хибне, виконувати певні дії."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Поки значення істинне, виконувати певні дії."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Вилучити всі блоки %1?"; -Blockly.Msg["DELETE_BLOCK"] = "Видалити блок"; -Blockly.Msg["DELETE_VARIABLE"] = "Вилучити змінну '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Вилучити %1 використання змінної '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Видалити %1 блоків"; -Blockly.Msg["DISABLE_BLOCK"] = "Вимкнути блок"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Дублювати"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Дублювати примітку"; -Blockly.Msg["ENABLE_BLOCK"] = "Увімкнути блок"; -Blockly.Msg["EXPAND_ALL"] = "Розгорнути блоки"; -Blockly.Msg["EXPAND_BLOCK"] = "Розгорнути блок"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Зовнішні входи"; -Blockly.Msg["HELP"] = "Довідка"; -Blockly.Msg["INLINE_INPUTS"] = "Вбудовані входи"; -Blockly.Msg["IOS_CANCEL"] = "Скасувати"; -Blockly.Msg["IOS_ERROR"] = "Помилка"; -Blockly.Msg["IOS_OK"] = "Готово"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Додати вхідну змінну"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Дозволити оператори"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "У цієї функції є вхідні змінні, що дублюються."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "ВХОДИ"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Додати"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Додати змінну"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Видалити"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Ви не можете використовувати порожню назву змінної."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Перейменувати"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Назва змінної"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "створити порожній список"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Повертає список, довжиною 0, що не містить записів даних"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "список"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Додайте, вилучіть або змініть порядок секцій для переналаштування блока списку."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "створити список з"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Додати елемент до списку."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Створює список з будь-якою кількістю елементів."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "перший"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# з кінця"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "отримати"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "отримати і вилучити"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "останній"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "випадковий"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "вилучити"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = "-ий."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Повертає перший елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Повертає елемент у заданій позиції у списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Повертає останній елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Повертає випадковий елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Видаляє і повертає перший елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Видаляє і повертає елемент у заданій позиції у списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Видаляє і повертає останній елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Видаляє і повертає випадковий елемент списоку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Вилучає перший елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Вилучає зі списку елемент у вказаній позиції."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Вилучає останній елемент списку."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Вилучає випадковий елемент списку."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "до # з кінця"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "до #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "до останнього"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "отримати вкладений список з першого"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "отримати вкладений список від # з кінця"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "отримати вкладений список з #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = "символу."; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Створює копію вказаної частини списку."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 - це останній елемент."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 - це перший елемент."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "знайти перше входження елемента"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "знайти останнє входження елемента"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Повертає індекс першого/останнього входження елемента у списку. Повертає %1, якщо елемент не знайдено."; -Blockly.Msg["LISTS_INLIST"] = "у списку"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 є порожнім"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Повертає істину, якщо список порожній."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "довжина %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Повертає довжину списку."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "створити список з елемента %1 повтореного %2 разів"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Створює список, що складається з заданого значення повтореного задану кількість разів."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "розвернути %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Змінити порядок копії списку на зворотний."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "як"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "вставити в"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "встановити"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Вставляє елемент на початок списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Вставка елемента у вказану позицію списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Додає елемент у кінці списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Випадковим чином вставляє елемент у список."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Задає перший елемент списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Задає елемент списку у вказаній позиції."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Задає останній елемент списку."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Задає випадковий елемент у списку."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "за зростанням"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "за спаданням"; -Blockly.Msg["LISTS_SORT_TITLE"] = "сортувати %3 %1 %2"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Сортувати копію списку."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "за абеткою, ігноруючи регістр"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "як числа"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "за абеткою"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "зробити з тексту список"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "зробити зі списку текст"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Злити список текстів у єдиний текст, відокремивши розділювачами."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Поділити текст на список текстів, розриваючи на кожному розділювачі."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "з розділювачем"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "хибність"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Повертає значення істина або хибність."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "істина"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://uk.wikipedia.org/wiki/Нерівність"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Повертає істину, якщо обидва входи рівні один одному."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Повертає істину, якщо перше вхідне значення більше, ніж друге."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Повертає істину, якщо перше вхідне значення більше або дорівнює другому."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Повертає істину, якщо перше вхідне значення менше, ніж друге."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Повертає істину, якщо перше вхідне значення менше або дорівнює другому."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Повертає істину, якщо обидва входи не дорівнюють один одному."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "не %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Повертає істину, якщо вхідне значення хибне. Повертає хибність, якщо вхідне значення істинне."; -Blockly.Msg["LOGIC_NULL"] = "ніщо"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Повертає ніщо."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "та"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "або"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Повертає істину, якщо обидва входи істинні."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Повертає істину, якщо принаймні один з входів істинний."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "тест"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "якщо хибність"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "якщо істина"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Перевіряє умову в 'тест'. Якщо умова істинна, то повертає значення 'якщо істина'; в іншому випадку повертає значення 'якщо хибність'."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://uk.wikipedia.org/wiki/Арифметика"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Повертає суму двох чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Повертає частку двох чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Повертає різницю двох чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Повертає добуток двох чисел."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Повертає перше число, піднесене до степеня, вираженого другим числом."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 по X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Повертає арктангенс точки (X, Y) у градусах від -180 до 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "змінити %1 на %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Додати число до змінної '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://uk.wikipedia.org/wiki/Математична_константа"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Повертає одну з поширених констант: π (3.141...), e (2.718...), φ (1,618...), sqrt(2) (1.414...), sqrt(½) (0.707...) або ∞ (нескінченність)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "обмежити %1 від %2 до %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Обмежує число вказаними межами (включно)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "ділиться на"; -Blockly.Msg["MATH_IS_EVEN"] = "парне"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "від'ємне"; -Blockly.Msg["MATH_IS_ODD"] = "непарне"; -Blockly.Msg["MATH_IS_POSITIVE"] = "додатне"; -Blockly.Msg["MATH_IS_PRIME"] = "просте"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Перевіряє, чи число парне, непарне, просте, ціле, додатне, від'ємне або чи воно ділиться на певне число без остачі. Повертає істину або хибність."; -Blockly.Msg["MATH_IS_WHOLE"] = "ціле"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://uk.wikipedia.org/wiki/Ділення_з_остачею"; -Blockly.Msg["MATH_MODULO_TITLE"] = "остача від %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Повертає остачу від ділення двох чисел."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://uk.wikipedia.org/wiki/Число"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Число."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = "http://www.mapleprimes.com/questions/100441-Applying-Function-To-List-Of-Numbers"; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "середнє списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "максимум списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "медіана списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "мінімум списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "моди списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "випадковий елемент списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "стандартне відхилення списку"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "сума списку"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Повертає середнє (арифметичне) числових значень у списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Повертає найбільше число у списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Повертає медіану списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Повертає найменше число у списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Повертає перелік найпоширеніших елементів у списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Повертає випадковий елемент зі списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Повертає стандартне відхилення списку."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Повертає суму всіх чисел у списку."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://uk.wikipedia.org/wiki/Генерація_випадкових_чисел"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "випадковий дріб"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Повертає випадковий дріб від 0,0 (включно) та 1.0 (не включно)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://uk.wikipedia.org/wiki/Генерація_випадкових_чисел"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "випадкове ціле число від %1 до %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Повертає випадкове ціле число між двома заданими межами включно."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://uk.wikipedia.org/wiki/Округлення"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "округлити"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "округлити до меншого"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "округлити до більшого"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Округлення числа до більшого або до меншого."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://uk.wikipedia.org/wiki/Квадратний_корінь"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "модуль"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "квадратний корінь"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Повертає модуль числа."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Повертає e у степені."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Повертає натуральний логарифм числа."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Повертає десятковий логарифм числа."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Повертає протилежне число."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Повертає 10 у степені."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Повертає квадратний корінь з числа."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://uk.wikipedia.org/wiki/Тригонометричні_функції"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Повертає арккосинус числа."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Повертає арксинус числа."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Повертає арктангенс числа."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Повертає косинус кута в градусах (не в радіанах)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Повертає синус кута в градусах (не в радіанах)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Повертає тангенс кута в градусах (не в радіанах)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Створити колірну змінну..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Створити числову змінну..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Створити рядкову змінну..."; -Blockly.Msg["NEW_VARIABLE"] = "Створити змінну..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Нова назва змінної:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Тип нової змінної:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = "-ий."; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "дозволити дії"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "з:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://uk.wikipedia.org/wiki/Підпрограма"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Запустити користувацьку функцію \"%1\"."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://uk.wikipedia.org/wiki/Підпрограма"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Запустити користувацьку функцію \"%1\" і використати її вивід."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "з:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Створити \"%1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Опишіть цю функцію..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = "блок тексту"; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://uk.wikipedia.org/wiki/Підпрограма"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "щось зробити"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "до"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Створює функцію без виводу."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://uk.wikipedia.org/wiki/Підпрограма"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "повернути"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Створює функцію з виводом."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Увага: ця функція має дубльовані параметри."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Підсвітити визначення функції"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Якщо значення істинне, то повернути друге значення."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Попередження: цей блок може використовуватися лише в межах визначення функції."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "назва входу:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Додати до функції вхідні параметри."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "входи"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Додайте, вилучіть або змініть порядок вхідних параметрів для цієї функції."; -Blockly.Msg["REDO"] = "Повторити"; -Blockly.Msg["REMOVE_COMMENT"] = "Видалити коментар"; -Blockly.Msg["RENAME_VARIABLE"] = "Перейменувати змінну..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Перейменувати усі змінні \"%1\" до:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "до %1 додати текст %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Додати деякий текст до змінної '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "до нижнього регістру"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "Великі Перші Букви"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "до ВЕРХНЬОГО регістру"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "В іншому випадку повертає копію тексту."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "отримати перший символ"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "отримати символ # з кінця"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "отримати символ #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm"; -Blockly.Msg["TEXT_CHARAT_LAST"] = "отримати останній символ"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "отримати випадковий символ"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = "-ий."; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "з тексту %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Повертає символ у зазначеній позиції."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "кількість %1 в %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Підраховує, скільки разів деякий текст з'являється в іншому тексті."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Додати елемент до тексту."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "приєднати"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Додайте, вилучіть або змініть порядок секцій для переналаштування текстового блоку."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "до символу # з кінця"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "до символу #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "до останнього символу"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "у тексті"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "отримати підрядок від першого символу"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "отримати підрядок від символу # з кінця"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "отримати підрядок від символу #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = "-ого."; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Повертає заданий фрагмент тексту."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "знайти перше входження тексту"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "знайти останнє входження тексту"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "у тексті %1 %2 %3."; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Повертає індекс першого/останнього входження першого тексту в другий. Повертає %1, якщо текст не знайдено."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 є порожнім"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Повертає істину, якщо вказаний текст порожній."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_8.html"; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "створити текст з"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Створити фрагмент тексту шляхом з'єднування будь-якого числа елементів."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "довжина %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Повертає число символів (включно з пропусками) у даному тексті."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "друк %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Надрукувати заданий текст, числа або інші значення."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Запитати у користувача число."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Запитати у користувача деякий текст."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "запит числа з повідомленням"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "запит тексту з повідомленням"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "замінити %1 на %2 в %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Замінює всі входження деякого тексту іншим текстом."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "розвернути %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Змінює на протилежний порядок символів у тексті."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://uk.wikipedia.org/wiki/Рядок_(програмування)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Символ, слово або рядок тексту."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "вилучити крайні пропуски з обох кінців"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "вилучити пропуски з лівого боку"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "вилучити пропуски з правого боку"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Повертає копію тексту з вилученими пропусками з одного або обох кінців."; -Blockly.Msg["TODAY"] = "Сьогодні"; -Blockly.Msg["UNDO"] = "Скасувати"; -Blockly.Msg["UNNAMED_KEY"] = "без назви"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "елемент"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Створити 'встановити %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Повертає значення цієї змінної."; -Blockly.Msg["VARIABLES_SET"] = "встановити %1 до %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Створити 'отримати %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Задає цю змінну рівною входу."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Змінна з назвою '%1' вже існує."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Змінна з назвою '%1' вже існує в іншому типі: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Скажіть щось..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/ur.js b/lib/blockly/msg/js/ur.js deleted file mode 100644 index 2faf554..0000000 --- a/lib/blockly/msg/js/ur.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "کمنٹ کریں"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "متغیر '٪ 1' کو حذف نہیں کر سکتا کیونکہ یہ فنکشن کی تعریف کا حصہ ہے '٪ 2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "ویلیو تبدیل کریں:"; -Blockly.Msg["CLEAN_UP"] = "بلاکس صاف کریں"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "بند کرو بلاکس"; -Blockly.Msg["COLLAPSE_BLOCK"] = "بند کرو بلاک"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "رنگ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "رنگ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ریشیو"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "مرکب"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "دیئے گئے ریشیو میں دو رنگوں کو مرکب کریں (0.0-1.0)"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "پیلیٹ سے رنگ منتخب کریں"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ناسیدھا رنگ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "کسی بھی رنگ کو منتجب کریں"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "نیلا"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "سبز"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "سرخ"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "کے ساتھ رنگ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "مخصوص، سرخ، سبز اور نیلے رنگ کے ساتھ ایک رنگ بنائیں. تمام اقدار 0 اور 100 کے درمیان ہونا ضروری ہے."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "لوپ سے باہر نکلنا"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "مشتمل لوپ کے باہر توڑ."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "انتباہ: اس بلاک کو صرف لوپ میں استعمال کیا جاسکتا ہے۔"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "प्रत्येक چیز کیلئے %1 فہرست ميں %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "فہرست میں ہر آئٹم کے لئے، '%1' متغیر کو آئٹم پہ لگائے،اور پھر کچھ جملے کہے"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "%1 سے %2 سے %3 تک %4 کے ساتھ گنتی کریں"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "کیا چر '%1' ابتدا عدد سے اختتام عدد تک मानों کو لیتا ہے، निर्दिष्ट अंतराल کے تحت گنتی کرتا ہے، اور निर्दिष्ट रुकावटों کو کرتا ہے۔"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "دوسراں"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "دوسراں اگر"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "اگر"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "اگر ایک ویلیو صحیح ہے، تو کچھ سٹیٹمنٹ کریں"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "کریں"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 مرتبہ دہرائے"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "کچھ جملوں کو کہیں مرتبہ کریں۔"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "تک دہرائے"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "کے دوران دہرائے"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "اگر ایک ویلیو صحیح ہے، تو کچھ سٹیٹمنٹ کریں"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "اگر ایک ویلیو صحیح ہے، تو کچھ سٹیٹمنٹ کریں"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "تمام%1 بلاکس کو حذف کریں؟"; -Blockly.Msg["DELETE_BLOCK"] = "حذف بلاک"; -Blockly.Msg["DELETE_VARIABLE"] = "'٪ 1' متغیر کو حذف کریں"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'٪ 2' متغیر کے٪ 1 استعمال کو حذف کریں؟"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 بلاکوں کو حذف کریں"; -Blockly.Msg["DISABLE_BLOCK"] = "بلاک کو غیرفعال کریں"; -Blockly.Msg["DUPLICATE_BLOCK"] = "ڈپلیکیٹ"; -Blockly.Msg["DUPLICATE_COMMENT"] = " ہو بہو تبصرہ"; -Blockly.Msg["ENABLE_BLOCK"] = "بلاک کو فعال کریں"; -Blockly.Msg["EXPAND_ALL"] = "بلاکوں میں توسیع کریں"; -Blockly.Msg["EXPAND_BLOCK"] = "بلاک میں توسیع کریں"; -Blockly.Msg["EXTERNAL_INPUTS"] = "خارجی دخل اندازی"; -Blockly.Msg["HELP"] = "معاونت"; -Blockly.Msg["INLINE_INPUTS"] = "بین السطور داخل کریں"; -Blockly.Msg["IOS_CANCEL"] = "Cancel"; // untranslated -Blockly.Msg["IOS_ERROR"] = "Error"; // untranslated -Blockly.Msg["IOS_OK"] = "OK"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "INPUTS"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Add"; // untranslated -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Delete"; // untranslated -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Rename"; // untranslated -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "فہرست"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "کے ساتھ فہرست بنائیں"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "پہلا"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "آخر سے"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "حاصل کریں"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "آخری"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "غیرمتعین"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "حذف کریں"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "پہلے آئٹم کو فہرست میں لوٹائے"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "فہرست میں"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1 کی لمبائی"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "بطور"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "میں درج کریں"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "تعین کریں"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "فہرست میں پہلا آئٹم کا تعین کریں"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "غلط"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "سچ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 نہیں"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "null"; // untranslated -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null."; // untranslated -Blockly.Msg["LOGIC_OPERATION_AND"] = "اور"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "یا"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "ٹیسٹ"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "اگر غلط ہے"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "اگ سچ ہے"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "is even"; // untranslated -Blockly.Msg["MATH_IS_NEGATIVE"] = "is negative"; // untranslated -Blockly.Msg["MATH_IS_ODD"] = "is odd"; // untranslated -Blockly.Msg["MATH_IS_POSITIVE"] = "is positive"; // untranslated -Blockly.Msg["MATH_IS_PRIME"] = "is prime"; // untranslated -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "is whole"; // untranslated -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://en.wikipedia.org/wiki/Number"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "ایک نمبر."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "بالکل"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "اسکویر روٹ"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "رنگ متغیر بنائیں"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "عدد متغیر بناییں"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "متغیر بنائیں String"; -Blockly.Msg["NEW_VARIABLE"] = "متغیر بنائیں"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "نیا ویریابل نام:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = " نئی متغیر قسم"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "سمیت:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "سمیت:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "کچھ کرو"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "کو"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "بغیر آوٹ پٹ کا فنکشن بنائیں"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "واپس آ جائیں"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "بغیر آوٹ پٹ کا فنکشن بنائیں"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "دہرائیں"; -Blockly.Msg["REMOVE_COMMENT"] = "تبصرہ حذف کریں"; -Blockly.Msg["RENAME_VARIABLE"] = "دوبار نام دیں ویریابل کو..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "تمام %1 متغیروں کو دوبارہ نام دے:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "# حرف حاصل کریں"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "آج"; -Blockly.Msg["UNDO"] = "کیا ہوا کام کینسل کرے"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "آئٹم"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "ایک متغیر نام '٪ 1' پہلے سے ہی موجود ہے."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "ایک متغیر نام '٪ 1' کسی دوسرے قسم کے لئے پہلے ہی موجود ہے: '٪ 2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/vi.js b/lib/blockly/msg/js/vi.js deleted file mode 100644 index 0286243..0000000 --- a/lib/blockly/msg/js/vi.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Thêm Chú Giải"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Không thể xóa giá trị '%1' vì nó được bao gồm trong định nghĩa của chức năng '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Thay giá trị thành:"; -Blockly.Msg["CLEAN_UP"] = "Sắp xếp lại các khối"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Các khối bị sập có chứa cảnh báo."; -Blockly.Msg["COLLAPSE_ALL"] = "Thu Nhỏ Mọi Mảnh"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Thu Nhỏ Mảnh"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "màu 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "màu 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "tỉ lệ"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "pha"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Pha hai màu với nhau theo tỉ lệ (0 - 100)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://vi.wikipedia.org/wiki/M%C3%A0u_s%E1%BA%AFc"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Chọn một màu từ bảng màu."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "màu bất kỳ"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "chọn một màu bất kỳ."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "màu xanh dương"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "màu xanh lá cây"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "màu đỏ"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "tạo màu từ"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Tạo màu từ ba màu: đỏ, xanh lá cây, xanh dương với số lượng cụ thể. Mỗi số phải có giá trị từ 0 đến 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "thoát"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "sang lần lặp tiếp theo"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Thoát khỏi vòng lặp hiện tại."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Bỏ qua phần còn lại trong vòng lặp này, và sang lần lặp tiếp theo."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Chú ý: Mảnh này chỉ có thế dùng trong các vòng lặp."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "với mỗi thành phần %1 trong danh sách %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Trong một danh sách, lấy từng thành phần, gán vào biến \"%1\", rồi thực hiện một số lệnh."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "đếm theo %1 từ %2 đến %3 mỗi lần thêm %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Cho biến '%1' lấy các giá trị từ số bắt đầu đến số kết thúc, đếm theo khoảng thời gian đã chỉ định và thực hiện các khối được chỉ định."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Thêm một điều kiện vào mảnh nếu."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Cuối cùng, khi không điều kiện nào đúng."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Thêm, bỏ, hoặc đổi thứ tự các mảnh con để tạo cấu trúc mới cho mảnh nếu."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "nếu không"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "nếu không nếu"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "nếu"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Nếu điều kiện đúng, thực hiện các lệnh."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Nếu điều kiện đúng, thực hiện các lệnh đầu. Nếu sai, thực hiện các lệnh sau."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Nếu điều kiện đúng, thực hiện các lệnh đầu. Nếu không, nếu điều kiện thứ hai đúng, thực hiện các lệnh thứ hai."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Nếu điều kiện đúng, thực hiện các lệnh đầu. Nếu không, nếu điều kiện thứ hai đúng, thực hiện các lệnh thứ hai. Nếu không điều kiện nào đúng, thực hiện các lệnh cuối cùng."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "thực hiện"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "lặp lại %1 lần"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Thực hiện các lệnh vài lần."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "lặp lại cho đến khi"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "lặp lại trong khi"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Miễn là điều kiện còn sai, thì thực hiện các lệnh. Khi điều kiện đúng thì ngưng."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Miễn là điều kiện còn đúng, thì thực hiện các lệnh."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Xóa hết %1 mảnh?"; -Blockly.Msg["DELETE_BLOCK"] = "Xóa Mảnh Này"; -Blockly.Msg["DELETE_VARIABLE"] = "Xóa giá trị '%1'"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Xóa %1 lần dùng của giá trị '%2'?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Xóa %1 Mảnh"; -Blockly.Msg["DISABLE_BLOCK"] = "Ngưng Tác Dụng"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Tạo Bản Sao"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Bình luận trùng"; -Blockly.Msg["ENABLE_BLOCK"] = "Phục Hồi Tác Dụng"; -Blockly.Msg["EXPAND_ALL"] = "Mở Lớn Mọi Mảnh"; -Blockly.Msg["EXPAND_BLOCK"] = "Mở Lớn Mảnh"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Chỗ Gắn Bên Ngoài"; -Blockly.Msg["HELP"] = "Trợ Giúp"; -Blockly.Msg["INLINE_INPUTS"] = "Chỗ Gắn Cùng Dòng"; -Blockly.Msg["IOS_CANCEL"] = "Hủy bỏ"; -Blockly.Msg["IOS_ERROR"] = "Lỗi"; -Blockly.Msg["IOS_OK"] = "Đồng ý"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Thêm đầu vào"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Cho phép báo cáo"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Hàm này có chứa các input trùng nhau."; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "NHẬP VÀO"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Thêm"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Thêm biến"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Xóa"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "Bạn không thể không nhập tên biến."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Đổi tên"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Tên biến"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "tạo danh sách trống"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Hoàn trả một danh sách, với độ dài 0, không có thành tố nào cả"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "danh sách"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Thêm, bỏ, hoặc sắp xếp lại các thành phần để tạo dựng mảnh danh sách này."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "tạo danh sách gồm"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Thêm vật vào danh sách."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Tạo một danh sách bao gồm nhiều vậts, với một số lượng bất kỳ."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "đầu tiên"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "(đếm từ cuối) thứ"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "thứ"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "lấy thành tố"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "lấy và xóa thành tố"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "cuối cùng"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "bất kỳ"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "xóa thành tố"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Hoàn trả thành tố đầu tiên trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Hoàn trả thành tố trong danh sách ở vị trí ấn định."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Hoàn trả thành tố cuối cùng trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Hoàn trả một thành tố bất kỳ trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Hoàn trả và xóa thành tố đầu tiên trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Hoàn trả và xóa thành tố trong danh sách ở vị trí ấn định."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Hoàn trả và xóa thành tố cuối cùng trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Hoàn trả và xóa mộtthành tố bất kỳ trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Xóa thành tố đầu tiên trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Xóa thành tố trong danh sách ở vị trí ấn định."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Xóa thành tố cuối cùng trong danh sách."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Xóa thành tố bất kỳ trong danh sách."; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "đến (đếm từ cuối) thứ"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "đến thứ"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "đến cuối cùng"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "lấy một danh sách con từ đầu tiên"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "lấy một danh sách con từ (đếm từ cuối) từ vị trí thứ"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "lấy một danh sách con từ vị trí thứ"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Lấy một mảng của danh sách này để tạo danh sách con."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 là thành tố cuối cùng."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 là thành tố đầu tiên."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "tìm sự có mặt đầu tiên của vật"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "tìm sự có mặt cuối cùng của vật"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Hoàn trả vị trí xuất hiện đầu tiên/cuối cùng của vật trong danh sách. Nếu không tìm thấy thì hoàn trả số %1."; -Blockly.Msg["LISTS_INLIST"] = "trong dánh sách"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 trống rỗng"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Hoàn trả “đúng\" nếu danh sách không có thành tử nào."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "độ dài của %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Hoàn trả độ dài của một danh sách."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "tạo danh sách gồm một vật %1 lặp lại %2 lần"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Tạo danh sách gồm một số lượng vật nhất định với mỗi vật đều giống nhau."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "đảo ngược %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Đảo ngược bản sao chép của một danh sách."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "giá trị"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "chèn vào vị trí"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "đặt"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Chèn vật vào đầu danh sách."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Chèn vật vào danh sách theo vị trí ấn định."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Gắn thêm vật vào cuối danh sách."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Gắn chèn vật vào danh sách ở vị trí ngẫu nhiên."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Đặt giá trị của thành tố đầu tiên trong danh sách."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Đặt giá trị của thành tố ở vị trí ấn định trong một danh sách."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Đặt giá trị của thành tố cuối cùng trong danh sách."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Đặt giá trị của thành tố ngẫu nhiên trong danh sách."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "tăng dần"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "giảm dần"; -Blockly.Msg["LISTS_SORT_TITLE"] = "sắp xếp %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sắp xếp một bản sao của một danh sách."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "chữ cái, không phân biệt hoa/thường"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "số"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "chữ cái"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "tạo danh sách từ văn bản"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "tạo văn bản từ danh sách"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Liên kết một danh sách các văn bản vào một văn bản, cách nhau bằng dấu phân cách."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Tách văn bản thành một danh sách các văn bản nhỏ, ngắt bởi các ký tự phân cách."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "với ký tự phân cách"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "sai"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Hoàn trả \"đúng\" hoặc \"sai\"."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "đúng"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://vi.wikipedia.org/wiki/B%E1%BA%A5t_%C4%91%E1%BA%B3ng_th%E1%BB%A9c"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Hoàn trả giá trị \"đúng\" (true) nếu giá trị hai đầu vào bằng nhau."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất lớn hơn đầu vào thứ hai."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất lớn hơn hoặc bằng đầu vào thứ hai."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất nhỏ hơn đầu vào thứ hai."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất nhỏ hơn hoặc bằng đầu vào thứ hai."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Hoàn trả giá trị \"đúng\" (true) nếu giá trị hai đầu vào không bằng nhau."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "không %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Hoàn trả \"đúng\" (true) nếu đầu vào sai. Hoàn trả \"sai\" (false) nếu đầu vào đúng."; -Blockly.Msg["LOGIC_NULL"] = "trống không"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Hoàn trả trống không."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "và"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "hoặc"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Hoàn trả \"đúng\" (true) nếu cả hai đầu vào đều đúng."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Hoàn trả \"đúng\" (true) nếu ít nhất một trong hai đầu vào đúng."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "kiểm tra"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "nếu sai"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "nếu đúng"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Kiểm tra điều kiện. Nếu điều kiện đúng, hoàn trả giá trị từ mệnh đề \"nếu đúng\" nếu không đúng, hoàn trả giá trị từ mệnh đề \"nếu sai\"."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://vi.wikipedia.org/wiki/S%E1%BB%91_h%E1%BB%8Dc"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Hoàn trả tổng của hai con số."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Hoàn trả thương của hai con số."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Hoàn trả hiệu của hai con số."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Hoàn trả tích của hai con số."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Hoàn trả số lũy thừa với số thứ nhất là cơ số và số thứ hai là số mũ."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 của X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Trả về arctangent của điểm (X, Y) trong khoảng từ -180 độ đến 180 độ."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://vi.wikipedia.org/wiki/Ph%C3%A9p_c%E1%BB%99ng"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "cộng vào %1 giá trị %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Cộng số đầu vào vào biến \"%1\"."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Hoàn trả các đẳng số thường gặp: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (vô cực)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "giới hạn %1 không dưới %2 không hơn %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Giới hạn số đầu vào để không dưới số thứ nhất và không hơn số thứ hai."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "chia hết cho"; -Blockly.Msg["MATH_IS_EVEN"] = "là số chẵn"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "là số âm"; -Blockly.Msg["MATH_IS_ODD"] = "là số lẻ"; -Blockly.Msg["MATH_IS_POSITIVE"] = "là số dương"; -Blockly.Msg["MATH_IS_PRIME"] = "là số nguyên tố"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Kiểm tra con số xem nó có phải là số chẵn, lẻ, nguyên tố, nguyên, dương, âm, hay xem nó có chia hết cho số đầu vào hay không. Hoàn trả đúng hay sai."; -Blockly.Msg["MATH_IS_WHOLE"] = "là số nguyên"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "số dư của %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Chia số thứ nhất cho số thứ hai rồi hoàn trả số dư từ."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://vi.wikipedia.org/wiki/S%E1%BB%91"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Một con số."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "giá trị trung bình của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "số lớn nhât của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "số trung vị của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "số nhỏ nhất của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "các mode của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "một số bất kỳ của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "độ lệch chuẩn của một danh sách"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "tổng của một danh sách"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Hoàn trả giá trị trung bình từ của danh sách số."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Hoàn trả số lớn nhất trong tất cả các số trong danh sách."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Hoàn trả số trung vị của danh sách số."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Hoàn trả số nhỏ nhất trong tất cả các số trong danh sách."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Hoàn trả các số có mặt nhiều nhất trong danh sách."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Hoàn trả một số bất kỳ từ các số trong danh sách."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Hoàn trả độ lệch chuẩn của danh sách số."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Hoàn trả tổng số của tất cả các số trong danh sách."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "phân số bất kỳ"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Hoàn trả một phân số bất kỳ không nhỏ hơn 0.0 và không lớn hơn 1.0."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "Một số nguyên bất kỳ từ %1 đến %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Hoàn trả một số nguyên bất kỳ lớn hơn hoặc bằng số đầu và nhỏ hơn hoặc bằng số sau."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "làm tròn"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "làm tròn xuống"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "làm tròn lên"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Làm tròn lên hoặc tròn xuống số đầu vào."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://vi.wikipedia.org/wiki/C%C4%83n_b%E1%BA%ADc_hai"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "giá trị tuyệt đối"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "căn bật hai"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Hoàn trả giá trị tuyệt đối của số đầu vào."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Hoàn trả lũy thừa của số e với số mũ đầu vào."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Hoàn trả lôgarit tự nhiên của số đầu vào."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Hoàn trả lôgarit cơ số 10 của số đầu vào."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Đổi dấu của số đầu vào: âm thành dương và dương thành âm, và hoàn trả số mới."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Hoàn trả lũy thừa của số 10 với số mũ đầu vào."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Hoàn trả căn bật hai của số đầu vào."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://vi.wikipedia.org/wiki/H%C3%A0m_l%C6%B0%E1%BB%A3ng_gi%C3%A1c"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Hoàn trả Arccos của một góc (theo độ)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Hoàn trả Arcsin của một góc (theo độ)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Hoàn trả Arctang của một góc (theo độ)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Hoàn trả Cos của một góc (theo độ)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Hoàn trả Sin của một góc (theo độ)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Hoàn trả Tang của một góc (theo độ)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Tạo một giá trị màu sắc..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Tạo một giá trị số..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Tạo một giá trị dạng chuỗi..."; -Blockly.Msg["NEW_VARIABLE"] = "Tạo biến..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Tên của biến mới:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Kiểu giá trị mới:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "cho phép báo cáo"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "với:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://vi.wikipedia.org/wiki/Ch%C6%B0%C6%A1ng_tr%C3%ACnh_con"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Chạy một thủ tục không có giá trị hoàn trả."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://vi.wikipedia.org/wiki/Ch%C6%B0%C6%A1ng_tr%C3%ACnh_con"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Chạy một thủ tục có giá trị hoàn trả."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "với:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Tạo mảnh \"thực hiện %1\""; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Mô tả hàm này..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "làm gì đó"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "thủ tục để"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Một thủ tục không có giá trị hoàn trả."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "hoàn trả"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Một thủ tục có giá trị hoàn trả."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Chú ý: Thủ tục này có lặp lại tên các tham số."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Làm nổi bật thủ tục"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Khi điều kiện đúng thì hoàn trả một giá trị."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Chú ý: Mảnh này chỉ có thể dùng trong một thủ tục."; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "biến:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Thêm một đầu vào cho hàm."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "các tham số"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Thêm, xóa hoặc sắp xếp lại các đầu vào cho hàm này."; -Blockly.Msg["REDO"] = "Làm lại"; -Blockly.Msg["REMOVE_COMMENT"] = "Xóa Chú Giải"; -Blockly.Msg["RENAME_VARIABLE"] = "Thay tên biến..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Thay tên tất cả các biến \"%1\" thành:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "ở cuối %1 thêm văn bản %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Thêm một mảng văn bản vào biến \"%1\"."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "thành chữ thường"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "thành Chữ In Đầu Mỗi Từ"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "thành CHỮ IN HOA"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Hoàn trả văn bản sau khi chuyển đổi chữ in hoa hay thường."; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "lấy ký tự đầu tiên"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "lấy từ phía cuối, ký tự thứ"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "lấy ký tự thứ"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "lấy ký tự cuối cùng"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "lấy ký tự bất kỳ"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "trong văn bản %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Hoàn trả ký tự ở vị trí đặt ra."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "đến %1 trong %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Đếm số lần một đoạn văn bản xuất hiện trong một đoạn văn bản khác."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "thêm vật mới vào văn bản."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "kết nối"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Thêm, bỏ, hoặc sắp xếp lại các thành phần để tạo dựng mảnh văn bản này."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "đến từ phía cuối, ký tự thứ"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "đến ký tự thứ"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "đến ký tự cuối cùng"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "trong văn bản"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "lấy từ ký tự đầu tiên"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "lấy từ phía cuối, ký tự thứ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "lấy từ ký tự thứ"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Hoàn trả một mảng ký tự ấn định từ trong văn bản."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "tìm sự có mặt đầu tiên của"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "tìm sự có mặt cuối cùng của"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "trong văn bản %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Hoàn trả vị trí xuất hiện đầu/cuối của văn bản thứ nhất trong văn bản thứ hai. Nếu không tìm thấy thì hoàn trả số %1."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 trống không"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Hoàn trả “đúng nếu văn bản không có ký tự nào."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = ""; -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "tạo văn bản từ"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Tạo một văn bản từ các thành phần."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "độ dài của %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Hoàn trả số lượng ký tự (kể cả khoảng trắng) trong văn bản đầu vào."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "in lên màng hình %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "In ra màng hình một văn bản, con số, hay một giá trị đầu vào khác."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Xin người dùng nhập vào một con số."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Xin người dùng nhập vào một văn bản."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Xin người dùng nhập vào con số với dòng hướng dẫn"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Xin người dùng nhập vào văn bản với dòng hướng dẫn"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "thay thế %1 bằng %2 trong %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Thay thế tất cả các lần xuất hiện của văn bản bằng văn bản khác."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "đảo ngược %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Đảo ngược thứ tự của các chữ cái trong văn bản."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/string_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Một ký tự, một từ, hay một dòng."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "cắt các không gian từ cả hai mặt của"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "cắt các không gian từ bên trái của"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "cắt các không gian từ bên phải của"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Hoàn trả bản sao của văn bản sau khi xóa khoảng trắng từ một hoặc hai bên."; -Blockly.Msg["TODAY"] = "Hôm nay"; -Blockly.Msg["UNDO"] = "Hoàn tác"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "vật"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Tạo mảnh \"đặt vào %1\""; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Hoàn trả giá trị của."; -Blockly.Msg["VARIABLES_SET"] = "cho %1 bằng %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Tạo mảnh \"lấy %1\""; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Đặt giá trị của biến này thành..."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Một biến có tên '%1' đã tồn tại."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Giá trị '%1' đã tồn tại dưới dạng: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Hãy nói gì đó..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/xmf.js b/lib/blockly/msg/js/xmf.js deleted file mode 100644 index cb06bb9..0000000 --- a/lib/blockly/msg/js/xmf.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "კომენტარიშ გეძინა"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated -Blockly.Msg["CHANGE_VALUE_TITLE"] = "შანულობაშ თირუა:"; -Blockly.Msg["CLEAN_UP"] = "ბლოკეფიშ გოუქვაფა"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "ბლოკეფიშ ინოკიჩუა"; -Blockly.Msg["COLLAPSE_BLOCK"] = "ბლოკიშ ტყობინაფა"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "ფერი 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "ფერი 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ფერი 1-შ წილი"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "ესვარუა"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "ჟირ ფერს ართიანს უწყორუანს მოჩამილი ზჷმათ (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://xmf.wikipedia.org/wiki/ფერი"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "გეგშაგორით ფერი პალიტრაშე."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "შემთხვევითი ფერი"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ფერიშ შემთხვევითო გიშაგორუა."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "ლენი"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "წვანე"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "ჭითა"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "ფერიː"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "აკოქიმინით ფერი მოჩამილი ჭითა, წვანე დო ლენი ფერეფიშ პროპორციეფით. არძა შანულობა 0 დო 100 შქას ოკო რდას."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ციკლშე გიშულა"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "ციკლიშ გეჸვენჯი ბიჯგშა გინულა"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "თე ციკლიშ მეჭყორიდუა."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Skip the rest of this loop, and continue with the next iteration."; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "ხვილაფა: თე ბლოკიშ გჷმორინაფა ხვალე ციკლიშ დინოხოლე შილებე."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "for each item %1 in list %2"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "For each item in a list, set the variable '%1' to the item, and then do some statements."; // untranslated -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "count with %1 from %2 to %3 by %4"; // untranslated -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "მათირეფონი '%1'-ის მითმურჩქინანს შანულობას მოჩამილი ბიჯგეფით დუდშე ბოლოშა დო მეწურაფილ ზოჯუეფს არსულენს."; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Add a condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Add a final, catch-all condition to the if block."; // untranslated -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this if block."; // untranslated -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "შხვანერო"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "შხვანერო თუ"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "თუ"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "პიჯალეფი ნანდული ქორე-და, ზოჯუეფს არსულენს."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ru.wikipedia.org/wiki/ციკლი_(პროგრამირაფა)"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "რსულება"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 შა გომაჟირაფა"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "მუსხირენ ზოჯუაშ მუსხირენშა რსულება."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "გომაჟირაფა, სოიშახ ვა"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "გომაჟირაფა, სოიშახ"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "სოიშახ შანულობა ტყურა რე, ზოჯუეფიშ რსულება"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "სოიშახ შანულობა ნანდული რე, ზოჯუეფიშ რსულება."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "არძა (%1) ბლოკი ბლასათო?"; -Blockly.Msg["DELETE_BLOCK"] = "ბლოკიშ ლასუა"; -Blockly.Msg["DELETE_VARIABLE"] = "'%1' მათირეფონიშ ლასუა"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "'%2' მათირეფონიშ გჷმორინაფა %1 ბლასათო?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 ბლოკიშ ლასუა"; -Blockly.Msg["DISABLE_BLOCK"] = "ბლოკიშ თიშუა"; -Blockly.Msg["DUPLICATE_BLOCK"] = "კოპირაფა"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated -Blockly.Msg["ENABLE_BLOCK"] = "ბლოკიშ ჩართება"; -Blockly.Msg["EXPAND_ALL"] = "ბლოკეფიშ გჷმოფაჩუა"; -Blockly.Msg["EXPAND_BLOCK"] = "ბლოკიშ გჷმოფაჩუა"; -Blockly.Msg["EXTERNAL_INPUTS"] = "გალეშე დინოხუნაფა"; -Blockly.Msg["HELP"] = "მოხვარა"; -Blockly.Msg["INLINE_INPUTS"] = "დინოხოლე დინოხუნაფა"; -Blockly.Msg["IOS_CANCEL"] = "გოუქვაფა"; -Blockly.Msg["IOS_ERROR"] = "ჩილათა"; -Blockly.Msg["IOS_OK"] = "OK"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Add Input"; // untranslated -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Allow statements"; // untranslated -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "This function has duplicate inputs."; // untranslated -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "მიშულა"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "გეძინა"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Add Variable"; // untranslated -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "ლასუა"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "You can't use an empty variable name."; // untranslated -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "ჯოხოშ თირუა"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Variable name"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "list"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this list block."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "create list with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Add an item to the list."; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Create a list with any number of items."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "first"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# from end"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "get"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "get and remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "last"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "random"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "remove"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Removes and returns the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Removes and returns the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Removes and returns the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Removes and returns a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Removes the first item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Removes the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Removes the last item in a list."; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Removes a random item in a list."; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "to # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "to #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "to last"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "get sub-list from first"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "get sub-list from # from end"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "get sub-list from #"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Creates a copy of the specified portion of a list."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 is the last item."; // untranslated -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 is the first item."; // untranslated -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "find first occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "find last occurrence of item"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found."; // untranslated -Blockly.Msg["LISTS_INLIST"] = "in list"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 ცარიელი რე"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Returns true if the list is empty."; // untranslated -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Returns the length of a list."; // untranslated -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "create list with item %1 repeated %2 times"; // untranslated -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Creates a list consisting of the given value repeated the specified number of times."; // untranslated -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "as"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "insert at"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_SET"] = "set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Inserts the item at the start of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Inserts the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Append the item to the end of a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Inserts the item randomly in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Sets the first item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Sets the item at the specified position in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Sets the last item in a list."; // untranslated -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Sets a random item in a list."; // untranslated -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated -Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "make list from text"; // untranslated -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "make text from list"; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Join a list of texts into one text, separated by a delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Split text into a list of texts, breaking at each delimiter."; // untranslated -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "with delimiter"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "ტყურა"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Returns either true or false."; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "ნანდული"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "not %1"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Returns true if the input is false. Returns false if the input is true."; // untranslated -Blockly.Msg["LOGIC_NULL"] = "მუთუნ ვარი"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "დჷთმართინუანს მუთუნ ვარს."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "დო"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "ვარდა"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test"; // untranslated -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "if false"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "if true"; // untranslated -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://xmf.wikipedia.org/wiki/არითმეტიკა"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Return the quotient of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Return the difference of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Return the product of the two numbers."; // untranslated -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number."; // untranslated -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; // untranslated -Blockly.Msg["MATH_CHANGE_TITLE"] = "change %1 by %2"; // untranslated -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Add a number to variable '%1'."; // untranslated -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; // untranslated -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)."; // untranslated -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive)."; // untranslated -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "is divisible by"; // untranslated -Blockly.Msg["MATH_IS_EVEN"] = "ჭკობა რე"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "უარყოფითი რე"; -Blockly.Msg["MATH_IS_ODD"] = "ცანდი რე"; -Blockly.Msg["MATH_IS_POSITIVE"] = "დადებითი რე"; -Blockly.Msg["MATH_IS_PRIME"] = "უკაჭული რე"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false."; // untranslated -Blockly.Msg["MATH_IS_WHOLE"] = "ნთელი რე"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; // untranslated -Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2"; // untranslated -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Return the remainder from dividing the two numbers."; // untranslated -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://xmf.wikipedia.org/wiki/რიცხუ"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "რიცხუ."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "average of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "max of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "median of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "modes of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "random item of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "standard deviation of list"; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "sum of list"; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Return the average (arithmetic mean) of the numeric values in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Return the largest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Return the median number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Return the smallest number in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Return a list of the most common item(s) in the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Return a random element from the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Return the standard deviation of the list."; // untranslated -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Return the sum of all the numbers in the list."; // untranslated -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "random fraction"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive)."; // untranslated -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "random integer from %1 to %2"; // untranslated -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Return a random integer between the two specified limits, inclusive."; // untranslated -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "round"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "round down"; // untranslated -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "round up"; // untranslated -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Round a number up or down."; // untranslated -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://en.wikipedia.org/wiki/Square_root"; // untranslated -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "მოდული"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "კვადრატული ჯინჯი"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Return the absolute value of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Return e to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Return the natural logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Return the base 10 logarithm of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Return the negation of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Return 10 to the power of a number."; // untranslated -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Return the square root of a number."; // untranslated -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; // untranslated -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Return the arccosine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Return the arcsine of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated -Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated -Blockly.Msg["NEW_VARIABLE"] = "აკოქიმინი მათირეფონი..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "ახალი მათირეფონიშ ჯოხო:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'."; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output."; // untranslated -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "with:"; // untranslated -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Create '%1'"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Describe this function..."; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "do something"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "to"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Creates a function with no output."; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "return"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Creates a function with an output."; // untranslated -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Warning: This function has duplicate parameters."; // untranslated -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Highlight function definition"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value."; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Warning: This block may be used only within a function definition."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "input name:"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Add an input to the function."; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "inputs"; // untranslated -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Add, remove, or reorder inputs to this function."; // untranslated -Blockly.Msg["REDO"] = "ოშხონაფა"; -Blockly.Msg["REMOVE_COMMENT"] = "კომენტარიშ გოუქვაფა"; -Blockly.Msg["RENAME_VARIABLE"] = "ჯოხოშ თირუა მათირეფონი…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "არძა მათირეფონი '%1' ჯოხოშ თირუა -შა:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "to lower case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "to UPPER CASE"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case."; // untranslated -Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end"; // untranslated -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #"; // untranslated -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "get last letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "get random letter"; // untranslated -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position."; // untranslated -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text."; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "join"; // untranslated -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block."; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "to last letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "in text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text."; // untranslated -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "find first occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "find last occurrence of text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "in text %1 %2 %3"; // untranslated -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found."; // untranslated -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 is empty"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Returns true if the provided text is empty."; // untranslated -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "create text with"; // untranslated -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Create a piece of text by joining together any number of items."; // untranslated -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "length of %1"; // untranslated -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Returns the number of letters (including spaces) in the provided text."; // untranslated -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "print %1"; // untranslated -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Print the specified text, number or other value."; // untranslated -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Prompt for user for a number."; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Prompt for user for some text."; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "prompt for number with message"; // untranslated -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "prompt for text with message"; // untranslated -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; // untranslated -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "A letter, word, or line of text."; // untranslated -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "trim spaces from both sides of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "trim spaces from left side of"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; // untranslated -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated -Blockly.Msg["TODAY"] = "ამდღა"; -Blockly.Msg["UNDO"] = "გოუქვაფა"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ელემენტი"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Returns the value of this variable."; // untranslated -Blockly.Msg["VARIABLES_SET"] = "set %1 to %2"; // untranslated -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Create 'get %1'"; // untranslated -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the input."; // untranslated -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "მათირეფონი ჯოხოთი '%1' უკვე არსენებს."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/yo.js b/lib/blockly/msg/js/yo.js deleted file mode 100644 index f988fcc..0000000 --- a/lib/blockly/msg/js/yo.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "Ṣe afikun ọrọ iwoye"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "E ko lee paa Oniruuru rẹ ' %1' nitori wipe o je ara itumọ isise eto yi '%2'"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ṣe ayipada iye:"; -Blockly.Msg["CLEAN_UP"] = "Nu Bulọọku kuro"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated -Blockly.Msg["COLLAPSE_ALL"] = "Bi awọn Bulọọku ṣubu"; -Blockly.Msg["COLLAPSE_BLOCK"] = "Bi Bulọọku ṣubu"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "awọ 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "awọ 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "ipin"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "apapọ"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Da awo meji papo pelu ipin (0.0 - 1.0)."; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://en.wikipedia.org/wiki/Color"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Yan awọ kan lati inu patako awọ."; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "awọ àrìnàkò"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Yan awọ kan ni ọna àrìnàkò."; -Blockly.Msg["COLOUR_RGB_BLUE"] = "alawọ omi aro"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "alawọ ewe"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "awọ pupu"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "awọ pelu:"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Ṣe idasile awọ kan pelu iye awọ pupu, alawọ ewe, ati alawọ omi aro. Gbogbo iye re gbọdọ je laarin 0 and 100."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "ya kuro ninu lupu"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "beere pelu aṣiṣe lupu"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Ya kuro ninu akojọ lupu."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Ṣe afoda awon lupu to ku yii, kii o si tesiwaju pelu awon aṣiṣe lupu."; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Ikilo: Bulọọku yii se lo ninu aṣiṣe lupu yii nikan."; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "fun nigba kọọkan %1 ni akojọ %2"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Fun nkan kọọkan ninu akojọ kan, ṣe eto oriṢiriṢi '%1' si nkan naa, ki o si tun koodu naa ṣe."; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "iyipada %1 lati %2 si %3 fifi kun %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Ni awon oriṣiriṣi '%1' ṣe imulo lori iye kọọkan lati ori nọmba tio beere titi de eyin to pari nọmba, kaa ni pase aarin kan pato. Tun koodu yi se nigba kọọkan:"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Ṣe afikun si ipo yii bi bulọọku."; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Ṣe afikun ipari, mu-gbogbo ipo si bulọọku."; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Ṣe afikun, se ayọkuro, tabi se a tun beere abala yii lati se a tun gbejade bulọọku yii."; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "bibẹẹkọ"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "bibẹẹkọ bi"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "bi"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Bi iye yii ba je otito, lẹyinna ṣe awọn alaye."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Bi iye yii ba je otito, lẹyinna ṣe alaye bulọọku akọkọ. Bibẹẹkọ, ṣe alaye akọkọ bulọọku keji."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Bi iye akọkọ yii ba je otito, lẹyinna ṣe alaye bulọọku akọkọ. Bibẹẹkọ, Bi iye keji yii ba je otito, ṣe alaye akọkọ bulọọku keji."; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Bi iye akọkọ yii ba je otito, lẹyinna ṣe alaye bulọọku akọkọ. Bi iye keji yii ba je otito, ṣe alaye akọkọ bulọọku keji. Bi eyikeyi iye naa ko ba je otito, ṣe alaye akọkọ bulọọku ti o gbeyin."; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "ṣe"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "Iye igba %1 ti tun ṣe"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Ṣe awon alaye ni igba pupo."; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "tun ṣe titi ti"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "tun ṣe nigbati"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Nigbati awon iye kan ba iro, tun awon koodu kan ṣe."; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Nigbati iye kan ba je otito, tun awon koodu kan ṣe."; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "Paa gbogbo %1 bulọọku rẹ?"; -Blockly.Msg["DELETE_BLOCK"] = "Paa Bulọọku rẹ"; -Blockly.Msg["DELETE_VARIABLE"] = "Paa awon '%1' Oniruuru rẹ"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Paa %1 lilo '%2' oniruuru rẹ?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "Paa %1 awọn Bulọọku rẹ"; -Blockly.Msg["DISABLE_BLOCK"] = "Sọ Bulọọku di alaiṣiṣẹ"; -Blockly.Msg["DUPLICATE_BLOCK"] = "Ṣe ẹẹda"; -Blockly.Msg["DUPLICATE_COMMENT"] = "Ṣe ẹẹda afikun ọrọ iwoye"; -Blockly.Msg["ENABLE_BLOCK"] = "Muu Bulọọku ṣiṣẹ"; -Blockly.Msg["EXPAND_ALL"] = "Fẹ awọn Bulọọku"; -Blockly.Msg["EXPAND_BLOCK"] = "Fẹ Bulọọku"; -Blockly.Msg["EXTERNAL_INPUTS"] = "Awon afikun okeere"; -Blockly.Msg["HELP"] = "Iranwọ"; -Blockly.Msg["INLINE_INPUTS"] = "Afiku tẹle n tẹle"; -Blockly.Msg["IOS_CANCEL"] = "Fagilee"; -Blockly.Msg["IOS_ERROR"] = "Aṣiṣe"; -Blockly.Msg["IOS_OK"] = "O DARA"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ Fi afikun sii"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "Gba koodu laaye"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "Awon afikun okeere"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "SII"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "Ìròpọ̀"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ Ṣe afikun orisirisi"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "Paarẹ"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "O ko le lo oruko orisirisi ti o sofo."; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "Àtúnṣọlọ́rúkọ"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "Oruko orisirisi"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Ṣẹda akojọ aṣayan tio ṣofo"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Da akojọ pada, ti gigun 0, ko ni awon akosile alaye"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "akojọ"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Fikun, yọ, tabi yọ, tunṣe awọn apakan lati akojọ bulooku yii."; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "ṣẹda akojọ"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Fi nkan kun akojọ."; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Ṣẹda akojọ pẹlu nọmba eyikeyi ti awọn akojo."; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "àkọ́kọ́"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# lati opin"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "gba"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "gba ati yọ"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "tógbẹ̀yìn"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "àrìnàkò"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "yọ"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Da akojọ akọkọ pada."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Returns the item at the specified position in a list."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Da akojọ ti o kẹhin pada."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Da ohun àrìnàkò kan pada ninu akojọ"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Yọ ki o si da akojọ kuro ni akọkọ pada."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Yọ ki o si da akojọ naa pada kuro ni ipo kan pato ti o wa."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Yọ ki o si da akojọ ti o kẹhin pada"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Yọ ki o si da akojọ ti o kẹhin àrìnàkò pada"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Da akojọ akọkọ pada."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Yọ ki o si da akojọ naa pada kuro ni ipo kan pato ti o wa."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Da akojọ ti o kẹhin pada."; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Da ohun àrìnàkò kan pada ninu akojọ"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "sii # lati opin"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "sii #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "sii opin"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "gba ipin -akojọ lati akọkọ"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "gba ipin -akojọ lati # lati opin"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "gba ipin -akojọ lati #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Ṣẹda ẹda ti apa kan ti o wa ninu akojọ."; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 jẹ ohun ti o kẹhin."; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 jẹ ohun akọkọ."; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "wa awon nkan akọkọ ti o sele"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "wa iṣẹlẹ ti o kẹhin ti akojọ"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Da atọka ti akọkọ / iṣẹlẹ to kẹhin ti akojọ. Da %1 akojọ pada ti o ko ba ri."; -Blockly.Msg["LISTS_INLIST"] = "ni akojọ"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 je ofo"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Da otitọ pada nigbati akojọ ba ṣofo."; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "gigun ti %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Da gigun ti akojo pada."; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "ṣẹda akojọ pẹlu nkan %1 tun ṣe %2 igba"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Ṣẹda akojọ kan ti o wa fun iye tun nọmba kan pato ti akoko ti a ti yan."; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "Ṣe iyipada %1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Ṣe iyipada ẹda ti akojọ kan."; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "bii"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "fi sii ni"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "ṣeto"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Fi ohun kan sii ni ibẹrẹ akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Fi ohun kan sii ipo kan pato ti a ti yan ni akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Fi ohun kan kun si opin akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Fi ohun kan kun si àrìnàkò akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Fi ohun kan sii ni ibẹrẹ akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Ṣeto ohun akọkọ sii ipo kan pato ti a ti yan ni akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Fi ohun kan kun si opin akojọ."; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Fi ohun kan kun si àrìnàkò akojọ."; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "si oke"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "si isalẹ"; -Blockly.Msg["LISTS_SORT_TITLE"] = "to %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "To ẹda akojọ lẹsẹẹsẹ."; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "awon alfabeti, fojufo irufe"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "awọn nọmba"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "awon alfabeti"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "ṣe akojọ lati inu ọrọ"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "ṣe ọrọ lati akojọ"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Darapọ mọ akojọ awọn ọrọ sinu ọrọ kan, ti a pin nipase delimita."; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Pin ọrọ sinu akojọ awọn ọrọ kan, fọ ni dẹlimita kọọkan."; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "pẹlu dẹlimita"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "irọ"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Da pada bi o je otito tabi iro."; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "otitọ"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://en.wikipedia.org/wiki/Inequality_(mathematics)"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Da otito pada b iafikun mejeji ba dogba bakanna."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Da otito pada bi afikun akooko ba tobi ju afiku keji lo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Da otito pada bi afikun akooko ba tobi ju tabi dogba pelu afiku keji lo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Da otito pada bi afikun akooko ba kere ju afiku keji lo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Da otito pada bi afikun akooko ba kere ju tabi dogba pelu afiku keji lo."; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Da otito pada bi afikun mejeji ko ba dogba bakanna."; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "kii ṣe %1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "Da otitọ pada bi afikun ba je irọ. Da iro pada bi afikun ba je otito."; -Blockly.Msg["LOGIC_NULL"] = "ofo"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Da ofo pada."; -Blockly.Msg["LOGIC_OPERATION_AND"] = "ati"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "tabi"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Da otito pada bi afikun mejeji ba je otito."; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Da otitọ pada bi o kere ju afikun kan ba je otito."; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "idanwo"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "bi irọ"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "bi otitọ"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Ṣe ayewo ipo naa ni 'idanwo'. Bi ipo nab a je otito, Da pada 'bi otito' iye; bibẹẹkọ da pada 'bi iro' iye."; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://yo.wikipedia.org/wiki/Ìṣírò"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Da apapo awọn nọmba meji pada."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Da adarọ iye ti awọn nọmba meji pada."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Da iyatọ awọn nọmba meji naa pada."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Da abajade awọn nọmba meji naa pada."; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Da nọmba akọkọ ti a gbe si agbara ti nọmba keji pada."; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 X:%1 Y:%2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Da ojuami arctangent pada (X, Y) ni awon digiri lati -180 si 180."; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "iyipada %1 nipasẹ %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Se afiku si nọmba orisirisi '%1'."; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://en.wikipedia.org/wiki/Mathematical_constant"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Da ọkan ninu awọn aiyipada ti o wọpọ pada: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (ailopin)."; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "atokọ %1 kukuru %2 giga %3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Ṣe atokọ nọmba laarin awọn nọmba kukuru ati giga. (ini afikun)."; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "je sisee pin pẹlu"; -Blockly.Msg["MATH_IS_EVEN"] = "je se e pin"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "je ai dara"; -Blockly.Msg["MATH_IS_ODD"] = "je ai se e pin"; -Blockly.Msg["MATH_IS_POSITIVE"] = "je di dara"; -Blockly.Msg["MATH_IS_PRIME"] = "je nọ́mbà àkọ́kọ́"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "Ṣe ayẹwo boya nọmba jẹ eyi to se pin, ai se pin, akori, odidi, ti o dara, ti ko dara, tabi ti o ba se e pin pelu nọmba kan. Pada otitọ tabi irọ."; -Blockly.Msg["MATH_IS_WHOLE"] = "je odidi"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://en.wikipedia.org/wiki/Modulo_operation"; -Blockly.Msg["MATH_MODULO_TITLE"] = "iyokù %1 ÷ %2"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Da iyokù lati pinpin awọn nọmba meji pada."; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://yo.wikipedia.org/wiki/Nọ́mbà"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Nọ́mbà kan."; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "idameji akojọ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "akojọ ti o pọ ju"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "agbedemeji akojọ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "akojọ ti o kere ju"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "awọn ipo ti akojọ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "àrìnàkò nkan ti akojọ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "iṣiro deede ti akojọ"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "apao akojọ"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Da idameji pada (ipin isiro) ti awọn nọmba iye inu akojọ."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Da nọmba ti o tobi julọ ninu akojọ pada."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Da agbedemeji nọmba inu akojọ pada."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Da nọmba ti o kere julọ ninu akojọ pada."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Da akojọ ti eyi ti o wọpọ julọ ninu akojọ."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Da àrìnàkò ida ipilẹ nkan lati inu akojọ."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Da iṣiro deede ti akojọ pada."; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Da apapo gbogbo awọn nọmba inu akojọ pada."; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "oniruru ipin"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Da àrìnàkò ida pada laarin 0.0 (ini afikun) ati 1.0 (iyasọtọ)."; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "oniruru abala lati %1 si %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Da àrìnàkò abala laarin awon opin pato meji pada, ini afikun."; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "pa ju de"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "pa ju de si isalẹ"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "pa ju de soke"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Pa oju nọmba de soke tabi si isalẹ."; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://yo.wikipedia.org/wiki/Gb%C3%B2ngb%C3%B2_al%C3%A1gb%C3%A1ram%C3%A9j%C3%AC"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "patapata"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Ipilẹ onihamẹrin"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Da iye patapata ti nọmba kan pada."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Da e pada si agbara ti nọmba kan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Da lọgaridimu adayeba ti nọmba kan pada."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Da ipilẹ 10 lọgaridimu nọmba kan pada."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Da ilodisi ti nọmba kan pada"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Da 10 pada si agbara nọmba kan."; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Da Ipilẹ onihamẹrin nọmba kan pada."; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://en.wikipedia.org/wiki/Trigonometric_functions"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Da arccosine ti digiri pada."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Da arcsine ti digiri pada."; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Da arctangent ti digiri pada."; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Da cosine ti digiri pada (kii ṣe Radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Da sine ti digiri pada (kii ṣe Radian)."; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Da tangent ti digiri pada (kii ṣe Radian)."; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Ṣe idasile awọ oniruuru..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Ṣe idasile nọ́mbà oniruru..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "Ṣe idasile asopọ oniruru..."; -Blockly.Msg["NEW_VARIABLE"] = "Ṣe idasile oniruuru..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "Orukọ oniruuru tuntun:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Iru oniruuru tuntun:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "gba alaye laaye"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "pẹlu:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Ṣe ṣalaye-iṣẹ ti olumulo '%1'."; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Ṣe ṣalaye-iṣẹ ti olumulo '%1' kii o sii lo iṣagbejade rẹ."; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "pẹlu:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "Ṣe idasile '%1'"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Ṣe apejuwe iṣẹ yii..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "Ṣe awon alaye ni igba pupo."; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "sii"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Ṣẹda iṣẹ kan lai si iṣagbejade."; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "tun tẹ"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Ṣẹda iṣẹ pẹlu iṣagbejade kan."; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Ikilo: Isẹ yii ni awọn ẹda odiwọn."; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Ṣafihan iṣẹ isọtunmọ"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "Ti iye ba jẹ otitọ, lẹhinna da iye keji pada."; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Ikilo: Bulọọki yii le ṣee lo nikan laarin itumọ iṣẹ kan"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "igbewọle orukọ:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Ṣe afikun kan sii igbewọle si iṣẹ yii."; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "igbewọle"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Fikun, yọ kuro, tabi tun beere awọn igbewọle si iṣẹ yii."; -Blockly.Msg["REDO"] = "Tun ṣe"; -Blockly.Msg["REMOVE_COMMENT"] = "Yọ afikun ọrọ iwoye"; -Blockly.Msg["RENAME_VARIABLE"] = "Tun orukọ oniruuru kọ..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Tun orukọ gbogbo '%1' v oniruru kọ si:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "si %1 fikun ọrọ %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Ṣe afikun awon ọrọ oniruru '%1'."; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "si alfabeti kekere"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "si Alfabeti Aarin"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "si ALFABETI NLA"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "aa <-> AA"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "gba lẹta akọkọ"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "gba lẹta # lati opin"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "gba lẹta #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "gba lẹta ti o kẹhin"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "gba lẹta àrìnàkò"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "ninu %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Da lẹta naa pada si ipo ti a ti sọ tẹlẹ."; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "ka %1 ni %2"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Ka iye igba diẹ ninu awọn ọrọ kan waye laarin awọn ọrọ miiran."; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Ṣe afikun nkan si ọrọ naa."; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "darapọ"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Fikun, yọ kuro, tabi ṣe atunṣe awọn apakan lati se atunkọ ọrọ bulooku yii."; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "si lẹta # lati opin"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "si lẹta #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "si lẹta kẹhin"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "ninu"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "gba substring lati lẹta akọkọ"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "gba substring lati lẹta # lati opin"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "gba substring lati lẹta #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Da ipin kan pato ti ọrọ naa pada."; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "wa isele akọkọ ti o wa ninu ọrọ"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "wa isele igbeyin ti o wa ninu ọrọ"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "ninu %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Da atọka ti akọkọ / iṣẹlẹ to kẹhin ti akojọ. Da %1 akojọ pada ti o ko ba ri."; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 je isofo"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Da otitọ pada ti ọrọ ti a pese ba ṣofo."; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "ṣẹ ẹda ọrọ pẹlu"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Ṣẹda ọrọ kan nipa ṣiṣepọ gbogbo awọn ohun kan."; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "Gigun ti %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Da nọmba awọn lẹta pada (pẹlu awọn alafo) ninu ọrọ ti a pese."; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "tẹ ọrọ %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Tẹ ọrọ kan pato, nọmba tabi iye awon miiran."; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Kiakia fun olumulo fun nọmba."; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Kiakia fun olumulo fun awon ifiranṣẹ."; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "kiakia fun nọmba pẹlu ifiranṣẹ"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "kiakia fun ọrọ pẹlu ifiranṣẹ"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "Ṣe iropọ %1 pelu %2 in %3"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Ṣe iropo gbogbo awọn iṣẹlẹ ti o sele ninu awọn ọrọ laarin awọn ọrọ miiran."; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "Ṣe iyipada %1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Ṣe iyipada aṣẹ awọn ohun kikọ inu ọrọ naa."; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://en.wikipedia.org/wiki/String_(computer_science)"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Lẹta, ọrọ, tabi ila ọrọ."; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "ge awọn alafo lati awọn igun mejeji ti"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "ge awọn alafo lati apa osi ti"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "ge awọn alafo lati apa otun ti"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Da ẹda ti ọrọ naa pada pẹlu awọn alafo miiran ti o kuro lati ọkan tabi awọn opin mejeeji."; -Blockly.Msg["TODAY"] = "Loni"; -Blockly.Msg["UNDO"] = "Maa ṣe"; -Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "nkan"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Ṣe idasile 'ṣeto %1'"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Da iye orisirisi yii pada."; -Blockly.Msg["VARIABLES_SET"] = "ṣeto %1 sii %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Ṣe idasile 'gba %1'"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Ṣeto oniruru yii lati je bakanna sii igbasilẹ."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Oniruuru ti a darukọ '%1' ti wa tẹlẹtẹlẹ."; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Oniruuru ti a darukọ '%1' ti wa tẹlẹtẹlẹ fun iru miran: '%2'."; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Sọ nkankan..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/zh-hans.js b/lib/blockly/msg/js/zh-hans.js deleted file mode 100644 index bd9efc8..0000000 --- a/lib/blockly/msg/js/zh-hans.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "添加注释"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "不能删除变量“%1”,因为它是函数“%2”定义的一部分"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "更改值:"; -Blockly.Msg["CLEAN_UP"] = "整理块"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "已收起的信息块内包含警告。"; -Blockly.Msg["COLLAPSE_ALL"] = "折叠块"; -Blockly.Msg["COLLAPSE_BLOCK"] = "折叠块"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "颜色1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "颜色2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "比例"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "混合"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "把两种颜色以一个给定的比例(0.0-1.0)进行混合。"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://zh.wikipedia.org/wiki/颜色"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "从调色板中选择一种颜色。"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "随机颜色"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "随机选择一种颜色。"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "蓝色"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "绿色"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "红色"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "颜色"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "通过指定红色、绿色和蓝色的量创建一种颜色。所有的值必须在0和100之间。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "跳出循环"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "继续下一轮循环"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "跳出包含它的循环。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "跳过本轮循环的剩余部分,并继进行续下一轮迭代。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "警告:这个块只能在循环内使用。"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "为列表 %2 里的每一项 %1"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "遍历列表中的每一项,将变量“%1”设为所选项,并执行一些语句。"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "变量 %1 从 %2 数到 %3 每次增加 %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "用变量%1记录从开始数值到终止数值之间的数值,数值按指定间隔增加,并执行指定的块。"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "在这个if语句块中增加一个条件。"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "在这个if语句块中添加一个最终的,包括所有其余情况的条件。"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "增加、删除或重新排列各节来重新配置这个if语句块。"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "否则"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "否则如果"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "如果"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "如果值为真,执行一些语句。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "如果值为真,则执行第一块语句。否则,则执行第二块语句。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "如果第一个值为真,则执行第一块的语句。否则,如果第二个值为真,则执行第二块的语句。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "如果第一个值为真,则执行第一块对语句。否则,如果第二个值为真,则执行语句的第二块。如果没有值为真,则执行最后一块的语句。"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://zh.wikipedia.org/wiki/For循环"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "执行"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "重复 %1 次"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "多次执行一些语句。"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "重复直到条件满足"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "当条件满足时重复"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "只要值为假,执行一些语句。"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "只要值为真,执行一些语句。"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "删除所有 %1 个块吗?"; -Blockly.Msg["DELETE_BLOCK"] = "删除块"; -Blockly.Msg["DELETE_VARIABLE"] = "删除变量“%1”"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "要删除对变量“%2”的%1个引用吗?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "删除 %1 个块"; -Blockly.Msg["DISABLE_BLOCK"] = "禁用块"; -Blockly.Msg["DUPLICATE_BLOCK"] = "复制"; -Blockly.Msg["DUPLICATE_COMMENT"] = "复制注释"; -Blockly.Msg["ENABLE_BLOCK"] = "启用块"; -Blockly.Msg["EXPAND_ALL"] = "展开块"; -Blockly.Msg["EXPAND_BLOCK"] = "展开块"; -Blockly.Msg["EXTERNAL_INPUTS"] = "外部输入"; -Blockly.Msg["HELP"] = "帮助"; -Blockly.Msg["INLINE_INPUTS"] = "单行输入"; -Blockly.Msg["IOS_CANCEL"] = "取消"; -Blockly.Msg["IOS_ERROR"] = "错误"; -Blockly.Msg["IOS_OK"] = "确定"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+添加输入"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "允许的语句"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "这个函数有多个输入。"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "输入"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "添加"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+添加变量"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "删除"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "你不能使用空白的变量名。"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "重命名"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "变量名"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "创建空列表"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "返回一个列表,长度为 0,不包含任何数据记录"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "列表"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "增加、删除或重新排列各部分以此重新配置这个列表块。"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "建立列表从"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "将一个项添加到列表中。"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "建立一个具有任意数量项目的列表。"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "第一个"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "倒数第#"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; -Blockly.Msg["LISTS_GET_INDEX_GET"] = "取得"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "取得并移除"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "最后一个"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "随机的"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "移除"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = "-"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "返回列表中的第一项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "返回在列表中的指定位置的项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "返回列表中的最后一项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "返回列表中的随机一项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "移除并返回列表中的第一项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "移除并返回列表中的指定位置的项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "移除并返回列表中的最后一项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "移除并返回列表中的随机一项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "移除列表中的第一项"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "移除在列表中的指定位置的项。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "移除列表中的最后一项"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "删除列表中的随机一项。"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "到倒数第#"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "到#"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "到最后"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "获取子列表从第一个"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "获取子列表从最后一个#"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "获取子列表从#"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = "-"; -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "复制列表中指定的部分。"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1是最后一项。"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1是第一项。"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "寻找第一次出现的项"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "寻找最后一次出现的项"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "返回在列表中的第一/最后一个匹配项的索引值。如果找不到项目则返回%1。"; -Blockly.Msg["LISTS_INLIST"] = "在列表中"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1是空的"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "如果改列表为空,则返回真。"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "%1的长度"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "返回列表的长度。"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "建立列表使用项 %1 重复 %2 次"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "建立包含指定重复次数的值的列表。"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "倒转%1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "倒转一个列表的拷贝。"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "值为"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "插入在"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "设置"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "在列表的起始处添加该项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "插入在列表中指定位置的项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "在列表的末尾处添加该项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "在列表的随机位置插入该项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "设置列表中的第一项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "设置在列表中指定位置的项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "设置列表中的最后一项。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "设置列表中的随机一项。"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "升序"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "降序"; -Blockly.Msg["LISTS_SORT_TITLE"] = "排序%1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "排序一个列表的拷贝。"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "按字母排序,忽略大小写"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "按数字排序"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "按字母排序"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "从文本制作列表"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "从列表拆出文本"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "加入文本列表至一个文本,由分隔符分隔。"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "拆分文本到文本列表,按每个分隔符拆分。"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "用分隔符"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "假"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "返回真或假。"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "真"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://zh.wikipedia.org/wiki/不等"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "如果两个输入结果相等,则返回真。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "如果第一个输入结果比第二个大,则返回真。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "如果第一个输入结果大于或等于第二个输入结果,则返回真。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "如果第一个输入结果比第二个小,则返回真。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "如果第一个输入结果小于或等于第二个输入结果,则返回真。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "如果两个输入结果不相等,则返回真。"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "非%1"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "如果输入结果为假,则返回真;如果输入结果为真,则返回假。"; -Blockly.Msg["LOGIC_NULL"] = "空"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "返回空值。"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "并且"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "或"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "如果两个输入结果都为真,则返回真。"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "如果至少有一个输入结果为真,则返回真。"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "断言"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://zh.wikipedia.org/wiki/条件运算符"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "如果为假"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "如果为真"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "检查“断言”里的条件语句。如果条件为真,则返回“如果为真”的值,否则,则返回“如果为假”的值。"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://zh.wikipedia.org/wiki/算术"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "返回两个数值的和。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "返回两个数值的商。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "返回两个数值的差值。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "返回两个数值的乘积。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "返回以第一个数值为底数,以第二个数值为幂的结果。"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://zh.wikipedia.org/wiki/反正切2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "点(x:%1,y:%2)的方位角"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "返回点(X,Y)的反正切值,范围为-180到180度。"; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://zh.wikipedia.org/wiki/加法"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "将 %1 增加 %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "为变量“%1”增加一个数值。"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://zh.wikipedia.org/wiki/数学常数"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "返回一个常见常量:π (3.141…)、e (2.718…)、φ (1.618…)、平方根 (1.414…)、开平方根 (0.707…)或∞ (无限大)。"; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "将 %1 限制在 最低 %2 到最高 %3 之间"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "将一个数值限制在两个指定的数值范围(含边界)之间。"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "可被整除"; -Blockly.Msg["MATH_IS_EVEN"] = "是偶数"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "是负数"; -Blockly.Msg["MATH_IS_ODD"] = "是奇数"; -Blockly.Msg["MATH_IS_POSITIVE"] = "是正数"; -Blockly.Msg["MATH_IS_PRIME"] = "是质数"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "检查一个数值是否是偶数、奇数、质数、自然数、正数、负数或者是否能被某数整除。返回真或假。"; -Blockly.Msg["MATH_IS_WHOLE"] = "是整数"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://zh.wikipedia.org/wiki/模除"; -Blockly.Msg["MATH_MODULO_TITLE"] = "取 %1 ÷ %2 的余数"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "返回这两个数字相除后的余数。"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://zh.wikipedia.org/wiki/数"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "一个数值。"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "列表平均值"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "列表最大值"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "列表中位数"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "列表最小值"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "列表中的众数"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "列表随机项"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "列表的标准差"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "列表中数值的和"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "返回列表中的数值的平均值。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "返回列表中最大值。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "返回列表中数值的中位数。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "返回列表中最小值。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "返回列表中的出现次数最多的项的列表。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "从列表中返回一个随机的元素。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "返回列表的标准差。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "返回列表中的所有数值的和。"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://zh.wikipedia.org/wiki/随机数生成器"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "随机小数"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "返回一个介于0.0到1.0之间(含边界)的随机数。"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://zh.wikipedia.org/wiki/随机数生成器"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "从 %1 到 %2 范围内的随机整数"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "返回一个限制在两个指定数值的范围(含边界)之间的随机整数。"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://zh.wikipedia.org/wiki/数值修约"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "四舍五入"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "向下舍入"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "向上舍入"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "数字向上或向下舍入。"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://zh.wikipedia.org/wiki/平方根"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "绝对值"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "平方根"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "返回一个数值的绝对值。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "返回一个数值的e次幂。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "返回一个数值的自然对数。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "返回一个数值的以10为底的对数。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "返回一个数值的相反数。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "返回一个数值的10次幂。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "返回一个数的平方根。"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://zh.wikipedia.org/wiki/三角函数"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "返回一个数值的反余弦值。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "返回一个数值的反正弦值。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "返回一个数值的反正切值。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "返回指定角度的余弦值(非弧度)。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "返回指定角度的正弦值(非弧度)。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "返回指定角度的正切值(非弧度)。"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "创建颜色变量..."; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "创建数字变量..."; -Blockly.Msg["NEW_STRING_VARIABLE"] = "创建字符串变量..."; -Blockly.Msg["NEW_VARIABLE"] = "创建变量..."; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "新变量的名称:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "新变量的类型:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = "-"; -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "允许声明"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "与:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程序"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "运行用户定义的函数“%1”。"; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程序"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "运行用户定义的函数“%1”,并使用它的输出值。"; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "与:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "创建“%1”"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "描述该功能..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = "-"; -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程序"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "做点什么"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "至"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "创建一个不带输出值的函数。"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程序"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "返回"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "创建一个有输出值的函数。"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "警告:此函数具有重复参数。"; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "突出显示函数定义"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "如果值为真,则返回第二个值。"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "警告:这个块只能在函数内部使用。"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "输入名称:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "添加函数输入。"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "输入"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "添加、移除或重新排此函数的输入。"; -Blockly.Msg["REDO"] = "重做"; -Blockly.Msg["REMOVE_COMMENT"] = "删除注释"; -Blockly.Msg["RENAME_VARIABLE"] = "重命名变量..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "将所有“%1”变量重命名为:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "向%1附加文本%2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "将一些文本追加到变量“%1”里。"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "转为小写"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "转为首字母大写"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "转为大写"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "用不同的大小写模式复制并返回这段文字。"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "寻找第一个字母"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "获取字符从倒数#"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "获取字符从#"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "寻找最后一个字母"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "寻找随机的字母"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = "-"; -Blockly.Msg["TEXT_CHARAT_TITLE"] = "在文本%1 里 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "返回位于指定位置的字母。"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "计算%1在%2里出现的次数"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "计算在一段文本中,某个部分文本重复出现了多少次。"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "将一个项添加到文本中。"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "加入"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "添加、移除或重新排列各节来重新配置这个文本块。"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "到最后一个字符#"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "至字符#"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "到最后一个字符"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "从文本"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "取得子串自第一个字符"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "取得子串自倒数#"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "取得子串自#"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = "-"; -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "返回文本中指定的一部分。"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "寻找第一次出现的文本"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "寻找最后一次出现的文本"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "在文本 %1 里 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "返回第一个文本段在第二个文本段中的第一/最后一个匹配项的起始位置。如果未找到,则返回%1。"; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1是空的"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "如果给定的文本为空,则返回真。"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "建立文本从"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "通过串起任意数量的项以建立一段文本。"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "%1的长度"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "返回给定文本的字母数(包括空格)。"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "输出%1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "输出指定的文字、数字或其他值。"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "要求用户输入数字。"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "要求用户输入一些文本。"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "要求输入数字,并显示提示消息"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "要求输入文本,并显示提示消息"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "在%3中,将%1替换为%2"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "在一段文本中,将出现过的某部分文本都替换掉。"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "翻转文本%1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "将文本中各个字符的顺序倒转。"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://zh.wikipedia.org/wiki/字符串"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "一个字、词语或一行文本。"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "消除其两侧的空白"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "消除其左侧的空白"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "消除其右侧的空白"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "从某一端或同时从两端删除多余的空白,并返回这段文字的一个副本。"; -Blockly.Msg["TODAY"] = "今天"; -Blockly.Msg["UNDO"] = "撤销"; -Blockly.Msg["UNNAMED_KEY"] = "匿名"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "项目"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "创建“设定%1”"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "返回此变量的值。"; -Blockly.Msg["VARIABLES_SET"] = "赋值 %1 为 %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "创建“获得%1”"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "设置此变量,以使它和输入值相等。"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "名字叫“%1”的变量已经存在了。"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "名字叫“%1”的变量已经有了另一个类型:“%2”。"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "说点什么..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/js/zh-hant.js b/lib/blockly/msg/js/zh-hant.js deleted file mode 100644 index e4b2f1f..0000000 --- a/lib/blockly/msg/js/zh-hant.js +++ /dev/null @@ -1,433 +0,0 @@ -// This file was automatically generated. Do not modify. - -'use strict'; - -Blockly.Msg["ADD_COMMENT"] = "加入註解"; -Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "無法刪除變數「%1」,因為這是功能「%2」定義的一部份內容"; -Blockly.Msg["CHANGE_VALUE_TITLE"] = "修改值:"; -Blockly.Msg["CLEAN_UP"] = "整理積木"; -Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "收合含有警告的區塊。"; -Blockly.Msg["COLLAPSE_ALL"] = "收合積木"; -Blockly.Msg["COLLAPSE_BLOCK"] = "收合區塊"; -Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "顏色 1"; -Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "顏色 2"; -Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated -Blockly.Msg["COLOUR_BLEND_RATIO"] = "比例"; -Blockly.Msg["COLOUR_BLEND_TITLE"] = "混合"; -Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "用一個給定的比率(0.0-1.0)混合兩種顏色。"; -Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://zh.wikipedia.org/wiki/顏色"; -Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "從調色板中選擇一種顏色。"; -Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated -Blockly.Msg["COLOUR_RANDOM_TITLE"] = "隨機顏色"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "隨機選擇一種顏色。"; -Blockly.Msg["COLOUR_RGB_BLUE"] = "藍"; -Blockly.Msg["COLOUR_RGB_GREEN"] = "綠"; -Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated -Blockly.Msg["COLOUR_RGB_RED"] = "紅"; -Blockly.Msg["COLOUR_RGB_TITLE"] = "顏色"; -Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "透過指定紅、綠、 藍色的值來建立一種顏色。所有的值必須介於 0 和 100 之間。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "中斷循環"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "繼續下一個循環"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "中斷當前的循環。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "跳過這個循環的其餘步驟,並繼續下一次的循環。"; -Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "警告:此區塊僅可用於循環內。"; -Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated -Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "為列表 %2 裡的每一項 %1"; -Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "遍歷每個清單中的項目,將變數「%1」設定到該項目中,然後執行某些陳述式。"; -Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated -Blockly.Msg["CONTROLS_FOR_TITLE"] = "循環計數 %1 從 %2 到 %3 每次增加 %4"; -Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "從起始數到結尾數中取出變數「%1」的值,按指定的時間間隔,執行指定的區塊。"; -Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "添加條件到「如果」積木。"; -Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "加入一個最終、所有條件都執行的部份到「如果」區塊中。"; -Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated -Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "添加、刪除或重新排列各部份以重新配置這個「如果」區塊。"; -Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "否則"; -Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "否則,如果"; -Blockly.Msg["CONTROLS_IF_MSG_IF"] = "如果"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "當值為 true 時,執行一些陳述式。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "當值為 true 時,執行第一個陳述式。否則,執行第二個陳述式。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "如果第一個值為 true,則執行第一個陳述式。否則,當第二個值為 true 時,則執行第二個陳述式。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "如果第一個值為 true,則執行第一個陳述式。否則當第二個值為 true 時,則執行第二個陳述式。如果前幾個敘述都不為 ture,則執行最後一個陳述式。"; -Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://zh.wikipedia.org/wiki/For迴圈"; -Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "執行"; -Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "重複%1次"; -Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "重複執行指定的陳述式多次。"; -Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "重複直到"; -Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "重複,當"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "當值為 false 時,執行一些陳述式。"; -Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "當值為 true 時,執行一些陳述式。"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "刪除全部 %1 個區塊?"; -Blockly.Msg["DELETE_BLOCK"] = "刪除區塊"; -Blockly.Msg["DELETE_VARIABLE"] = "刪除變數「%1」"; -Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "刪除使用%1次的「%2」變數?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "刪除%1個積木"; -Blockly.Msg["DISABLE_BLOCK"] = "停用區塊"; -Blockly.Msg["DUPLICATE_BLOCK"] = "複製"; -Blockly.Msg["DUPLICATE_COMMENT"] = "複製註解"; -Blockly.Msg["ENABLE_BLOCK"] = "啟用積木"; -Blockly.Msg["EXPAND_ALL"] = "展開積木"; -Blockly.Msg["EXPAND_BLOCK"] = "展開區塊"; -Blockly.Msg["EXTERNAL_INPUTS"] = "外部輸入"; -Blockly.Msg["HELP"] = "說明"; -Blockly.Msg["INLINE_INPUTS"] = "單行輸入"; -Blockly.Msg["IOS_CANCEL"] = "取消"; -Blockly.Msg["IOS_ERROR"] = "錯誤"; -Blockly.Msg["IOS_OK"] = "確定"; -Blockly.Msg["IOS_PROCEDURES_ADD_INPUT"] = "+ 添加輸入"; -Blockly.Msg["IOS_PROCEDURES_ALLOW_STATEMENTS"] = "允許加入陳述式"; -Blockly.Msg["IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR"] = "此功能有多個輸入內容。"; -Blockly.Msg["IOS_PROCEDURES_INPUTS"] = "輸入"; -Blockly.Msg["IOS_VARIABLES_ADD_BUTTON"] = "添加"; -Blockly.Msg["IOS_VARIABLES_ADD_VARIABLE"] = "+ 添加變數"; -Blockly.Msg["IOS_VARIABLES_DELETE_BUTTON"] = "刪除"; -Blockly.Msg["IOS_VARIABLES_EMPTY_NAME_ERROR"] = "您不能使用空的變數名稱。"; -Blockly.Msg["IOS_VARIABLES_RENAME_BUTTON"] = "重新命名"; -Blockly.Msg["IOS_VARIABLES_VARIABLE_NAME"] = "變數名稱"; -Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated -Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "建立空的清單"; -Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "返回一個長度(項目數量)為 0 的清單,不包含任何資料記錄"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "清單"; -Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "添加、刪除或重新排列各部份以重新配置這個清單區塊。"; -Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "使用這些值建立清單"; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "添加一個項目到清單裡。"; -Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "建立一個具備任意數量項目的清單。"; -Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "第一筆"; -Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "倒數第 # 筆"; -Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated -Blockly.Msg["LISTS_GET_INDEX_GET"] = "取得"; -Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "取得並移除"; -Blockly.Msg["LISTS_GET_INDEX_LAST"] = "最後一筆"; -Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "隨機"; -Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "移除"; -Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "返回清單中的第一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "返回在清單中指定位置的項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "返回清單中的最後一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "返回清單中隨機一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "移除並返回清單中的第一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "移除並返回清單中的指定位置的項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "移除並返回清單中的最後一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "移除並返回清單中的隨機項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "移除清單中的第一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "移除在清單中指定位置的項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "移除清單中的最後一個項目。"; -Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "移除清單中隨機一個項目。"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "到 # 倒數"; -Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "到 #"; -Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "到 最後面"; -Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "取得子清單 從 最前面"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "取得子清單 從 # 倒數"; -Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "取得子清單 從 #"; -Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated -Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "複製清單中指定的部分。"; -Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 是最後一個項目。"; -Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 是第一個項目。"; -Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "從 最前面 索引項目"; -Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated -Blockly.Msg["LISTS_INDEX_OF_LAST"] = "從 最後面 索引項目"; -Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "在清單中檢索是否有包含項目,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。"; -Blockly.Msg["LISTS_INLIST"] = "自清單"; -Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated -Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 值為空"; -Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "如果該清單為空,則返回 true。"; -Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated -Blockly.Msg["LISTS_LENGTH_TITLE"] = "長度 %1"; -Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "返回清單的長度(項目數)。"; -Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated -Blockly.Msg["LISTS_REPEAT_TITLE"] = "建立清單使用項目 %1 重複 %2 次"; -Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "建立一個清單,項目中包含指定重複次數的值。"; -Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; -Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "反轉%1"; -Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "反轉清單的複製內容。"; -Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated -Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "為"; -Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "添加"; -Blockly.Msg["LISTS_SET_INDEX_SET"] = "設定"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "添加一個項目到清單中的第一個位置。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "添加一個項目到清單中的指定位置。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "添加一個項目到清單中的最後一個位置。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "添加一個項目到清單中的隨機位置。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "設定清單中的第一個項目。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "設定清單中指定位置的項目。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "設定清單中的最後一個項目。"; -Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "設定清單中隨機一個項目。"; -Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; -Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "升序"; -Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "降序"; -Blockly.Msg["LISTS_SORT_TITLE"] = "排列 %1 %2 %3"; -Blockly.Msg["LISTS_SORT_TOOLTIP"] = "排序清單的複製內容。"; -Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "依字母排序,忽略大小寫"; -Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "依數字"; -Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "依字母"; -Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated -Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "從文本製作清單"; -Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "從清單拆出文本"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "串起清單項目成一個文本,並用分隔符號分開。"; -Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "將文本變成清單項目,按分隔符號拆分。"; -Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "用分隔符"; -Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "假"; -Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated -Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "返回真或假。"; -Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "真"; -Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://zh.wikipedia.org/wiki/不等"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "如果這兩個輸入區塊的結果相等,返回 true。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "如果第一個輸入結果大於第二個,返回 true。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "如果第一個輸入結果大於或等於第二個,返回 true。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "如果第一個輸入結果比第二個小,返回 true。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "如果第一個輸入結果小於或等於第二個,返回 true。"; -Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "如果這兩個輸入區塊的結果不相等,返回 true。"; -Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated -Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 不成立"; -Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "如果輸入結果是 false,則返回 true。如果輸入結果是 true,則返回 false。"; -Blockly.Msg["LOGIC_NULL"] = "空"; -Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated -Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "返回空值。"; -Blockly.Msg["LOGIC_OPERATION_AND"] = "和"; -Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated -Blockly.Msg["LOGIC_OPERATION_OR"] = "或"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "如果兩個輸入結果都為 true,則返回 true。"; -Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "如果至少一個輸入結果為 true,返回 true。"; -Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "測試"; -Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://zh.wikipedia.org/wiki/條件運算符"; -Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "如果為假"; -Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "如果為真"; -Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "檢查「測試」中的條件。如果條件為真,將返回「如果為真」的值;否則,返回「如果為假」的值。"; -Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated -Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://zh.wikipedia.org/wiki/算術"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "返回兩個數字的總和。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "返回兩個數字的商。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "返回兩個數字的差。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "返回兩個數字的乘積。"; -Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "返回第二個數字的指數的第一個數字。"; -Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://zh.wikipedia.org/wiki/Atan2"; -Blockly.Msg["MATH_ATAN2_TITLE"] = "X:%1 Y:%2 的 Atan2"; -Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "回傳點(X,Y)從 -180 至 180 度的反正切值。"; -Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://zh.wikipedia.org/wiki/加法"; -Blockly.Msg["MATH_CHANGE_TITLE"] = "修改 %1 自 %2"; -Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "將數字加到變數「%1」。"; -Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://zh.wikipedia.org/wiki/數學常數"; -Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "返回一個的常見常量: π (3.141......),e (2.718...)、 φ (1.618...)、 開方(2) (1.414......)、 開方(½) (0.707......) 或 ∞ (無窮大)。"; -Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated -Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "限制數字 %1 介於(低)%2 到(高)%3"; -Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "限制數字介於兩個指定的數字之間(包含)。"; -Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated -Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "可被整除"; -Blockly.Msg["MATH_IS_EVEN"] = "是偶數"; -Blockly.Msg["MATH_IS_NEGATIVE"] = "是負數"; -Blockly.Msg["MATH_IS_ODD"] = "是奇數"; -Blockly.Msg["MATH_IS_POSITIVE"] = "是正值"; -Blockly.Msg["MATH_IS_PRIME"] = "是質數"; -Blockly.Msg["MATH_IS_TOOLTIP"] = "如果數字是偶數,奇數,非負整數,正數、 負數,或如果它是可被某數字整除,則返回 true 或 false。"; -Blockly.Msg["MATH_IS_WHOLE"] = "是整數"; -Blockly.Msg["MATH_MODULO_HELPURL"] = "https://zh.wikipedia.org/wiki/模除"; -Blockly.Msg["MATH_MODULO_TITLE"] = "%1 除以 %2 的餘數"; -Blockly.Msg["MATH_MODULO_TOOLTIP"] = "回傳兩個數字相除的餘數。"; -Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated -Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://zh.wikipedia.org/wiki/數"; -Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "一個數字。"; -Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated -Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "平均數 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "最大值 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "中位數 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "最小值 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "比較眾數 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "隨機抽取 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "標準差 自清單"; -Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "數字總和 自清單"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "返回清單中數值的平均值(算術平均值)。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "返回清單項目中最大的數字。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "返回清單中數值的中位數。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "返回清單項目中最小的數字。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "返回一個清單中的最常見的項目。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "從清單中返回一個隨機的項目。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "返回清單中數字的標準差。"; -Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "返回清單中的所有數字的總和。"; -Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated -Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://zh.wikipedia.org/wiki/隨機數生成器"; -Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "隨機取分數"; -Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "在 0.0(包含)和 1.0(不包含)之間隨機取一個數。"; -Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://zh.wikipedia.org/wiki/隨機數生成器"; -Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "隨機取數 %1 到 %2"; -Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "在指定二個數之間隨機取一個數(包含)。"; -Blockly.Msg["MATH_ROUND_HELPURL"] = "https://zh.wikipedia.org/wiki/數值簡化"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "四捨五入"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "無條件捨去"; -Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "無條件進位"; -Blockly.Msg["MATH_ROUND_TOOLTIP"] = "將數字無條件進位或無條件捨去。"; -Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://zh.wikipedia.org/wiki/平方根"; -Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "絕對值"; -Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "開根號"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "返回指定數字的絕對值。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "返回指定數字指數的e的冪次。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "返回指定數字的自然對數。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "返回指定數字的對數。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "返回指定數字的相反數。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "返回指定數字指數的10的冪次。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "返回指定數字的平方根。"; -Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated -Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated -Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated -Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated -Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated -Blockly.Msg["MATH_TRIG_HELPURL"] = "https://zh.wikipedia.org/wiki/三角函數"; -Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated -Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated -Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "返回指定角度的反餘弦值(非弧度)。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "返回指定角度的反正弦值(非弧度)。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "返回指定角度的反正切值。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "返回指定角度的餘弦值(非弧度)。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "返回指定角度的正弦值(非弧度)。"; -Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "返回指定角度的正切值(非弧度)。"; -Blockly.Msg["NEW_COLOUR_VARIABLE"] = "建立顏色變數……"; -Blockly.Msg["NEW_NUMBER_VARIABLE"] = "建立數值變數……"; -Blockly.Msg["NEW_STRING_VARIABLE"] = "建立字串變數……"; -Blockly.Msg["NEW_VARIABLE"] = "建立變數…"; -Blockly.Msg["NEW_VARIABLE_TITLE"] = "新變數名稱:"; -Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "新變數類型:"; -Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated -Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "允許陳述式"; -Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "與:"; -Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式"; -Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "執行使用者定義的函式「%1」。"; -Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/%E5%AD%90%E7%A8%8B%E5%BA%8F"; -Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "執行使用者定義的函式「%1」,並使用它的回傳值。"; -Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "與:"; -Blockly.Msg["PROCEDURES_CREATE_DO"] = "建立「%1」"; -Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "描述此函式..."; -Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated -Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式"; -Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "做些什麼"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "到"; -Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "創建一個無回傳值的函式。"; -Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式"; -Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "返回"; -Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "創建一個有回傳值的的函式。"; -Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "警告: 此函式中有重複的參數。"; -Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "反白顯示函式定義"; -Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated -Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "如果值為 true,則返回第二個值。"; -Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "警告:這個區塊只可以在定義函式時使用。"; -Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "輸入名稱:"; -Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "添加一個輸入區塊到函式。"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "輸入"; -Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "添加、刪除或重新排列此函式的輸入。"; -Blockly.Msg["REDO"] = "重做"; -Blockly.Msg["REMOVE_COMMENT"] = "移除註解"; -Blockly.Msg["RENAME_VARIABLE"] = "重新命名變數..."; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "將所有「%1」變數重新命名為:"; -Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_APPEND_TITLE"] = "至 %1 套用文字 %2"; -Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "添加一些文字到變數「%1」之後。"; -Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "轉成 英文小寫"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "轉成 英文首字大寫"; -Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "轉成 英文大寫"; -Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "使用不同的大小寫複製這段文字。"; -Blockly.Msg["TEXT_CHARAT_FIRST"] = "取得 第一個字元"; -Blockly.Msg["TEXT_CHARAT_FROM_END"] = "取得 倒數第 # 個字元"; -Blockly.Msg["TEXT_CHARAT_FROM_START"] = "取得 字元 #"; -Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated -Blockly.Msg["TEXT_CHARAT_LAST"] = "取得 最後一個字元"; -Blockly.Msg["TEXT_CHARAT_RANDOM"] = "取得 任意字元"; -Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_CHARAT_TITLE"] = "在文字 %1 %2"; -Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "返回位於指定位置的字元。"; -Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; -Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "在%2計算%1"; -Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "計算某些文字在內容裡的出現次數。"; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "添加一個項目到字串中。"; -Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "加入"; -Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "添加、刪除或重新排列各部份以重新配置這個文字區塊。"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "到 倒數第 # 個字元"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "到 字元 #"; -Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "到 最後一個字元"; -Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "在字串"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "取得 第一個字元"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "取得 倒數第 # 個字元"; -Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "取得 字元 #"; -Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated -Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "返回指定的部分文字。"; -Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated -Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "從 最前面 索引字串"; -Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "從 最後面 索引字串"; -Blockly.Msg["TEXT_INDEXOF_TITLE"] = "在文字 %1 %2 %3"; -Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "在字串1中檢索是否有包含字串2,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。"; -Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated -Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 為空"; -Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "如果提供的字串為空,則返回 true。"; -Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated -Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "字串組合"; -Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "通過連接任意數量的項目來建立一串文字。"; -Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated -Blockly.Msg["TEXT_LENGTH_TITLE"] = "長度 %1"; -Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "返回這串文字的字元數(包含空格)。"; -Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated -Blockly.Msg["TEXT_PRINT_TITLE"] = "輸出 %1"; -Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "輸出指定的文字、 數字或其他值。"; -Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated -Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "輸入數字"; -Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "輸入文字"; -Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "輸入 數字 並顯示提示訊息"; -Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "輸入 文字 並顯示提示訊息"; -Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; -Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "在%3以%2取代%1"; -Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "取代在內容裡的全部某些文字。"; -Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; -Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "反轉%1"; -Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "反轉排序在文字裡的字元。"; -Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://zh.wikipedia.org/wiki/字串"; -Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "一個字元、一個單詞,或一串文字。"; -Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated -Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "消除兩側空格"; -Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "消除左側空格"; -Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "消除右側空格"; -Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "複製這段文字,同時刪除兩端多餘的空格。"; -Blockly.Msg["TODAY"] = "今天"; -Blockly.Msg["UNDO"] = "還原"; -Blockly.Msg["UNNAMED_KEY"] = "未命名"; -Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "項目"; -Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "建立「賦值 %1」"; -Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated -Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "返回此變數的值。"; -Blockly.Msg["VARIABLES_SET"] = "賦值 %1 成 %2"; -Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "建立「取得 %1」"; -Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated -Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "設定此變數,好和輸入結果相等。"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "已存在變數「%1」。"; -Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "已存在名為「%1」,且用於其它類型「%2」的變數。"; -Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "來說些事情..."; -Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"]; -Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"]; -Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"]; -Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"]; -Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"]; -Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"]; -Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"]; -Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"]; -Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"]; -Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"]; -Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; -Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"]; - -Blockly.Msg["LOGIC_HUE"] = "210"; -Blockly.Msg["LOOPS_HUE"] = "120"; -Blockly.Msg["MATH_HUE"] = "230"; -Blockly.Msg["TEXTS_HUE"] = "160"; -Blockly.Msg["LISTS_HUE"] = "260"; -Blockly.Msg["COLOUR_HUE"] = "20"; -Blockly.Msg["VARIABLES_HUE"] = "330"; -Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310"; -Blockly.Msg["PROCEDURES_HUE"] = "290"; \ No newline at end of file diff --git a/lib/blockly/msg/json/ab.json b/lib/blockly/msg/json/ab.json deleted file mode 100644 index 98771d4..0000000 --- a/lib/blockly/msg/json/ab.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Абухба Андрей", - "Андрей" - ] - }, - "VARIABLES_DEFAULT_NAME": "аелемент", - "TODAY": "Иахьа", - "DUPLICATE_BLOCK": "Акопиа ахыхтәуп", - "ADD_COMMENT": "Иацҵатәуп ахцәажәара", - "REMOVE_COMMENT": "Ианыхтәуп ахцәажәара", - "DELETE_BLOCK": "Ианыхтәуп аблок", - "DELETE_X_BLOCKS": "Ианыхтәуп %1 блокк", - "DELETE_ALL_BLOCKS": "Ианыхтәуп аблокқәа (%1) зегьы?", - "CLEAN_UP": "Иқәгатәуп аблокқәа", - "COLLAPSE_BLOCK": "Иеикәрҳәтәуп Аблокқәа", - "COLLAPSE_ALL": "Иеикәрҳәтәуп Аблокқәа", - "EXPAND_BLOCK": "Иаарҧштәуп Аблокқәа", - "EXPAND_ALL": "Иаарҧштәуп Аблокқәа", - "DISABLE_BLOCK": "Иаҿыхтәуп Аблок", - "ENABLE_BLOCK": "Иаҿыхтәуп Аблокқәа", - "HELP": "Ацхыраара", - "UNDO": "Иаҟәыхтәуп", - "REDO": "Аиҭаҟаҵара", - "CHANGE_VALUE_TITLE": "Ишәыҧсах аҵакы", - "RENAME_VARIABLE": "Аҽеиҭак ахьӡ ҧсахтәуп", - "RENAME_VARIABLE_TITLE": "Аҽеиҭакқәа'%1' зегь рыхьӡ ҧсахтәуп аҟны:", - "NEW_VARIABLE": "Иаҧҵатәуп аҽеиҭак", - "NEW_VARIABLE_TITLE": "Аҽеиҭак ахьӡ ҿыц:", - "VARIABLE_ALREADY_EXISTS": "Аҽеиҭак ахьӡ '%1' змоу ыҟоуп.", - "DELETE_VARIABLE": "Ианыхтәуп аҽеиҭак '%1'", - "COLOUR_PICKER_HELPURL": "https://ru.wikipedia.org/wiki/Аҧштәы", - "COLOUR_PICKER_TOOLTIP": "Иалышәх аҧштәы", - "COLOUR_RANDOM_TITLE": "иарбанзаалакь аҧштәы", - "COLOUR_RANDOM_TOOLTIP": "Иалнахуеит аҧштәы машәыршақә", - "COLOUR_RGB_TITLE": "аҧштәы аҟынтәи", - "COLOUR_RGB_RED": "аҟаҧшь", - "COLOUR_RGB_GREEN": "аиаҵәа", - "COLOUR_RGB_BLUE": "жәҩангәҧштәы", - "COLOUR_BLEND_TITLE": "еилаҵатәуп", - "COLOUR_BLEND_COLOUR1": "аҧштәы 1", - "COLOUR_BLEND_COLOUR2": "аҧштәы 2", - "COLOUR_BLEND_RATIO": "аҧштәы 1 ахәҭа", - "CONTROLS_REPEAT_HELPURL": "https://ru.wikipedia.org/wiki/Ацикл_(апрограммаркра)", - "CONTROLS_REPEAT_TITLE": "инагӡалатәуп %1 - нтә", - "CONTROLS_REPEAT_INPUT_DO": "инагӡатәуп", - "CONTROLS_REPEAT_TOOLTIP": "Инанагӡоит акомандақәа кырынтә", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "инагӡалатәуп акәзар", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "инагӡалатәуп акәымзар", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Аҭагылазаашьа иашанаҵ, инанагӡалоит акомандақәа.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Аҭагылазаашьа мцнаҵы, инанагӡалоит акомандақәа.", - "CONTROLS_FOR_TITLE": "ацикл %1 ала %2 инаркны %3 рҟынӡа ашьаҿа %4", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ацикл иҭыҵтәуп", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ииастәуп ацикл анаҩстәи ашьаҿахьы", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Иааннакылоит абри ацикл.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Агәҽанҵара:Ари аблок ахархәара амоуп ацикл аҩныҵҟа мацара.", - "CONTROLS_IF_TOOLTIP_1": "Аҭагылазаашьа иашазар, инанагӡоит акомандақәа.", - "CONTROLS_IF_TOOLTIP_2": "Аҭагылазаашьа иашазар, инанагӡоит актәи аблок акомандақәа. Акәымзар инанагӡоит аҩбатәи аблок акомандақәа.", - "CONTROLS_IF_MSG_IF": "акәзар", - "CONTROLS_IF_MSG_ELSEIF": "акәымзар", - "CONTROLS_IF_MSG_ELSE": "акәымзар", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Иацнаҵоит аҭагыазаашьа аблок \"акәзар\" ахь", - "IOS_OK": "OK", - "IOS_CANCEL": "Аҟәыхра", - "IOS_ERROR": "Агха", - "IOS_PROCEDURES_INPUTS": "Аҭаларҭа", - "IOS_PROCEDURES_ADD_INPUT": "+ Иацҵатәуп аҭагаларатә ҽеиҭак", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Аоператорқәа азин рыҭара", - "IOS_VARIABLES_ADD_VARIABLE": "+ Иацҵатәуп аҽеиҭак", - "IOS_VARIABLES_ADD_BUTTON": "Иацҵатәуп", - "IOS_VARIABLES_RENAME_BUTTON": "Ахьӡ аҧсахра", - "IOS_VARIABLES_DELETE_BUTTON": "Ианыхтәуп", - "IOS_VARIABLES_VARIABLE_NAME": "Аҽеиҭак ахьӡ", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Шәара ишәылшом аҽеиҭак азы иҭацәу ахьӡ ахархәара", - "LOGIC_COMPARE_HELPURL": "https://ru.wikipedia.org/wiki/Аиҟарамра", - "LOGIC_COMPARE_TOOLTIP_EQ": "Иҳанаҭоит иҵоуроу аҵакы, иҭагалақәоу еиҟаразар.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Иҳанаҭоит иҵоуроу аҵакы, иҭагалақәоу еиҟарамзар.", - "LOGIC_COMPARE_TOOLTIP_LT": "Иҳанаҭоит иҵоуроу аҵакы, актәи иҭагалоу аҩбатәи аасҭа еиҵазар.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Иҳанаҭоит аҵакы аиаша, актәи иҭагалоу аҩбатәи аасҭа еиҵазар ма иаҟаразар.", - "LOGIC_COMPARE_TOOLTIP_GT": "Иҳанаҭоит аҵакы аиаша, актәи иҭагалоу аҩбатәи аасҭа еиҳазар.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Иҳанаҭоит аҵакы аиаша, актәи иҭагалоу аҩбатәи аасҭа еиҳазар ма иаҟаразар.", - "LOGIC_OPERATION_TOOLTIP_AND": "Иҳанаҭоит аҵакы аиаша, иҭагалоу аҩбагьы иашазар.", - "LOGIC_OPERATION_AND": "и", - "LOGIC_OPERATION_TOOLTIP_OR": "Иҳанаҭоит аҵакы аиаша, иҭагалоу руак иашазар.", - "LOGIC_OPERATION_OR": "ма", - "LOGIC_NEGATE_TITLE": "%1 акәӡам", - "LOGIC_NEGATE_TOOLTIP": "Иҳанаҭоит аҵакы аиаша, иҭагалоу мцызар. Иҳанаҭоит аҵакы амц, иҭагалоу иашазар.", - "LOGIC_BOOLEAN_TRUE": "аиаша", - "LOGIC_BOOLEAN_FALSE": "амц", - "LOGIC_BOOLEAN_TOOLTIP": "Иҳанаҭоит аҵакы аиаша ма амц", - "LOGIC_NULL": "акагьы", - "LOGIC_NULL_TOOLTIP": "Иҳанаҭоит акагьы", - "LOGIC_TERNARY_CONDITION": "иалхтәуп ала", - "LOGIC_TERNARY_IF_TRUE": "аиаша акәзар", - "LOGIC_TERNARY_IF_FALSE": "амц акәзар", - "MATH_NUMBER_HELPURL": "https://ru.wikipedia.org/wiki/Ахыҧхьаӡара", - "MATH_NUMBER_TOOLTIP": "Ахыҧхьаӡара.", - "MATH_ARITHMETIC_HELPURL": "https://ru.wikipedia.org/wiki/Арифметика", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Иҳанаҭоит ҩ-хыҧхьаӡарак реицҵалыҵ.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Иҳанаҭоит ҩ-хыҧхьаӡарак реигырхалыҵ.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Иҳанаҭоит ҩ-хыҧхьаӡарак рышьҭыхлыҵ.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Иҳанаҭоит ҩ-хыҧхьаӡарак ршалыҵ.", - "MATH_SINGLE_OP_ABSOLUTE": "амодуль", - "MATH_SINGLE_TOOLTIP_ABS": "Иҳанаҭоит ахыҧхьаӡара амодуль.", - "MATH_SINGLE_TOOLTIP_NEG": "Иҳанаҭоит иаҿагыло ахыҧхьаӡара.", - "MATH_SINGLE_TOOLTIP_LN": "Иҳанаҭоит ахыҧхьаӡара иҧсабаратәу алагорифм.", - "MATH_SINGLE_TOOLTIP_LOG10": "Иҳанаҭоит ахыҧхьаӡара ажәабатә логари̓фм", - "MATH_TRIG_HELPURL": "https://ru.wikipedia.org/wiki/Атригонометриатә_функциақәа", - "MATH_TRIG_TOOLTIP_SIN": "Иҳанаҭоит асинус градусла.", - "MATH_TRIG_TOOLTIP_COS": "Иҳанаҭоит акосинус градусла.", - "MATH_TRIG_TOOLTIP_TAN": "Иҳанаҭоит атангенс градусла.", - "MATH_TRIG_TOOLTIP_ASIN": "Иҳанаҭоит арксинус градусла.", - "MATH_TRIG_TOOLTIP_ACOS": "Иҳанаҭоит арккосинус градусла.", - "MATH_TRIG_TOOLTIP_ATAN": "Иҳанаҭоит арктангенс градусла.", - "MATH_CONSTANT_HELPURL": "https://ru.wikipedia.org/wiki/Аматематикатә_константа", - "MATH_CONSTANT_TOOLTIP": "Иҳанаҭооит аконстантақәа руак: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) ма ∞ (аҵыхәаҧҵәарадара).", - "MATH_IS_EVEN": "еиҩшо", - "MATH_IS_ODD": "еиҩымшо", - "MATH_IS_PRIME": "имариоу", - "MATH_IS_WHOLE": "аибга", - "MATH_IS_POSITIVE": "иҵоуроу", - "MATH_IS_NEGATIVE": "иҵоурам", - "MATH_IS_DIVISIBLE_BY": "ишоит ала", - "MATH_CHANGE_TITLE": "иеизырҳатәуп %1 %2 рыла", - "MATH_CHANGE_TOOLTIP": "Иацнаҵоит ахыҧхьаӡара аҽеиҭак'%1' ахь.", - "MATH_ROUND_HELPURL": "https://ru.wikipedia.org/wiki/Ахыркәшара", - "MATH_ROUND_OPERATOR_ROUND": "ихыркәшатәуп", - "MATH_ROUND_OPERATOR_ROUNDUP": "ихыркәшатәуп еиҳау ахь", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ихыркәшатәуп еиҵоу ахь", - "MATH_ONLIST_OPERATOR_SUM": "ахьӡынҵа аицҵалыҵ", - "MATH_ONLIST_TOOLTIP_SUM": "Иҳанаҭоит ахьӡынҵа иаҵанакуа ахыҧхьаӡарақәа зегьы реицҵалыҵ.", - "MATH_ONLIST_OPERATOR_MIN": "ахьӡынҵа аҟны иреиҵо", - "MATH_ONLIST_TOOLTIP_MIN": "Иҳанаҭоит ахьӡынҵа аҟны иреицо ахыҧхьаӡара.", - "MATH_ONLIST_OPERATOR_MAX": "ахьӡынҵа аҟны иреиҳау", - "MATH_ONLIST_TOOLTIP_MAX": "Иҳанаҭоит ахьӡынҵа аҟны иреиҳау ахыҧхьаӡара.", - "MATH_ONLIST_OPERATOR_AVERAGE": "ахьӡынҵа арифметикатә бжьара", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Иҳанаҭоит ахьӡынҵа аҟны ахыҧхьаӡарақәа зегьы рарифметикатә бжьара.", - "MATH_ONLIST_OPERATOR_MEDIAN": "ахьӡынҵа амедиана", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Иҳанаҭоит ахьӡынҵа аҟны ахыҧхьаӡарақәа зегьы рмедиана.", - "MATH_ONLIST_OPERATOR_MODE": "ахьӡынҵа амода", - "MATH_ONLIST_OPERATOR_RANDOM": "ахьӡынҵа иарбанзаалакь аелемент", - "MATH_ONLIST_TOOLTIP_RANDOM": "Иҳанаҭоит ахьӡынҵа аҟны иарбанзаалакь елементк.", - "MATH_MODULO_HELPURL": "https://ru.wikipedia.org/wiki/Ашара_цәынхала", - "MATH_MODULO_TITLE": "ацәынха %1 : %2", - "MATH_MODULO_TOOLTIP": "Иҳанаҭоит ацәынха ҩ-хыҧхьаӡарак ршараан.", - "MATH_RANDOM_INT_TITLE": "иарбанзаалакь еибгоу ахыҧхьаӡара %1 инаркны %2 нӡа", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "иарбанзаалакь ахыҧхьашара 0 инаркны (иалаҵаны) 1 аҟынӡа", - "MATH_RANDOM_FLOAT_TOOLTIP": "Иҳанаҭоит иарбанзаалакь ахыҧхьаӡара 0.0 инаркны (иалаҵаны) 1.0 аҟынӡа.", - "TEXT_TEXT_HELPURL": "https://ru.wikipedia.org/wiki/Ацәаҳәатә_хкы", - "TEXT_TEXT_TOOLTIP": "Анбан, ажәа ма ацәаҳәа атеқст аҟны.", - "TEXT_JOIN_TITLE_CREATEWITH": "иаҧҵатәуп атеқст аҟынтәи", - "TEXT_CREATE_JOIN_TITLE_JOIN": "иеиҧшьтәуп", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Иацҵатәуп аелемент атеқст ахь.", - "TEXT_APPEND_TITLE": "%1 ахьы иацҵатәуп атеқст %2", - "TEXT_APPEND_TOOLTIP": "Иацҵатәуп атеқст аҽеиҭак «%1» ахь.", - "TEXT_LENGTH_TITLE": "аура %1", - "TEXT_LENGTH_TOOLTIP": "Иҳанаҭоит асимволқәа рхыҧхьаӡара (апробелқәа алаҵаны) иҟоу атеқст аҟны.", - "TEXT_ISEMPTY_TITLE": "%1 ҭацәуп", - "TEXT_ISEMPTY_TOOLTIP": "Иҳанаҭоит аҵакы аиаша, иҟоу атеқст ҭацәызар.", - "TEXT_INDEXOF_TITLE": "атеқст %1 %2 %3 аҟны", - "TEXT_CHARAT_TITLE": "атеқст %1 %2 аҟны", - "TEXT_CHARAT_FROM_START": "игатәуп анбан №", - "TEXT_CHARAT_FROM_END": "игатәуп анбан № анҵәамҭа аҟынтәи", - "TEXT_CHARAT_FIRST": "игатәуп актәи анбан", - "TEXT_CHARAT_LAST": "игатәуп аҵыхәтәантәи анбан", - "TEXT_CHARAT_RANDOM": "игатәуп иарбанзаалакь нбанк", - "TEXT_CHARAT_TOOLTIP": "Иҳанаҭоит анбан иарбоу апозициа аҟны", - "TEXT_GET_SUBSTRING_TOOLTIP": "Иҳанаҭоит атеқст аҟны иарбоу ахәҭа.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "атеқст аҟны", - "TEXT_GET_SUBSTRING_END_FROM_START": "анбан № ала", - "TEXT_GET_SUBSTRING_END_LAST": "аҵыхәтәантәи анбан ала", - "TEXT_PRINT_TITLE": "икьыҧхьтәуп %1", - "TEXT_PRINT_TOOLTIP": "Иакьыҧхьуеит атеқст, ахыҧхьаӡара ма даҽа обиеқтк.", - "TEXT_REPLACE_MESSAGE0": "иҧсахтәуп %1 %2 ала %3 аҟны", - "LISTS_CREATE_EMPTY_TITLE": "иаҧцатәуп иҭацәу ахьӡынҵа", - "LISTS_CREATE_WITH_INPUT_WITH": "иаҧҵатәуп ахьӡынҵа аҟынтәи", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "ахьӡынҵа", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Иацнаҵоит аелемент ахьӡынҵахьы", - "LISTS_LENGTH_TITLE": "аура %1", - "LISTS_LENGTH_TOOLTIP": "Иҳанаҭоит ахьӡынҵа аура.", - "LISTS_ISEMPTY_TITLE": "%1 ҭацәуп", - "LISTS_ISEMPTY_TOOLTIP": "Иҳанаҭоит аиаша, ахьӡынҵа ҭацәызар.", - "LISTS_INLIST": "ахьӡынҵа аҟны", - "LISTS_GET_INDEX_GET": "игатәуп", - "LISTS_GET_INDEX_GET_REMOVE": "иалхны ианыхтәуп", - "LISTS_GET_INDEX_REMOVE": "ианыхтәуп", - "LISTS_GET_INDEX_FROM_END": "№ анҵәамнҭа аҟынтәи", - "LISTS_GET_INDEX_FIRST": "актәи", - "LISTS_GET_INDEX_LAST": "аҵыхәтәантәи", - "LISTS_GET_INDEX_RANDOM": "иарбанзаалакь", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 - актәи аелемент.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 - аҵыхәтәантәи аелемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Иҳанаҭоит ахьӡынҵа актәи аелемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Иҳанаҭоит ахьӡынҵа аҵыхәтәантәи аелемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Иҳанаҭоит ахьӡынҵа иарбанзаалакь елементк.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Ианнахәуеит ахьӡынҵа актәи аелемент.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Ианнахәуеит ахьӡынҵа аҵыхәтәантәи аелемент.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Ианнахәуеит ахьӡынҵа иарбанзаалакь елементк.", - "LISTS_SET_INDEX_SET": "иаҭатәуп", - "LISTS_SET_INDEX_INSERT": "ибжьаргылатәуп", - "LISTS_SET_INDEX_INPUT_TO": "=", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Иацнаҵоит аелемент ахьӡынҵа анҵәамҭахь.", - "LISTS_GET_SUBLIST_END_FROM_START": "№ ала", - "LISTS_SORT_TITLE": "еилыҧшаатәуп %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Еилыҧшаатәуп ахьӡынҵа акопиа.", - "LISTS_SORT_ORDER_ASCENDING": "еиҵоу-еиҳауала", - "LISTS_SORT_ORDER_DESCENDING": "еиҳау-еиҵоуала", - "LISTS_SORT_TYPE_NUMERIC": "ахыҧхьаӡаратәи", - "LISTS_SORT_TYPE_TEXT": "алфавитла", - "LISTS_SPLIT_TEXT_FROM_LIST": "еизгатәуп атеқст ахьӡынҵа аҟынтәи", - "VARIABLES_GET_TOOLTIP": "Иҳанаҭоит аҽеиҭак аҵакы.", - "VARIABLES_GET_CREATE_SET": "Иаҧҵатәуп аблок \"иаҭатәуп\" %1 азы", - "VARIABLES_SET": "иаҭатәуп %1 = %2", - "PROCEDURES_DEFNORETURN_TITLE": "азы", - "PROCEDURES_DEFNORETURN_PROCEDURE": "иҟаҵатәуп џьара акы", - "PROCEDURES_BEFORE_PARAMS": "аҟынтәи:", - "PROCEDURES_CALL_BEFORE_PARAMS": "аҟынтәи:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Иаҧнаҵоит апроцедура, аҵакы ҳазымҭо.", - "PROCEDURES_DEFNORETURN_COMMENT": "Абри афункциа ахҳәа азыҟашәҵа...", - "PROCEDURES_DEFRETURN_RETURN": "ирхынҳәтәуп", - "PROCEDURES_DEFRETURN_TOOLTIP": "Иаҧнаҵоит апроцедура, аҵакы ҳазҭо.", - "PROCEDURES_ALLOW_STATEMENTS": "Аоператорқәа азин рыҭара", - "PROCEDURES_CALLNORETURN_HELPURL": "https://ru.wikipedia.org/wiki/Ацхыраагӡатә программа", - "PROCEDURES_CALLRETURN_HELPURL": "https://ru.wikipedia.org/wiki/Ацхыраагӡатә программа", - "PROCEDURES_MUTATORCONTAINER_TITLE": "апараметрқәа", - "PROCEDURES_MUTATORARG_TITLE": "апараметр ахьӡ:", - "PROCEDURES_CREATE_DO": "Иаҧҵатәуп ааҧхьара'%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Актәи аҵакы иашазар, иҳанаҭоит аҩбатәи аҵакы.", - "PROCEDURES_IFRETURN_WARNING": "Агәаҽанҵара: Ари аблок ахархәара ауеит афункциа аҧҵара аҟны." -} diff --git a/lib/blockly/msg/json/ar.json b/lib/blockly/msg/json/ar.json deleted file mode 100644 index 98d256f..0000000 --- a/lib/blockly/msg/json/ar.json +++ /dev/null @@ -1,372 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Meno25", - "Test Create account", - "아라", - "Diyariq", - "محمد أحمد عبد الفتاح", - "Moud hosny", - "ديفيد", - "Samir", - "Mido", - "DonAdnan" - ] - }, - "VARIABLES_DEFAULT_NAME": "البند", - "UNNAMED_KEY": "غير مسمى", - "TODAY": "اليوم", - "DUPLICATE_BLOCK": "مكرر", - "ADD_COMMENT": "أضف تعليقًا", - "REMOVE_COMMENT": "أزل التعليق", - "DUPLICATE_COMMENT": "تعليق مكرر", - "EXTERNAL_INPUTS": "ادخال خارجي", - "INLINE_INPUTS": "ادخال خطي", - "DELETE_BLOCK": "احذف القطعة", - "DELETE_X_BLOCKS": "احذف %1 قطع", - "DELETE_ALL_BLOCKS": "حذف %1 قطعة؟", - "CLEAN_UP": "ترتيب القطع", - "COLLAPSE_BLOCK": "إخفاء القطعة", - "COLLAPSE_ALL": "إخفاء القطع", - "EXPAND_BLOCK": "وسٌّع القطعة", - "EXPAND_ALL": "وسٌّع القطع", - "DISABLE_BLOCK": "عطّل القطعة", - "ENABLE_BLOCK": "أعد تفعيل القطعة", - "HELP": "مساعدة", - "UNDO": "رجوع", - "REDO": "إعادة", - "CHANGE_VALUE_TITLE": "تغيير قيمة:", - "RENAME_VARIABLE": "إعادة تسمية المتغير...", - "RENAME_VARIABLE_TITLE": "إعادة تسمية كافة المتغيرات '%1' إلى:", - "NEW_VARIABLE": "إنشاء متغير...", - "NEW_STRING_VARIABLE": "انشاء متغير نصي...", - "NEW_NUMBER_VARIABLE": "انشاء متغير رقمي...", - "NEW_COLOUR_VARIABLE": "انشاء متغير لوني...", - "NEW_VARIABLE_TYPE_TITLE": "نوع متغير جديد:", - "NEW_VARIABLE_TITLE": "اسم المتغير الجديد:", - "VARIABLE_ALREADY_EXISTS": "المتغير '%1' موجود بالفعل", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "متغير بأسم '%1' معرف من نوع اخر : '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "حذف%1 1 استخدامات المتغير '%2'؟", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "لايمكن حذف متغير \"%1\" بسبب انه جزء من الدالة \"%2\"", - "DELETE_VARIABLE": "حذف المتغير %1", - "COLOUR_PICKER_HELPURL": "https://ar.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "اختر لون من اللوحة.", - "COLOUR_RANDOM_TITLE": "لون عشوائي", - "COLOUR_RANDOM_TOOLTIP": "اختر لون بشكل عشوائي.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "لون مع", - "COLOUR_RGB_RED": "أحمر", - "COLOUR_RGB_GREEN": "أخضر", - "COLOUR_RGB_BLUE": "أزرق", - "COLOUR_RGB_TOOLTIP": "إنشئ لون بالكمية المحددة من الأحمر, الأخضر والأزرق. بحيث يجب تكون كافة القيم بين 0 و 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "دمج", - "COLOUR_BLEND_COLOUR1": "اللون 1", - "COLOUR_BLEND_COLOUR2": "اللون 2", - "COLOUR_BLEND_RATIO": "نسبة", - "COLOUR_BLEND_TOOLTIP": "دمج لونين ببعضهما البعض بنسبة (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "كرر %1 مرات", - "CONTROLS_REPEAT_INPUT_DO": "نفّذ", - "CONTROLS_REPEAT_TOOLTIP": "نفّذ بعض الأوامر عدة مرات.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "اكرّر طالما", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "اكرّر حتى", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "بما ان القيمة صحيحة, نفّذ بعض الأوامر.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "بما ان القيمة خاطئة, نفّذ بعض الأوامر.", - "CONTROLS_FOR_TOOLTIP": "اجعل المتغير %1 يأخذ القيم من رقم البداية الى رقم النهاية، وقم بالعد داخل المجال المحدد، وطبق أوامر القطع المحددة.", - "CONTROLS_FOR_TITLE": "عد بـ %1 من %2 إلى %3 بمعدل %4", - "CONTROLS_FOREACH_TITLE": "لكل عنصر %1 في قائمة %2", - "CONTROLS_FOREACH_TOOLTIP": "لكل عنصر في قائمة ما، عين المتغير '%1' لهذا الغنصر، ومن ثم نفذ بعض الأوامر.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "اخرج من الحلقة", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "استمر ابتداءا من التكرار التالي من الحلقة", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "اخرج من الحلقة الحالية.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "تخط ما تبقى من هذه الحلقة، واستمر ابتداءا من التكرار التالي.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "تحذير: يمكن استخدام هذه القطعة فقط داخل حلقة.", - "CONTROLS_IF_TOOLTIP_1": "إذا كانت قيمة ما تساوي صحيح, إذن قم بتنفيذ أمر ما.", - "CONTROLS_IF_TOOLTIP_2": "إذا كانت قيمة ما تساوي \"صحيح\"، إذن قم بتنفيذ أول قطعة من الأوامر. والا ،قم بتنفيذ القطعة الثانية من الأوامر.", - "CONTROLS_IF_TOOLTIP_3": "إذا كانت القيمة الأولى تساوي \"صحيح\", إذن قم بتنفيذ القطعة الأولى من الأوامر. والا, إذا كانت القيمة الثانية تساوي \"صحيح\", قم بتنفيذ القطعة الثانية من الأوامر.", - "CONTROLS_IF_TOOLTIP_4": "إذا كانت القيمة الأولى تساوي \"صحيح\", إذن قم بتنفيذ القطعة الأولى من الأوامر. والا , إذا كانت القيمة الثانية تساوي \"صحيح\", قم بتنفيذ القطعة الثانية من الأوامر. إذا لم تكن هناك أي قيمة تساوي صحيح, قم بتنفيذ آخر قطعة من الأوامر.", - "CONTROLS_IF_MSG_IF": "إذا", - "CONTROLS_IF_MSG_ELSEIF": "وإﻻ إذا", - "CONTROLS_IF_MSG_ELSE": "والا", - "CONTROLS_IF_IF_TOOLTIP": "أضف, إزل, أو أعد ترتيب المقاطع لإعادة تكوين القطعة الشرطية \"إذا\".", - "CONTROLS_IF_ELSEIF_TOOLTIP": "إضف شرطا إلى القطعة الشرطية \"إذا\".", - "CONTROLS_IF_ELSE_TOOLTIP": "أضف شرط \"نهاية، إجمع\" إلى القطعة الشرطية \"إذا\".", - "IOS_OK": "أوافق", - "IOS_CANCEL": "إلغاء", - "IOS_ERROR": "خطأ", - "IOS_PROCEDURES_INPUTS": "المدخلات", - "IOS_PROCEDURES_ADD_INPUT": "+اضافة ادخال", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "العبارات المسموحة", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "هذه الدالة لها مدخلات مكررة.", - "IOS_VARIABLES_ADD_VARIABLE": "+اضف متغير", - "IOS_VARIABLES_ADD_BUTTON": "أضف", - "IOS_VARIABLES_RENAME_BUTTON": "أعد التسمية", - "IOS_VARIABLES_DELETE_BUTTON": "احذف", - "IOS_VARIABLES_VARIABLE_NAME": "اسم المتغير", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "لا يمكنك استخدام اسم متغير فارغ.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "يرجع صحيح إذا كان كلا المدخلات مساوية بعضها البعض.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "يرجع صحيح إذا كانت كلا المدخلات غير مساوية لبعضها البعض.", - "LOGIC_COMPARE_TOOLTIP_LT": "يرجع صحيح إذا كان الإدخال الأول أصغر من الإدخال الثاني.", - "LOGIC_COMPARE_TOOLTIP_LTE": "يرجع صحيح إذا كان الإدخال الأول أصغر من أو يساوي الإدخال الثاني.", - "LOGIC_COMPARE_TOOLTIP_GT": "يرجع صحيح إذا كان الإدخال الأول أكبر من الإدخال الثاني.", - "LOGIC_COMPARE_TOOLTIP_GTE": "يرجع صحيح إذا كان الإدخال الأول أكبر من أو يساوي الإدخال الثاني.", - "LOGIC_OPERATION_TOOLTIP_AND": "ترجع صحيح إذا كان كلا المٌدخلات صحيح.", - "LOGIC_OPERATION_AND": "و", - "LOGIC_OPERATION_TOOLTIP_OR": "ترجع صحيح إذا كان واحد على الأقل من المدخلات صحيح.", - "LOGIC_OPERATION_OR": "أو", - "LOGIC_NEGATE_TITLE": "ليس %1", - "LOGIC_NEGATE_TOOLTIP": "يرجع صحيح إذا كان الإدخال خاطئ . يرجع خاطئ إذا كان الإدخال صحيح.", - "LOGIC_BOOLEAN_TRUE": "صحيح", - "LOGIC_BOOLEAN_FALSE": "خاطئ", - "LOGIC_BOOLEAN_TOOLTIP": "يرجع صحيح أو خاطئ.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "فارغ", - "LOGIC_NULL_TOOLTIP": "ترجع ملغى.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "اختبار", - "LOGIC_TERNARY_IF_TRUE": "إذا كانت العبارة صحيحة", - "LOGIC_TERNARY_IF_FALSE": "إذا كانت العبارة خاطئة", - "LOGIC_TERNARY_TOOLTIP": "تحقق الشرط في 'الاختبار'. إذا كان الشرط صحيح، يقوم بإرجاع قيمة 'اذا كانت العبارة صحيحة'؛ خلاف ذلك يرجع قيمة 'اذا كانت العبارة خاطئة'.", - "MATH_NUMBER_HELPURL": "https://ar.wikipedia.org/wiki/%D8%B9%D8%AF%D8%AF", - "MATH_NUMBER_TOOLTIP": "عدد ما.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "جيب", - "MATH_TRIG_COS": "جيب تمام", - "MATH_TRIG_TAN": "ظل", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "يرجع مجموع الرقمين.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "يرجع الفرق بين الرقمين.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "يرجع حاصل ضرب الرقمين.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "يرجع حاصل قسمة الرقمين.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "يرجع الرقم الأول مرفوع إلى تربيع الرقم الثاني.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "الجذر التربيعي", - "MATH_SINGLE_TOOLTIP_ROOT": "يرجع الجذر التربيعي للرقم.", - "MATH_SINGLE_OP_ABSOLUTE": "مطلق", - "MATH_SINGLE_TOOLTIP_ABS": "يرجع القيمة المطلقة لرقم.", - "MATH_SINGLE_TOOLTIP_NEG": "يرجع عدد سالب.", - "MATH_SINGLE_TOOLTIP_LN": "يرجع اللوغاريتم الطبيعي لرقم.", - "MATH_SINGLE_TOOLTIP_LOG10": "يرجع لوغاريتم عدد معين للاساس 10.", - "MATH_SINGLE_TOOLTIP_EXP": "يرجع ه‍ (e) مرفوعا لأس بقيمة الرقم المدخل.", - "MATH_SINGLE_TOOLTIP_POW10": "يرجع مضروب الرقم 10 في نفسه .", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "يرجع جيب التمام لدرجة (لا زواية نصف قطرية).", - "MATH_TRIG_TOOLTIP_COS": "يرجع جيب التمام لدرجة (لا زواية نصف قطرية).", - "MATH_TRIG_TOOLTIP_TAN": "يرجع الظل لدرجة (لا دائرة نصف قطرية).", - "MATH_TRIG_TOOLTIP_ASIN": "يرجع قوس الجيب للرقم.", - "MATH_TRIG_TOOLTIP_ACOS": "يرجع قوس جيب التمام لرقم.", - "MATH_TRIG_TOOLTIP_ATAN": "يرجع قوس الظل للرقم.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "ير جع واحد من الثوابت الشائعة : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "هو زوجي", - "MATH_IS_ODD": "هو فرذي", - "MATH_IS_PRIME": "هو أولي", - "MATH_IS_WHOLE": "هو صحيح", - "MATH_IS_POSITIVE": "هو موجب", - "MATH_IS_NEGATIVE": "هو سالب", - "MATH_IS_DIVISIBLE_BY": "قابل للقسمة", - "MATH_IS_TOOLTIP": "تحقق إذا كان عدد ما زوجيا، فرذيا, أوليا، صحيحا،موجبا أو سالبا، أو إذا كان قابلا للقسمة على عدد معين. يرجع صحيح أو خاطئ.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "غير %1 بـ %2", - "MATH_CHANGE_TOOLTIP": "إضف رقم إلى متغير '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "تقريب الى اكبر عدد صحيح أو الى اصغر عدد صحيح.", - "MATH_ROUND_OPERATOR_ROUND": "تقريب", - "MATH_ROUND_OPERATOR_ROUNDUP": "تقريب الى اكبر عدد صحيح", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "تقريب إلى اصغر عدد صحيح", - "MATH_ONLIST_OPERATOR_SUM": "مجموع القائمة", - "MATH_ONLIST_TOOLTIP_SUM": "يرجع مجموع كافة الأرقام الموجودة في القائمة.", - "MATH_ONLIST_OPERATOR_MIN": "الحد الأدنى من قائمة", - "MATH_ONLIST_TOOLTIP_MIN": "يرجع أصغر رقم في القائمة.", - "MATH_ONLIST_OPERATOR_MAX": "الحد الأقصى لقائمة", - "MATH_ONLIST_TOOLTIP_MAX": "يرجع أكبر عدد في القائمة.", - "MATH_ONLIST_OPERATOR_AVERAGE": "متوسط القائمة", - "MATH_ONLIST_TOOLTIP_AVERAGE": "يرجع المعدل (الوسط الحسابي) للقيم الرقمية في القائمة.", - "MATH_ONLIST_OPERATOR_MEDIAN": "متوسط القائمة", - "MATH_ONLIST_TOOLTIP_MEDIAN": "يرجع وسيط العدد في القائمة.", - "MATH_ONLIST_OPERATOR_MODE": "منوال القائمة", - "MATH_ONLIST_TOOLTIP_MODE": "يرجع قائمة من العنصر أو العناصر الأكثر شيوعاً في القائمة.", - "MATH_ONLIST_OPERATOR_STD_DEV": "الانحراف المعياري للقائمة", - "MATH_ONLIST_TOOLTIP_STD_DEV": "يرجع الانحراف المعياري للقائمة.", - "MATH_ONLIST_OPERATOR_RANDOM": "عنصر عشوائي من القائمة", - "MATH_ONLIST_TOOLTIP_RANDOM": "يرجع عنصر عشوائي من القائمة.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "باقي %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "يرجع الباقي من قسمة الرقمين.", - "MATH_CONSTRAIN_TITLE": "تقيد %1 منخفض %2 مرتفع %3", - "MATH_CONSTRAIN_TOOLTIP": "تقييد العددليكون بين الحدود المحددة (ضمناً).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": " عدد صحيح عشوائي من %1 إلى %2", - "MATH_RANDOM_INT_TOOLTIP": "يرجع عدد صحيح عشوائي بين حدين محددين, ضمنيا.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "كسر عشوائي", - "MATH_RANDOM_FLOAT_TOOLTIP": "يرجع جزء عشوائي بين 0.0 (ضمنياً) و 1.0 (خارجيا).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 من X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "عودة قوس ظل النقطة (س، ص) بالدرجات من -180 إلى 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "حرف أو كلمة أو سطر من النص.", - "TEXT_JOIN_TITLE_CREATEWITH": "انشئ نص مع", - "TEXT_JOIN_TOOLTIP": "أنشئ جزء من النص بالصاق أي عدد من العناصر ببعضها البعض.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "الانضمام إلى", - "TEXT_CREATE_JOIN_TOOLTIP": "أضف, إحذف, أو أعد ترتيب المقاطع لإعادة تكوين النص من القطع التالية.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "إضف عنصر إلى النص.", - "TEXT_APPEND_TITLE": "إلى %1 إلصق نص %2", - "TEXT_APPEND_TOOLTIP": "إلصق جزءا من النص إلى متغير '%1'.", - "TEXT_LENGTH_TITLE": "طول %1", - "TEXT_LENGTH_TOOLTIP": "تقوم بإرجاع عدد الاحرف (بما في ذلك الفراغات) في النص المقدم.", - "TEXT_ISEMPTY_TITLE": "%1 فارغ", - "TEXT_ISEMPTY_TOOLTIP": "يرجع \"صحيح\" إذا كان النص المقدم فارغ.", - "TEXT_INDEXOF_TOOLTIP": "تقوم بإرجاع مؤشر التواجد الأول/الأخير للنص الأول في النص الثاني. تقوم بإرجاع %1 إذا لم يتم العثور على النص.", - "TEXT_INDEXOF_TITLE": "في النص %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "ابحث عن التواجد الأول للنص", - "TEXT_INDEXOF_OPERATOR_LAST": "ابحث عن التواجد الأخير للنص", - "TEXT_CHARAT_TITLE": "في النص %1 %2", - "TEXT_CHARAT_FROM_START": "الحصول على الحرف #", - "TEXT_CHARAT_FROM_END": "الحصول على الحرف # من نهاية", - "TEXT_CHARAT_FIRST": "احصل على الحرف الأول", - "TEXT_CHARAT_LAST": "احصل على آخر حرف", - "TEXT_CHARAT_RANDOM": "الحصول على حرف عشوائي", - "TEXT_CHARAT_TOOLTIP": "يرجع حرف ما في الموضع المحدد.", - "TEXT_GET_SUBSTRING_TOOLTIP": "يرجع جزء معين من النص.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "في النص", - "TEXT_GET_SUBSTRING_START_FROM_START": "الحصول على سلسلة حروف فرعية من الحرف #", - "TEXT_GET_SUBSTRING_START_FROM_END": "الحصول على سلسلة حروف فرعية من الحرف # من نهاية", - "TEXT_GET_SUBSTRING_START_FIRST": "الحصول على سلسلة فرعية من الحرف الأول", - "TEXT_GET_SUBSTRING_END_FROM_START": "إلى حرف #", - "TEXT_GET_SUBSTRING_END_FROM_END": "إلى حرف # من نهاية", - "TEXT_GET_SUBSTRING_END_LAST": "إلى آخر حرف", - "TEXT_CHANGECASE_TOOLTIP": "يرجع نسخة من النص في حالة مختلفة.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "الى حروف كبيرة", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "الى حروف صغيرة", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "الى حروف العنوان", - "TEXT_TRIM_TOOLTIP": "يرجع نسخة من النص مع حذف من أحد أو كلا الفراغات من أطرافه.", - "TEXT_TRIM_OPERATOR_BOTH": "إزالة الفراغات من كلا الجانبين", - "TEXT_TRIM_OPERATOR_LEFT": "إزالة الفراغات من الجانب الأيسر من", - "TEXT_TRIM_OPERATOR_RIGHT": "إزالة الفراغات من الجانب الأيمن من", - "TEXT_PRINT_TITLE": "اطبع %1", - "TEXT_PRINT_TOOLTIP": "اطبع النص المحدد أو العدد أو قيمة أخرى.", - "TEXT_PROMPT_TYPE_TEXT": "انتظر ادخال المستخدم لنص ما مع اظهار رسالة", - "TEXT_PROMPT_TYPE_NUMBER": "انتظر ادخال المستخدم لرقم ما مع اظهار رسالة", - "TEXT_PROMPT_TOOLTIP_NUMBER": "انتظر ادخال المستخذم لرقم ما.", - "TEXT_PROMPT_TOOLTIP_TEXT": "انتظر ادخال المستخدم لنص ما.", - "TEXT_COUNT_MESSAGE0": "العدد %1 في %2", - "TEXT_COUNT_TOOLTIP": "احسب كم عدد بعض النصوص تتكرر ضمن نص اخر.", - "TEXT_REPLACE_MESSAGE0": "بدل %1 ب %2 في %3", - "TEXT_REPLACE_TOOLTIP": "استبدل جميع حالات حدوث بعض النصوص داخل نص آخر.", - "TEXT_REVERSE_MESSAGE0": "عكس %1", - "TEXT_REVERSE_TOOLTIP": "يعكس ترتيب حروف النص", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "إنشئ قائمة فارغة", - "LISTS_CREATE_EMPTY_TOOLTIP": "تقوم بإرجاع قائمة، طولها 0, لا تحتوي على أية سجلات البيانات", - "LISTS_CREATE_WITH_TOOLTIP": "أنشىء قائمة من أي عدد من العناصر.", - "LISTS_CREATE_WITH_INPUT_WITH": "أتشئ قائمة مع", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "قائمة", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "أضف, إزل, أو أعد ترتيب المقاطع لإعادة تكوين القطعة قائمة القطع التالية.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "أضف عنصرا إلى القائمة.", - "LISTS_REPEAT_TOOLTIP": "انشئ قائمة تتألف من القيمة المعطاة متكررة لعدد محدد من المرات.", - "LISTS_REPEAT_TITLE": "إنشئ قائمة مع العنصر %1 %2 مرات", - "LISTS_LENGTH_TITLE": "الطول من %1", - "LISTS_LENGTH_TOOLTIP": "تقوم بإرجاع طول قائمة.", - "LISTS_ISEMPTY_TITLE": "%1 فارغ", - "LISTS_ISEMPTY_TOOLTIP": "يرجع \"صحيح\" إذا كانت القائمة فارغة.", - "LISTS_INLIST": "في قائمة", - "LISTS_INDEX_OF_FIRST": "ابحث على على التواجد الأول للعنصر", - "LISTS_INDEX_OF_LAST": "ابحث على التواجد الأخير للعنصر", - "LISTS_INDEX_OF_TOOLTIP": "تقوم بإرجاع مؤشر التواجد الأول/الأخير في القائمة. تقوم بإرجاع %1 إذا لم يتم العثور على النص.", - "LISTS_GET_INDEX_GET": "احصل على", - "LISTS_GET_INDEX_GET_REMOVE": "احصل على و ازل", - "LISTS_GET_INDEX_REMOVE": "ازل", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# من نهاية", - "LISTS_GET_INDEX_FIRST": "أول", - "LISTS_GET_INDEX_LAST": "أخير", - "LISTS_GET_INDEX_RANDOM": "عشوائي", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 هو العنصر الأول.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 هو العنصر الأخير.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "يقوم بإرجاع العنصر في الموضع المحدد في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "يرجع العنصر الأول في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "يرجع العنصر الأخير في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "يرجع عنصرا عشوائيا في قائمة.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "يزيل ويقوم بإرجاع العنصر في الموضع المحدد في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "يزيل ويرجع العنصر الأول في قائمة.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "يزيل ويرجع العنصر الأخير في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "يزيل و يرجع عنصرا عشوائيا في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "يزيل العنصر الموجود في الموضع المحدد في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "يزيل العنصر الأول في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "يزيل العنصر الأخير في قائمة ما.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "يزيل عنصرا عشوائيا في قائمة ما.", - "LISTS_SET_INDEX_SET": "تعيين", - "LISTS_SET_INDEX_INSERT": "أدخل في", - "LISTS_SET_INDEX_INPUT_TO": "مثل", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "يحدد العنصر في الموضع المحدد في قائمة ما.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "يحدد العنصر الأول في قائمة.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "يحدد العنصر الأخير في قائمة.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "يحدد عنصرا عشوائيا في قائمة.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "يقوم بإدخال العنصر في الموضع المحدد في قائمة ما.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "يقوم بإدراج هذا العنصر في بداية قائمة.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "ألصق هذا العنصر بنهاية قائمة.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "ادخل العنصر عشوائياً في القائمة.", - "LISTS_GET_SUBLIST_START_FROM_START": "احصل على قائمة فرعية من #", - "LISTS_GET_SUBLIST_START_FROM_END": "احصل على قائمة فرعية من # من نهاية", - "LISTS_GET_SUBLIST_START_FIRST": "احصل على قائمة فرعية من الأول", - "LISTS_GET_SUBLIST_END_FROM_START": "إلى #", - "LISTS_GET_SUBLIST_END_FROM_END": "إلى # من نهاية", - "LISTS_GET_SUBLIST_END_LAST": "إلى الأخير", - "LISTS_GET_SUBLIST_TOOLTIP": "يقوم بإنشاء نسخة من الجزء المحدد من قائمة ما.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "رتب %1 %2 %3", - "LISTS_SORT_TOOLTIP": "فرز نسخة من القائمة.", - "LISTS_SORT_ORDER_ASCENDING": "تصاعديا", - "LISTS_SORT_ORDER_DESCENDING": "تنازليا", - "LISTS_SORT_TYPE_NUMERIC": "رقمي", - "LISTS_SORT_TYPE_TEXT": "أبجديًا", - "LISTS_SORT_TYPE_IGNORECASE": "أبجديا، وتجاهل الحالة", - "LISTS_SPLIT_LIST_FROM_TEXT": "إعداد قائمة من النصوص", - "LISTS_SPLIT_TEXT_FROM_LIST": "إعداد نص من القائمة", - "LISTS_SPLIT_WITH_DELIMITER": "مع محدد", - "LISTS_SPLIT_TOOLTIP_SPLIT": "تقسيم النص إلى قائمة من النصوص، وكسر في كل محدد", - "LISTS_SPLIT_TOOLTIP_JOIN": "ضم قائمة النصوص في نص واحد، مفصولة بواسطة محدد.", - "LISTS_REVERSE_MESSAGE0": "عكس %1", - "LISTS_REVERSE_TOOLTIP": "عكس نسخة من القائمة.", - "VARIABLES_GET_TOOLTIP": "يرجع قيمة هذا المتغير.", - "VARIABLES_GET_CREATE_SET": "انشئ 'التعيين %1'", - "VARIABLES_SET": "تعيين %1 إلى %2", - "VARIABLES_SET_TOOLTIP": "تعيين هذا المتغير لتكون مساوية للقيمة المدخلة.", - "VARIABLES_SET_CREATE_GET": "انشئ 'احصل على %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_DEFNORETURN_TITLE": "إلى", - "PROCEDURES_DEFNORETURN_PROCEDURE": "القيام بشيء ما", - "PROCEDURES_BEFORE_PARAMS": "مع:", - "PROCEDURES_CALL_BEFORE_PARAMS": "مع:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "انشئ دالة بدون مخرجات .", - "PROCEDURES_DEFNORETURN_COMMENT": "صف هذه الوظيفة...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_DEFRETURN_RETURN": "يرجع", - "PROCEDURES_DEFRETURN_TOOLTIP": "انشئ دالة مع المخرجات.", - "PROCEDURES_ALLOW_STATEMENTS": "اسمح بالبيانات", - "PROCEDURES_DEF_DUPLICATE_WARNING": "تحذير: هذه الدالة تحتوي على معلمات مكررة.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "تشغيل الدالة المعرفة من قبل المستخدم '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "تشغيل الدالة المعرفة من قبل المستخدم %1 واستخدام مخرجاتها.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "المدخلات", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "إضافة أو إزالة أو إعادة ترتيب المدخلات لهذه المهمة.", - "PROCEDURES_MUTATORARG_TITLE": "اسم الإدخال:", - "PROCEDURES_MUTATORARG_TOOLTIP": "أضف مدخلا إلى الوظيفة.", - "PROCEDURES_HIGHLIGHT_DEF": "تسليط الضوء على تعريف الدالة", - "PROCEDURES_CREATE_DO": "إنشئ '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "إذا كانت القيمة صحيحة ، اذان قم بارجاع القيمة الثانية.", - "PROCEDURES_IFRETURN_WARNING": "تحذير:هذه القطعة تستخدم فقط داخل تعريف دالة.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "قل شيئا...", - "COLLAPSED_WARNINGS_WARNING": "الكتل المطوية تحتوي على تحذيرات." -} diff --git a/lib/blockly/msg/json/az.json b/lib/blockly/msg/json/az.json deleted file mode 100644 index 6bfec57..0000000 --- a/lib/blockly/msg/json/az.json +++ /dev/null @@ -1,358 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Cekli829", - "AZISS", - "Masalli qasimli", - "Adil" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "TODAY": "Bugün", - "DUPLICATE_BLOCK": "Dublikat", - "ADD_COMMENT": "Şərh əlavə et", - "REMOVE_COMMENT": "Şərhi sil", - "DUPLICATE_COMMENT": "Şərhin nüsxəsini yarat", - "EXTERNAL_INPUTS": "Xarici girişlər", - "INLINE_INPUTS": "Sətiriçi girişlər", - "DELETE_BLOCK": "Bloku sil", - "DELETE_X_BLOCKS": "%1 bloku sil", - "DELETE_ALL_BLOCKS": "Bütün %1 blok silinsin?", - "CLEAN_UP": "Blokları təmizlə", - "COLLAPSE_BLOCK": "Bloku yığ", - "COLLAPSE_ALL": "Blokları yığ", - "EXPAND_BLOCK": "Bloku aç", - "EXPAND_ALL": "Blokları aç", - "DISABLE_BLOCK": "Bloku söndür", - "ENABLE_BLOCK": "Bloku aktivləşdir", - "HELP": "Kömək", - "UNDO": "Geri", - "REDO": "İrəli", - "CHANGE_VALUE_TITLE": "Qiyməti dəyiş:", - "RENAME_VARIABLE": "Dəyişənin adını dəyiş...", - "RENAME_VARIABLE_TITLE": "Bütün '%1' dəyişənlərinin adını buna dəyiş:", - "NEW_VARIABLE": "Yeni dəyişən...", - "NEW_STRING_VARIABLE": "Yeni sətir dəyişəni...", - "NEW_NUMBER_VARIABLE": "Yeni rəqəm dəyişəni...", - "NEW_COLOUR_VARIABLE": "Yeni rəng dəyişəni...", - "NEW_VARIABLE_TYPE_TITLE": "Yeni dəyişənin tipi:", - "NEW_VARIABLE_TITLE": "Yeni dəyişənin adı:", - "VARIABLE_ALREADY_EXISTS": "'%1' adlı dəyişən artıq mövcuddur.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%1' adlı dəyişən artıq '%2': tipində istifadə edilir .", - "DELETE_VARIABLE_CONFIRMATION": "'%2' dəyişəninin %1 istifadəsini silək?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "'%1' dəyişənini silmək mümkün deyil, çünki o '%2' funksiyasının təyin hissəsidir", - "DELETE_VARIABLE": "'%1' adlı dəyişəni sil", - "COLOUR_PICKER_HELPURL": "https://az.wikipedia.org/wiki/Rəng", - "COLOUR_PICKER_TOOLTIP": "Palitradan bir rəng seçin.", - "COLOUR_RANDOM_TITLE": "təsadüfi rəng", - "COLOUR_RANDOM_TOOLTIP": "Təsadüfi bir rəng seçin.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "rənglə", - "COLOUR_RGB_RED": "qırmızı", - "COLOUR_RGB_GREEN": "yaşıl", - "COLOUR_RGB_BLUE": "mavi", - "COLOUR_RGB_TOOLTIP": "Qırmızı, yaşıl və mavinin göstərilən miqdarı ilə bir rəng düzəlt. Bütün qiymətlər 0 ilə 100 arasında olmalıdır.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "qarışdır", - "COLOUR_BLEND_COLOUR1": "rəng 1", - "COLOUR_BLEND_COLOUR2": "rəng 2", - "COLOUR_BLEND_RATIO": "nisbət", - "COLOUR_BLEND_TOOLTIP": "İki rəngi verilmiş nisbətdə (0,0 - 1,0) qarışdırır.", - "CONTROLS_REPEAT_HELPURL": "https://az.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 dəfə təkrar et", - "CONTROLS_REPEAT_INPUT_DO": "icra et", - "CONTROLS_REPEAT_TOOLTIP": "Bəzi əmrləri bir neçə dəfə yerinə yetir.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "təkrar et, hələ ki", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "təkrar et, ta ki", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Hələ ki, qiymət \"doğru\"dur, bəzi əmrləri yerinə yetir.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Hələ ki, qiymət \"yalan\"dır, bəzi əmrləri yerinə yetir.", - "CONTROLS_FOR_TOOLTIP": "\"%1\" dəyişəni başlanğıc ədəddən son ədədə qədər göstərilən aralıqla qiymətlər aldıqca göstərilən blokları yerinə yetir.", - "CONTROLS_FOR_TITLE": "say: %1 %2 ilə başlayıb, %3 qiymətinə kimi %4 qədər dəyiş", - "CONTROLS_FOREACH_TITLE": "hər element üçün %1 siyahıda %2", - "CONTROLS_FOREACH_TOOLTIP": "Siyahıdakı hər element üçün \"%1\" dəyişənini elementə mənimsət və bundan sonra bəzi əmrləri yerinə yetir.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "dövrdən çıx", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "dövrün növbəti addımından davam et", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Cari dövrdən çıx.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Bu dövrün qalanını ötür və növbəti addımla davam et.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Xəbərdarlıq: Bu blok ancaq dövr daxilində istifadə oluna bilər.", - "CONTROLS_IF_TOOLTIP_1": "Əgər qiymət doğrudursa, onda bəzi əmrləri yerinə yetir.", - "CONTROLS_IF_TOOLTIP_2": "Əgər qiymət doğrudursa, onda birinci əmrlər blokunu yerinə yetir. Əks halda isə ikinci əmrlər blokunu yerinə yetir.", - "CONTROLS_IF_TOOLTIP_3": "Əgər birinci qiymət doğrudursa, onda birinci əmrlər blokunu yerinə yetir. Əks halda əgər ikinci qiymət doğrudursa, onda ikinci əmrlər blokunu yerinə yetir.", - "CONTROLS_IF_TOOLTIP_4": "Əgər birinci qiymət doğrudursa, onda birinci əmrlər blokunu yerinə yetir. Əks halda əgər ikinci qiymət doğrudursa, onda ikinci əmrlər blokunu yerinə yetir. Əgər qiymətlərdən heç biri doğru deyilsə, onda axırıncı əmrlər blokunu yerinə yetir.", - "CONTROLS_IF_MSG_IF": "əgər", - "CONTROLS_IF_MSG_ELSEIF": "əks halda əgər", - "CONTROLS_IF_MSG_ELSE": "əks halda", - "CONTROLS_IF_IF_TOOLTIP": "Bu \"əgər\" blokunu dəyişdirmək üçün bölümlərin yenisini əlavə et, sil və ya yerini dəyiş.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "\"Əgər\" blokuna bir şərt əlavə et.", - "CONTROLS_IF_ELSE_TOOLTIP": "\"Əgər\" blokuna qalan bütün halları əhatə edəb son bir şərt əlavə et.", - "IOS_OK": "OK", - "IOS_CANCEL": "Ləğv et", - "IOS_ERROR": "Xəta", - "IOS_PROCEDURES_INPUTS": "GİRİŞ", - "IOS_PROCEDURES_ADD_INPUT": "+ Giriş əlavə et", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Operatorlara icazə", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Bu funksiyada təkrarlanan giriş dəyişənləri vardır.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Dəyişən əlavə et", - "IOS_VARIABLES_ADD_BUTTON": "Əlavə et", - "IOS_VARIABLES_RENAME_BUTTON": "Adını dəyiş", - "IOS_VARIABLES_DELETE_BUTTON": "Sil", - "IOS_VARIABLES_VARIABLE_NAME": "Dəyişənin adı", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Adsız dəyişən istifadə edə bilməzsiniz.", - "LOGIC_COMPARE_HELPURL": "https://az.wikipedia.org/wiki/bərabərsizlik_(riyazi)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Girişlər bir birinə bərabərdirsə \"doğru\" cavabını qaytarır.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Girişlər bərabər deyillərsə \"doğru\" cavabını qaytarır.", - "LOGIC_COMPARE_TOOLTIP_LT": "Birinci giriş ikincidən kiçikdirsə \"doğru\" cavabını qaytarır.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Birinci giriş ikincidən kiçik və ya bərarbərdirsə \"doğru\" cavabını qaytarır.", - "LOGIC_COMPARE_TOOLTIP_GT": "Birinci giriş ikincidən böyükdürsə \"doğru\" cavabını qaytarır.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Birinci giriş ikincidən böyük və ya bərarbərdirsə \"doğru\" cavabını qaytarır.", - "LOGIC_OPERATION_TOOLTIP_AND": "Hər iki giriş \"doğru\"-dursa \"doğru\" cavabını qaytarır.", - "LOGIC_OPERATION_AND": "və", - "LOGIC_OPERATION_TOOLTIP_OR": "Girişlərdən heç olmasa biri \"doğru\"-dursa \"doğru\" cavabını qaytarır.", - "LOGIC_OPERATION_OR": "və ya", - "LOGIC_NEGATE_TITLE": "%1 deyil", - "LOGIC_NEGATE_TOOLTIP": "Giriş \"yalan\"-dursa \"doğru\" cavabını qaytarır. Giriş \"doğru\"-dursa \"səhf\" cavabını qaytarır.", - "LOGIC_BOOLEAN_TRUE": "doğru", - "LOGIC_BOOLEAN_FALSE": "səhf", - "LOGIC_BOOLEAN_TOOLTIP": "\"doğru\" və ya \"səhf\" cavanını qaytarır.", - "LOGIC_NULL": "boş", - "LOGIC_NULL_TOOLTIP": "Boş cavab qaytarır.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "əgər doğrudursa", - "LOGIC_TERNARY_IF_FALSE": "əgər səhfdirsə", - "LOGIC_TERNARY_TOOLTIP": "'Yoxla' əmrindəki şərtə nəzər yetirin. Əgər şərt \"doğru\"-dursa \"əgər doğru\", əks halda isə \"əgər yalan\" cavabını qaytarır.", - "MATH_NUMBER_HELPURL": "https://az.wikipedia.org/wiki/Ədəd", - "MATH_NUMBER_TOOLTIP": "Ədəd.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tg", - "MATH_TRIG_ASIN": "arcsin", - "MATH_TRIG_ACOS": "arccos", - "MATH_TRIG_ATAN": "arctan", - "MATH_ARITHMETIC_HELPURL": "https://az.wikipedia.org/wiki/Hesab", - "MATH_ARITHMETIC_TOOLTIP_ADD": "İki ədədin cəmini qaytarır.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "İki ədədin fərqini qaytarır.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "İki ədədin hasilini verir.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "İki ədədin nisbətini qaytarır.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Birinci ədədin ikinci ədəd dərəcəsindən qüvvətini qaytarır.", - "MATH_SINGLE_HELPURL": "https://az.wikipedia.org/wiki/Kvadrat_kökləri", - "MATH_SINGLE_OP_ROOT": "kvadrat kök", - "MATH_SINGLE_TOOLTIP_ROOT": "Ədədin kvadrat kökünü qaytarır.", - "MATH_SINGLE_OP_ABSOLUTE": "modul", - "MATH_SINGLE_TOOLTIP_ABS": "Ədədin modulunu qaytarır.", - "MATH_SINGLE_TOOLTIP_NEG": "Ədədin əksini qaytarır.", - "MATH_SINGLE_TOOLTIP_LN": "Ədədin natural loqarifmini tapır.", - "MATH_SINGLE_TOOLTIP_LOG10": "Ədədin 10-cu dərəcədən loqarifmini tapır.", - "MATH_SINGLE_TOOLTIP_EXP": "e sabitinin verilmiş ədədə qüvvətini qaytarır.", - "MATH_SINGLE_TOOLTIP_POW10": "10-un verilmiş ədədə qüvvətini qaytarır.", - "MATH_TRIG_HELPURL": "https://az.wikipedia.org/wiki/Triqonometrik_funksiyalar", - "MATH_TRIG_TOOLTIP_SIN": "Dərəcənin sinusunu qaytar (radianın yox).", - "MATH_TRIG_TOOLTIP_COS": "Dərəcənin kosinusunu qaytarır (radianın yox).", - "MATH_TRIG_TOOLTIP_TAN": "Dərəcənin tangensini qaytar (radianın yox).", - "MATH_TRIG_TOOLTIP_ASIN": "Ədədin arcsinusunu qaytarır.", - "MATH_TRIG_TOOLTIP_ACOS": "Ədədin arccosinusunu qaytarır.", - "MATH_TRIG_TOOLTIP_ATAN": "Ədədin arctanqensini qaytarır.", - "MATH_CONSTANT_HELPURL": "https://az.wikipedia.org/wiki/Riyazi_sabitlər", - "MATH_CONSTANT_TOOLTIP": "Ümumi sabitlərdən birini qaytarır π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), və ya ∞ (sonsuzluq).", - "MATH_IS_EVEN": "cütdür", - "MATH_IS_ODD": "təkdir", - "MATH_IS_PRIME": "sadədir", - "MATH_IS_WHOLE": "tamdır", - "MATH_IS_POSITIVE": "müsbətdir", - "MATH_IS_NEGATIVE": "mənfidir", - "MATH_IS_DIVISIBLE_BY": "bölünür", - "MATH_IS_TOOLTIP": "Bir ədədin cüt, tək, sadə, tam, müsbət, mənfi olmasını və ya müəyyən bir ədədə bölünməsini yoxlayır. \"Doğru\" və ya \"yalan\" qiymətini qaytarır.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "dəyiş: %1 buna: %2", - "MATH_CHANGE_TOOLTIP": "'%1' dəyişəninin üzərinə bir ədəd artır.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Ədədi aşağı və ya yuxari yuvarlaqşdır.", - "MATH_ROUND_OPERATOR_ROUND": "yuvarlaqlaşdır", - "MATH_ROUND_OPERATOR_ROUNDUP": "yuxarı yuvarlaqlaşdır", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "aşağı yuvarlaqlaşdır", - "MATH_ONLIST_OPERATOR_SUM": "Siyahının cəmi", - "MATH_ONLIST_TOOLTIP_SUM": "Siyahıdakı bütün ədədlərin cəmini qaytarır.", - "MATH_ONLIST_OPERATOR_MIN": "siyahının minimumu", - "MATH_ONLIST_TOOLTIP_MIN": "Siyahıdaki ən kiçik ədədi qaytarır.", - "MATH_ONLIST_OPERATOR_MAX": "siyahının maksimumu", - "MATH_ONLIST_TOOLTIP_MAX": "Siyahıdaki ən böyük elementi qaytarır.", - "MATH_ONLIST_OPERATOR_AVERAGE": "siyahının ədədi ortası", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Siyahıdaki ədədlərin ədədi ortasını qaytarır.", - "MATH_ONLIST_OPERATOR_MEDIAN": "siyahının medianı", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Siyahının median elementini qaytarır.", - "MATH_ONLIST_OPERATOR_MODE": "Siyahı modları( Ən çox rastlaşılan elementləri)", - "MATH_ONLIST_TOOLTIP_MODE": "Siyahıdaki ən çox rastlanan element(lər)dən ibarət siyahı qaytarır.", - "MATH_ONLIST_OPERATOR_STD_DEV": "Siyahının standart deviasiyası", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Siyahının standart deviasiyasını qaytarır.", - "MATH_ONLIST_OPERATOR_RANDOM": "siyahıdan təsadüfi seçilmiş bir element", - "MATH_ONLIST_TOOLTIP_RANDOM": "Siyahıdan təsadüfi bir element qaytarır.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2 bölməsinin qalığı", - "MATH_MODULO_TOOLTIP": "İki ədədin nisbətindən alınan qalığı qaytarır.", - "MATH_CONSTRAIN_TITLE": "%1 üçün ən aşağı %2, ən yuxarı %3 olmağı tələb et", - "MATH_CONSTRAIN_TOOLTIP": "Bir ədədin verilmiş iki ədəd arasında olmasını tələb edir (sərhədlər də daxil olmaqla).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "%1 ilə %2 arasından təsadüfi tam ədəd", - "MATH_RANDOM_INT_TOOLTIP": "Verilmiş iki ədəd arasından (ədədrlər də daxil olmaqla) təsadüfi bir tam ədəd qaytarır.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "təsadüfi kəsr", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (daxil olmaqla) və 1.0 (daxil olmamaqla) ədədlərinin arasından təsadüfi bir kəsr ədəd qaytarır.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TOOLTIP": "(X,Y) nöqtələrinin -180 - 180 dərəcədə arktangensini hesabla.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Mətndəki hərf, söz və ya sətir.", - "TEXT_JOIN_TITLE_CREATEWITH": "Verilmişlərlə mətn yarat", - "TEXT_JOIN_TOOLTIP": "İxtiyari sayda elementlərinin birləşməsi ilə mətn parçası yarat.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "birləşdir", - "TEXT_CREATE_JOIN_TOOLTIP": "Bu mətn blokunu yenidən konfigurasiya etmək üçün bölmələri əlavə edin, silin və ya yerlərini dəyişin.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Mətnə bir element əlavə et.", - "TEXT_APPEND_TITLE": "bu mətnin sonuna: %1 bu mətni əlavə et: %2", - "TEXT_APPEND_TOOLTIP": "'%1' dəyişəninin sonuna nəsə əlavə et.", - "TEXT_LENGTH_TITLE": "%1 - ın uzunluğu", - "TEXT_LENGTH_TOOLTIP": "Verilmiş mətndəki hərflərin(sözlər arası boşluqlar sayılmaqla) sayını qaytarır.", - "TEXT_ISEMPTY_TITLE": "%1 boşdur", - "TEXT_ISEMPTY_TOOLTIP": "Verilmiş mətn boşdursa, doğru qiymətini qaytarır.", - "TEXT_INDEXOF_TOOLTIP": "Birinci mətnin ikinci mətndə ilk/son rastlaşma indeksini qaytarır. Əgər rastlaşma baş verməzsə, %1 qaytarır.", - "TEXT_INDEXOF_TITLE": "mətndə %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "Bu mətn ilə ilk rastlaşmanı tap:", - "TEXT_INDEXOF_OPERATOR_LAST": "Bu mətn ilə son rastlaşmanı tap:", - "TEXT_CHARAT_TITLE": "mətndə %1 %2", - "TEXT_CHARAT_FROM_START": "bu nömrəli hərfi götür", - "TEXT_CHARAT_FROM_END": "axırdan bu nömrəli hərfi götür", - "TEXT_CHARAT_FIRST": "birinci hərfi götür", - "TEXT_CHARAT_LAST": "axırıncı hərfi götür", - "TEXT_CHARAT_RANDOM": "təsadüfi hərf götür", - "TEXT_CHARAT_TOOLTIP": "Göstərilən mövqedəki hərfi qaytarır.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Mətnin təyin olunmuş hissəsini qaytarır.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "mətndə", - "TEXT_GET_SUBSTRING_START_FROM_START": "Mətnin surətini bu nömrəli hərfdən", - "TEXT_GET_SUBSTRING_START_FROM_END": "Mətnin surətini sondan bu nömrəli # hərfdən", - "TEXT_GET_SUBSTRING_START_FIRST": "Mətnin surətini ilk hərfdən", - "TEXT_GET_SUBSTRING_END_FROM_START": "bu nömrəli hərfə qədər", - "TEXT_GET_SUBSTRING_END_FROM_END": "axırdan bu nömrəli hərfə qədər", - "TEXT_GET_SUBSTRING_END_LAST": "son hərfə qədər", - "TEXT_CHANGECASE_TOOLTIP": "Mətndə hərflərin böyük-kiçikliyini dəyiş.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "BÖYÜK HƏRFLƏRLƏ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "kiçik hərflərlə", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Baş Hərflərlə", - "TEXT_TRIM_TOOLTIP": "Mətnin hər iki və ya yalnız bir tərəfdən olan boşluqları pozulmuş surətini qaytarın.", - "TEXT_TRIM_OPERATOR_BOTH": "boşluqları hər iki tərəfdən pozun", - "TEXT_TRIM_OPERATOR_LEFT": "boşluqlari yalnız sol tərəfdən pozun", - "TEXT_TRIM_OPERATOR_RIGHT": "boşluqları yalnız sağ tərəfdən pozun", - "TEXT_PRINT_TITLE": "%1 - i çap elə", - "TEXT_PRINT_TOOLTIP": "Təyin olunmuş mətn, ədəd və ya hər hansı bir başqa elementi çap elə.", - "TEXT_PROMPT_TYPE_TEXT": "İstifadəçiyə mətn daxil etməsi üçün sorğunu/tələbi ismarıc ilə göndərin", - "TEXT_PROMPT_TYPE_NUMBER": "İstifadəçiyə ədəd daxil etməsi üçün sorğunu/tələbi ismarıc kimi göndərin", - "TEXT_PROMPT_TOOLTIP_NUMBER": "İstifadəçiyə ədəd daxil etməsi üçün sorğu/tələb göndərin.", - "TEXT_PROMPT_TOOLTIP_TEXT": "İstifadəçiyə mətn daxil etməsi üçün sorğu/tələb göndərin.", - "TEXT_COUNT_MESSAGE0": "%2 içindən %1 sayını hesabla", - "TEXT_COUNT_TOOLTIP": "Hesablayaq, mətnin bu hissəsi başqa mətndə neçə dəfə rast gəlinir.", - "TEXT_REPLACE_MESSAGE0": "%3 -də %1 əvəz et %2", - "TEXT_REPLACE_TOOLTIP": "Bütün uyğunluqlu bəzi mətnlərin digər bəzi mətnlərə dəyişdirilməsi.", - "TEXT_REVERSE_MESSAGE0": "əksinə dəyiş %1", - "TEXT_REVERSE_TOOLTIP": "Mətndəki simvolların ardıcıllığını əksinə dəyiş.", - "LISTS_CREATE_EMPTY_TITLE": "boş siyahı düzəlt", - "LISTS_CREATE_EMPTY_TOOLTIP": "Heç bir verilən qeyd olunmamış, uzunluğu 0 olan bir siyahı verir", - "LISTS_CREATE_WITH_TOOLTIP": "İstənilən ölçülü siyahı yaradın.", - "LISTS_CREATE_WITH_INPUT_WITH": "bunlardan siyahı düzəlt", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "siyahı", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Bu siyahı blokunu yenidən konfigurasiya etmək üçün bölmələri əlavə edin, silin və ya yerlərini dəyişin.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Siyahıya element əlavə edin.", - "LISTS_REPEAT_TOOLTIP": "Təyin olunmuş elementin/qiymətin təyin olunmuş sayda təkrarlandığı siyahını yaradır.", - "LISTS_REPEAT_TITLE": "%1 elementinin %2 dəfə təkrarlandığı siyahı düzəlt", - "LISTS_LENGTH_TITLE": "%1 siyahısının uzunluğu", - "LISTS_LENGTH_TOOLTIP": "Siyahının uzunluğunu verir.", - "LISTS_ISEMPTY_TITLE": "%1 boşdur", - "LISTS_ISEMPTY_TOOLTIP": "Siyahı boşdursa \"doğru\" cavabını qaytarır.", - "LISTS_INLIST": "siyahıda", - "LISTS_INDEX_OF_FIRST": "Element ilə ilk rastlaşma indeksini müəyyən edin", - "LISTS_INDEX_OF_LAST": "Element ilə son rastlaşma indeksini müəyyən edin", - "LISTS_INDEX_OF_TOOLTIP": "Elementin siyahıda ilk/son rastlaşma indeksini qaytarır. Əgər siyahıda mətn tapılmadısa, %1 qaytarılır.", - "LISTS_GET_INDEX_GET": "götür", - "LISTS_GET_INDEX_GET_REMOVE": "götür və sil", - "LISTS_GET_INDEX_REMOVE": "yığışdır", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "axırdan # nömrəli", - "LISTS_GET_INDEX_FIRST": "birinci", - "LISTS_GET_INDEX_LAST": "axırıncı", - "LISTS_GET_INDEX_RANDOM": "təsadüfi", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ilk elementdir.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 son elementdir.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Siyahıdan təyin olunmuş indeksli elementi qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Siyahının ilk elementini qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Siyahının son elementini qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Siyahıdan hər hansı təsadüfi elementi qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Siyahıdan təyin olunmuş indeksli elementi silir və qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Siyahıdan ilk elementi silir və qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Siyahıdan son elementi silir və qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Siyahıdan təsadufi elementi silir və qaytarır.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Siyahıdan təyin olunmuş indeksli elementi silir.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Siyahıdan ilk elementi silir.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Siyahıdan son elementi silir.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Siyahıdan təsadüfi bir elementi silir.", - "LISTS_SET_INDEX_SET": "təyin et", - "LISTS_SET_INDEX_INSERT": "daxil et", - "LISTS_SET_INDEX_INPUT_TO": "Kimi", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Siyahının göstərilən yerdəki elementini təyin edir.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Siyahıda birinci elementi təyin edir.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Siyahının sonuncu elementini təyin edir.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Siyahının təsadüfi seçilmiş bir elementini təyin edir.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Elementi siyahıda göstərilən yerə daxil edir.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Elementi siyahının əvvəlinə daxil edir.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Elementi siyahının sonuna artırır.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Elementi siyahıda təsadüfi seçilmiş bir yerə atır.", - "LISTS_GET_SUBLIST_START_FROM_START": "# - dən alt-siyahını alın", - "LISTS_GET_SUBLIST_START_FROM_END": "# sonuncudan alt-siyahını alın", - "LISTS_GET_SUBLIST_START_FIRST": "Birincidən alt-siyahını alın", - "LISTS_GET_SUBLIST_END_FROM_START": "# nömrəliyə", - "LISTS_GET_SUBLIST_END_FROM_END": "sondan # nömrəliyə", - "LISTS_GET_SUBLIST_END_LAST": "Sonuncuya", - "LISTS_GET_SUBLIST_TOOLTIP": "Siyahının təyin olunmuş hissəsinin surətini yaradın.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 %2 %3 sortlaşdır", - "LISTS_SORT_TOOLTIP": "Siyahının nüsxəsini sortlaşdır.", - "LISTS_SORT_ORDER_ASCENDING": "artan üzrə", - "LISTS_SORT_ORDER_DESCENDING": "azalan üzrə", - "LISTS_SORT_TYPE_NUMERIC": "say üzrə", - "LISTS_SORT_TYPE_TEXT": "əlifba üzrə", - "LISTS_SORT_TYPE_IGNORECASE": "əlifba üzrə, registrı nəzərə almadan", - "LISTS_SPLIT_LIST_FROM_TEXT": "mətndən siyahı düzəlt", - "LISTS_SPLIT_TEXT_FROM_LIST": "siyahıdan mətn düzəlt", - "LISTS_SPLIT_WITH_DELIMITER": "ayırıcıyla", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Mətni ayırıcılara görə bölərək mətnlər siyahısı yaradır.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Mətnlər siyahısından ayırıcılarla birgə bir mətn yaradır.", - "LISTS_REVERSE_MESSAGE0": "əksinə dəyiş %1", - "LISTS_REVERSE_TOOLTIP": "Siyahının nüsxəsini əksinə dəyiş.", - "VARIABLES_GET_TOOLTIP": "Bu dəyişənin qiymətini qaytarır.", - "VARIABLES_GET_CREATE_SET": "'%1 - i təyin et' - i yarat", - "VARIABLES_SET": "%1 - i bu qiymət ilə təyin et: %2", - "VARIABLES_SET_TOOLTIP": "Bu dəyişəni daxil edilmiş qiymətə bərabər edir.", - "VARIABLES_SET_CREATE_GET": "'%1 - i götür' - ü yarat", - "PROCEDURES_DEFNORETURN_TITLE": "icra et:", - "PROCEDURES_DEFNORETURN_PROCEDURE": "hansısa əməliyyat", - "PROCEDURES_BEFORE_PARAMS": "ilə:", - "PROCEDURES_CALL_BEFORE_PARAMS": "ilə:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Nəticəsi olmayan funksiya yaradır.", - "PROCEDURES_DEFNORETURN_COMMENT": "Bu funksiyanı təsvir et", - "PROCEDURES_DEFRETURN_RETURN": "qaytar", - "PROCEDURES_DEFRETURN_TOOLTIP": "Nəticəsi olan funksiya yaradır.", - "PROCEDURES_ALLOW_STATEMENTS": "operatorlara icazə", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Xəbərdarlıq: Bu funksiyanın təkrar olunmuş parametrləri var.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Yaradılmış '%1' funksiyasını çalışdır.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Yaradılmış '%1' funksiyasını çalışdır və nəticəni istifadə et.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "girişlər", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Bu funksiyanın giriş parametrləri üçün əlavə et, sil, və ya yenilə.", - "PROCEDURES_MUTATORARG_TITLE": "Giriş adı:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Funksiyaya giriş parametrləri əlavə et.", - "PROCEDURES_HIGHLIGHT_DEF": "Funksiyanın təyinatını vurğula", - "PROCEDURES_CREATE_DO": "'%1' yarat", - "PROCEDURES_IFRETURN_TOOLTIP": "Əgər bir dəyər \"doğru\"-dursa onda ikinci dəyəri qaytar.", - "PROCEDURES_IFRETURN_WARNING": "Xəbərdarlıq: Bu blok ancaq bir funksiyanın təyinatı daxilində işlədilə bilər.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Buraya nə isə yaz..." -} diff --git a/lib/blockly/msg/json/ba.json b/lib/blockly/msg/json/ba.json deleted file mode 100644 index 7a99558..0000000 --- a/lib/blockly/msg/json/ba.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Alfiya55", - "Ләйсән", - "Айсар", - "Кутлубаева Кунсулу Закиевна", - "Азат Хәлилов", - "Танзиля Кутлугильдина" - ] - }, - "VARIABLES_DEFAULT_NAME": "элемент", - "TODAY": "Бөгөн", - "DUPLICATE_BLOCK": "Күсереп алырға", - "ADD_COMMENT": "Фекер өҫтәргә", - "REMOVE_COMMENT": "Аңлатмаларҙы юйырға", - "EXTERNAL_INPUTS": "Тышҡы өҫтәлмә", - "INLINE_INPUTS": "Эске өҫтәлмә", - "DELETE_BLOCK": "Блокты юйҙырырға", - "DELETE_X_BLOCKS": " %1 блокты юйҙырырға", - "DELETE_ALL_BLOCKS": "Бөтә %1 блоктарҙы юйырғамы?", - "CLEAN_UP": "Блоктарҙы таҙартырға", - "COLLAPSE_BLOCK": "Блокты төрөргә", - "COLLAPSE_ALL": "Блоктарҙы төрөргә", - "EXPAND_BLOCK": "Блокты йәйергә", - "EXPAND_ALL": "Блоктарҙы йәйергә", - "DISABLE_BLOCK": "Блокты һүндерергә", - "ENABLE_BLOCK": "Блокты тоҡандырырға", - "HELP": "Ярҙам", - "UNDO": "Кире алырға", - "REDO": "документтарҙы үҙгәртергә", - "CHANGE_VALUE_TITLE": "Мәғәнәне үҙгәртегеҙ:", - "RENAME_VARIABLE": "Үҙгәреүсәндең исемен алмаштырырға...", - "RENAME_VARIABLE_TITLE": "Бөтә '%1' үҙгәреүсәндәрҙең исемен ошолай алмаштырырға:", - "NEW_VARIABLE": "Яңы үҙгәреүсән...", - "NEW_VARIABLE_TITLE": "Яңы үҙгәреүсәндең исеме:", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Төҫ", - "COLOUR_PICKER_TOOLTIP": "Палитранан төҫ һайлағыҙ.", - "COLOUR_RANDOM_TITLE": "осраҡлы төҫ", - "COLOUR_RANDOM_TOOLTIP": "Төҫтө осраҡлылыҡ буйынса һайлай.", - "COLOUR_RGB_TITLE": "ошонан төҫ", - "COLOUR_RGB_RED": "ҡыҙылдан", - "COLOUR_RGB_GREEN": "йәшелдән", - "COLOUR_RGB_BLUE": "зәңгәр", - "COLOUR_RGB_TOOLTIP": "Бирелгән нисбәттәрҙә ҡыҙылдан, йәшелдән һәм зәңгәрҙән төҫ барлыҡҡа килә. Бөтә мәғәнәләр 0 менән 100 араһында булырға тейеш.", - "COLOUR_BLEND_TITLE": "ҡатнаштырырға", - "COLOUR_BLEND_COLOUR1": "1-се төҫ", - "COLOUR_BLEND_COLOUR2": "2-се төҫ", - "COLOUR_BLEND_RATIO": "1-се төҫтөң өлөшө", - "COLOUR_BLEND_TOOLTIP": "Ике төҫтө бирелгән нисбәттә болғата (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/Цикл_(программалау)", - "CONTROLS_REPEAT_TITLE": " %1 тапҡыр ҡабатларға", - "CONTROLS_REPEAT_INPUT_DO": "үтәргә", - "CONTROLS_REPEAT_TOOLTIP": "Командаларҙы бер нисә тапҡыр үтәй.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ҡабатларға, әлегә", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ҡабатларға, әлегә юҡ", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Мәғәнә дөрөҫ булғанда, командаларҙы ҡабатлай.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Мәғәнә ялған булғанда, командаларҙы ҡабатлай.", - "CONTROLS_FOR_TOOLTIP": "Үҙгәреүсәнгә башынан аҙағына тиклем тәғәйен аҙым менән %1 мәғәнәне бирә һәм күрһәтелгән командаларҙы үтәй.", - "CONTROLS_FOREACH_TITLE": "һәр элемент өсөн %1 исемлектә %2", - "CONTROLS_FOREACH_TOOLTIP": "Исемлектәге һәр элемент өсөн үҙгәреүсәнгә элементтың '%1' мәғәнәһен бирә һәм күрһәтелгән командаларҙы үтәй.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "циклдан сығырға", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "циклдың киләһе аҙымына күсергә", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Был циклды өҙә.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Циклдың ҡалдығын төшөрөп ҡалдыра һәм киләһе аҙымға күсә.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Иҫкәртеү: был блок цикл эсендә генә ҡулланыла ала.", - "CONTROLS_IF_TOOLTIP_1": "Мәғәнә дөрөҫ булғанда, командаларҙы үтәй.", - "CONTROLS_IF_TOOLTIP_2": "Шарт дөрөҫ булғанда, командаларҙың беренсе блогын үтәй. Улай булмаһа, командаларҙың икенсе блогы үтәлә.", - "CONTROLS_IF_TOOLTIP_3": "Беренсе шарт дөрөҫ булһа, командаларҙың беренсе блогын үтәй. Икенсе шарт дөрөҫ булһа, командаларҙың икенсе блогын үтәй.", - "CONTROLS_IF_TOOLTIP_4": "Беренсе шарт дөрөҫ булһа, командаларҙың беренсе блогын үтәй. Әгәр икенсе шарт дөрөҫ булһа, командаларҙың икенсе блогын үтәй. Бер шарт та дөрөҫ булмаһа, команда блоктарының һуңғыһын үтәй.", - "CONTROLS_IF_MSG_IF": "әгәр", - "CONTROLS_IF_MSG_ELSEIF": "юғиһә, әгәр", - "CONTROLS_IF_MSG_ELSE": "юғиһә", - "CONTROLS_IF_IF_TOOLTIP": "\"Әгәр\" блогын ҡабаттан төҙөү өсөн киҫәктәрҙе өҫтәгеҙ, юйҙырығыҙ, урындарын алмаштырығыҙ.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "\"Әгәр\" блогына шарт өҫтәй", - "CONTROLS_IF_ELSE_TOOLTIP": "Бер шарт та дөрөҫ булмаған осраҡҡа йомғаҡлау ярҙамсы блогын өҫтәргә.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(математика)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Өҫтәмәләр тигеҙ булһа, дөрөҫ мәғәнәһен кире ҡайтара.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Өҫтәмәләр тигеҙ булмаһа, дөрөҫ мәғәнәһен кире ҡайтара.", - "LOGIC_COMPARE_TOOLTIP_LT": "Беренсе өҫтәмә икенсеһенән бәләкәйерәк булһа, дөрөҫ мәғәнәһен кире ҡайтара.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Беренсе өҫтәмә икенсеһенән бәләкәйерәк йә уға тиң булһа, дөрөҫ мәғәнәһен кире ҡайтара.", - "LOGIC_COMPARE_TOOLTIP_GT": "Беренсе өҫтәмә икенсеһенән ҙурыраҡ булһа, дөрөҫ мәғәнәһен кире ҡайтара.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Беренсе өҫтәмә икенсеһенән бәләкәйерәк йә уға тиң булһа, дөрөҫ мәғәнәһен кире ҡайтара.", - "LOGIC_OPERATION_TOOLTIP_AND": "Әгәр ҙә ике өҫтәлмә лә тап килһә, дөрөҫ аңлатманы кире ҡайтара.", - "LOGIC_OPERATION_AND": "һәм", - "LOGIC_OPERATION_TOOLTIP_OR": "Өҫтәлмәләрҙең береһе генә дөрөҫ булһа, дөрөҫ аңлатманы ҡайтара.", - "LOGIC_OPERATION_OR": "йәки", - "LOGIC_NEGATE_TITLE": "%1 түгел", - "LOGIC_NEGATE_TOOLTIP": "Өҫтәлмә ялған булһа, дөрөҫ аңлатманы ҡайтара. Өҫтәлмә дөрөҫ булһа, ялған аңлатманы ҡайтара.", - "LOGIC_BOOLEAN_TRUE": "дөрөҫ", - "LOGIC_BOOLEAN_FALSE": "ялған", - "LOGIC_BOOLEAN_TOOLTIP": "Дөрөҫ йәки ялғанды ҡайтара.", - "LOGIC_NULL": "нуль", - "LOGIC_NULL_TOOLTIP": "Нулде ҡайтара.", - "LOGIC_TERNARY_CONDITION": "тест", - "LOGIC_TERNARY_IF_TRUE": "әгәр дөрөҫ булһа", - "LOGIC_TERNARY_IF_FALSE": "әгәр ялған булһа", - "LOGIC_TERNARY_TOOLTIP": "Һайлау шартын тикшерә. Әгәр ул дөрөҫ булһа, беренсе мәғәнәне, хата булһа, икенсе мәғәнәне ҡайтара.", - "MATH_NUMBER_HELPURL": "https://ba.wikipedia.org/wiki/Һан", - "MATH_NUMBER_TOOLTIP": "Рәт.", - "MATH_ARITHMETIC_HELPURL": "https://ba.wikipedia.org/wiki/Арифметика", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Ике һандың суммаһын ҡайтара.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Ике һандың айырмаһын ҡайтара.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Ике һандың ҡабатландығын ҡайтара.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Ике һандың бүлендеген ҡайтара.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Дәрәжәгә күтәрелгән икенсе һандан тәүгеһенә ҡайтара.", - "MATH_SINGLE_HELPURL": "https://ba.wikipedia.org/wiki/Квадрат_тамыр", - "MATH_SINGLE_OP_ROOT": "квадрат тамыр", - "MATH_SINGLE_TOOLTIP_ROOT": "Һандың квадрат тамырын ҡайтара.", - "MATH_SINGLE_OP_ABSOLUTE": "абсолют", - "MATH_SINGLE_TOOLTIP_ABS": "Һандың модулен ҡайтара.", - "MATH_SINGLE_TOOLTIP_NEG": "Кире һанды ҡайтара.", - "MATH_SINGLE_TOOLTIP_LN": "Һандың натураль логаритмын ҡайтара.", - "MATH_SINGLE_TOOLTIP_LOG10": "Һандың унынсы логаритмын ҡайтара.", - "MATH_SINGLE_TOOLTIP_EXP": "Күрһәтелгән дәрәжәлә ҡайтара.", - "MATH_SINGLE_TOOLTIP_POW10": "Күрһәтелгән 10-сы дәрәжәлә ҡайтара.", - "MATH_TRIG_HELPURL": "https://ba..wikipedia.org/wiki/Тригонометрик_функциялар", - "MATH_TRIG_TOOLTIP_SIN": "Мөйөштөң синусын градустарҙа ҡайтара.", - "MATH_TRIG_TOOLTIP_COS": "Мөйөштөң косинусын градустарҙа ҡайтара.", - "MATH_TRIG_TOOLTIP_TAN": "Мөйөштөң тангенсын градустарҙа күрһәтә.", - "MATH_TRIG_TOOLTIP_ASIN": "Арксинусты градустарҙа күрһәтә.", - "MATH_TRIG_TOOLTIP_ACOS": "Арккосинусты градустарҙа күрһәтә.", - "MATH_TRIG_TOOLTIP_ATAN": "Арктангенсты градустарҙа күрһәтә.", - "MATH_CONSTANT_HELPURL": "https://ba.wikipedia.org/wiki/Математик_константа", - "MATH_CONSTANT_TOOLTIP": "Таралған константаның береһен күрһәтә: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) йәки ∞ (сикһеҙлек).", - "MATH_IS_EVEN": "тағы", - "MATH_IS_ODD": "сәйер", - "MATH_IS_PRIME": "ябай", - "MATH_IS_WHOLE": "бөтөн", - "MATH_IS_POSITIVE": "ыңғай", - "MATH_IS_NEGATIVE": "тиҫкәре", - "MATH_IS_DIVISIBLE_BY": "бүленә", - "MATH_IS_TOOLTIP": "Һандың йоп, таҡ, ябай, бөтөн, ыңғай, кире йәки билдәле һанға ҡарата ниндәй булыуын тикшерә. Дөрөҫ йә ялған мәғәнәһен күрһәтә.", - "MATH_CHANGE_HELPURL": "https://ba.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "%1 тан %2 ҡа арттырырға", - "MATH_CHANGE_TOOLTIP": "Үҙгәреүсән һанға өҫтәй '%1'.", - "MATH_ROUND_HELPURL": "https://ba.wikipedia.org/wiki/Т=Түңәрәкләү", - "MATH_ROUND_TOOLTIP": "Һанды ҙурына йә бәләкәйенә тиклем түңәрәкләргә.", - "MATH_ROUND_OPERATOR_ROUND": "түңәрәк", - "MATH_ROUND_OPERATOR_ROUNDUP": "ҙурына тиклем түңәрәкләргә", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "бәләкәйгә тиклем түңәрәкләргә", - "MATH_ONLIST_OPERATOR_SUM": "исемлек суммаһы", - "MATH_ONLIST_TOOLTIP_SUM": "Исемлектәрҙәге һандар суммаһын күрһәтә.", - "MATH_ONLIST_OPERATOR_MIN": "Исемлектәге иң бәләкәйе", - "MATH_ONLIST_TOOLTIP_MIN": "Исемлектәге иң бәләкәй һанды күрһәтә.", - "MATH_ONLIST_OPERATOR_MAX": "исемлектәге иң ҙуры", - "MATH_ONLIST_TOOLTIP_MAX": "Исемлектең иң ҙур һанын күрһәтә.", - "MATH_ONLIST_OPERATOR_AVERAGE": "исемлектең уртаса арифметик дәүмәле", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Исемлектең уртаса арифметик дәүмәле күрһәтә.", - "MATH_ONLIST_OPERATOR_MEDIAN": "исемлек медианаһы", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Исемлек медианаһын күрһәтә.", - "MATH_ONLIST_OPERATOR_MODE": "исемлек модалары", - "MATH_ONLIST_TOOLTIP_MODE": "Исемлектең иң күп осраған элементтарын күрһәтә.", - "MATH_ONLIST_OPERATOR_STD_DEV": "исемлекте стандарт кире ҡағыу", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Исемлекте стандарт кире ҡағыуҙы күрһәтә.", - "MATH_ONLIST_OPERATOR_RANDOM": "исемлектең осраҡлы элементы", - "MATH_ONLIST_TOOLTIP_RANDOM": "Исемлектең осраҡлы элементын күрһәтә.", - "MATH_MODULO_HELPURL": "https://ba.wikipedia.org/wiki/Ҡалдыҡ_менән_бүлеү", - "MATH_MODULO_TITLE": "ҡалдыҡ %1 : %2 араһында", - "MATH_MODULO_TOOLTIP": "Ике һанды бүлеү ҡалдығын күрһәтә.", - "MATH_CONSTRAIN_TITLE": "сикләргә %1 аҫтан %2 өҫтән %3", - "MATH_CONSTRAIN_TOOLTIP": "Һанды аҫтан һәм өҫтән сикләй (сиктәгеләрен индереп).", - "MATH_RANDOM_INT_HELPURL": "https://ba.wikipedia.org/wiki/Ялған осраҡлы_һандар_генераторы", - "MATH_RANDOM_INT_TITLE": "%1-ҙән %2-гә тиклем осраҡлы бөтөн һан", - "MATH_RANDOM_INT_TOOLTIP": "Ике бирелгән һан араһындағы (үҙҙәрен дә индереп) осраҡлы һанды күрһәтә.", - "MATH_RANDOM_FLOAT_HELPURL": "https://ba.wikipedia.org/wiki/Ялған осраҡлы_һандар_генераторы", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "0 (үҙен дә индереп) һәм 1 араһындағы осраҡлы һан", - "TEXT_TEXT_TOOLTIP": "Текстың хәрефе, һүҙе йәки юлы.", - "TEXT_JOIN_TITLE_CREATEWITH": "текст төҙөргә", - "TEXT_JOIN_TOOLTIP": "Элементтарҙың теләһә күпме һанын берләштереп текст фрагментын булдыра.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "ҡушылығыҙ", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Текстҡа элемент өҫтәү.", - "TEXT_APPEND_TOOLTIP": "Үҙгәреүсән «%1»-гә текст өҫтәргә.", - "TEXT_LENGTH_TITLE": "оҙонлоғо %1", - "TEXT_LENGTH_TOOLTIP": "Бирелгән текстағы символдар һанын (буш урындар менән бергә) кире ҡайтара.", - "TEXT_ISEMPTY_TITLE": "%1 буш", - "TEXT_INDEXOF_TITLE": "текстҡа %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "текстың тәүге инеүен табырға", - "TEXT_INDEXOF_OPERATOR_LAST": "Текстың һуңғы инеүен табырға", - "TEXT_CHARAT_FROM_START": "хат алырға #", - "TEXT_CHARAT_FROM_END": "№ хәрефен аҙаҡтан алырға", - "TEXT_CHARAT_FIRST": "тәүге хәрефте алырға", - "TEXT_CHARAT_LAST": "һуңғы хәрефте алырға", - "TEXT_CHARAT_RANDOM": "осраҡлы хәрефте алырға", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "текста", - "TEXT_GET_SUBSTRING_END_FROM_START": "# хатҡа", - "TEXT_GET_SUBSTRING_END_LAST": "һуңғы хәрефкә тиклем", - "TEXT_PRINT_TITLE": "%1 баҫтырырға", - "LISTS_CREATE_WITH_INPUT_WITH": "менән исемлек төҙөргә", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "исемлек", - "LISTS_LENGTH_TITLE": "оҙонлоғо %1", - "LISTS_ISEMPTY_TITLE": "%1 буш", - "LISTS_INLIST": "исемлеккә", - "LISTS_GET_INDEX_GET": "алырға", - "LISTS_GET_INDEX_GET_REMOVE": "алырға һәм юйырға", - "LISTS_GET_INDEX_REMOVE": "юйырға", - "LISTS_GET_INDEX_FROM_END": "# аҙағынан", - "LISTS_GET_INDEX_FIRST": "беренсе", - "LISTS_GET_INDEX_LAST": "аҙаҡҡы", - "LISTS_GET_INDEX_RANDOM": "осраҡлы", - "LISTS_SET_INDEX_SET": "йыйылма", - "LISTS_SET_INDEX_INSERT": "өҫтәп ҡуйырға", - "LISTS_SET_INDEX_INPUT_TO": "кеүек", - "PROCEDURES_DEFRETURN_RETURN": "кире ҡайтарыу", - "PROCEDURES_MUTATORCONTAINER_TITLE": "инеү", - "PROCEDURES_MUTATORARG_TITLE": "инеү исеме:", - "PROCEDURES_CREATE_DO": "'%1' төҙөргә" -} diff --git a/lib/blockly/msg/json/bcc.json b/lib/blockly/msg/json/bcc.json deleted file mode 100644 index f869b13..0000000 --- a/lib/blockly/msg/json/bcc.json +++ /dev/null @@ -1,288 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Baloch Afghanistan", - "Sultanselim baloch" - ] - }, - "VARIABLES_DEFAULT_NAME": "مورد", - "DUPLICATE_BLOCK": "تکراری", - "ADD_COMMENT": "افزودن نظر", - "REMOVE_COMMENT": "حذف نظر", - "EXTERNAL_INPUTS": "ورودی‌های خارجی", - "INLINE_INPUTS": "ورودی‌های درون خطی", - "DELETE_BLOCK": "حذف بلوک", - "DELETE_X_BLOCKS": "حذف بلوک‌های %1", - "COLLAPSE_BLOCK": "فروپاشی بلوک", - "COLLAPSE_ALL": "فروپاشی بلوک‌ها", - "EXPAND_BLOCK": "گسترش بلوک", - "EXPAND_ALL": "گسترش بلوک‌ها", - "DISABLE_BLOCK": "غیرفعال‌سازی بلوک", - "ENABLE_BLOCK": "فعال‌سازی بلوک", - "HELP": "کومک", - "CHANGE_VALUE_TITLE": "تغییر مقدار:", - "RENAME_VARIABLE": "تغییر نام متغیر...", - "RENAME_VARIABLE_TITLE": "تغییر نام همهٔ متغیرهای «%1» به:", - "NEW_VARIABLE": "متغیر تازه...", - "NEW_VARIABLE_TITLE": "نام متغیر تازه:", - "COLOUR_PICKER_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%86%DA%AF", - "COLOUR_PICKER_TOOLTIP": "انتخاب یک رنگ از تخته‌رنگ.", - "COLOUR_RANDOM_TITLE": "رنگ تصادفی", - "COLOUR_RANDOM_TOOLTIP": "انتخاب یک رنگ به شکل تصادفی.", - "COLOUR_RGB_TITLE": "رنگ با", - "COLOUR_RGB_RED": "قرمز", - "COLOUR_RGB_GREEN": "سبز", - "COLOUR_RGB_BLUE": "آبی", - "COLOUR_RGB_TOOLTIP": "ساخت یک رنگ با مقدار مشخص‌شده‌ای از قرمز، سبز و آبی. همهٔ مقادیر باید بین ۰ تا ۱۰۰ باشند.", - "COLOUR_BLEND_TITLE": "مخلوط", - "COLOUR_BLEND_COLOUR1": "رنگ ۱", - "COLOUR_BLEND_COLOUR2": "رنگ ۲", - "COLOUR_BLEND_RATIO": "نسبت", - "COLOUR_BLEND_TOOLTIP": "دو رنگ را با نسبت مشخص‌شده مخلوط می‌کند (۰٫۰ - ۱٫۰)", - "CONTROLS_REPEAT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AD%D9%84%D9%82%D9%87_%D9%81%D9%88%D8%B1", - "CONTROLS_REPEAT_TITLE": "%1 بار تکرار", - "CONTROLS_REPEAT_INPUT_DO": "انجام", - "CONTROLS_REPEAT_TOOLTIP": "انجام چند عبارت چندین بار.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تکرار در حالی که", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تکرار تا", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده.", - "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", - "CONTROLS_FOR_TITLE": "با تعداد %1 از %2 به %3 با گام‌های %4", - "CONTROLS_FOREACH_TITLE": "برای هر مورد %1 در فهرست %2", - "CONTROLS_FOREACH_TOOLTIP": "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "شکستن حلقه", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ادامه با تکرار بعدی حلقه", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "شکستن حلقهٔ شامل.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "پریدن از بقیهٔ حلقه و ادامه با تکرار بعدی.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "اخطار: این بلوک ممکن است فقط داخل یک حلقه استفاده شود.", - "CONTROLS_IF_TOOLTIP_1": "اگر یک مقدار صحیح است، سپس چند عبارت را انجام بده.", - "CONTROLS_IF_TOOLTIP_2": "اگر یک مقدار صحیح است، اول بلوک اول عبارات را انجام بده. در غیر این صورت بلوک دوم عبارات انجام بده.", - "CONTROLS_IF_TOOLTIP_3": "اگر مقدار اول صحیح بود، از آن بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم صحیح است، بلوک دوم عبارات را انجام بده.", - "CONTROLS_IF_TOOLTIP_4": "اگر مقدار اول درست است، بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم درست باشد بلوک دوم عبارات را انجام بده. اگر هیچ از مقادیر درست نبود، آخرین بلوک عبارات را انجام بده.", - "CONTROLS_IF_MSG_IF": "اگر", - "CONTROLS_IF_MSG_ELSEIF": "اگر آنگاه", - "CONTROLS_IF_MSG_ELSE": "آنگاه", - "CONTROLS_IF_IF_TOOLTIP": "اضافه، حذف یا ترتیب‌سازی قسمت‌ها برای تنظیم مجدد این بلوک اگر مسدود است.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "افزودن یک شرط به بلوک اگر.", - "CONTROLS_IF_ELSE_TOOLTIP": "اضافه‌کردن نهایی، گرفتن همهٔ شرایط به بلوک اگر.", - "LOGIC_COMPARE_HELPURL": "https://fa.wikipedia.org/wiki/%D9%86%D8%A7%D8%A8%D8%B1%D8%A7%D8%A8%D8%B1%DB%8C", - "LOGIC_COMPARE_TOOLTIP_EQ": "بازگشت صحیح اگر هر دو ورودی با یکدیگر برابر باشد.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "برگرداندن صحیح اگر هر دو ورودی با یکدیگر برابر نباشند.", - "LOGIC_COMPARE_TOOLTIP_LT": "بازگرداندن صحیح اگر ورودی اول کوچکتر از ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_LTE": "بازگرداندن صحیح اگر ورودی اول کوچکتر یا مساوی با ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_GT": "بازگرداندن صحیح اگر ورودی اول بزرگتر از ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_GTE": "بازگرداندن صحیح اگر ورودی اول بزرگتر یا مساوی یا ورودی دوم باشد.", - "LOGIC_OPERATION_TOOLTIP_AND": "بازگرداندن صحیح اگر هر دو ورودی صحیح باشد.", - "LOGIC_OPERATION_AND": "و", - "LOGIC_OPERATION_TOOLTIP_OR": "بازگرداندن صحیح اگر یکی از دو ورودی صحیح باشد.", - "LOGIC_OPERATION_OR": "یا", - "LOGIC_NEGATE_TITLE": "نه %1", - "LOGIC_NEGATE_TOOLTIP": "صجیج باز می‌گرداند اگر ورودی نا صحیح باشند. ناصحیح بازمی‌گرداند اگر ورودی صحیح باشد.", - "LOGIC_BOOLEAN_TRUE": "صحیح", - "LOGIC_BOOLEAN_FALSE": "ناصحیح", - "LOGIC_BOOLEAN_TOOLTIP": "بازگرداندن یکی از صحیح یا ناصحیح.", - "LOGIC_NULL": "تهی", - "LOGIC_NULL_TOOLTIP": "تهی بازمی‌گرداند.", - "LOGIC_TERNARY_CONDITION": "آزمایش", - "LOGIC_TERNARY_IF_TRUE": "اگر صحیح", - "LOGIC_TERNARY_IF_FALSE": "اگر ناصحیح", - "LOGIC_TERNARY_TOOLTIP": "بررسی وضعیت در «آزمایش». اگر وضعیت صحیح باشد، مقدار «اگر صحیح» را بر می‌گرداند در غیر اینصورت مقدار «اگر ناصحیح» را.", - "MATH_NUMBER_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B9%D8%AF%D8%AF", - "MATH_NUMBER_TOOLTIP": "یک عدد.", - "MATH_ARITHMETIC_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AD%D8%B3%D8%A7%D8%A8", - "MATH_ARITHMETIC_TOOLTIP_ADD": "بازگرداندن مقدار جمع دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "بازگرداندن تفاوت دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "بازگرداندن حاصلضرب دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "بازگرداندن باقی‌ماندهٔ دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "بازگرداندن اولین عددی که از توان عدد دوم حاصل شده باشد.", - "MATH_SINGLE_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%DB%8C%D8%B4%D9%87_%D8%AF%D9%88%D9%85", - "MATH_SINGLE_OP_ROOT": "ریشهٔ دوم", - "MATH_SINGLE_TOOLTIP_ROOT": "ریشهٔ دوم یک عدد را باز می‌گرداند.", - "MATH_SINGLE_OP_ABSOLUTE": "مطلق", - "MATH_SINGLE_TOOLTIP_ABS": "قدر مطلق یک عدد را بازمی‌گرداند.", - "MATH_SINGLE_TOOLTIP_NEG": "منفی‌شدهٔ یک عدد را باز می‌گرداند.", - "MATH_SINGLE_TOOLTIP_LN": "لوگاریتم طبیعی یک عدد را باز می‌گرداند.", - "MATH_SINGLE_TOOLTIP_LOG10": "بازگرداندن لگاریتم بر پایهٔ ۱۰ یک عدد.", - "MATH_SINGLE_TOOLTIP_EXP": "بازگرداندن توان e یک عدد.", - "MATH_SINGLE_TOOLTIP_POW10": "بازگرداندن توان ۱۰ یک عدد.", - "MATH_TRIG_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AA%D8%A7%D8%A8%D8%B9%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%85%D8%AB%D9%84%D8%AB%D8%A7%D8%AA%DB%8C", - "MATH_TRIG_TOOLTIP_SIN": "بازگرداندن سینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_COS": "بازگرداندن کسینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_TAN": "بازگرداندن تانژانت یک درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ASIN": "بازگرداندن آرک‌سینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ACOS": "بازگرداندن آرک‌کسینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ATAN": "بازگرداندن آرک‌تانژانت درجه (نه رادیان).", - "MATH_CONSTANT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AB%D8%A7%D8%A8%D8%AA_%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C", - "MATH_CONSTANT_TOOLTIP": "یکی از مقادیر مشترک را برمی‌گرداند: π (۳٫۱۴۱…)، e (۲٫۷۱۸...)، φ (۱٫۶۱۸)، sqrt(۲) (۱٫۴۱۴)، sqrt(۱/۲) (۰٫۷۰۷...) و یا ∞ (بی‌نهایت).", - "MATH_IS_EVEN": "زوج است", - "MATH_IS_ODD": "فرد است", - "MATH_IS_PRIME": "عدد اول است", - "MATH_IS_WHOLE": "کامل است", - "MATH_IS_POSITIVE": "مثبت است", - "MATH_IS_NEGATIVE": "منفی است", - "MATH_IS_DIVISIBLE_BY": "تقسیم شده بر", - "MATH_IS_TOOLTIP": "بررسی می‌کند که آیا یک عدد زوج، فرد، اول، کامل، مثبت، منفی یا بخش‌پذیر عدد خاصی باشد را بررسی می‌کند. درست یا نادرست باز می‌گرداند.", - "MATH_CHANGE_HELPURL": "https://fa.wikipedia.org/wiki/%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C#.D8.A7.D9.81.D8.B2.D8.A7.DB.8C.D8.B4_.D8.B4.D9.85.D8.A7.D8.B1.D9.86.D8.AF.D9.87", - "MATH_CHANGE_TITLE": "تغییر %1 با %2", - "MATH_CHANGE_TOOLTIP": "افزودن یک عدد به متغیر '%1'.", - "MATH_ROUND_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "MATH_ROUND_TOOLTIP": "گردکردن یک عدد به بالا یا پایین.", - "MATH_ROUND_OPERATOR_ROUND": "گردکردن", - "MATH_ROUND_OPERATOR_ROUNDUP": "گرد به بالا", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "گرد به پایین", - "MATH_ONLIST_OPERATOR_SUM": "جمع فهرست", - "MATH_ONLIST_TOOLTIP_SUM": "جمع همهٔ عددهای فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_MIN": "کوچکترین فهرست", - "MATH_ONLIST_TOOLTIP_MIN": "کوچک‌ترین عدد در فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_MAX": "بزرگ‌ترین فهرست", - "MATH_ONLIST_TOOLTIP_MAX": "بزرگ‌ترین عدد در فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_AVERAGE": "میانگین فهرست", - "MATH_ONLIST_TOOLTIP_AVERAGE": "میانگین (میانگین ریاضی) مقادیر عددی فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_MEDIAN": "میانهٔ فهرست", - "MATH_ONLIST_TOOLTIP_MEDIAN": "میانهٔ عدد در فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_MODE": "مد فهرست", - "MATH_ONLIST_TOOLTIP_MODE": "شایع‌ترین قلم(های) در فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_STD_DEV": "انحراف معیار فهرست", - "MATH_ONLIST_TOOLTIP_STD_DEV": "انحراف معیار فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_RANDOM": "مورد تصادفی از فهرست", - "MATH_ONLIST_TOOLTIP_RANDOM": "موردی تصادفی از فهرست را بر می‌گرداند.", - "MATH_MODULO_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%BE%DB%8C%D9%85%D8%A7%D9%86%D9%87", - "MATH_MODULO_TITLE": "باقی‌ماندهٔ %1 + %2", - "MATH_MODULO_TOOLTIP": "باقی‌ماندهٔ تقسیم دو عدد را بر می‌گرداند.", - "MATH_CONSTRAIN_TITLE": "محدودکردن %1 پایین %2 بالا %3", - "MATH_CONSTRAIN_TOOLTIP": "محدودکردن یک عدد بین محدودیت‌های مشخص‌شده (بسته).", - "MATH_RANDOM_INT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C", - "MATH_RANDOM_INT_TITLE": "عدد صحیح تصادفی بین %1 تا %2", - "MATH_RANDOM_INT_TOOLTIP": "یک عدد تصادفی بین دو مقدار مشخص‌شده به صورت بسته باز می‌گرداند.", - "MATH_RANDOM_FLOAT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "کسر تصادفی", - "MATH_RANDOM_FLOAT_TOOLTIP": "بازگرداندن کسری تصادفی بین ۰٫۰ (بسته) تا ۱٫۰ (باز).", - "TEXT_TEXT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D8%B4%D8%AA%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "TEXT_TEXT_TOOLTIP": "یک حرف، کلمه یا خطی از متن.", - "TEXT_JOIN_TITLE_CREATEWITH": "ایجاد متن با", - "TEXT_JOIN_TOOLTIP": "یک تکه‌ای از متن را با چسپاندن همهٔ تعداد از موارد ایجاد می‌کند.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "عضویت", - "TEXT_CREATE_JOIN_TOOLTIP": "اضافه، حذف یا ترتیب‌سازی قسمت‌ها برای تنظیم مجدد این بلوک اگر مسدود است.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "افزودن یک مورد به متن.", - "TEXT_APPEND_TITLE": "به %1 الحاق متن %2", - "TEXT_APPEND_TOOLTIP": "الحاق متنی به متغیر «%1».", - "TEXT_LENGTH_TITLE": "طول %1", - "TEXT_LENGTH_TOOLTIP": "بازگرداندن عددی از حروف (شامل فاصله‌ها) در متن فراهم‌شده.", - "TEXT_ISEMPTY_TITLE": "%1 خالی است", - "TEXT_ISEMPTY_TOOLTIP": "اضافه‌کردن صحیح اگر متن فراهم‌شده خالی است.", - "TEXT_INDEXOF_TOOLTIP": "شاخصی از اولین آخرین رخ‌داد متن اول در متن دوم بر می‌گرداند. اگر متن یافت نشد %1 باز می‌گرداند.", - "TEXT_INDEXOF_TITLE": "در متن %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "اولین رخداد متن را بیاب", - "TEXT_INDEXOF_OPERATOR_LAST": "آخرین رخداد متن را بیاب", - "TEXT_CHARAT_FROM_START": "گرفتن حرف #", - "TEXT_CHARAT_FROM_END": "گرفتن حرف # از آخر", - "TEXT_CHARAT_FIRST": "گرفتن اولین حرف", - "TEXT_CHARAT_LAST": "گرفتن آخرین حرف", - "TEXT_CHARAT_RANDOM": "گرفتن حرف تصادفی", - "TEXT_CHARAT_TOOLTIP": "حرفی در موقعیت مشخص‌شده بر می‌گرداند.", - "TEXT_GET_SUBSTRING_TOOLTIP": "قسمت مشخصی‌شده‌ای از متن را بر می‌گرداند.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "مہ نبشتہ‌ئا", - "TEXT_GET_SUBSTRING_START_FROM_START": "گرفتن زیرمتن از حرف #", - "TEXT_GET_SUBSTRING_START_FROM_END": "گرفتن زیرمتن از حرف # به انتها", - "TEXT_GET_SUBSTRING_START_FIRST": "گرفتن زیرمتن از اولین حرف", - "TEXT_GET_SUBSTRING_END_FROM_START": "به حرف #", - "TEXT_GET_SUBSTRING_END_FROM_END": "به حرف # از انتها", - "TEXT_GET_SUBSTRING_END_LAST": "گرفتن آخرین حرف", - "TEXT_CHANGECASE_TOOLTIP": "بازگرداندن کپی متن در حالتی متفاوت.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "به حروف بزرگ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "به حروف کوچک", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "به حروف بزرگ عنوان", - "TEXT_TRIM_TOOLTIP": "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند.", - "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", - "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_PRINT_TITLE": "چاپ %1", - "TEXT_PRINT_TOOLTIP": "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده.", - "TEXT_PROMPT_TYPE_TEXT": "اعلان برای متن با پیام", - "TEXT_PROMPT_TYPE_NUMBER": "اعلان برای عدد با پیام", - "TEXT_PROMPT_TOOLTIP_NUMBER": "اعلان برای کاربر با یک عدد.", - "TEXT_PROMPT_TOOLTIP_TEXT": "اعلان برای کاربر برای یک متن.", - "LISTS_CREATE_EMPTY_TITLE": "ایجاد فهرست خالی", - "LISTS_CREATE_EMPTY_TOOLTIP": "فهرستی با طول صفر شامل هیچ رکورد داده‌ای بر می‌گرداند.", - "LISTS_CREATE_WITH_TOOLTIP": "فهرستی از هر عددی از موارد می‌سازد.", - "LISTS_CREATE_WITH_INPUT_WITH": "ایجاد فهرست با", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "لیست", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "اضافه‌کردن، حذف‌کردن یا ترتیب‌سازی مجدد بخش‌ها این بلوک فهرستی.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "اضافه‌کردن یک مورد به فهرست.", - "LISTS_REPEAT_TOOLTIP": "فهرستی شامل مقادیر داده‌شدهٔ تکرار شده عدد مشخص‌شده می‌سازد.", - "LISTS_REPEAT_TITLE": "فهرستی با %1 تکرارشده به اندازهٔ %2 می‌سازد", - "LISTS_LENGTH_TITLE": "طول %1", - "LISTS_LENGTH_TOOLTIP": "طول یک فهرست را برمی‌گرداند.", - "LISTS_ISEMPTY_TITLE": "%1 خالی است", - "LISTS_ISEMPTY_TOOLTIP": "اگر فهرست خالی است مقدار صجیج بر می‌گرداند.", - "LISTS_INLIST": "مہ لیست‌ئا", - "LISTS_INDEX_OF_FIRST": "آخرین رخداد متن را بیاب", - "LISTS_INDEX_OF_LAST": "یافتن آخرین رخ‌داد مورد", - "LISTS_INDEX_OF_TOOLTIP": "شاخصی از اولین/آخرین رخ‌داد مورد در فهرست را بر می‌گرداند. %1 بر می‌گرداند اگر متن موجود نبود.", - "LISTS_GET_INDEX_GET": "گرفتن", - "LISTS_GET_INDEX_GET_REMOVE": "گرفتن و حذف‌کردن", - "LISTS_GET_INDEX_REMOVE": "حذف‌کردن", - "LISTS_GET_INDEX_FROM_END": "# از انتها", - "LISTS_GET_INDEX_FIRST": "اولین", - "LISTS_GET_INDEX_LAST": "اهرین", - "LISTS_GET_INDEX_RANDOM": "تصادفی", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 اولین مورد است.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 آخرین مورد است.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "موردی در محل مشخص‌شده بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "اولین مورد یک فهرست را بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "آخرین مورد در یک فهرست را بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "یک مورد تصادفی در یک فهرست بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "مورد در محل مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "اولین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "آخرین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "مورد تصادفی‌ای را در فهرست حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "مورد مشخص‌شده در موقعیت مشخص در یک فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "اولین مورد را در یک فهرست حذف می‌کند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "آخرین مورد را در یک فهرست حذف می‌کند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "یک مورد تصادفی را یک فهرست حذف می‌کند.", - "LISTS_SET_INDEX_SET": "مجموعه", - "LISTS_SET_INDEX_INSERT": "جاہ دیگ مہ", - "LISTS_SET_INDEX_INPUT_TO": "به‌عنوان", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "مورد مشخص‌شده در یک فهرست را قرار می‌دهد.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "اولین مورد در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "آخرین مورد در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "یک مورد تصادفی در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "موردی در موقعیت مشخص‌شده در یک فهرست اضافه می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "موردی به ته فهرست اضافه می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "موردی به ته فهرست الحاق می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "مورد را به صورت تصادفی در یک فهرست می‌افزاید.", - "LISTS_GET_SUBLIST_START_FROM_START": "گرفتن زیرمجموعه‌ای از #", - "LISTS_GET_SUBLIST_START_FROM_END": "گرفتن زیرمجموعه‌ای از # از انتها", - "LISTS_GET_SUBLIST_START_FIRST": "گرفتن زیرمجموعه‌ای از ابتدا", - "LISTS_GET_SUBLIST_END_FROM_START": "به #", - "LISTS_GET_SUBLIST_END_FROM_END": "به # از انتها", - "LISTS_GET_SUBLIST_END_LAST": "به آخرین", - "LISTS_GET_SUBLIST_TOOLTIP": "کپی از قسمت مشخص‌شدهٔ لیست درست می‌کند.", - "VARIABLES_GET_TOOLTIP": "مقدار این متغیر را بر می‌گرداند.", - "VARIABLES_GET_CREATE_SET": "درست‌کردن «تنظیم %1»", - "VARIABLES_SET": "مجموعه %1 به %2", - "VARIABLES_SET_TOOLTIP": "متغیر برابر با خروجی را مشخص می‌کند.", - "VARIABLES_SET_CREATE_GET": "درست‌کردن «تنظیم %1»", - "PROCEDURES_DEFNORETURN_TITLE": "به", - "PROCEDURES_DEFNORETURN_PROCEDURE": "انجام چیزی", - "PROCEDURES_BEFORE_PARAMS": "با:", - "PROCEDURES_CALL_BEFORE_PARAMS": "با:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "تابعی می‌سازد بدون هیچ خروجی.", - "PROCEDURES_DEFRETURN_RETURN": "بازگشت", - "PROCEDURES_DEFRETURN_TOOLTIP": "تابعی با یک خروجی می‌سازد.", - "PROCEDURES_ALLOW_STATEMENTS": "اجازه اظهارات", - "PROCEDURES_DEF_DUPLICATE_WARNING": "اخطار: این تابعی پارامتر تکراری دارد.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "اجرای تابع تعریف‌شده توسط کاربر «%1».", - "PROCEDURES_CALLRETURN_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "اجرای تابع تعریف‌شده توسط کاربر «%1» و استفاده از خروجی آن.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ورودی‌ها", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "افزودن، حذف یا دوباره مرتب‌کردن ورودی این تابع.", - "PROCEDURES_MUTATORARG_TITLE": "نام ورودی:", - "PROCEDURES_MUTATORARG_TOOLTIP": "اضافه کردن ورودی به تابع.", - "PROCEDURES_HIGHLIGHT_DEF": "برجسته‌سازی تعریف تابع", - "PROCEDURES_CREATE_DO": "ساختن «%1»", - "PROCEDURES_IFRETURN_TOOLTIP": "اگر یک مقدار صحیح است، مقدار دوم را برگردان.", - "PROCEDURES_IFRETURN_WARNING": "اخطار: این بلوک احتمالاً فقط داخل یک تابع استفاده می‌شود." -} diff --git a/lib/blockly/msg/json/be-tarask.json b/lib/blockly/msg/json/be-tarask.json deleted file mode 100644 index 6401b1d..0000000 --- a/lib/blockly/msg/json/be-tarask.json +++ /dev/null @@ -1,350 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Renessaince", - "Jim-by", - "Red Winged Duck" - ] - }, - "VARIABLES_DEFAULT_NAME": "аб’ект", - "TODAY": "Сёньня", - "DUPLICATE_BLOCK": "Капіяваць", - "ADD_COMMENT": "Дадаць камэнтар", - "REMOVE_COMMENT": "Выдаліць камэнтар", - "DUPLICATE_COMMENT": "Прадубляваць камэнтар", - "EXTERNAL_INPUTS": "Зьнешнія ўваходы", - "INLINE_INPUTS": "Унутраныя ўваходы", - "DELETE_BLOCK": "Выдаліць блёк", - "DELETE_X_BLOCKS": "Выдаліць %1 блёкі", - "DELETE_ALL_BLOCKS": "Выдаліць усе блёкі %1?", - "CLEAN_UP": "Ачысьціць блёкі", - "COLLAPSE_BLOCK": "Згарнуць блёк", - "COLLAPSE_ALL": "Згарнуць блёкі", - "EXPAND_BLOCK": "Разгарнуць блёк", - "EXPAND_ALL": "Разгарнуць блёкі", - "DISABLE_BLOCK": "Адключыць блёк", - "ENABLE_BLOCK": "Уключыць блёк", - "HELP": "Дапамога", - "UNDO": "Скасаваць", - "REDO": "Паўтарыць", - "CHANGE_VALUE_TITLE": "Зьмяніць значэньне:", - "RENAME_VARIABLE": "Перайменаваць зьменную…", - "RENAME_VARIABLE_TITLE": "Перайменаваць усе назвы зьменных '%1' на:", - "NEW_VARIABLE": "Стварыць зьменную…", - "NEW_STRING_VARIABLE": "Стварыць радковую зьменную…", - "NEW_NUMBER_VARIABLE": "Стварыць лікавую зьменную…", - "NEW_COLOUR_VARIABLE": "Стварыць зьменную колеру…", - "NEW_VARIABLE_TYPE_TITLE": "Новы тып зьменнай:", - "NEW_VARIABLE_TITLE": "Імя новай зьменнай:", - "VARIABLE_ALREADY_EXISTS": "Зьменная з назвай «%1» ужо існуе.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Зьменная з назвай «%1» ужо існуе зь іншым тыпам: «%2».", - "DELETE_VARIABLE_CONFIRMATION": "Выдаліць %1 выкарыстаньняў зьменнай «%2»?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Немагчыма выдаліць зьменную «%1», таму што яна зьяўляецца часткай вызначэньня функцыі «%2»", - "DELETE_VARIABLE": "Выдаліць зьменную «%1»", - "COLOUR_PICKER_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D0%B5%D1%80", - "COLOUR_PICKER_TOOLTIP": "Абярыце колер з палітры.", - "COLOUR_RANDOM_TITLE": "выпадковы колер", - "COLOUR_RANDOM_TOOLTIP": "Абраць выпадковы колер.", - "COLOUR_RGB_TITLE": "колер з", - "COLOUR_RGB_RED": "чырвонага", - "COLOUR_RGB_GREEN": "зялёнага", - "COLOUR_RGB_BLUE": "сіняга", - "COLOUR_RGB_TOOLTIP": "Стварыць колер з абранымі прапорцыямі чырвонага, зялёнага і сіняга. Усе значэньні павінны быць ад 0 да 100.", - "COLOUR_BLEND_TITLE": "зьмяшаць", - "COLOUR_BLEND_COLOUR1": "колер 1", - "COLOUR_BLEND_COLOUR2": "колер 2", - "COLOUR_BLEND_RATIO": "дзеля", - "COLOUR_BLEND_TOOLTIP": "Зьмешвае два колеры ў дадзенай прапорцыі (0.0 — 1.0)", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "паўтарыць %1 раз(ы)", - "CONTROLS_REPEAT_INPUT_DO": "выканаць", - "CONTROLS_REPEAT_TOOLTIP": "Выконвае апэрацыі некалькі разоў.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "паўтараць, пакуль", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "паўтараць, пакуль не", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Пакуль значэньне ісьціна, выконваць пэўныя апэрацыі.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Пакуль значэньне хлусьня, выконваць пэўныя апэрацыі.", - "CONTROLS_FOR_TOOLTIP": "Прысвойвае зьменнай \"%1\" значэньні ад пачатковага да канчатковага значэньня, улічваючы зададзены крок, і выконвае абраныя блёкі.", - "CONTROLS_FOR_TITLE": "лічыць з %1 ад %2 да %3 па %4", - "CONTROLS_FOREACH_TITLE": "для кожнага элемэнта %1 у сьпісе %2", - "CONTROLS_FOREACH_TOOLTIP": "Для кожнага элемэнту сьпісу прысвойвае зьменнай '%1' ягонае значэньне і выконвае пэўныя апэрацыі.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "перарваць цыкль", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "працягнуць з наступнага кроку цыклю", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Спыніць гэты цыкль.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Прапусьціць рэшту цыклю і перайсьці да наступнага кроку.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Увага: гэты блёк можа быць выкарыстаны толькі ў цыклі.", - "CONTROLS_IF_TOOLTIP_1": "Калі значэньне ісьціна, выканаць пэўныя апэрацыі.", - "CONTROLS_IF_TOOLTIP_2": "Калі значэньне ісьціна, выканаць першы блёк апэрацыяў, інакш выканаць другі блёк.", - "CONTROLS_IF_TOOLTIP_3": "Калі першае значэньне ісьціна, выканаць першы блёк апэрацыяў. Інакш, калі другое значэньне ісьціна, выканаць другі блёк апэрацыяў.", - "CONTROLS_IF_TOOLTIP_4": "Калі першае значэньне ісьціна, выканаць першы блёк апэрацыяў. Інакш, калі другое значэньне ісьціна, выканаць другі блёк апэрацыяў. Калі ніводнае з значэньняў не сапраўднае, выканаць апошні блёк апэрацыяў.", - "CONTROLS_IF_MSG_IF": "калі", - "CONTROLS_IF_MSG_ELSEIF": "інакш, калі", - "CONTROLS_IF_MSG_ELSE": "інакш", - "CONTROLS_IF_IF_TOOLTIP": "Дадаць, выдаліць ці пераставіць сэкцыі для пераканфігураваньня гэтага блёку «калі».", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Дадаць умову да блёку «калі».", - "CONTROLS_IF_ELSE_TOOLTIP": "Дадаць заключную ўмову для ўсіх астатніх варыянтаў блёку «калі».", - "IOS_OK": "Добра", - "IOS_CANCEL": "Адмяніць", - "IOS_ERROR": "Памылка", - "IOS_PROCEDURES_INPUTS": "УВАХОДНЫЯ ЗЬВЕСТКІ", - "IOS_PROCEDURES_ADD_INPUT": "+ Дадаць уваходныя зьвесткі", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Дазволіць сьцьверджаньні", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Уваходныя зьвесткі гэтай функцыі дублююцца.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Дадаць зьменную", - "IOS_VARIABLES_ADD_BUTTON": "Дадаць", - "IOS_VARIABLES_RENAME_BUTTON": "Перайменаваць", - "IOS_VARIABLES_DELETE_BUTTON": "Выдаліць", - "IOS_VARIABLES_VARIABLE_NAME": "Назва зьменнай", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Вы ня можаце выкарыстоўваць пустую назву зьменнай.", - "LOGIC_COMPARE_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%9D%D1%8F%D1%80%D0%BE%D1%9E%D0%BD%D0%B0%D1%81%D1%8C%D1%86%D1%8C", - "LOGIC_COMPARE_TOOLTIP_EQ": "Вяртае «ісьціна», калі абодва ўводы роўныя.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Вяртае «ісьціна», калі абодва ўводы ня роўныя.", - "LOGIC_COMPARE_TOOLTIP_LT": "Вяртае «ісьціна», калі першы ўвод меншы за другі.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Вяртае «ісьціна», калі першы ўвод меншы ці роўны другому.", - "LOGIC_COMPARE_TOOLTIP_GT": "Вяртае «ісьціна», калі першы ўвод большы за другі.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Вяртае «ісьціна», калі першы ўвод большы ці роўны другому.", - "LOGIC_OPERATION_TOOLTIP_AND": "Вяртае «ісьціна», калі абодва ўводы праўдзівыя.", - "LOGIC_OPERATION_AND": "і", - "LOGIC_OPERATION_TOOLTIP_OR": "Вяртае «ісьціна», калі прынамсі адзін з уводаў праўдзівы.", - "LOGIC_OPERATION_OR": "ці", - "LOGIC_NEGATE_TITLE": "не %1", - "LOGIC_NEGATE_TOOLTIP": "Вяртае «ісьціна», калі ўвод непраўдзівы. Вяртае «хлусьня», калі ўвод праўдзівы.", - "LOGIC_BOOLEAN_TRUE": "ісьціна", - "LOGIC_BOOLEAN_FALSE": "хлусьня", - "LOGIC_BOOLEAN_TOOLTIP": "Вяртае «ісьціна» ці «хлусьня».", - "LOGIC_NULL": "нічога", - "LOGIC_NULL_TOOLTIP": "Вяртае нічога.", - "LOGIC_TERNARY_CONDITION": "тэст", - "LOGIC_TERNARY_IF_TRUE": "калі ісьціна", - "LOGIC_TERNARY_IF_FALSE": "калі хлусьня", - "LOGIC_TERNARY_TOOLTIP": "Праверыць умову ў 'тэст'. Калі ўмова праўдзівая, будзе вернутае значэньне «калі ісьціна»; інакш будзе вернутае «калі хлусьня».", - "MATH_NUMBER_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%9B%D1%96%D0%BA", - "MATH_NUMBER_TOOLTIP": "Лік.", - "MATH_ARITHMETIC_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%90%D1%80%D1%8B%D1%82%D0%BC%D1%8D%D1%82%D1%8B%D0%BA%D0%B0", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Вяртае суму двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Вяртае рознасьць двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Вяртае здабытак двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Вяртае дзель двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Вяртае першы лік у ступені другога ліку.", - "MATH_SINGLE_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BD%D1%8B_%D0%BA%D0%BE%D1%80%D0%B0%D0%BD%D1%8C", - "MATH_SINGLE_OP_ROOT": "квадратны корань", - "MATH_SINGLE_TOOLTIP_ROOT": "Вяртае квадратны корань ліку.", - "MATH_SINGLE_OP_ABSOLUTE": "модуль", - "MATH_SINGLE_TOOLTIP_ABS": "Вяртае модуль ліку.", - "MATH_SINGLE_TOOLTIP_NEG": "Вяртае супрацьлеглы лік.", - "MATH_SINGLE_TOOLTIP_LN": "Вяртае натуральны лягарытм ліку.", - "MATH_SINGLE_TOOLTIP_LOG10": "Вяртае дзесятковы лягарытм ліку.", - "MATH_SINGLE_TOOLTIP_EXP": "Вяртае e ў ступені ліку.", - "MATH_SINGLE_TOOLTIP_POW10": "Вяртае 10 у ступені ліку.", - "MATH_TRIG_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%A2%D1%80%D1%8B%D0%B3%D0%B0%D0%BD%D0%B0%D0%BC%D1%8D%D1%82%D1%80%D1%8B%D1%8F#.D0.A2.D1.80.D1.8B.D0.B3.D0.B0.D0.BD.D0.B0.D0.BC.D1.8D.D1.82.D1.80.D1.8B.D1.87.D0.BD.D1.8B.D1.8F_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D1.8B.D1.96", - "MATH_TRIG_TOOLTIP_SIN": "Вяртае сынус кута ў градусах.", - "MATH_TRIG_TOOLTIP_COS": "Вяртае косынус кута ў градусах.", - "MATH_TRIG_TOOLTIP_TAN": "Вяртае тангэнс кута ў градусах.", - "MATH_TRIG_TOOLTIP_ASIN": "Вяртае арксынус ліку.", - "MATH_TRIG_TOOLTIP_ACOS": "Вяртае арккосынус ліку.", - "MATH_TRIG_TOOLTIP_ATAN": "Вяртае арктангэнс ліку.", - "MATH_CONSTANT_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%8D%D0%BC%D0%B0%D1%82%D1%8B%D1%87%D0%BD%D0%B0%D1%8F_%D0%BA%D0%B0%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B0", - "MATH_CONSTANT_TOOLTIP": "Вяртае адну з агульных канстантаў: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0,707...) або ∞ (бясконцасьць).", - "MATH_IS_EVEN": "парная", - "MATH_IS_ODD": "няпарная", - "MATH_IS_PRIME": "простая", - "MATH_IS_WHOLE": "цэлая", - "MATH_IS_POSITIVE": "станоўчая", - "MATH_IS_NEGATIVE": "адмоўная", - "MATH_IS_DIVISIBLE_BY": "дзяліць на", - "MATH_IS_TOOLTIP": "Правярае, ці зьяўляецца лік парным, няпарным, простым, станоўчым, адмоўным, ці ён дзеліцца на пэўны лік без астатку. Вяртае значэньне ісьціна або няпраўда.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "зьмяніць %1 на %2", - "MATH_CHANGE_TOOLTIP": "Дадае лічбу да зьменнай '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Акругленьне ліку да большага ці меншага.", - "MATH_ROUND_OPERATOR_ROUND": "акругліць", - "MATH_ROUND_OPERATOR_ROUNDUP": "акругліць да большага", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "акругліць да меншага", - "MATH_ONLIST_OPERATOR_SUM": "Сума сьпісу", - "MATH_ONLIST_TOOLTIP_SUM": "Вяртае суму ўсіх лікаў у сьпісе.", - "MATH_ONLIST_OPERATOR_MIN": "мінімальная ў сьпісе", - "MATH_ONLIST_TOOLTIP_MIN": "Вяртае найменшы лік у сьпісе.", - "MATH_ONLIST_OPERATOR_MAX": "мінімальная ў сьпісе", - "MATH_ONLIST_TOOLTIP_MAX": "Вяртае найменшы лік у сьпісе.", - "MATH_ONLIST_OPERATOR_AVERAGE": "сярэдняя ў сьпісе", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Вяртае сярэднеарытмэтычнае значэньне лікавых значэньняў у сьпісе.", - "MATH_ONLIST_OPERATOR_MEDIAN": "мэдыяна сьпісу", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Вяртае мэдыяну сьпісу.", - "MATH_ONLIST_OPERATOR_MODE": "рэжымы сьпісу", - "MATH_ONLIST_TOOLTIP_MODE": "Вяртае сьпіс самых распаўсюджаных элемэнтаў у сьпісе.", - "MATH_ONLIST_OPERATOR_STD_DEV": "стандартнае адхіленьне сьпісу", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Вяртае стандартнае адхіленьне сьпісу.", - "MATH_ONLIST_OPERATOR_RANDOM": "выпадковы элемэнт сьпісу", - "MATH_ONLIST_TOOLTIP_RANDOM": "Вяртае выпадковы элемэнт сьпісу.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "рэшта дзяленьня %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Вяртае рэшту дзяленьня двух лікаў.", - "MATH_CONSTRAIN_TITLE": "абмежаваць %1 зьнізу %2 зьверху %3", - "MATH_CONSTRAIN_TOOLTIP": "Абмяжоўвае колькасьць ніжняй і верхняй межамі (уключна).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "выпадковая цэлая з %1 для %2", - "MATH_RANDOM_INT_TOOLTIP": "Вяртае выпадковы цэлы лік паміж двума зададзенымі абмежаваньнямі ўключна.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "выпадковая дроб", - "MATH_RANDOM_FLOAT_TOOLTIP": "Вяртае выпадковую дроб у дыяпазоне ад 0,0 (уключна) да 1,0.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 ад X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Вяртае арктангенс пункту (X, Y) у градусах ад -180 да 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Літара, слова ці радок тэксту.", - "TEXT_JOIN_TITLE_CREATEWITH": "стварыць тэкст з", - "TEXT_JOIN_TOOLTIP": "Стварае фрагмэнт тэксту аб’яднаньнем любой колькасьці элемэнтаў.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "далучыць", - "TEXT_CREATE_JOIN_TOOLTIP": "Дадайце, выдаліце ці зьмяніце парадак разьдзелаў для перадачы тэкставага блёку.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Дадаць элемэнт да тэксту.", - "TEXT_APPEND_TITLE": "да %1 дадаць тэкст %2", - "TEXT_APPEND_TOOLTIP": "Дадаць які-небудзь тэкст да зьменнай '%1'.", - "TEXT_LENGTH_TITLE": "даўжыня %1", - "TEXT_LENGTH_TOOLTIP": "Вяртае колькасьць літараў (у тым ліку прабелы) у пададзеным тэксьце.", - "TEXT_ISEMPTY_TITLE": "%1 пусты", - "TEXT_ISEMPTY_TOOLTIP": "Вяртае значэньне ісьціна, калі тэкст пусты.", - "TEXT_INDEXOF_TOOLTIP": "Вяртае індэкс першага/апошняга ўваходжаньня першага тэксту ў другі тэкст. Вяртае %1, калі тэкст ня знойдзены.", - "TEXT_INDEXOF_TITLE": "у тэксьце %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "знайсьці першае ўваходжаньне тэксту", - "TEXT_INDEXOF_OPERATOR_LAST": "знайсьці апошняе ўваходжаньне тэксту", - "TEXT_CHARAT_TITLE": "у тэксьце %1 %2", - "TEXT_CHARAT_FROM_START": "узяць літару №", - "TEXT_CHARAT_FROM_END": "узяць літару № з канца", - "TEXT_CHARAT_FIRST": "узяць першую літару", - "TEXT_CHARAT_LAST": "узяць апошнюю літару", - "TEXT_CHARAT_RANDOM": "узяць выпадковую літару", - "TEXT_CHARAT_TOOLTIP": "Вяртае літару ў пазначанай пазыцыі.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Вяртае пазначаную частку тэксту.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "у тэксьце", - "TEXT_GET_SUBSTRING_START_FROM_START": "узяць падрадок зь літары №", - "TEXT_GET_SUBSTRING_START_FROM_END": "узяць падрадок зь літары № з канца", - "TEXT_GET_SUBSTRING_START_FIRST": "атрымаць падрадок зь першай літары", - "TEXT_GET_SUBSTRING_END_FROM_START": "да літары №", - "TEXT_GET_SUBSTRING_END_FROM_END": "да літары № з канца", - "TEXT_GET_SUBSTRING_END_LAST": "да апошняй літары", - "TEXT_CHANGECASE_TOOLTIP": "Вярнуць копію тэксту зь іншай велічынёй літар.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "да ВЕРХНЯГА РЭГІСТРУ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "да ніжняга рэгістру", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Вялікія Першыя Літары", - "TEXT_TRIM_TOOLTIP": "Вяртае копію тэксту з прабеламі, выдаленымі ад аднаго ці абодвух бакоў.", - "TEXT_TRIM_OPERATOR_BOTH": "абрэзаць прабелы з абодвух бакоў", - "TEXT_TRIM_OPERATOR_LEFT": "абрэзаць прабелы зь левага боку", - "TEXT_TRIM_OPERATOR_RIGHT": "абрэзаць прабелы з правага боку", - "TEXT_PRINT_TITLE": "друкаваць %1", - "TEXT_PRINT_TOOLTIP": "Надрукаваць пазначаны тэкст, лічбу ці іншыя сымбалі.", - "TEXT_PROMPT_TYPE_TEXT": "запытаць тэкст з падказкай", - "TEXT_PROMPT_TYPE_NUMBER": "запытаць лічбу з падказкай", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Запытаць у карыстальніка лічбу.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Запытаць у карыстальніка тэкст.", - "TEXT_COUNT_MESSAGE0": "падлічыць %1 сярод %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Падлічвае колькі разоў нейкі тэкст сустракаецца ўнутры нейкага іншага тэксту.", - "TEXT_REPLACE_MESSAGE0": "замяніць %1 на %2 у %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Замяняе ўсе выпадкі нейкага тэксту на іншы тэкст.", - "TEXT_REVERSE_MESSAGE0": "адваротна %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Мяняе парадак сымбаляў у тэксьце на адваротны.", - "LISTS_CREATE_EMPTY_TITLE": "стварыць пусты сьпіс", - "LISTS_CREATE_EMPTY_TOOLTIP": "Вяртае сьпіс даўжынёй 0, які ня ўтрымлівае запісаў зьвестак", - "LISTS_CREATE_WITH_TOOLTIP": "Ставарае сьпіс зь любой колькасьцю элемэнтаў.", - "LISTS_CREATE_WITH_INPUT_WITH": "стварыць сьпіс з", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "сьпіс", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Дадаць, выдаліць ці пераставіць сэкцыі для пераканфігураваньня гэтага блёку.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Дадаць элемэнт да сьпісу.", - "LISTS_REPEAT_TOOLTIP": "Стварае сьпіс, які ўтрымлівае пададзеную колькасьць копіяў элемэнту.", - "LISTS_REPEAT_TITLE": "стварыць сьпіс з элемэнту %1, які паўтараецца %2 разоў", - "LISTS_LENGTH_TITLE": "даўжыня %1", - "LISTS_LENGTH_TOOLTIP": "Вяртае даўжыню сьпісу.", - "LISTS_ISEMPTY_TITLE": "%1 пусты", - "LISTS_ISEMPTY_TOOLTIP": "Вяртае значэньне ісьціна, калі сьпіс пусты.", - "LISTS_INLIST": "у сьпісе", - "LISTS_INDEX_OF_FIRST": "знайсьці першае ўваходжаньне элемэнту", - "LISTS_INDEX_OF_LAST": "знайсьці апошняе ўваходжаньне элемэнту", - "LISTS_INDEX_OF_TOOLTIP": "Вяртае індэкс першага/апошняга ўваходжаньня элемэнту ў сьпіс. Вяртае %1, калі элемэнт ня знойдзены.", - "LISTS_GET_INDEX_GET": "атрымаць", - "LISTS_GET_INDEX_GET_REMOVE": "атрымаць і выдаліць", - "LISTS_GET_INDEX_REMOVE": "выдаліць", - "LISTS_GET_INDEX_FROM_END": "№ з канца", - "LISTS_GET_INDEX_FIRST": "першы", - "LISTS_GET_INDEX_LAST": "апошні", - "LISTS_GET_INDEX_RANDOM": "выпадковы", - "LISTS_INDEX_FROM_START_TOOLTIP": "№%1 — першы элемэнт.", - "LISTS_INDEX_FROM_END_TOOLTIP": "№%1 — апошні элемэнт.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Вяртае элемэнт у пазначанай пазыцыі ў сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Вяртае першы элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Вяртае апошні элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Вяртае выпадковы элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Выдаляе і вяртае элемэнт у пазначанай пазыцыі ў сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Выдаляе і вяртае першы элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Выдаляе і вяртае апошні элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Выдаляе і вяртае выпадковы элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Выдаляе элемэнт у пазначанай пазыцыі ў сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Выдаляе першы элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Выдаляе апошні элемэнт у сьпісе.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Выдаляе выпадковы элемэнт у сьпісе.", - "LISTS_SET_INDEX_SET": "усталяваць", - "LISTS_SET_INDEX_INSERT": "уставіць у", - "LISTS_SET_INDEX_INPUT_TO": "як", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Задае элемэнт у пазначанай пазыцыі ў сьпісе.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Задае першы элемэнт у сьпісе.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Задае апошні элемэнт у сьпісе.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Задае выпадковы элемэнт у сьпісе.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Устаўляе элемэнт у пазначанай пазыцыі ў сьпісе.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Устаўляе элемэнт у пачатак сьпісу.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Дадае элемэнт у канец сьпісу.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Выпадковым чынам устаўляе элемэнт у сьпіс.", - "LISTS_GET_SUBLIST_START_FROM_START": "атрымаць падсьпіс з №", - "LISTS_GET_SUBLIST_START_FROM_END": "атрымаць падсьпіс з № з канца", - "LISTS_GET_SUBLIST_START_FIRST": "атрымаць падсьпіс зь першага", - "LISTS_GET_SUBLIST_END_FROM_START": "да #", - "LISTS_GET_SUBLIST_END_FROM_END": "па № з канца", - "LISTS_GET_SUBLIST_END_LAST": "да апошняга", - "LISTS_GET_SUBLIST_TOOLTIP": "Стварае копію пазначанай часткі сьпісу.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "сартаваць %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Сартаваць копію сьпісу.", - "LISTS_SORT_ORDER_ASCENDING": "па павелічэньні", - "LISTS_SORT_ORDER_DESCENDING": "па зьмяншэньні", - "LISTS_SORT_TYPE_NUMERIC": "як лікі", - "LISTS_SORT_TYPE_TEXT": "паводле альфабэту", - "LISTS_SORT_TYPE_IGNORECASE": "паводле альфабэту, ігнараваць рэгістар", - "LISTS_SPLIT_LIST_FROM_TEXT": "стварыць сьпіс з тэксту", - "LISTS_SPLIT_TEXT_FROM_LIST": "стварыць тэкст са сьпісу", - "LISTS_SPLIT_WITH_DELIMITER": "з падзяляльнікам", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Падзяліць тэкст у сьпіс тэкстаў, па падзяляльніках.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Аб’ядноўвае сьпіс тэкстаў у адзін тэкст па падзяляльніках.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "адваротна %1", - "LISTS_REVERSE_TOOLTIP": "Зьмяняе парадак копіі сьпісу на адваротны.", - "VARIABLES_GET_TOOLTIP": "Вяртае значэньне гэтай зьменнай.", - "VARIABLES_GET_CREATE_SET": "Стварыць блёк «усталяваць %1»", - "VARIABLES_SET": "усталяваць %1 да %2", - "VARIABLES_SET_TOOLTIP": "Надаць гэтай зьменнай значэньне ўстаўкі.", - "VARIABLES_SET_CREATE_GET": "Стварыць блёк «атрымаць %1»", - "PROCEDURES_DEFNORETURN_TITLE": "да", - "PROCEDURES_DEFNORETURN_PROCEDURE": "зрабіць што-небудзь", - "PROCEDURES_BEFORE_PARAMS": "з:", - "PROCEDURES_CALL_BEFORE_PARAMS": "з:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Стварае функцыю бяз выніку.", - "PROCEDURES_DEFNORETURN_COMMENT": "Апішыце гэтую функцыю…", - "PROCEDURES_DEFRETURN_RETURN": "вярнуць", - "PROCEDURES_DEFRETURN_TOOLTIP": "Стварае функцыю з вынікам.", - "PROCEDURES_ALLOW_STATEMENTS": "дазволіць зацьвярджэньне", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Увага: гэтая функцыя мае парамэтры-дублікаты.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Запусьціць функцыю вызначаную карыстальнікам '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Запусьціць функцыю вызначаную карыстальнікам '%1' і выкарыстаць яе вынік.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "парамэтры", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Дадаць, выдаліць ці запісаць чаргу ўваходных парамэтраў для гэтай функцыі.", - "PROCEDURES_MUTATORARG_TITLE": "назва парамэтру:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Дадаць уваходныя парамэтры ў функцыю.", - "PROCEDURES_HIGHLIGHT_DEF": "Падсьвяціць вызначэньне функцыі", - "PROCEDURES_CREATE_DO": "Стварыць '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Калі значэньне ісьціна, вярнуць другое значэньне.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Папярэджаньне: гэты блёк можа выкарыстоўвацца толькі ў вызначанай функцыі.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Напішыце што-небудзь…", - "COLLAPSED_WARNINGS_WARNING": "Згорнутыя блёкі ўтрымліваюць папярэджаньні." -} diff --git a/lib/blockly/msg/json/be.json b/lib/blockly/msg/json/be.json deleted file mode 100644 index 9758945..0000000 --- a/lib/blockly/msg/json/be.json +++ /dev/null @@ -1,333 +0,0 @@ -{ - "@metadata": { - "authors": [ - "SimondR" - ] - }, - "VARIABLES_DEFAULT_NAME": "элемент", - "TODAY": "Сёння", - "DUPLICATE_BLOCK": "Дубляваць", - "ADD_COMMENT": "Дадаць каментарый", - "REMOVE_COMMENT": "Выдаліць каментар", - "EXTERNAL_INPUTS": "Знешнія ўваходы", - "INLINE_INPUTS": "Убудаваныя ўваходы", - "DELETE_BLOCK": "Выдаліць блок", - "DELETE_X_BLOCKS": "Выдаліць %1 блокаў", - "DELETE_ALL_BLOCKS": "Выдаліць усе блокі %1?", - "CLEAN_UP": "Выраўнаваць блокі", - "COLLAPSE_BLOCK": "Згарнуць блок", - "COLLAPSE_ALL": "Згарнуць блокі", - "EXPAND_BLOCK": "Разгарнуць блок", - "EXPAND_ALL": "Разгарнуць блокі", - "DISABLE_BLOCK": "Адключыць блок", - "ENABLE_BLOCK": "Уключыць блок", - "HELP": "Даведка", - "UNDO": "Адкаціць", - "REDO": "Паўтарыць", - "CHANGE_VALUE_TITLE": "Змяніць значэння:", - "RENAME_VARIABLE": "Перайменаваць пераменную...", - "RENAME_VARIABLE_TITLE": "Перайменаваць усе пераменныя '%1' да:", - "NEW_VARIABLE": "Стварыць пераменную...", - "NEW_VARIABLE_TITLE": "Новая назва пераменнай:", - "VARIABLE_ALREADY_EXISTS": "Пераменная з назвай '%1' ужо існуе.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Назва пераменнай '%1' ужо выкарыстоўваецца іншай пераменнай тыпу '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Выдаліць %1 выкарыстання пераменнай '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Немагчыма выдаліць пераменную '%1', паколькі яна з'яўляецца часткай вызначэння функцыі '%2'", - "DELETE_VARIABLE": "Выдаліць пераменную '%1'", - "COLOUR_PICKER_HELPURL": "https://be.wikipedia.org/wiki/Колер", - "COLOUR_PICKER_TOOLTIP": "Выбраць колер з палітры.", - "COLOUR_RANDOM_TITLE": "выпадковы колер", - "COLOUR_RANDOM_TOOLTIP": "Выбраць колер наўздагад.", - "COLOUR_RGB_TITLE": "колер з", - "COLOUR_RGB_RED": "чырвоны", - "COLOUR_RGB_GREEN": "зялёны", - "COLOUR_RGB_BLUE": "сіні", - "COLOUR_RGB_TOOLTIP": "Стварыць колер з названымі ўзроўнямі чырвонага, зялёнага і сіняга. Усе значэння павінны быць ад 0 да 100.", - "COLOUR_BLEND_TITLE": "змяшаць", - "COLOUR_BLEND_COLOUR1": "колер 1", - "COLOUR_BLEND_COLOUR2": "колер 2", - "COLOUR_BLEND_RATIO": "суадносіны", - "COLOUR_BLEND_TOOLTIP": "Змешвае два колеры разам у паказаных суадносінах (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://be.wikipedia.org/wiki/Цыкл_(праграмаванне)", - "CONTROLS_REPEAT_TITLE": "паўтарыць %1 разоў", - "CONTROLS_REPEAT_INPUT_DO": "выканаць", - "CONTROLS_REPEAT_TOOLTIP": "Выканаць пэўныя дзеянні некалькі разоў.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "паўтараць, пакуль", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "паўтараць, пакуль не", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Пакуль значэнне ісцінае, выконваць пэўныя дзеянні.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Пакуль значэнне ілжывае, выконваць пэўныя дзеянні.", - "CONTROLS_FOR_TOOLTIP": "Наяўная пераменная '%1' прымае значэнні ад пачатковага да канчатковага, улічваючы зададзены інтэрвал, і выконваюцца названыя блокі.", - "CONTROLS_FOR_TITLE": "лічыць з %1 ад %2 да %3 праз %4", - "CONTROLS_FOREACH_TITLE": "для кожнага элемента %1 у спісе %2", - "CONTROLS_FOREACH_TOOLTIP": "Для кожнага элемента ў спісе пераменная '%1' атрымлівае значэнне элемента, а затым выконваюцца пэўныя дзеянні.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "перарваць цыкл", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "прадоўжыць з наступнай ітэрацыі цыклу", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Перарваць выкананне цыкла.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Прапусціць рэшту гэтага цыкла і перайсці да выканання наступнай ітэрацыі.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Папярэджанне: гэты блок можа быць выкарыстаны толькі ў межах цыклу.", - "CONTROLS_IF_TOOLTIP_1": "Калі значэнне ісцінае, то выканаць пэўныя дзеянні.", - "CONTROLS_IF_TOOLTIP_2": "Калі значэнне ісцінае, то выконваецца першы блок аператараў. У адваротным выпадку выконваецца другі блок аператараў.", - "CONTROLS_IF_TOOLTIP_3": "Калі першае значэнне ісцінае, то выконваецца першы блок аператараў. У адваротным выпадку, калі другое значэнне ісцінае, то выконваецца другі блок аператараў.", - "CONTROLS_IF_TOOLTIP_4": "Калі першае значэнне ісцінае, то выконваецца першы блок аператараў. У адваротным выпадку, калі другое значэнне ісцінае, то выконваецца другі блок аператараў. Калі ні адно з значэнняў не з'яўляецца ісціным, то выконваецца апошні блок аператараў.", - "CONTROLS_IF_MSG_IF": "калі", - "CONTROLS_IF_MSG_ELSEIF": "інакш калі", - "CONTROLS_IF_MSG_ELSE": "інакш", - "CONTROLS_IF_IF_TOOLTIP": "Дадайце, выдаліце або змяніце парадак секцыяў, каб пераналадзіць гэты блок 'калі'.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Дадайце ўмову да блоку 'калі'", - "CONTROLS_IF_ELSE_TOOLTIP": "Дадаць канчатковую, ўсёабдымную ўмову ў блок 'калі'.", - "IOS_OK": "Добра", - "IOS_CANCEL": "Адмяніць", - "IOS_ERROR": "Памылка", - "IOS_PROCEDURES_INPUTS": "УВАХОД", - "IOS_PROCEDURES_ADD_INPUT": "+ Дадаць уваходную пераменную", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Дазволіць аператары", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "У гэтай функцыі ёсць уваходныя пераменныя, якія дубліруюцца.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Дадаць пераменную", - "IOS_VARIABLES_ADD_BUTTON": "Дадаць", - "IOS_VARIABLES_RENAME_BUTTON": "Перайменаваць", - "IOS_VARIABLES_DELETE_BUTTON": "Выдаліць", - "IOS_VARIABLES_VARIABLE_NAME": "Назва пераменнай", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Вы не можаце выкарыстоўваць пустое імя пераменнай.", - "LOGIC_COMPARE_HELPURL": "https://be.wikipedia.org/wiki/Няроўнасць", - "LOGIC_COMPARE_TOOLTIP_EQ": "Вяртае станоўчае значэнне, калі абодва ўводы роўныя адзін аднаму.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Вяртае станоўчае значэнне, калі ўводы не роўныя.", - "LOGIC_COMPARE_TOOLTIP_LT": "Вяртае станоўчае значэнне, калі першы ўвод менш другога.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Вяртае значэнне ісціна, калі першая ўстаўка менш або роўная другі.", - "LOGIC_COMPARE_TOOLTIP_GT": "Вяртае значэнне ісціна, калі першая ўстаўка больш другой.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Вяртае значэнне ісціна, калі першая ўстаўка больш або роўная другой.", - "LOGIC_OPERATION_TOOLTIP_AND": "Вяртае значэнне ісціна, калі абедзве ўстаўкі ісцінныя.", - "LOGIC_OPERATION_AND": "і", - "LOGIC_OPERATION_TOOLTIP_OR": "Вяртае значэнне ісціна, калі хаця б адна з уставак ісцінная.", - "LOGIC_OPERATION_OR": "ці", - "LOGIC_NEGATE_TITLE": "не %1", - "LOGIC_NEGATE_TOOLTIP": "Вяртае значэнне ісціна, калі устаўка ілжывая. Вяртае значэнне хлусня, калі устаўка ісцінная.", - "LOGIC_BOOLEAN_TRUE": "ісціна", - "LOGIC_BOOLEAN_FALSE": "хлусня", - "LOGIC_BOOLEAN_TOOLTIP": "Вяртае значэнне ісціна або хлусня.", - "LOGIC_NULL": "нішто", - "LOGIC_NULL_TOOLTIP": "Вяртае нішто.", - "LOGIC_TERNARY_CONDITION": "абраць па", - "LOGIC_TERNARY_IF_TRUE": "калі ісціна", - "LOGIC_TERNARY_IF_FALSE": "калі хлусня", - "LOGIC_TERNARY_TOOLTIP": "Правярае ўмову выбару. Калі ўмова ісцінная, вяртае першае значэнне, у адваротным выпадку вяртае другое значэнне.", - "MATH_NUMBER_HELPURL": "https://be.wikipedia.org/wiki/Лік", - "MATH_NUMBER_TOOLTIP": "Лік.", - "MATH_ARITHMETIC_HELPURL": "https://be.wikipedia.org/wiki/Арыфметыка", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Вяртае суму двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Вяртае рознасць двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Вяртае твор двух лікаў.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Вяртае дзель ад дзялення першага ліку на другое.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Вяртае першы лік, узведзены ў ступень другога ліку.", - "MATH_SINGLE_HELPURL": "https://be.wikipedia.org/wiki/Квадратны_корань", - "MATH_SINGLE_OP_ROOT": "квадратны корань", - "MATH_SINGLE_TOOLTIP_ROOT": "Вяртае квадратны корань ліку.", - "MATH_SINGLE_OP_ABSOLUTE": "модуль", - "MATH_SINGLE_TOOLTIP_ABS": "Вяртае модуль ліку.", - "MATH_SINGLE_TOOLTIP_NEG": "Вяртае супрацьлеглы лік.", - "MATH_SINGLE_TOOLTIP_LN": "Вяртае натуральны лагарыфм ліку.", - "MATH_SINGLE_TOOLTIP_LOG10": "Вяртае дзесятковы лагарыфм ліку.", - "MATH_SINGLE_TOOLTIP_EXP": "Вяртае е ва ўказанай ступені.", - "MATH_SINGLE_TOOLTIP_POW10": "Вяртае 10 ва ўказанай ступені.", - "MATH_TRIG_HELPURL": "https://be.wikipedia.org/wiki/Трыганаметрычныя_функцыі", - "MATH_TRIG_TOOLTIP_SIN": "Вяртае сінус рага ў градусах.", - "MATH_TRIG_TOOLTIP_COS": "Вяртае косінус рага ў градусах.", - "MATH_TRIG_TOOLTIP_TAN": "Вяртае тангенс рага ў градусах.", - "MATH_TRIG_TOOLTIP_ASIN": "Вяртае арксінус у градусах.", - "MATH_TRIG_TOOLTIP_ACOS": "Вяртае арккосінус у градусах.", - "MATH_TRIG_TOOLTIP_ATAN": "Вяртае арктангенс у градусах.", - "MATH_CONSTANT_HELPURL": "https://be.wikipedia.org/wiki/Матэматычная_канстанта", - "MATH_CONSTANT_TOOLTIP": "Вяртае адну з распаўсюджаных канстант: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), або ∞ (бясконцасць).", - "MATH_IS_EVEN": "цотнае", - "MATH_IS_ODD": "няцотнае", - "MATH_IS_PRIME": "простае", - "MATH_IS_WHOLE": "цэлае", - "MATH_IS_POSITIVE": "станоўчае", - "MATH_IS_NEGATIVE": "адмоўнае", - "MATH_IS_DIVISIBLE_BY": "дзеліцца на", - "MATH_IS_TOOLTIP": "Правярае, ці з'яўляецца лік цотным, няцотным, простым, цэлым, станоўчым, адмоўным ці яно кратнае пэўнаму ліку. Вяртае значэнне ісціна або хлусня.", - "MATH_CHANGE_HELPURL": "https://be.wikipedia.org/wiki/Ідыёма (праграмаванне)", - "MATH_CHANGE_TITLE": "павялічыць %1 на %2", - "MATH_CHANGE_TOOLTIP": "Дадае лік да пераменнай '%1'.", - "MATH_ROUND_HELPURL": "https://be.wikipedia.org/wiki/Акругленне", - "MATH_ROUND_TOOLTIP": "Акругляе лік да большага ці меншага.", - "MATH_ROUND_OPERATOR_ROUND": "акругліць", - "MATH_ROUND_OPERATOR_ROUNDUP": "акругліць да большага", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "акругліць да меншага", - "MATH_ONLIST_OPERATOR_SUM": "сума спіса", - "MATH_ONLIST_TOOLTIP_SUM": "Вяртае суму ўсіх лікаў у спісе.", - "MATH_ONLIST_OPERATOR_MIN": "найменшы ў спісе", - "MATH_ONLIST_TOOLTIP_MIN": "Вяртае найменшы лік спісу.", - "MATH_ONLIST_OPERATOR_MAX": "найбольшы ў спісе", - "MATH_ONLIST_TOOLTIP_MAX": "Вяртае найбольшы лік спісу.", - "MATH_ONLIST_OPERATOR_AVERAGE": "сярэдняе арыфметычнае спісу", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Вяртае сярэдняе арыфметычнае спісу.", - "MATH_ONLIST_OPERATOR_MEDIAN": "медыяна спіса", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Вяртае медыяну спісуа.", - "MATH_ONLIST_OPERATOR_MODE": "моды спіса", - "MATH_ONLIST_TOOLTIP_MODE": "Вяртае спіс найбольш часта сустракаемых элементаў спісу.", - "MATH_ONLIST_OPERATOR_STD_DEV": "стандартнае адхіленне спіса", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Вяртае стандартнае адхіленне спісу.", - "MATH_ONLIST_OPERATOR_RANDOM": "выпадковы элемент спіса", - "MATH_ONLIST_TOOLTIP_RANDOM": "Вяртае выпадковы элемент спіса.", - "MATH_MODULO_HELPURL": "https://be.wikipedia.org/wiki/Дзяленне_з_астаткам", - "MATH_MODULO_TITLE": "астатак ад %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Вяртае астатак ад дзялення двух лікаў.", - "MATH_CONSTRAIN_TITLE": "абмежаваць %1 знізу %2 зверху %3", - "MATH_CONSTRAIN_TOOLTIP": "Абмяжоўвае лік ніжняй і верхняй межамі (уключна).", - "MATH_RANDOM_INT_HELPURL": "https://be.wikipedia.org/wiki/Генератар_псевдослучайных_лікаў", - "MATH_RANDOM_INT_TITLE": "выпадковы цэлы лік ад %1 для %2", - "MATH_RANDOM_INT_TOOLTIP": "Вяртае выпадковы лік паміж двума зададзенымі межамі (уключаючы і іх).", - "MATH_RANDOM_FLOAT_HELPURL": "https://be.wikipedia.org/wiki/Генератар_псевдослучайных_лікаў", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "выпадковы лік ад 0 (уключна) да 1", - "MATH_RANDOM_FLOAT_TOOLTIP": "Вяртае выпадковы лік ад 0.0 (уключна) да 1.0.", - "TEXT_TEXT_HELPURL": "https://be.wikipedia.org/wiki/Радковы_тып", - "TEXT_TEXT_TOOLTIP": "Літара, слова або радок тэксту.", - "TEXT_JOIN_TITLE_CREATEWITH": "стварыць тэкст з", - "TEXT_JOIN_TOOLTIP": "Стварае фрагмент тэксту, аб'ядноўваючы любы лік элементаў.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "спалучыць", - "TEXT_CREATE_JOIN_TOOLTIP": "Дадайце, выдаліце, перастаўце фрагменты для пераробкі тэкставага блока.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Дадаць элемент да тэксту.", - "TEXT_APPEND_TITLE": "да %1 дадаць тэкст %2", - "TEXT_APPEND_TOOLTIP": "Дадаць тэкст да пераменнай '%1'.", - "TEXT_LENGTH_TITLE": "даўжыня %1", - "TEXT_LENGTH_TOOLTIP": "Вяртае колькасць сімвалаў (уключаючы прабелы) у зададзеным тэксце.", - "TEXT_ISEMPTY_TITLE": "%1 пусты", - "TEXT_ISEMPTY_TOOLTIP": "Вяртае значэнне ісціна, калі пададзены тэкст пусты.", - "TEXT_INDEXOF_TOOLTIP": "Вяртае нумар пазіцыі першага/апошняга ўваходжання першага тэксту ў другім. Вяртае %1, калі тэкст не знойдзены.", - "TEXT_INDEXOF_TITLE": "у тэксце %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "знайсці першае ўваходжанне тэксту", - "TEXT_INDEXOF_OPERATOR_LAST": "знайсці апошняе ўваходжанне тэксту", - "TEXT_CHARAT_TITLE": "у тэксце %1 %2", - "TEXT_CHARAT_FROM_START": "узяць літару #", - "TEXT_CHARAT_FROM_END": "узяць літару # з канца", - "TEXT_CHARAT_FIRST": "узяць першую літару", - "TEXT_CHARAT_LAST": "узяць апошнюю літару", - "TEXT_CHARAT_RANDOM": "узяць выпадковую літару", - "TEXT_CHARAT_TOOLTIP": "Вяртае літару ў названай пазіцыі.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Вяртае указаную частку тэксту.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "у тэксце", - "TEXT_GET_SUBSTRING_START_FROM_START": "узяць падрадок з літары #", - "TEXT_GET_SUBSTRING_START_FROM_END": "узяць падрадок з літары # з канца", - "TEXT_GET_SUBSTRING_START_FIRST": "узяць падрадок з першай літары", - "TEXT_GET_SUBSTRING_END_FROM_START": "па літару #", - "TEXT_GET_SUBSTRING_END_FROM_END": "па літару # з канца", - "TEXT_GET_SUBSTRING_END_LAST": "па апошнюю літару", - "TEXT_CHANGECASE_TOOLTIP": "Вяртае копію тэксту з ВЯЛІКІМІ або малымі літарамі.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "у ВЯЛІКІХ ЛІТАРАЎ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "у малыя літары", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "у Загалоўныя Пачатковыя Літары", - "TEXT_TRIM_TOOLTIP": "Вяртае копію тэксту з прагаламі, выдаленымі з аднаго або абодвух канцоў.", - "TEXT_TRIM_OPERATOR_BOTH": "абрэзаць прагалы з двух бакоў", - "TEXT_TRIM_OPERATOR_LEFT": "абрэзаць прагалы злева", - "TEXT_TRIM_OPERATOR_RIGHT": "абрэзаць прагалы справа", - "TEXT_PRINT_TITLE": "надрукаваць %1", - "TEXT_PRINT_TOOLTIP": "Друкуе тэкст, лік або іншы аб'ект.", - "TEXT_PROMPT_TYPE_TEXT": "запытаць тэкст з падказкай", - "TEXT_PROMPT_TYPE_NUMBER": "запытаць лік з падказкай", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Запытаць у карыстальніка лік.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Запытаць у карыстальніка тэкст.", - "TEXT_COUNT_MESSAGE0": "падлічыць колькасць %1 у %2", - "TEXT_COUNT_TOOLTIP": "Падлічыць колькі разоў урывак тэксту з'яўляецца ў іншым тэксце.", - "TEXT_REPLACE_MESSAGE0": "замяніць %1 на %2 у %3", - "TEXT_REPLACE_TOOLTIP": "Замяніць усе ўваходжанні некаторага тэксту іншым тэкстам.", - "TEXT_REVERSE_MESSAGE0": "змяніць парадак на зваротны %1", - "TEXT_REVERSE_TOOLTIP": "Мяняе парадак знакаў у тэксце на адваротны.", - "LISTS_CREATE_EMPTY_TITLE": "стварыць пусты спіс", - "LISTS_CREATE_EMPTY_TOOLTIP": "Вяртае спіс даўжыні 0, які не ўтрымлівае дадзеных", - "LISTS_CREATE_WITH_TOOLTIP": "Стварае спіс з любым лікам элементаў.", - "LISTS_CREATE_WITH_INPUT_WITH": "стварыць спіс з", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "спіс", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Дадайце, выдаліце, перастаўце элементы для пераробкі блока спісу.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Дадае элемент да спісу.", - "LISTS_REPEAT_TOOLTIP": "Стварае спіс, які складаецца з зададзенага ліку копій элемента.", - "LISTS_REPEAT_TITLE": "стварыць спіс з элемента %1, паўтаральнага %2 разоў", - "LISTS_LENGTH_TITLE": "даўжыня %1", - "LISTS_LENGTH_TOOLTIP": "Вяртае даўжыню спісу.", - "LISTS_ISEMPTY_TITLE": "%1 пусты", - "LISTS_ISEMPTY_TOOLTIP": "Вяртае значэнне ісціна, калі спіс пусты.", - "LISTS_INLIST": "у спісе", - "LISTS_INDEX_OF_FIRST": "знайсці першае ўваходжанне элемента", - "LISTS_INDEX_OF_LAST": "знайсці апошняе ўваходжанне элемента", - "LISTS_INDEX_OF_TOOLTIP": "Вяртае нумар пазіцыі першага/апошняга ўваходжання элемента ў спісе. Вяртае %1, калі элемент не знойдзены.", - "LISTS_GET_INDEX_GET": "узяць", - "LISTS_GET_INDEX_GET_REMOVE": "узяць і выдаліць", - "LISTS_GET_INDEX_REMOVE": "выдаліць", - "LISTS_GET_INDEX_FROM_END": "# з канца", - "LISTS_GET_INDEX_FIRST": "першы", - "LISTS_GET_INDEX_LAST": "апошні", - "LISTS_GET_INDEX_RANDOM": "адвольны", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 - першы элемент.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 - апошні элемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Вяртае элемент ва ўказанай пазіцыі спіса.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Вяртае першы элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Вяртае апошні элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Вяртае выпадковы элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Выдаляе і вяртае элемент ва ўказанай пазіцыі спіса.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Видаляє і повертає перший елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Видаляє і повертає апошні элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Видаляє і повертає выпадковы элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Видаляє элемент ва ўказанай пазіцыі спіса.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Видаляє першы элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Видаляє апошні элемент спіса.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Видаляє выпадковы элемент спіса.", - "LISTS_SET_INDEX_SET": "прысабечыць", - "LISTS_SET_INDEX_INSERT": "уставіць у", - "LISTS_SET_INDEX_INPUT_TO": "=", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Прысабечвае значэнне элемента ва ўказанай пазіцыі спіса.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Прысабечвае значэнне элемента спісу.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Прысабечвае значэнне элемента спісу.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Прысабечвае значэнне элемента спісу.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Устаўляе элемент ва ўказанай пазіцыі спіса.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Устаўляе элемент у пачатак спіса.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Дадае элемент у канец спісу.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Устаўляе элемент у выпадковае месца ў спісе.", - "LISTS_GET_SUBLIST_START_FROM_START": "узяць падспіс з #", - "LISTS_GET_SUBLIST_START_FROM_END": "узяць падспіс з # з канца", - "LISTS_GET_SUBLIST_START_FIRST": "узяць падспіс з першага", - "LISTS_GET_SUBLIST_END_FROM_START": "па #", - "LISTS_GET_SUBLIST_END_FROM_END": "па # з канца", - "LISTS_GET_SUBLIST_END_LAST": "па апошні", - "LISTS_GET_SUBLIST_TOOLTIP": "Стварае копію ўказанай частцы спісу.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "сартаваць %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Сартаваць копію спісу.", - "LISTS_SORT_ORDER_ASCENDING": "па ўзрастанню", - "LISTS_SORT_ORDER_DESCENDING": "па спаданню", - "LISTS_SORT_TYPE_NUMERIC": "лікавая", - "LISTS_SORT_TYPE_TEXT": "па алфавіце", - "LISTS_SORT_TYPE_IGNORECASE": "па алфавіце, без уліку рэгістра", - "LISTS_SPLIT_LIST_FROM_TEXT": "зрабіць спіс з тэксту", - "LISTS_SPLIT_TEXT_FROM_LIST": "сабраць тэкст са спісу", - "LISTS_SPLIT_WITH_DELIMITER": "з падзельнікам", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Разбівае тэкст у спіс тэкстаў па падзельнікам.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Злучае спіс тэкстаў у адзін тэкст з падзельнікамі.", - "LISTS_REVERSE_MESSAGE0": "змяніць парадак на зваротны %1", - "LISTS_REVERSE_TOOLTIP": "Змяніць парадак спісу на адваротны.", - "VARIABLES_GET_TOOLTIP": "Вяртае значэнне гэтай пераменнай.", - "VARIABLES_GET_CREATE_SET": "Стварыць блок \"прысабечыць\" для %1", - "VARIABLES_SET": "прысабечыць %1 = %2", - "VARIABLES_SET_TOOLTIP": "Прысабечвае пераменнай значэнне ўстаўкі.", - "VARIABLES_SET_CREATE_GET": "Стварыць устаўку %1", - "PROCEDURES_DEFNORETURN_TITLE": "каб", - "PROCEDURES_DEFNORETURN_PROCEDURE": "выканаць нешта", - "PROCEDURES_BEFORE_PARAMS": "з:", - "PROCEDURES_CALL_BEFORE_PARAMS": "з:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Стварыць працэдуру, якая ня вяртае значэнне.", - "PROCEDURES_DEFNORETURN_COMMENT": "Апішыце гэтую функцыю...", - "PROCEDURES_DEFRETURN_RETURN": "вярнуць", - "PROCEDURES_DEFRETURN_TOOLTIP": "Стварыць працэдуру, якая вяртае значэнне.", - "PROCEDURES_ALLOW_STATEMENTS": "дазволіць аператары", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Папярэджанне: гэтая функцыя мае паўтаральныя параметры.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://be.wikipedia.org/wiki/Падпраграма", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Выконвае вызначаную карыстальнікам працэдуру '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://be.wikipedia.org/wiki/Падпраграма", - "PROCEDURES_CALLRETURN_TOOLTIP": "Выконвае вызначаную карыстальнікам працэдуру '%1' і вяртае вылічанае значэнне.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "параметры", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Дадаць, выдаліць або змяніць парадак уваходных параметраў для гэтай функцыі.", - "PROCEDURES_MUTATORARG_TITLE": "імя параметра:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Дадаць уваходны параметр ў функцыю.", - "PROCEDURES_HIGHLIGHT_DEF": "Вылучыць вызначэнне працэдуры", - "PROCEDURES_CREATE_DO": "Стварыць выклік '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Калі першае значэнне ісцінае, вяртае другое значэнне.", - "PROCEDURES_IFRETURN_WARNING": "Папярэджанне: гэты блок можа выкарыстоўвацца толькі ўнутры вызначэння функцыі." -} diff --git a/lib/blockly/msg/json/bg.json b/lib/blockly/msg/json/bg.json deleted file mode 100644 index 4d9f498..0000000 --- a/lib/blockly/msg/json/bg.json +++ /dev/null @@ -1,356 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Gkostov", - "Vodnokon4e", - "Alpinistbg", - "Miroslav35232", - "StanProg", - "ShockD", - "InsomniHat", - "Vlad5250" - ] - }, - "VARIABLES_DEFAULT_NAME": "елемент", - "UNNAMED_KEY": "без име", - "TODAY": "Днес", - "DUPLICATE_BLOCK": "Копирай", - "ADD_COMMENT": "Добави коментар", - "REMOVE_COMMENT": "Премахни коментар", - "DUPLICATE_COMMENT": "Дублиране на коментара", - "EXTERNAL_INPUTS": "Външни входове", - "INLINE_INPUTS": "Вътрешни входове", - "DELETE_BLOCK": "Изтрий блок", - "DELETE_X_BLOCKS": "Изтрий %1 блока", - "DELETE_ALL_BLOCKS": "Изтриване на всички 1% блокове?", - "CLEAN_UP": "Премахни блокове", - "COLLAPSE_BLOCK": "Скрий блок", - "COLLAPSE_ALL": "Скрий блокове", - "EXPAND_BLOCK": "Покажи блок", - "EXPAND_ALL": "Покажи блокове", - "DISABLE_BLOCK": "Деактивирай блок", - "ENABLE_BLOCK": "Активирай блок", - "HELP": "Помощ", - "UNDO": "Отмяна", - "REDO": "Повторение", - "CHANGE_VALUE_TITLE": "Промени стойността:", - "RENAME_VARIABLE": "Преименувай променливата...", - "RENAME_VARIABLE_TITLE": "Преименувай всички '%1' променливи на:", - "NEW_VARIABLE": "Създаване на променлива...", - "NEW_STRING_VARIABLE": "Създаване на низова променлива...", - "NEW_NUMBER_VARIABLE": "Създаване на числова променлива...", - "NEW_COLOUR_VARIABLE": "Създаване на цветова променлива...", - "NEW_VARIABLE_TYPE_TITLE": "Тип на новата променлива:", - "NEW_VARIABLE_TITLE": "Ново име на променливата:", - "VARIABLE_ALREADY_EXISTS": "Променлива с име '%1' вече съществува.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Променлива с име '%1' вече съществува за друг тип: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Изтриване на %1 използване на променлива '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Променливата '%1' не може да бъде изтрита, защото е част от определението на функцията '%2'", - "DELETE_VARIABLE": "Изтриване на променливата \"%1\"", - "COLOUR_PICKER_HELPURL": "https://bg.wikipedia.org/wiki/Цвят_(оптика)", - "COLOUR_PICKER_TOOLTIP": "Избери цвят от палитрата.", - "COLOUR_RANDOM_TITLE": "случаен цвят", - "COLOUR_RANDOM_TOOLTIP": "Избери цвят на случаен принцип.", - "COLOUR_RGB_TITLE": "оцвети с", - "COLOUR_RGB_RED": "червен", - "COLOUR_RGB_GREEN": "зелен", - "COLOUR_RGB_BLUE": "син", - "COLOUR_RGB_TOOLTIP": "Създай цвят с избраните пропорции, червено, зелено и синьо. Всички стойности трябва да бъдат от 0 до 100.", - "COLOUR_BLEND_TITLE": "смеси", - "COLOUR_BLEND_COLOUR1": "цвят 1", - "COLOUR_BLEND_COLOUR2": "цвят 2", - "COLOUR_BLEND_RATIO": "съотношение", - "COLOUR_BLEND_TOOLTIP": "Смесва два цвят в дадено съотношение (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://bg.wikipedia.org/wiki/Цикъл_(програмиране)#For_.D1.86.D0.B8.D0.BA.D1.8A.D0.BB.D1.8A.D1.82", - "CONTROLS_REPEAT_TITLE": "Повтори %1 пъти", - "CONTROLS_REPEAT_INPUT_DO": "изпълни", - "CONTROLS_REPEAT_TOOLTIP": "Изпълнява команди няколко пъти.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "повтаряй докато е вярно, че", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "повтаряй докато", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Изпълни командите, ако стойността е вярна.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Изпълни командите, ако стойността не е вярна.", - "CONTROLS_FOR_TOOLTIP": "Нека променлива '%1' премине през стойностите от началното до крайното число през зададената стъпка и изпълни избраните блокове.", - "CONTROLS_FOR_TITLE": "преброй чрез %1 от %2 до %3 през %4", - "CONTROLS_FOREACH_TITLE": "за всеки елемент %1 в списъка %2", - "CONTROLS_FOREACH_TOOLTIP": "За всеки елемент в даден списък, присвои елемента на променливата „%1“ и след това изпълни командите.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "прекъсни цикъла", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "премини към следващата стъпка от цикъла", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Прекъсни цикъла, в който се съдържа тази команда.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Премини към следващата стъпка от цикъла", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Предупреждение: Този блок може да се използва само в цикъл.", - "CONTROLS_IF_TOOLTIP_1": "Ако стойността е вярна, изпълни операциите.", - "CONTROLS_IF_TOOLTIP_2": "Ако стойността е вярна, изпълни първият блок. Иначе, изпълни вторият блок.", - "CONTROLS_IF_TOOLTIP_3": "Ако първата стойност е вярна, изпълни първия блок. Иначе, ако втората стойност е вярна, изпълни втория блок.", - "CONTROLS_IF_TOOLTIP_4": "Ако първата стойност е вярна, изпълни първия блок. В противен случай, ако втората стойност е вярна, изпълни втория блок. Ако нито една от стойностите не е вярна, изпълни последния блок.", - "CONTROLS_IF_MSG_IF": "ако", - "CONTROLS_IF_MSG_ELSEIF": "иначе ако", - "CONTROLS_IF_MSG_ELSE": "иначе", - "CONTROLS_IF_IF_TOOLTIP": "Добави, премахни или пренареди частите, за да промениш този „ако“ блок.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Добави условие към „ако“ блока.", - "CONTROLS_IF_ELSE_TOOLTIP": "Добави окончателно, прихващащо всички останали случаи условие към блок „ако“.", - "IOS_OK": "Добре", - "IOS_CANCEL": "Отказ", - "IOS_ERROR": "Грешка", - "IOS_PROCEDURES_INPUTS": "Входни данни", - "IOS_PROCEDURES_ADD_INPUT": "+ Добавяне на данни", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Позволи твърденията", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Тази функция има дублирани входни данни.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Добавяне на променлива", - "IOS_VARIABLES_ADD_BUTTON": "Добавяне", - "IOS_VARIABLES_RENAME_BUTTON": "Преименуване", - "IOS_VARIABLES_DELETE_BUTTON": "Изтриване", - "IOS_VARIABLES_VARIABLE_NAME": "Име на променливата", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Не може да използвате празно име за променлива", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Върни вярно, ако двата параметъра са еднакви.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Върни вярно, ако двата параметъра са различни.", - "LOGIC_COMPARE_TOOLTIP_LT": "Върни вярно, ако първият параметър е по-малък от втория.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Върни истина, ако първия параметър е по-малък или равен на втория.", - "LOGIC_COMPARE_TOOLTIP_GT": "Върни истина, ако първия параметър е по-голям от втория.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Върни истина, ако първия параметър е по-голям или равен на втория.", - "LOGIC_OPERATION_TOOLTIP_AND": "Върни вярно, ако и двата параметъра са верни.", - "LOGIC_OPERATION_AND": "и", - "LOGIC_OPERATION_TOOLTIP_OR": "Върни „вярно“, ако поне един от входовете е верен.", - "LOGIC_OPERATION_OR": "или", - "LOGIC_NEGATE_TITLE": "не %1", - "LOGIC_NEGATE_TOOLTIP": "Върни вярно, ако параметърът е неверен. Върни невярно, ако параметърът е верен.", - "LOGIC_BOOLEAN_TRUE": "вярно", - "LOGIC_BOOLEAN_FALSE": "невярно", - "LOGIC_BOOLEAN_TOOLTIP": "Връща вярно или невярно.", - "LOGIC_NULL": "нула", - "LOGIC_NULL_TOOLTIP": "Връща нула.", - "LOGIC_TERNARY_CONDITION": "тест", - "LOGIC_TERNARY_IF_TRUE": "Ако е вярно", - "LOGIC_TERNARY_IF_FALSE": "Ако е невярно", - "LOGIC_TERNARY_TOOLTIP": "Провери условието в „тест“. Ако условието е истина, върни стойността „ако е вярно“, иначе върни стойността „ако е невярно“.", - "MATH_NUMBER_HELPURL": "https://bg.wikipedia.org/wiki/Число", - "MATH_NUMBER_TOOLTIP": "Число.", - "MATH_ARITHMETIC_HELPURL": "https://bg.wikipedia.org/wiki/Аритметика", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Върни сумата на двете числа.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Върни разликата на двете числа.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Върни произведението на двете числа.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Върни частното на двете числа.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Върни първото число, повдигнато на степен на второто число.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "корен квадратен", - "MATH_SINGLE_TOOLTIP_ROOT": "Връща корен квадратен от число.", - "MATH_SINGLE_OP_ABSOLUTE": "абсолютна", - "MATH_SINGLE_TOOLTIP_ABS": "Връща абсолютната стойност на число.", - "MATH_SINGLE_TOOLTIP_NEG": "Върни числото с обърнат знак.", - "MATH_SINGLE_TOOLTIP_LN": "Върни натуралния логаритъм от число.", - "MATH_SINGLE_TOOLTIP_LOG10": "Върни десетичния логаритъм на число.", - "MATH_SINGLE_TOOLTIP_EXP": "Върни е (неперовото число) на степен зададеното число.", - "MATH_SINGLE_TOOLTIP_POW10": "Върни 10 на степен зададеното число.", - "MATH_TRIG_HELPURL": "https://bg.wikipedia.org/wiki/Тригонометрична_функция", - "MATH_TRIG_TOOLTIP_SIN": "Върни синус от ъгъл в градуси (не в радиани)", - "MATH_TRIG_TOOLTIP_COS": "Върни косинус от ъгъл в градуси (не в радиани)", - "MATH_TRIG_TOOLTIP_TAN": "Върни тангенс от ъгъл в градуси (не в радиани)", - "MATH_TRIG_TOOLTIP_ASIN": "Върни аркуссинус от число.", - "MATH_TRIG_TOOLTIP_ACOS": "Върни аркускосинус от число.", - "MATH_TRIG_TOOLTIP_ATAN": "Върни аркустангенс от число.", - "MATH_CONSTANT_HELPURL": "http://bg.wikipedia.org/wiki/Константа", - "MATH_CONSTANT_TOOLTIP": "Връща една от често срещаните константи: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (безкрайност).", - "MATH_IS_EVEN": "е четно", - "MATH_IS_ODD": "е нечетно", - "MATH_IS_PRIME": "е просто", - "MATH_IS_WHOLE": "е цяло", - "MATH_IS_POSITIVE": "е положително", - "MATH_IS_NEGATIVE": "е отрицателно", - "MATH_IS_DIVISIBLE_BY": "се дели на", - "MATH_IS_TOOLTIP": "Проверете дали дадено число е четно, нечетно, просто, цяло, положително, отрицателно или дали се дели на друго число. Връща вярно или невярно.", - "MATH_CHANGE_HELPURL": "https://bg.wikipedia.org/wiki/Събиране", - "MATH_CHANGE_TITLE": "промени %1 на %2", - "MATH_CHANGE_TOOLTIP": "Добави число към променлива „%1“.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Закръгли число нагоре или надолу.", - "MATH_ROUND_OPERATOR_ROUND": "закръгли", - "MATH_ROUND_OPERATOR_ROUNDUP": "закръгли нагоре", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "закръгли надолу", - "MATH_ONLIST_OPERATOR_SUM": "сума на списъка", - "MATH_ONLIST_TOOLTIP_SUM": "Върни сумата на всички числа в списъка.", - "MATH_ONLIST_OPERATOR_MIN": "най-малката стойност в списъка", - "MATH_ONLIST_TOOLTIP_MIN": "Върни най-малкото число в списъка.", - "MATH_ONLIST_OPERATOR_MAX": "най-голямата стойност в списъка", - "MATH_ONLIST_TOOLTIP_MAX": "Върни най-голямото число в списъка.", - "MATH_ONLIST_OPERATOR_AVERAGE": "средната стойност на числата в списъка", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Върни средната стойност (аритметичното средно) на числата в списъка.", - "MATH_ONLIST_OPERATOR_MEDIAN": "медианата на списък", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Върни медианата в списъка.", - "MATH_ONLIST_OPERATOR_MODE": "режими на списъка", - "MATH_ONLIST_TOOLTIP_MODE": "Върни списък на най-често срещаните елементи в списъка.", - "MATH_ONLIST_OPERATOR_STD_DEV": "стандартно отклонение на списък", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Връща стандартното отклонение на списъка.", - "MATH_ONLIST_OPERATOR_RANDOM": "случаен елемент от списъка", - "MATH_ONLIST_TOOLTIP_RANDOM": "Върни случаен елемент от списъка.", - "MATH_MODULO_HELPURL": "http://bg.wikipedia.org/wiki/Остатък", - "MATH_MODULO_TITLE": "остатъка от делението на %1 на %2", - "MATH_MODULO_TOOLTIP": "Върни остатъка от деление на две числа.", - "MATH_CONSTRAIN_TITLE": "ограничи %1 между %2 и %3", - "MATH_CONSTRAIN_TOOLTIP": "Ограничи число да бъде в определените граници (включително).", - "MATH_RANDOM_INT_HELPURL": "https://bg.wikipedia.org/wiki/Генератор_на_случайни_числа", - "MATH_RANDOM_INT_TITLE": "случайно цяло число между %1 и %2", - "MATH_RANDOM_INT_TOOLTIP": "Върни случайно число в определените граници (включително).", - "MATH_RANDOM_FLOAT_HELPURL": "https://bg.wikipedia.org/wiki/Генератор_на_случайни_числа", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "случайно дробно число", - "MATH_RANDOM_FLOAT_TOOLTIP": "Върни случайно дробно число между 0.0 (включително) и 1.0 (без да го включва)", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 от X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Връща аркустангенс на точка (X, Y) в градуси от -180 до 180.", - "TEXT_TEXT_HELPURL": "https://bg.wikipedia.org/wiki/Низ", - "TEXT_TEXT_TOOLTIP": "Буква, дума или ред", - "TEXT_JOIN_TITLE_CREATEWITH": "създай текст с", - "TEXT_JOIN_TOOLTIP": "Създай текст като съчетаеш няколко елемента.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "свържи", - "TEXT_CREATE_JOIN_TOOLTIP": "Добави, премахни или пренареди частите, за да промениш този текстов блок.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Добави елемент към текста.", - "TEXT_APPEND_TITLE": "добавете текст %2 към %1", - "TEXT_APPEND_TOOLTIP": "Добави текст към променливата „%1“.", - "TEXT_LENGTH_TITLE": "дължината на %1", - "TEXT_LENGTH_TOOLTIP": "Връща броя на символите (включително и интервалите) в текста.", - "TEXT_ISEMPTY_TITLE": "%1 е празен", - "TEXT_ISEMPTY_TOOLTIP": "Връща вярно, ако текста е празен.", - "TEXT_INDEXOF_TOOLTIP": "Връща индекса на първото/последното срещане на първия текст във втория текст. Връща %1, ако текстът не е намерен.", - "TEXT_INDEXOF_TITLE": "в текст %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "намери първата поява на текста", - "TEXT_INDEXOF_OPERATOR_LAST": "намери последната поява на текста", - "TEXT_CHARAT_TITLE": "в текст %1 %2", - "TEXT_CHARAT_FROM_START": "вземи буква №", - "TEXT_CHARAT_FROM_END": "вземи буква № от края", - "TEXT_CHARAT_FIRST": "вземи първата буква", - "TEXT_CHARAT_LAST": "вземи последната буква", - "TEXT_CHARAT_RANDOM": "вземи произволна буква", - "TEXT_CHARAT_TOOLTIP": "Връща буквата в определена позиция.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Връща определена част от текста.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "в текста", - "TEXT_GET_SUBSTRING_START_FROM_START": "вземи текста от буква №", - "TEXT_GET_SUBSTRING_START_FROM_END": "вземи текста от буква № (броено отзад-напред)", - "TEXT_GET_SUBSTRING_START_FIRST": "вземи текста от първата буква", - "TEXT_GET_SUBSTRING_END_FROM_START": "до буква №", - "TEXT_GET_SUBSTRING_END_FROM_END": "до буква № от края", - "TEXT_GET_SUBSTRING_END_LAST": "до последната буква.", - "TEXT_CHANGECASE_TOOLTIP": "Връща копие на текста със сменени малки и главни букви.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "с ГЛАВНИ БУКВИ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "с малки букви", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "с Главна Буква На Всяка Дума", - "TEXT_TRIM_TOOLTIP": "Връща копие на текста с премахнати интервали от единия или двата края.", - "TEXT_TRIM_OPERATOR_BOTH": "премахни интервалите от двете страни", - "TEXT_TRIM_OPERATOR_LEFT": "премахни интервалите отляво", - "TEXT_TRIM_OPERATOR_RIGHT": "премахни интервалите отдясно", - "TEXT_PRINT_TITLE": "отпечатай %1", - "TEXT_PRINT_TOOLTIP": "Отпечатай текста, числото или друга стойност.", - "TEXT_PROMPT_TYPE_TEXT": "питай за текст със съобщение", - "TEXT_PROMPT_TYPE_NUMBER": "питай за число със съобщение", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Питай потребителя за число.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Питай потребителя за текст.", - "TEXT_COUNT_MESSAGE0": "пресмята броя на %1 в %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Преброй колко пъти даден текст се среща в друг текст.", - "TEXT_REPLACE_MESSAGE0": "замяна на %1 с %2 в %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Замени всички появи на даден текст в друг текст.", - "TEXT_REVERSE_MESSAGE0": "промени реда на обратно %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Промени реда на знаците в текста на обратно.", - "LISTS_CREATE_EMPTY_TITLE": "създай празен списък", - "LISTS_CREATE_EMPTY_TOOLTIP": "Връща списък с дължина 0, не съдържащ данни", - "LISTS_CREATE_WITH_TOOLTIP": "Създай списък с произволен брой елементи.", - "LISTS_CREATE_WITH_INPUT_WITH": "създай списък с", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "списък", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Добави, премахни или пренареди частите, за да промениш този списъчен блок.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Добави елемент към текста.", - "LISTS_REPEAT_TOOLTIP": "Създава списък, състоящ се от определен брой копия на елемента.", - "LISTS_REPEAT_TITLE": "създай списък от %1 повторен %2 пъти", - "LISTS_LENGTH_TITLE": "дължината на %1", - "LISTS_LENGTH_TOOLTIP": "Връща дължината на списък.", - "LISTS_ISEMPTY_TITLE": "%1 е празен", - "LISTS_ISEMPTY_TOOLTIP": "Връща стойност вярно, ако списъкът е празен.", - "LISTS_INLIST": "в списъка", - "LISTS_INDEX_OF_FIRST": "намери първата поява на елемента", - "LISTS_INDEX_OF_LAST": "намери последната поява на елемента", - "LISTS_INDEX_OF_TOOLTIP": "Връща индекса на първото/последното появяване на елемента в списъка. Връща %1, ако елементът не е намерен.", - "LISTS_GET_INDEX_GET": "вземи", - "LISTS_GET_INDEX_GET_REMOVE": "вземи и премахни", - "LISTS_GET_INDEX_REMOVE": "премахни", - "LISTS_GET_INDEX_FROM_END": "№ от края", - "LISTS_GET_INDEX_FIRST": "първия", - "LISTS_GET_INDEX_LAST": "последния", - "LISTS_GET_INDEX_RANDOM": "произволен", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 е първият елемент.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 е последният елемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Връща елемента на определената позиция в списък.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Връща първия елемент в списък.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Връща последния елемент в списък.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Връща случаен елемент от списъка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Премахва и връща елемента на определена позиция в списък.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Премахва и връща първия елемент в списък.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Премахва и връща последния елемент в списък.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Премахва и връща случаен елемент от списък.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Премахва елемент на определена позиция от списък.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Премахва първия елемент от списък.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Премахва последния елемент от списък.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Премахва случаен елемент от списък.", - "LISTS_SET_INDEX_SET": "промени", - "LISTS_SET_INDEX_INSERT": "вмъкни на позиция", - "LISTS_SET_INDEX_INPUT_TO": "следното", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Променя елемента на определена позиция в списък.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Променя първия елемент в списък.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Променя последния елемент в списък.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Променя случаен елемент от списък.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Вмъква елемент на определена позиция в списък.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Вмъква елемент в началото на списъка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Добави елемент в края на списък.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Вмъква елемент на произволно място в списък.", - "LISTS_GET_SUBLIST_START_FROM_START": "вземи подсписък от №", - "LISTS_GET_SUBLIST_START_FROM_END": "вземи подсписък от № от края", - "LISTS_GET_SUBLIST_START_FIRST": "вземи подсписък от първия", - "LISTS_GET_SUBLIST_END_FROM_START": "до №", - "LISTS_GET_SUBLIST_END_FROM_END": "до № открая", - "LISTS_GET_SUBLIST_END_LAST": "до края", - "LISTS_GET_SUBLIST_TOOLTIP": "Копира част от списък.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "сортиране по %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Подреди копие на списъка.", - "LISTS_SORT_ORDER_ASCENDING": "възходящо", - "LISTS_SORT_ORDER_DESCENDING": "низходящо", - "LISTS_SORT_TYPE_NUMERIC": "в числов ред", - "LISTS_SORT_TYPE_TEXT": "по азбучен ред", - "LISTS_SORT_TYPE_IGNORECASE": "по азбучен ред, без отчитане на малки и главни букви", - "LISTS_SPLIT_LIST_FROM_TEXT": "Направи списък от текст", - "LISTS_SPLIT_TEXT_FROM_LIST": "направи текст от списък", - "LISTS_SPLIT_WITH_DELIMITER": "с разделител", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Разделя текст в списък на текстове, по всеки разделител.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Събира списък от текстове в един текст, раделени с разделител.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "промени реда на обратно %1", - "LISTS_REVERSE_TOOLTIP": "Промени реда на списъка на обратно.", - "VARIABLES_GET_TOOLTIP": "Връща стойността на тази променлива.", - "VARIABLES_GET_CREATE_SET": "Създай „промени стойността на %1“", - "VARIABLES_SET": "нека %1 бъде %2", - "VARIABLES_SET_TOOLTIP": "Установява променливата със стойността на входа.", - "VARIABLES_SET_CREATE_GET": "Създай „вземи стойността на %1“", - "PROCEDURES_DEFNORETURN_TITLE": "за да", - "PROCEDURES_DEFNORETURN_PROCEDURE": "направиш", - "PROCEDURES_BEFORE_PARAMS": "с:", - "PROCEDURES_CALL_BEFORE_PARAMS": "с:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Създава функция, която не връща резултат.", - "PROCEDURES_DEFNORETURN_COMMENT": "Опишете тази функция...", - "PROCEDURES_DEFRETURN_RETURN": "върни", - "PROCEDURES_DEFRETURN_TOOLTIP": "Създава функция, която връща резултат.", - "PROCEDURES_ALLOW_STATEMENTS": "позволи операциите", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Предупреждение: Тази функция има дублиращи се параметри.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://bg.wikipedia.org/wiki/Подпрограма", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Изпълни дефинирана от потребителя функция „%1“.", - "PROCEDURES_CALLRETURN_HELPURL": "https://bg.wikipedia.org/wiki/Подпрограма", - "PROCEDURES_CALLRETURN_TOOLTIP": "Изпълни дефинирана от потребителя функция „%1“ и използвай резултата.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "вход", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Добави, премахни или пренареди входните параметри за тази функция.", - "PROCEDURES_MUTATORARG_TITLE": "име на параметър:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Добавяне на параметър към функцията.", - "PROCEDURES_HIGHLIGHT_DEF": "Покажи дефиницията на функцията", - "PROCEDURES_CREATE_DO": "Създай '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Ако стойността е вярна, върни втората стойност.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Предупреждение: Този блок може да се използва само във функция.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Коментирайте нещо...", - "COLLAPSED_WARNINGS_WARNING": "Свитите блокове съдържат предупреждения." -} diff --git a/lib/blockly/msg/json/bn.json b/lib/blockly/msg/json/bn.json deleted file mode 100644 index 38618aa..0000000 --- a/lib/blockly/msg/json/bn.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Aftabuzzaman", - "Rakibul", - "Tauhid16", - "MasterMinhaz", - "এম আবু সাঈদ", - "Rasal Lia", - "আফতাবুজ্জামান" - ] - }, - "VARIABLES_DEFAULT_NAME": "পদ", - "UNNAMED_KEY": "নামহীন", - "TODAY": "আজ", - "DUPLICATE_BLOCK": "প্রতিলিপি", - "ADD_COMMENT": "মন্তব্য যোগ করুন", - "REMOVE_COMMENT": "মন্তব্য সরাও", - "EXTERNAL_INPUTS": "বহি:স্থ ইনপুট", - "INLINE_INPUTS": "সারি ইনপুট", - "DELETE_BLOCK": "ব্লকটি মুছে ফেল", - "DELETE_X_BLOCKS": "%1 ব্লক অপসারণ কর", - "DELETE_ALL_BLOCKS": "সব %1টি ব্লক অপসারণ করবেন?", - "CLEAN_UP": "ব্লকসমূহ পরিস্কার করুন", - "COLLAPSE_BLOCK": "ব্লক সঙ্কুচিত করুন", - "COLLAPSE_ALL": "ব্লকসমূহ সঙ্কুচিত করুন", - "EXPAND_BLOCK": "ব্লকটি সম্প্রসারিত কর", - "EXPAND_ALL": "ব্লকগুলো সম্প্রসারিত কর", - "DISABLE_BLOCK": "ব্লকটি বিকল কর", - "ENABLE_BLOCK": "ব্লকটি সচল কর", - "HELP": "সাহায্য", - "UNDO": "পূর্বাবস্থা", - "REDO": "পুনরায় করুন", - "CHANGE_VALUE_TITLE": "মান পরিবর্তন করুন:", - "RENAME_VARIABLE": "চলকের নাম পরিবর্তন...", - "RENAME_VARIABLE_TITLE": "'%1' চলকগুলোর নতুন নাম দিন:", - "NEW_VARIABLE": "চলক তৈরি করুন...", - "NEW_VARIABLE_TITLE": "নতুন চলকের নাম:", - "VARIABLE_ALREADY_EXISTS": "'%1' নামের চলক পূর্ব থেকে অাছে।", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%1' নামের চলক '%2' ধরনের চলকের জন্য পূর্ব থেকেই অাছে।", - "DELETE_VARIABLE_CONFIRMATION": "'%2' চলকের '%1'টি ব্যবহার অপসারণ করবেন?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "'%1' চলক অপসারণ করা যাবে না কারণ এটি '%2' কার্যপ্রণালীর সংজ্ঞার অংশ", - "DELETE_VARIABLE": "'%1' চলকটি অপসারণ করুন", - "COLOUR_PICKER_HELPURL": "https://bn.wikipedia.org/wiki/রং", - "COLOUR_PICKER_TOOLTIP": "প্যালেট থেকে একটি রং পছন্দ করুন", - "COLOUR_RANDOM_TITLE": "এলোমেলো রং", - "COLOUR_RANDOM_TOOLTIP": "এলোমেলোভাবে একটি রং পছন্দ করুন।", - "COLOUR_RGB_TITLE": "রং সহ", - "COLOUR_RGB_RED": "লাল", - "COLOUR_RGB_GREEN": "সবুজ", - "COLOUR_RGB_BLUE": "নীল", - "COLOUR_RGB_TOOLTIP": "একটি রং তৈরি করুন নির্দিষ্ট পরিমাণে লাল, সবুজ এবং নীল রং মিশ্রিত করে। প্রত্যেকটির মান অবশ্যই ০ থেকে ১০০ এর মধ্যে হতে হবে।", - "COLOUR_BLEND_TITLE": "মিশ্রণ", - "COLOUR_BLEND_COLOUR1": "রং ১", - "COLOUR_BLEND_COLOUR2": "রং ২", - "COLOUR_BLEND_RATIO": "অনুপাত", - "COLOUR_BLEND_TOOLTIP": "প্রদত্ত অনুপাত(০.০ - ১.০) অনুসারে দুটি রং একসাথে মিশ্রিত করুন।", - "CONTROLS_REPEAT_HELPURL": "https://bn.wikipedia.org/wiki/প্রবেশ_পথ", - "CONTROLS_REPEAT_TITLE": "%1 বার পুনরাবৃত্তি করো", - "CONTROLS_REPEAT_INPUT_DO": "করুন", - "CONTROLS_REPEAT_TOOLTIP": "কিছু বিবরণ বারবার দিন।", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "অাবার করুন যখন", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "অাবার করুন যতক্ষণ না", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "যখন একটি মূল্যমান সঠিক, তখন কিছু বিবরণ দিন।", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "যখন একটি মূল্যমান মিথ্যা, তখন কিছু বিবৃতি দিন।", - "CONTROLS_FOR_TOOLTIP": "চলক %1 প্রস্তুত করুন, শুরু থেকে শেষ পর্যন্ত সংখ্যা গ্রহন করতে যা নির্দেশিত বিরতি গণনা করছে এবং নির্দেশিত ব্লক সমূহ সম্পন্ন করতে।", - "CONTROLS_FOR_TITLE": "গণনা কর %1 %4 দিয়ে %2 থেকে %3", - "CONTROLS_FOREACH_TITLE": "প্রত্যেকটি পদের জন্য %1 তালিকার মধ্যে %2", - "CONTROLS_FOREACH_TOOLTIP": "কোন তালিকায় প্রতিবারের জন্য, আইটেমের সাথে চলক '%1' বসান এবং কিছু বিবরণ দিন।", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "প্রবেশপথ থেকে চলে অাসুন", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "পুনরাবৃত্তি চালিয়ে যান পরবর্তী প্রবেশপথে", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "সংশ্লিষ্ট প্রবেশপথ থেকে চলে অাসুন", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "এই প্রবেশপথের অবশিষ্ট অংশ বাদ দিন এবং পরবর্তী প্রচেষ্টা চালিয়ে যান।", - "CONTROLS_FLOW_STATEMENTS_WARNING": "সর্তকীবার্তা: এই ব্লকটি শুধুমাত্র লুপের মধ্যে ব্যবহার করা যাবে।", - "CONTROLS_IF_TOOLTIP_1": "যদি একটি মূল্যমাস সত্য হয়, তবে কিছু বিবরণ দিন", - "CONTROLS_IF_TOOLTIP_2": "যদি একটি মূল্যমান সত্য হয়, তবে বিবৃতিসমূহের প্রথম ব্লকটা অন্যথায় বিবৃতির দ্বিতীয় ব্লক।", - "CONTROLS_IF_TOOLTIP_3": "যদি প্রথম মূল্যমান সঠিক হয়, তবে বর্ণিত প্রথম ব্লকটি সম্পন্ন করুন। অন্যথায়, দ্বিতীয় মূল্যমান সঠিক হয়, দ্বিতীয় ব্লক সম্পন্ন করুন।", - "CONTROLS_IF_MSG_IF": "যদি", - "CONTROLS_IF_MSG_ELSEIF": "নতুবা যদি", - "CONTROLS_IF_MSG_ELSE": "নতুবা", - "CONTROLS_IF_ELSEIF_TOOLTIP": "যদি নামক ব্লক এ একটি শর্ত যোগ করুন।", - "IOS_OK": "ঠিক আছে", - "IOS_CANCEL": "বাতিল", - "IOS_ERROR": "ত্রুটি", - "IOS_VARIABLES_ADD_BUTTON": "যোগ", - "IOS_VARIABLES_RENAME_BUTTON": "পুনরায় শুরু", - "IOS_VARIABLES_DELETE_BUTTON": "অপসারণ", - "IOS_VARIABLES_VARIABLE_NAME": "চলকের নাম", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "অাপনি চলকের নাম খালি রাখতে পারেননা।", - "LOGIC_COMPARE_TOOLTIP_EQ": "পাঠাবে সত্য যদি উভয় ইনপুটই সমান হয়।", - "LOGIC_COMPARE_TOOLTIP_NEQ": "পাঠাবে সত্য যদি উভয় ইনপুটই সমান না হয়।", - "LOGIC_COMPARE_TOOLTIP_LT": "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে ছোট হয়।", - "LOGIC_COMPARE_TOOLTIP_LTE": "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে ছোট অথবা সমান হয়।", - "LOGIC_COMPARE_TOOLTIP_GT": "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে বড় হয়।", - "LOGIC_COMPARE_TOOLTIP_GTE": "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে বড় অথবা সমান হয়।", - "LOGIC_OPERATION_TOOLTIP_AND": "পাঠাবে সত্য যদি উভয় ইনপুটই সত্য হয়।", - "LOGIC_OPERATION_AND": "এবং", - "LOGIC_OPERATION_TOOLTIP_OR": "পাঠাবে সত্য যদি অন্ততপক্ষে যেকোন একটি ইনপুট সত্য হয়।", - "LOGIC_OPERATION_OR": "অথবা", - "LOGIC_NEGATE_TITLE": "%1 নয়", - "LOGIC_NEGATE_TOOLTIP": "পাঠাবে সত্য যদি ইনপুট মিথ্যা হয়। পাঠাবে মিথ্যা যদি ইনপুট সত্য হয়।", - "LOGIC_BOOLEAN_TRUE": "সত্য", - "LOGIC_BOOLEAN_FALSE": "মিথ্যা", - "LOGIC_BOOLEAN_TOOLTIP": "পাঠাবে হয় সত্য অথবা মিথ্যা।", - "LOGIC_NULL": "কিছু না", - "LOGIC_NULL_TOOLTIP": "কিছু ফেরত দিবে না।", - "LOGIC_TERNARY_CONDITION": "পরীক্ষা", - "LOGIC_TERNARY_IF_TRUE": "যদি সত্য হয়", - "LOGIC_TERNARY_IF_FALSE": "যদি মিথ্যা হয়", - "MATH_NUMBER_HELPURL": "https://bn.wikipedia.org/wiki/সংখ্যা", - "MATH_NUMBER_TOOLTIP": "একটি সংখ্যা।", - "MATH_ARITHMETIC_TOOLTIP_ADD": "পাঠাবে দুটি সংখ্যার যোগফল।", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "পাঠাবে দুটি সংখ্যার বিয়োগফল।", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "পাঠাবে দুটি সংখ্যার গুণফল।", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "পাঠাবে দুটি সংখ্যার ভাগফল।", - "MATH_SINGLE_OP_ROOT": "বর্গমূল", - "MATH_SINGLE_TOOLTIP_ROOT": "পাঠাবে একটি সংখ্যার বর্গমূল।", - "MATH_SINGLE_OP_ABSOLUTE": "পরম", - "MATH_SINGLE_TOOLTIP_ABS": "পাঠাবে সংখ্যার পরমমান।", - "MATH_IS_EVEN": "জোড় সংখ্যা", - "MATH_IS_ODD": "বিজোড় সংখ্যা", - "MATH_IS_PRIME": "মৌলিক সংখ্যা", - "MATH_IS_POSITIVE": "ইতিবাচক", - "MATH_IS_NEGATIVE": "নেতিবাচক", - "MATH_IS_DIVISIBLE_BY": "দ্বারা বিভাজ্য", - "MATH_CHANGE_TITLE": "%2 দ্বারা %1 পরিবর্তন", - "MATH_ONLIST_OPERATOR_SUM": "তালিকার যোগফল", - "MATH_ONLIST_TOOLTIP_SUM": "পাঠাবে তালিকার সব সংখ্যার যোগফল।", - "MATH_ONLIST_OPERATOR_MIN": "তালিকার মধ্যে সর্বনিম্ন", - "MATH_ONLIST_TOOLTIP_MIN": "তালিকার মধ্যে সর্বনিম্ন সংখ্যাটি পাঠাও", - "MATH_ONLIST_OPERATOR_MAX": "তালিকার মধ্যে সর্বোচ্চ", - "MATH_ONLIST_TOOLTIP_MAX": "তালিকার মধ্যে সর্বোচ্চ সংখ্যাটি পাঠাও", - "MATH_ONLIST_OPERATOR_AVERAGE": "তালিকার গড়", - "MATH_ONLIST_TOOLTIP_AVERAGE": "পাঠাবে তালিকার সব সংখ্যার গড়।", - "MATH_ONLIST_OPERATOR_MEDIAN": "তালিকার মধ্যমা", - "MATH_ONLIST_TOOLTIP_MEDIAN": "তালিকার মধ্যমা সংখ্যাটি পাঠাবে।", - "MATH_ONLIST_OPERATOR_RANDOM": "তালিকার এলোমেলো পদ", - "MATH_ONLIST_TOOLTIP_RANDOM": "তালিকা থেকে এলোমেলোভাবে একটি পদ পাঠাবে।", - "MATH_MODULO_TITLE": "%1 ÷ %2 এর ভাগশেষ", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "এলোমেলো ভগ্নাংশ", - "TEXT_TEXT_TOOLTIP": "একটি অক্ষর, শব্দ অথবা বাক্য।", - "TEXT_CREATE_JOIN_TITLE_JOIN": "যোগ", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "লেখাটিতে একটি পদ যোগ করুন।", - "TEXT_LENGTH_TITLE": "%1-এর দৈর্ঘ্য", - "TEXT_ISEMPTY_TITLE": "%1 খালি", - "TEXT_ISEMPTY_TOOLTIP": "পাঠাবে সত্য যদি সরবরাহকৃত লেখাটি খালি হয়।", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "বড়হাতের অক্ষরে", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "ছোটহাতের অক্ষরে", - "TEXT_TRIM_OPERATOR_BOTH": "উভয় পাশ থেকে খালি অংশ ছাটাই", - "TEXT_TRIM_OPERATOR_LEFT": "বামপাশ থেকে খালি অংশ ছাটাই", - "TEXT_TRIM_OPERATOR_RIGHT": "ডানপাশ থেকে খালি অংশ ছাটাই", - "TEXT_PRINT_TITLE": "%1 মুদ্রণ করুন", - "TEXT_REVERSE_MESSAGE0": "%1 উল্টান", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "LISTS_CREATE_EMPTY_TITLE": "খালি তালিকা তৈরি করুন", - "LISTS_CREATE_EMPTY_TOOLTIP": "পাঠাবে একটি তালিকা, দের্ঘ্য হবে ০, কোন উপাত্ত থাকবে না", - "LISTS_CREATE_WITH_TOOLTIP": "যেকোন সংখ্যক পদ নিয়ে একটি তালিকা তৈরি করুন।", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "তালিকা", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "তালিকায় একটি পদ যোগ করুন।", - "LISTS_LENGTH_TITLE": "%1-এর দৈর্ঘ্য", - "LISTS_LENGTH_TOOLTIP": "একটি তালিকার দৈর্ঘ্য পাঠাবে।", - "LISTS_ISEMPTY_TITLE": "%1 খালি", - "LISTS_ISEMPTY_TOOLTIP": "পাঠাবে সত্য যদি তালিকাটি খালি হয়।", - "LISTS_INLIST": "তালিকার মধ্যে", - "LISTS_INDEX_OF_FIRST": "আইটেমের প্রথম সংঘটন খুঁজুন", - "LISTS_INDEX_OF_LAST": "আইটেমের শেষ সংঘটন খুঁজুন", - "LISTS_GET_INDEX_GET": "নিন", - "LISTS_GET_INDEX_GET_REMOVE": "নিন ও সরান", - "LISTS_GET_INDEX_REMOVE": "অপসারণ", - "LISTS_GET_INDEX_FROM_END": "# শেষ থেকে", - "LISTS_GET_INDEX_FIRST": "প্রথম", - "LISTS_GET_INDEX_LAST": "শেষ", - "LISTS_GET_INDEX_RANDOM": "এলোমেলো", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "তালিকার প্রথম পদটি পাঠাবে।", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "তালিকার শেষ পদটি পাঠাবে।", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "এলোমেলোভাবে তালিকার যেকোন একটি পদ পাঠাবে।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "অপসারণ করুন এবং তালিকার প্রথম পদটি পাঠান।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "অপসারণ করুন এবং তালিকার শেষ পদটি পাঠান।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "অপসারণ করুন এবং তালিকার এলোমেলো একটি পদ পাঠান।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "তালিকার প্রথম পদটি অপসারণ করা হয়েছে।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "তালিকার শেষ পদটি অপসারণ করা হয়েছে।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "তালিকা থেকে এলোমেলো একটি পদ অপসারণ করা হয়েছে।", - "LISTS_SPLIT_LIST_FROM_TEXT": "লিখা থেকে তালিকা তৈরি করুন", - "LISTS_SPLIT_TEXT_FROM_LIST": "তালিকা থেকে লিখা তৈরি করুন", - "LISTS_REVERSE_TOOLTIP": "একটি তালিকার একটি অনুলিপি উল্টান", - "VARIABLES_SET_CREATE_GET": "'%1 নিন' তৈরি করুন", - "PROCEDURES_DEFNORETURN_TITLE": "এতে", - "PROCEDURES_DEFNORETURN_TOOLTIP": "আউটপুট ছাড়া একটি ক্রিয়া তৈরি করুন।", - "PROCEDURES_DEFRETURN_RETURN": "পাঠাবে", - "PROCEDURES_DEFRETURN_TOOLTIP": "আউটপুট সহ একটি ক্রিয়া তৈরি করুন।", - "PROCEDURES_MUTATORARG_TITLE": "ইনপুটের নাম:", - "PROCEDURES_MUTATORARG_TOOLTIP": "ক্রিয়াতে একটি ইনপুট যোগ করুন।", - "PROCEDURES_HIGHLIGHT_DEF": "ক্রিয়ার সংজ্ঞা উজ্জল করুন", - "PROCEDURES_IFRETURN_TOOLTIP": "যদি মান সত্য হয় তাহলে দ্বিতীয় মান পাঠাবে।" -} diff --git a/lib/blockly/msg/json/br.json b/lib/blockly/msg/json/br.json deleted file mode 100644 index 2d8c073..0000000 --- a/lib/blockly/msg/json/br.json +++ /dev/null @@ -1,353 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Fohanno", - "Y-M D", - "Gwenn-Ael", - "Fulup", - "Vicng" - ] - }, - "VARIABLES_DEFAULT_NAME": "elfenn", - "TODAY": "Hiziv", - "DUPLICATE_BLOCK": "Eiladuriñ", - "ADD_COMMENT": "Ouzhpennañ un evezhiadenn", - "REMOVE_COMMENT": "Lemel an evezhiadenn kuit", - "DUPLICATE_COMMENT": "Eiladiñ an eilenn", - "EXTERNAL_INPUTS": "Monedoù diavaez", - "INLINE_INPUTS": "Monedoù enlinenn", - "DELETE_BLOCK": "Dilemel ar bloc'h", - "DELETE_X_BLOCKS": "Dilemel %1 bloc'h", - "DELETE_ALL_BLOCKS": "Diverkañ an holl vloc'hoù %1 ?", - "CLEAN_UP": "Naetaat ar bloc'hoù", - "COLLAPSE_BLOCK": "Bihanaat ar bloc'h", - "COLLAPSE_ALL": "Bihanaat ar bloc'hoù", - "EXPAND_BLOCK": "Astenn ar bloc'h", - "EXPAND_ALL": "Astenn ar bloc'hoù", - "DISABLE_BLOCK": "Diweredekaat ar bloc'h", - "ENABLE_BLOCK": "Gweredekaat ar bloc'h", - "HELP": "Skoazell", - "UNDO": "Dizober", - "REDO": "Adober", - "CHANGE_VALUE_TITLE": "Kemmañ an dalvoudenn :", - "RENAME_VARIABLE": "Adenvel an argemmenn...", - "RENAME_VARIABLE_TITLE": "Adenvel an holl argemmennoù '%1' e :", - "NEW_VARIABLE": "Krouiñ un argemmenn nevez...", - "NEW_STRING_VARIABLE": "Krouiñ un argemmenn chadenn...", - "NEW_NUMBER_VARIABLE": "Krouiñ un argemm niver...", - "NEW_COLOUR_VARIABLE": "Krouiñ un argemmenn liv...", - "NEW_VARIABLE_TYPE_TITLE": "Doare nevez a argemm:", - "NEW_VARIABLE_TITLE": "Anv an argemmenn nevez :", - "VARIABLE_ALREADY_EXISTS": "Un argemmenn anvet '%1' zo anezhi dija.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Un argemenn anvet '%1' zo c'hoazh evit un argemenn all eus ar seurt : '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Lemel %1 implij eus an argemm '%2' ?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ne ch'aller ket dilemel an argemmenn \"%1\" dre m'eo lod eus dielfennadur an arc'hwel \"%2\"", - "DELETE_VARIABLE": "Lemel an argemm '%1'", - "COLOUR_PICKER_HELPURL": "http://br.wikipedia.org/wiki/Liv", - "COLOUR_PICKER_TOOLTIP": "Dibab ul liv diwar al livaoueg.", - "COLOUR_RANDOM_TITLE": "liv dargouezhek", - "COLOUR_RANDOM_TOOLTIP": "Tennañ ul liv d'ar sord", - "COLOUR_RGB_TITLE": "liv gant", - "COLOUR_RGB_RED": "ruz", - "COLOUR_RGB_GREEN": "gwer", - "COLOUR_RGB_BLUE": "glas", - "COLOUR_RGB_TOOLTIP": "Krouiñ ul liv gant ar c'hementad spisaet a ruz, a wer hag a c'hlas. Etre 0 ha 100 e tle bezañ an holl dalvoudoù.", - "COLOUR_BLEND_TITLE": "meskañ", - "COLOUR_BLEND_COLOUR1": "liv 1", - "COLOUR_BLEND_COLOUR2": "liv 2", - "COLOUR_BLEND_RATIO": "feur", - "COLOUR_BLEND_TOOLTIP": "a gemmesk daou liv gant ur feur roet(0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "adober %1 gwech", - "CONTROLS_REPEAT_INPUT_DO": "ober", - "CONTROLS_REPEAT_TOOLTIP": "Seveniñ urzhioù zo meur a wech", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "adober keit ha ma", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "adober betek", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Keit ha ma vez gwir un dalvoudenn, seveniñ urzhioù zo neuze.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Keit ha ma vez faos un dalvoudenn, seveniñ urzhioù zo neuze.", - "CONTROLS_FOR_TOOLTIP": "Ober e doare ma kemero an argemmenn \"%1\" an talvoudennoù adalek niverenn an deroù betek niverenn an dibenn, en ur inkremantiñ an esaouenn, ha seveniñ an urzhioù spisaet.", - "CONTROLS_FOR_TITLE": "kontañ gant %1 eus %2 da %3 dre %4", - "CONTROLS_FOREACH_TITLE": "evit pep elfenn %1 er roll %2", - "CONTROLS_FOREACH_TOOLTIP": "Evit pep elfenn en ur roll, reiñ talvoud an elfenn d'an argemmenn '%1', ha seveniñ urzhioù zo da c'houde.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "Mont e-maez an adlañsañ", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "Kenderc'hel gant iteradur nevez ar rodell", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Mont e-maez ar boukl engronnus.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Lammat ar rest eus ar rodell, ha kenderc'hel gant an iteradur war-lerc'h.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Diwallit : ne c'hall ar bloc'h-mañ bezañ implijet nemet e-barzh ur boukl.", - "CONTROLS_IF_TOOLTIP_1": "Ma vez gwir un dalvoudenn, seveniñ urzhioù zo neuze.", - "CONTROLS_IF_TOOLTIP_2": "Ma vez gwir un dalvoudenn, seveniñ ar c'henañ bloc'had urzhioù neuze. Anez seveniñ an eil bloc'had urzhioù.", - "CONTROLS_IF_TOOLTIP_3": "Ma vez gwir an dalvoudenn gentañ, seveniñ ar c'hentañ bloc'had urzhioù neuze. Anez ma vez gwir an eil talvoudenn, seveniñ an eil bloc'had urzhioù.", - "CONTROLS_IF_TOOLTIP_4": "Ma vez gwir an dalvoudenn gentañ, seveniñ ar c'hentañ bloc'had. Anez, ma vez gwir an eil talvoudenn, seveniñ an eil bloc'had urzhioù. Ma ne vez gwir talvoudenn ebet, seveniñ ar bloc'had diwezhañ a urzhioù.", - "CONTROLS_IF_MSG_IF": "ma", - "CONTROLS_IF_MSG_ELSEIF": "mod all ma", - "CONTROLS_IF_MSG_ELSE": "a-hend-all", - "CONTROLS_IF_IF_TOOLTIP": "Ouzhpennañ, lemel pe adurzhiañ ar rannoù evit kefluniañ ar bloc'h ma.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Ouzhpennañ un amplegad d'ar bloc'h ma.", - "CONTROLS_IF_ELSE_TOOLTIP": "Ouzhpennañ un amplegad dibenn lak-pep-tra d'ar bloc'h ma.", - "IOS_OK": "Mat eo", - "IOS_CANCEL": "Nullañ", - "IOS_ERROR": "Fazi", - "IOS_PROCEDURES_INPUTS": "MONEDOÙ", - "IOS_PROCEDURES_ADD_INPUT": "+ Ouzhpennañ ur moned", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Urzhioù aotreet", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "An arc'hwel-mañ en deus monedoù eiladet.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Ouzhpennañ un argemmenn", - "IOS_VARIABLES_ADD_BUTTON": "Ouzhpennañ", - "IOS_VARIABLES_RENAME_BUTTON": "Adenvel", - "IOS_VARIABLES_DELETE_BUTTON": "Diverkañ", - "IOS_VARIABLES_VARIABLE_NAME": "Anv an argemmenn", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ne c'hallit ket implijout un anv argemmenn c'houllo.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Distreiñ gwir m'eo par an daou voned.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Distreiñ gwir ma n'eo ket par an daou voned.", - "LOGIC_COMPARE_TOOLTIP_LT": "Distreiñ gwir m'eo bihanoc'h ar moned kentañ eget an eil.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Distreiñ gwir m'eo bihanoc'h ar moned kentañ eget an eil pe m'eo par dezhañ.", - "LOGIC_COMPARE_TOOLTIP_GT": "Distreiñ gwir m'eo brasoc'h ar moned kentañ eget an eil.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Distreiñ gwir m'eo brasoc'h ar moned kentañ eget an eil pe par dezhañ.", - "LOGIC_OPERATION_TOOLTIP_AND": "Distreiñ gwir m'eo gwir an da daou voned.", - "LOGIC_OPERATION_AND": "ha(g)", - "LOGIC_OPERATION_TOOLTIP_OR": "Distreiñ gwir m'eo gwir unan eus an daou voned da nebeutañ.", - "LOGIC_OPERATION_OR": "pe", - "LOGIC_NEGATE_TITLE": "nann %1", - "LOGIC_NEGATE_TOOLTIP": "Distreiñ gwir m'eo faos ar moned. Distreiñ faos m'eo gwir ar moned.", - "LOGIC_BOOLEAN_TRUE": "gwir", - "LOGIC_BOOLEAN_FALSE": "gaou", - "LOGIC_BOOLEAN_TOOLTIP": "Distreiñ pe gwir pe faos", - "LOGIC_NULL": "Null", - "LOGIC_NULL_TOOLTIP": "Distreiñ null.", - "LOGIC_TERNARY_CONDITION": "amprouad", - "LOGIC_TERNARY_IF_TRUE": "m'eo gwir", - "LOGIC_TERNARY_IF_FALSE": "m'eo gaou", - "LOGIC_TERNARY_TOOLTIP": "Gwiriañ an amplegad e 'prouad'. M'eo gwir an amplegad, distreiñ an dalvoudenn 'm'eo gwir'; anez distreiñ ar moned 'm'eo faos'.", - "MATH_NUMBER_HELPURL": "https://br.wikipedia.org/wiki/Niver", - "MATH_NUMBER_TOOLTIP": "Un niver.", - "MATH_ARITHMETIC_HELPURL": "https://br.wikipedia.org/wiki/Aritmetik", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Distreiñ sammad daou niver.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Distreiñ diforc'h daou niver", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Distreiñ liesad daou niver.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Distreiñ rannad daou niver.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Distreiñ an niver kentañ lakaet dindan gallouter an eil niver.", - "MATH_SINGLE_HELPURL": "https://br.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "gwrizienn garrez", - "MATH_SINGLE_TOOLTIP_ROOT": "Distreiñ gwrizienn garrez un niver", - "MATH_SINGLE_OP_ABSOLUTE": "dizave", - "MATH_SINGLE_TOOLTIP_ABS": "Distreiñ talvoud dizave un niver.", - "MATH_SINGLE_TOOLTIP_NEG": "Distreiñ enebad un niver", - "MATH_SINGLE_TOOLTIP_LN": "Distreiñ logaritm naturel un niver", - "MATH_SINGLE_TOOLTIP_LOG10": "Distreiñ logaritm diazez 10 un niver", - "MATH_SINGLE_TOOLTIP_EXP": "Distreiñ galloudad un niver.", - "MATH_SINGLE_TOOLTIP_POW10": "Distreiñ 10 da c'halloudad un niver.", - "MATH_TRIG_HELPURL": "https://br.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Distreiñ sinuz ur c'horn (ket e radianoù)", - "MATH_TRIG_TOOLTIP_COS": "Distreiñ kosinuz ur c'horn (ket e radianoù)", - "MATH_TRIG_TOOLTIP_TAN": "Distreiñ tangent ur c'horn (ket e radianoù).", - "MATH_TRIG_TOOLTIP_ASIN": "Distreiñ ark sinuz un niver", - "MATH_TRIG_TOOLTIP_ACOS": "Distreiñ ark kosinuz un niver", - "MATH_TRIG_TOOLTIP_ATAN": "Distreiñ ark tangent un niver", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Distreiñ unan eus digemmennoù red : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (anvevenn).", - "MATH_IS_EVEN": "zo par", - "MATH_IS_ODD": "zo ampar", - "MATH_IS_PRIME": "zo kentañ", - "MATH_IS_WHOLE": "zo anterin", - "MATH_IS_POSITIVE": "a zo pozitivel", - "MATH_IS_NEGATIVE": "a zo negativel", - "MATH_IS_DIVISIBLE_BY": "a zo rannadus dre", - "MATH_IS_TOOLTIP": "Gwiriañ m'eo par, anpar, kentañ, muiel, leiel un niverenn pe ma c'haller rannañ anezhi dre un niver roet zo. Distreiñ gwir pe faos.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "kemmañ %1 gant %2", - "MATH_CHANGE_TOOLTIP": "Ouzhpennañ un niver d'an argemmenn '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Rontaat un niver dindan pe a-us", - "MATH_ROUND_OPERATOR_ROUND": "Rontaat", - "MATH_ROUND_OPERATOR_ROUNDUP": "Rontaat a-us", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "Rontaat dindan", - "MATH_ONLIST_OPERATOR_SUM": "Sammad al listenn", - "MATH_ONLIST_TOOLTIP_SUM": "Distreiñ sammad an holl niveroù zo el listenn.", - "MATH_ONLIST_OPERATOR_MIN": "Izegenn al listenn", - "MATH_ONLIST_TOOLTIP_MIN": "Distreiñ an niver bihanañ el listenn", - "MATH_ONLIST_OPERATOR_MAX": "Uc'hegenn al listenn", - "MATH_ONLIST_TOOLTIP_MAX": "Distreiñ an niver brasañ el listenn.", - "MATH_ONLIST_OPERATOR_AVERAGE": "Keitat al listenn", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Distreiñ keitad (niveroniel) an talvoudennoù niverel el listenn.", - "MATH_ONLIST_OPERATOR_MEDIAN": "Kreizad al listenn", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Distreiñ an niver kreiz el listenn", - "MATH_ONLIST_OPERATOR_MODE": "modoù stankañ el listenn", - "MATH_ONLIST_TOOLTIP_MODE": "Distreiñ ul listennad elfennoù stankoc'h el listenn.", - "MATH_ONLIST_OPERATOR_STD_DEV": "forc'had standart eus al listenn", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Distreiñ forc'had standart al listenn.", - "MATH_ONLIST_OPERATOR_RANDOM": "Elfennn eus al listenn tennet d'ar sord", - "MATH_ONLIST_TOOLTIP_RANDOM": "Distreiñ un elfenn zargouezhek el listenn", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "rest eus %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Distreiñ dilerc'h rannadur an div niver", - "MATH_CONSTRAIN_TITLE": "destrizhañ %1 etre %2 ha %3", - "MATH_CONSTRAIN_TOOLTIP": "Destrizhañ un niver da vezañ etre ar bevennoù spisaet (enlakaet)", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "anterin dargouezhek etre %1 ha %2", - "MATH_RANDOM_INT_TOOLTIP": "Distreiñ un anterin dargouezhek etre an div vevenn spisaet, endalc'het.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Rann dargouezhek", - "MATH_RANDOM_FLOAT_TOOLTIP": "Distreiñ ur rann dargouezhek etre 0.0 (enkaelat) hag 1.0 (ezkaelat).", - "MATH_ATAN2_HELPURL": "https://fr.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 eus X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Adkas a ra ark tangent ar poent (X, Y) e derezioù etre -180 ha 180", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Ul lizherenn, ur ger pe ul linennad testenn.", - "TEXT_JOIN_TITLE_CREATEWITH": "krouiñ un destenn gant", - "TEXT_JOIN_TOOLTIP": "Krouit un tamm testenn en ur gevelstrollañ un niver bennak a elfennoù", - "TEXT_CREATE_JOIN_TITLE_JOIN": "stagañ", - "TEXT_CREATE_JOIN_TOOLTIP": "Ouzhpennañ, lemel pe adurzhiañ ar rannoù evit kefluniañ ar bloc'h testenn-mañ.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Ouzhpennañ un elfenn d'an destenn.", - "TEXT_APPEND_TITLE": "Ouzhpennañ an destenn %2 da %1", - "TEXT_APPEND_TOOLTIP": "Ouzhpennañ testenn d'an argemmenn'%1'.", - "TEXT_LENGTH_TITLE": "hirder %1", - "TEXT_LENGTH_TOOLTIP": "Distreiñ an niver a lizherennoù(en ur gontañ an esaouennoù e-barzh) en destenn roet.", - "TEXT_ISEMPTY_TITLE": "%1 zo goullo", - "TEXT_ISEMPTY_TOOLTIP": "Adkas gwir m'eo goullo an destenn roet.", - "TEXT_INDEXOF_TOOLTIP": "Distreiñ meneger ar c'hentañ/an eil reveziadenn eus ar chadenn gentañ en eil chadenn. Distreiñ %1 ma n'eo ket kavet ar chadenn.", - "TEXT_INDEXOF_TITLE": "en destenn %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "kavout reveziadenn gentañ an destenn", - "TEXT_INDEXOF_OPERATOR_LAST": "kavout reveziadenn diwezhañ an destenn", - "TEXT_CHARAT_TITLE": "en destenn %1 %2", - "TEXT_CHARAT_FROM_START": "Kaout al lizherenn #", - "TEXT_CHARAT_FROM_END": "Kaout al lizherenn # adalek an dibenn.", - "TEXT_CHARAT_FIRST": "tapout al lizherenn gentañ", - "TEXT_CHARAT_LAST": "tapout al lizherenn ziwezhañ", - "TEXT_CHARAT_RANDOM": "Kaout ul lizherenn dre zegouezh", - "TEXT_CHARAT_TOOLTIP": "Distreiñ al lizherenn d'al lec'h spisaet.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Distreiñ un tamm spisaet eus an destenn.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "en destenn", - "TEXT_GET_SUBSTRING_START_FROM_START": "Kaout an ischadenn adalek al lizherenn #", - "TEXT_GET_SUBSTRING_START_FROM_END": "Kaout an ischadenn adalek al lizherenn # betek an dibenn", - "TEXT_GET_SUBSTRING_START_FIRST": "Kaout an ischadenn adalek al lizherenn gentañ", - "TEXT_GET_SUBSTRING_END_FROM_START": "betek al lizherenn #", - "TEXT_GET_SUBSTRING_END_FROM_END": "Betek al lizherenn # adalek an dibenn.", - "TEXT_GET_SUBSTRING_END_LAST": "d'al lizherenn diwezhañ", - "TEXT_CHANGECASE_TOOLTIP": "Distreiñ un eilenn eus an eilenn en un direnneg all", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "e PENNLIZHERENNOÙ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "e lizherennoù bihan", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Gant Ur Bennlizherenn E Deroù Pep Ger", - "TEXT_TRIM_TOOLTIP": "Distreiñ un eilenn eus an destenn gant an esaouennoù lamet eus un tu pe eus an daou du", - "TEXT_TRIM_OPERATOR_BOTH": "Lemel an esaouennoù en daou du", - "TEXT_TRIM_OPERATOR_LEFT": "Lemel an esaouennoù eus an tu kleiz", - "TEXT_TRIM_OPERATOR_RIGHT": "Lemel an esaouennoù eus an tu dehou", - "TEXT_PRINT_TITLE": "moullañ %1", - "TEXT_PRINT_TOOLTIP": "Moullañ an destenn, an niverenn pe un dalvoudenn spisaet all", - "TEXT_PROMPT_TYPE_TEXT": "pedadenn evit un destenn gant ur c'hemennad", - "TEXT_PROMPT_TYPE_NUMBER": "pedadenn evit un niver gant ur c'hemennad", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Goulenn un niver gant an implijer.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Goulenn un destenn gant an implijer.", - "TEXT_COUNT_MESSAGE0": "niver %1 war %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Kontañ pet gwech e c'hoarvez un destenn bennak en un destenn bennak all.", - "TEXT_REPLACE_MESSAGE0": "erlec'hiañ %1 gant %2 e %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Erlec'hiañ holl reveziadennoù un destenn bennak gant un destenn all.", - "TEXT_REVERSE_MESSAGE0": "eilpennañ %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Eilpennañ urzh an arouezennoù en destenn.", - "LISTS_CREATE_EMPTY_TITLE": "krouiñ ur roll goullo", - "LISTS_CREATE_EMPTY_TOOLTIP": "Distreiñ ul listenn, 0 a hirder, n'eus enrolladenn ebet enni", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Krouiñ ur roll gant un niver bennak a elfennoù.", - "LISTS_CREATE_WITH_INPUT_WITH": "krouiñ ur roll gant", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "roll", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Ouzhpennañ, lemel pe adurzhiañ ar rannoù evit kefluniañ ar bloc'h listenn-mañ.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Ouzhpennañ un elfenn d'ar roll", - "LISTS_REPEAT_TOOLTIP": "Krouiñ ul listenn a c'hoarvez eus an dalvoudenn roet arreet an niver a wech meneget", - "LISTS_REPEAT_TITLE": "Krouiñ ul listenn gant an elfenn %1 arreet %2 div wech", - "LISTS_LENGTH_TITLE": "hirder %1", - "LISTS_LENGTH_TOOLTIP": "Distreiñ hirder ul listenn.", - "LISTS_ISEMPTY_TITLE": "%1 zo goullo", - "LISTS_ISEMPTY_TOOLTIP": "Distreiñ gwir m'eo goullo al listenn.", - "LISTS_INLIST": "el listenn", - "LISTS_INDEX_OF_FIRST": "kavout reveziadenn gentañ un elfenn", - "LISTS_INDEX_OF_LAST": "kavout reveziadenn diwezhañ un elfenn", - "LISTS_INDEX_OF_TOOLTIP": "Distreiñ meneger ar c'hentañ/an eil reveziadenn eus an elfenn en ul listenn. Distreiñ %1 ma n'eo ket kavet an destenn.", - "LISTS_GET_INDEX_GET": "tapout", - "LISTS_GET_INDEX_GET_REMOVE": "tapout ha lemel", - "LISTS_GET_INDEX_REMOVE": "lemel", - "LISTS_GET_INDEX_FROM_END": "# adalek ar fin", - "LISTS_GET_INDEX_FIRST": "kentañ", - "LISTS_GET_INDEX_LAST": "diwezhañ", - "LISTS_GET_INDEX_RANDOM": "dre zegouezh", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 eo an elfenn gentañ.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 eo an elfenn gentañ.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Distreiñ an elfenn el lec'h meneget en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Distreiñ an elfenn gentañ en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Distreiñ un elfenn diwezhañ en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Distreiñ un elfenn dre zegouezh en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Lemel ha distreiñ a ra an elfenn el lec'h meneget en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Lemel ha distreiñ a ra an elfenn gentañ en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Lemel ha distreiñ a ra an elfenn diwezhañ en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Lemel ha distreiñ a ra an elfenn dre zegouezh en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Lemel a ra an elfenn el lec'h meneget en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Lemel a ra an elfenn gentañ en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Lemel a ra an elfenn diwezhañ en ul listenn.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Lemel a ra un elfenn dre zegouezh en ul listenn.", - "LISTS_SET_INDEX_SET": "termenañ", - "LISTS_SET_INDEX_INSERT": "ensoc'hañ evel", - "LISTS_SET_INDEX_INPUT_TO": "evel", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Termenañ a ra an elfenn el lec'h meneget en ul listenn.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Termenañ a ra an elfenn gentañ en ul listenn.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Termenañ a ra an elfenn diwezhañ en ul listenn.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Termenañ a ra un elfenn dre zegouezh en ul listenn.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ensoc'hañ a ra an elfenn el lec'h meneget en ul listenn.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ensoc'hañ a ra an elfenn e deroù ul listenn.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ouzhpennañ a ra an elfenn e fin al listenn.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Ensoc'hañ a ra an elfenn dre zegouezh en ul listenn.", - "LISTS_GET_SUBLIST_START_FROM_START": "Kaout an islistenn adalek #", - "LISTS_GET_SUBLIST_START_FROM_END": "Kaout an islistenn adalek # adalek an dibenn", - "LISTS_GET_SUBLIST_START_FIRST": "Kaout an islistenn adalek an deroù", - "LISTS_GET_SUBLIST_END_FROM_START": "da #", - "LISTS_GET_SUBLIST_END_FROM_END": "betek # adalek an dibenn", - "LISTS_GET_SUBLIST_END_LAST": "betek ar fin", - "LISTS_GET_SUBLIST_TOOLTIP": "Krouiñ un eilad eus lodenn spisaet ul listenn.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_SORT_TITLE": "Rummañ%1,%2,%3", - "LISTS_SORT_TOOLTIP": "Rummañ un eilenn eus ar roll", - "LISTS_SORT_ORDER_ASCENDING": "war gresk", - "LISTS_SORT_ORDER_DESCENDING": "war zigresk", - "LISTS_SORT_TYPE_NUMERIC": "niverel", - "LISTS_SORT_TYPE_TEXT": "Dre urzh al lizherenneg", - "LISTS_SORT_TYPE_IGNORECASE": "Dre urzh al lizherenneg, hep derc'hel kont eus an direnneg", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "Krouiñ ul listenn diwar an destenn", - "LISTS_SPLIT_TEXT_FROM_LIST": "Krouiñ un destenn diwar al listenn", - "LISTS_SPLIT_WITH_DELIMITER": "gant an dispartier", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Troc'hañ un destenn en ul listennad testennoù, o troc'hañ e pep dispartier.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Bodañ ul listennad testennoù en ul listenn hepken, o tispartiañ anezho gant un dispartier.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "eilpennañ %1", - "LISTS_REVERSE_TOOLTIP": "Eilpennañ un eilskrid eus ur roll.", - "VARIABLES_GET_TOOLTIP": "Distreiñ talvoud an argemm-mañ.", - "VARIABLES_GET_CREATE_SET": "Krouiñ 'termenañ %1'", - "VARIABLES_SET": "termenañ %1 da %2", - "VARIABLES_SET_TOOLTIP": "Termenañ a ra argemm-mañ evit ma vo par da dalvoudenn ar moned.", - "VARIABLES_SET_CREATE_GET": "Krouiñ 'kaout %1'", - "PROCEDURES_DEFNORETURN_TITLE": "da", - "PROCEDURES_DEFNORETURN_PROCEDURE": "ober un dra bennak", - "PROCEDURES_BEFORE_PARAMS": "gant :", - "PROCEDURES_CALL_BEFORE_PARAMS": "gant :", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Krouiñ un arc'hwel hep mont er-maez.", - "PROCEDURES_DEFNORETURN_COMMENT": "Deskrivañ an arc'hwel-mañ...", - "PROCEDURES_DEFRETURN_RETURN": "distreiñ", - "PROCEDURES_DEFRETURN_TOOLTIP": "Kouiñ un arc'hwel gant ur mont er-maez", - "PROCEDURES_ALLOW_STATEMENTS": "aotren an disklêriadurioù", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Diwallit : an arc'hwel-mañ en deus arventennoù eiladet.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Seveniñ an arc'hwel '%1' termenet gant an implijer.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Seveniñ an arc'hwel '%1' termenet gant an implijer hag implijout e zisoc'h.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "Monedoù", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Ouzhpennañ, lemel, pe adkempenn monedoù an arc'hwel-mañ.", - "PROCEDURES_MUTATORARG_TITLE": "Anv ar moned", - "PROCEDURES_MUTATORARG_TOOLTIP": "Ouzhpennañ ur moned d'an arc'hwel.", - "PROCEDURES_HIGHLIGHT_DEF": "Dreislinennañ termenadur an arc'hwel", - "PROCEDURES_CREATE_DO": "Krouiñ '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Ma'z eo gwir un dalvoudenn, distreiñ un eil talvoudenn neuze.", - "PROCEDURES_IFRETURN_WARNING": "Diwallit : Gallout a rafe ar bloc'h bezañ implijet e termenadur un arc'hwel hepken.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Lavaret un dra bennak...", - "COLLAPSED_WARNINGS_WARNING": "Kemennoù-diwall zo er bloc'hadoù pleget." -} diff --git a/lib/blockly/msg/json/ca.json b/lib/blockly/msg/json/ca.json deleted file mode 100644 index bfa0663..0000000 --- a/lib/blockly/msg/json/ca.json +++ /dev/null @@ -1,323 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Alvaro Vidal-Abarca", - "Espertus", - "Hiperpobla", - "Jaumeortola", - "Fitoschido", - "Quel.soler", - "Micobu" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "TODAY": "Avui", - "DUPLICATE_BLOCK": "Duplica", - "ADD_COMMENT": "Afegeix un comentari", - "REMOVE_COMMENT": "Elimina el comentari", - "DUPLICATE_COMMENT": "Comentari duplicat", - "EXTERNAL_INPUTS": "Entrades externes", - "INLINE_INPUTS": "Entrades en línia", - "DELETE_BLOCK": "Esborra bloc", - "DELETE_X_BLOCKS": "Esborra %1 blocs", - "DELETE_ALL_BLOCKS": "Esborrar els %1 blocs?", - "CLEAN_UP": "Netejar blocs", - "COLLAPSE_BLOCK": "Contraure bloc", - "COLLAPSE_ALL": "Contraure blocs", - "EXPAND_BLOCK": "Expandir bloc", - "EXPAND_ALL": "Expandir blocs", - "DISABLE_BLOCK": "Desactiva bloc", - "ENABLE_BLOCK": "Activa bloc", - "HELP": "Ajuda", - "UNDO": "Desfer", - "REDO": "Refer", - "CHANGE_VALUE_TITLE": "Canvia valor:", - "RENAME_VARIABLE": "Reanomena variable...", - "RENAME_VARIABLE_TITLE": "Reanomena totes les variables '%1' a:", - "NEW_VARIABLE": "Crea una variable…", - "NEW_STRING_VARIABLE": "Crear variable de cadena…", - "NEW_NUMBER_VARIABLE": "Crea variable numèrica...", - "NEW_COLOUR_VARIABLE": "Crear variable de color...", - "NEW_VARIABLE_TYPE_TITLE": "Nou tipus de variable:", - "NEW_VARIABLE_TITLE": "Nou nom de variable:", - "VARIABLE_ALREADY_EXISTS": "Ja existeix una variable anomenada '%1'.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Una variable anomenada '%1' ja existeix per al tipus '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Esborrar '%1' crides de la variable '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "No podem esborrar la variable '%1' perquè forma part de la definició de la funció '%2'", - "DELETE_VARIABLE": "Esborrar la variable '%1'", - "COLOUR_PICKER_HELPURL": "https://ca.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Escolliu un color de la paleta.", - "COLOUR_RANDOM_TITLE": "color aleatori", - "COLOUR_RANDOM_TOOLTIP": "Escolliu un color a l'atzar.", - "COLOUR_RGB_TITLE": "color amb", - "COLOUR_RGB_RED": "vermell", - "COLOUR_RGB_GREEN": "verd", - "COLOUR_RGB_BLUE": "blau", - "COLOUR_RGB_TOOLTIP": "Crear un color amb les quantitats especificades de vermell, verd i blau. Tots els valors han de ser entre 0 i 100.", - "COLOUR_BLEND_TITLE": "barreja", - "COLOUR_BLEND_COLOUR1": "color 1", - "COLOUR_BLEND_COLOUR2": "color 2", - "COLOUR_BLEND_RATIO": "proporció", - "COLOUR_BLEND_TOOLTIP": "Barreja dos colors amb una proporció donada (0,0 - 1,0).", - "CONTROLS_REPEAT_HELPURL": "https://ca.wikipedia.org/wiki/Bucle_For", - "CONTROLS_REPEAT_TITLE": "repetir %1 vegades", - "CONTROLS_REPEAT_INPUT_DO": "fer", - "CONTROLS_REPEAT_TOOLTIP": "Executar unes sentències diverses vegades.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetir mentre", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repetir fins que", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Mentre un valor sigui cert, llavors executar unes sentències.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Mentre un valor sigui fals, llavors executar unes sentències.", - "CONTROLS_FOR_TOOLTIP": "Fer que la variable \"%1\" prengui els valors des del nombre inicial fins al nombre final, incrementant a cada pas l'intèrval indicat, i executar els blocs especificats.", - "CONTROLS_FOR_TITLE": "comptar amb %1 des de %2 fins a %3 en increments de %4", - "CONTROLS_FOREACH_TITLE": "per a cada element %1 en la llista %2", - "CONTROLS_FOREACH_TOOLTIP": "Per a cada element en la llista, desar l'element dins la variable '%1', i llavors executar unes sentències.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "sortir del bucle", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continuar amb la següent iteració del bucle", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Sortir del bucle interior.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Ometre la resta d'aquest bucle, i continuar amb la següent iteració.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Advertència: Aquest bloc només es pot utilitzar dins d'un bucle.", - "CONTROLS_IF_TOOLTIP_1": "Si un valor és cert, llavors executar unes sentències.", - "CONTROLS_IF_TOOLTIP_2": "Si un valor és cert, llavors executar el primer bloc de sentències. En cas contrari, executar el segon bloc de sentències.", - "CONTROLS_IF_TOOLTIP_3": "Si el primer valor és cert, llavors executar el primer bloc de sentències. En cas contrari, si el segon valor és cert, executar el segon bloc de sentències.", - "CONTROLS_IF_TOOLTIP_4": "Si el primer valor és cert, llavors executar el primer bloc de sentències. En cas contrari, si el segon valor és cert, executar el segon bloc de sentències. Si cap dels valors és cert, executar l'últim bloc de sentències.", - "CONTROLS_IF_MSG_IF": "si", - "CONTROLS_IF_MSG_ELSEIF": "si no, si", - "CONTROLS_IF_MSG_ELSE": "si no", - "CONTROLS_IF_IF_TOOLTIP": "Afegeix, esborra o reordena seccions per reconfigurar aquest bloc 'si'.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Afegeix una condició al bloc 'si'.", - "CONTROLS_IF_ELSE_TOOLTIP": "Afegeix una condició final, que recull qualsevol altra possibilitat, al bloc 'si'.", - "IOS_OK": "D'acord", - "IOS_CANCEL": "Cancel·lar", - "IOS_ERROR": "Error", - "IOS_PROCEDURES_INPUTS": "ENTRADES", - "IOS_PROCEDURES_ADD_INPUT": "+ Afegeix Entrada", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permetre instruccions", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Aquesta funció té entrades duplicades.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Afegeix Variable", - "IOS_VARIABLES_ADD_BUTTON": "Afegir", - "IOS_VARIABLES_RENAME_BUTTON": "Reanomena", - "IOS_VARIABLES_DELETE_BUTTON": "Esborrar", - "LOGIC_COMPARE_HELPURL": "https://ca.wikipedia.org/wiki/Inequaci%C3%B3", - "LOGIC_COMPARE_TOOLTIP_EQ": "Retorna cert si totes dues entrades són iguals.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Retorna cert si totes dues entrades són diferents.", - "LOGIC_COMPARE_TOOLTIP_LT": "Retorna cert si la primera entrada és més petita que la segona entrada.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Retorna cert si la primera entra és més petita o igual a la segona entrada.", - "LOGIC_COMPARE_TOOLTIP_GT": "Retorna cert si la primera entrada és més gran que la segona entrada.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Retorna cert si la primera entrada és més gran o igual a la segona entrada.", - "LOGIC_OPERATION_TOOLTIP_AND": "Retorna cer si totes dues entrades són certes.", - "LOGIC_OPERATION_AND": "i", - "LOGIC_OPERATION_TOOLTIP_OR": "Retorna cert si almenys una de les entrades és certa.", - "LOGIC_OPERATION_OR": "o", - "LOGIC_NEGATE_TITLE": "no %1", - "LOGIC_NEGATE_TOOLTIP": "Retorna cert si l'entrada és falsa. Retorna fals si l'entrada és certa.", - "LOGIC_BOOLEAN_TRUE": "cert", - "LOGIC_BOOLEAN_FALSE": "fals", - "LOGIC_BOOLEAN_TOOLTIP": "Retorna o bé cert o bé fals.", - "LOGIC_NULL": "nul", - "LOGIC_NULL_TOOLTIP": "Retorna nul.", - "LOGIC_TERNARY_CONDITION": "condició", - "LOGIC_TERNARY_IF_TRUE": "si és cert", - "LOGIC_TERNARY_IF_FALSE": "si és fals", - "LOGIC_TERNARY_TOOLTIP": "Comprova la condició de 'condició'. Si la condició és certa, retorna el valor 'si és cert'; en cas contrari, retorna el valor 'si és fals'.", - "MATH_NUMBER_HELPURL": "https://ca.wikipedia.org/wiki/Nombre", - "MATH_NUMBER_TOOLTIP": "Un nombre.", - "MATH_ARITHMETIC_HELPURL": "https://ca.wikipedia.org/wiki/Aritm%C3%A8tica", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Retorna la suma dels dos nombres.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Retorna la diferència entre els dos nombres.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Retorna el producte del dos nombres.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Retorna el quocient dels dos nombres.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Retorna el primer nombre elevat a la potència indicada pel segon nombre.", - "MATH_SINGLE_HELPURL": "https://ca.wikipedia.org/wiki/Arrel_quadrada", - "MATH_SINGLE_OP_ROOT": "arrel quadrada", - "MATH_SINGLE_TOOLTIP_ROOT": "Retorna l'arrel quadrada d'un nombre.", - "MATH_SINGLE_OP_ABSOLUTE": "absolut", - "MATH_SINGLE_TOOLTIP_ABS": "Retorna el valor absolut d'un nombre.", - "MATH_SINGLE_TOOLTIP_NEG": "Retorna l'oposat d'un nombre.", - "MATH_SINGLE_TOOLTIP_LN": "Retorna el logaritme natural d'un nombre.", - "MATH_SINGLE_TOOLTIP_LOG10": "Retorna el logaritme en base 10 d'un nombre.", - "MATH_SINGLE_TOOLTIP_EXP": "Retorna ''e'' elevat a la potència del nombre indicat.", - "MATH_SINGLE_TOOLTIP_POW10": "Retorna 10 elevat a la potència del nombre indicat.", - "MATH_TRIG_HELPURL": "https://ca.wikipedia.org/wiki/Funci%C3%B3_trigonom%C3%A8trica", - "MATH_TRIG_TOOLTIP_SIN": "Retorna el sinus d'un grau (no radiant).", - "MATH_TRIG_TOOLTIP_COS": "Retorna el cosinus d'un grau (no radiant).", - "MATH_TRIG_TOOLTIP_TAN": "Retorna la tangent d'un grau (no radiant).", - "MATH_TRIG_TOOLTIP_ASIN": "Retorna l'arcsinus d'un nombre.", - "MATH_TRIG_TOOLTIP_ACOS": "Retorna l'arccosinus d'un nombre.", - "MATH_TRIG_TOOLTIP_ATAN": "Retorna l'arctangent d'un nombre.", - "MATH_CONSTANT_HELPURL": "https://ca.wikipedia.org/wiki/Constant_matem%C3%A0tica", - "MATH_CONSTANT_TOOLTIP": "Retorna una de les constants més habituals: π (3,141…), e (2,718…), φ (1,618…), sqrt(2) (1,414…), sqrt(½) (0,707…), o ∞ (infinit).", - "MATH_IS_EVEN": "és parell", - "MATH_IS_ODD": "és senar", - "MATH_IS_PRIME": "és primer", - "MATH_IS_WHOLE": "és enter", - "MATH_IS_POSITIVE": "és positiu", - "MATH_IS_NEGATIVE": "és negatiu", - "MATH_IS_DIVISIBLE_BY": "és divisible per", - "MATH_IS_TOOLTIP": "Comprova si un nombre és parell, senar, enter, positium negatiu, o si és divisible per un cert nombre. Retorna cert o fals.", - "MATH_CHANGE_HELPURL": "https://ca.wikipedia.org/wiki/Suma", - "MATH_CHANGE_TITLE": "canvia %1 per %2", - "MATH_CHANGE_TOOLTIP": "Afegeix un nombre a la variable '%1'.", - "MATH_ROUND_HELPURL": "https://ca.wikipedia.org/wiki/Arrodoniment", - "MATH_ROUND_TOOLTIP": "Arrodonir un nombre cap amunt o cap avall.", - "MATH_ROUND_OPERATOR_ROUND": "arrodonir", - "MATH_ROUND_OPERATOR_ROUNDUP": "arrodonir cap amunt", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arrodonir cap avall", - "MATH_ONLIST_OPERATOR_SUM": "suma de llista", - "MATH_ONLIST_TOOLTIP_SUM": "Retorna la suma de tots els nombres de la llista.", - "MATH_ONLIST_OPERATOR_MIN": "mínim de llista", - "MATH_ONLIST_TOOLTIP_MIN": "Retorna el nombre més petit de la llista.", - "MATH_ONLIST_OPERATOR_MAX": "màxim de llista", - "MATH_ONLIST_TOOLTIP_MAX": "Retorna el nombre més gran de la llista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "mitjana de llista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Retorna la mitjana (mitjana aritmètica) dels valors numèrics de la llista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana de llista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Retorna la mediana de la llista.", - "MATH_ONLIST_OPERATOR_MODE": "moda de llista", - "MATH_ONLIST_TOOLTIP_MODE": "Retorna una llista dels elements que apareixen més vegades a la llista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "desviació estàndard de llista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Retorna la desviació estàndard de la llista.", - "MATH_ONLIST_OPERATOR_RANDOM": "element aleatori de llista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Retorna un element aleatori de la lllista.", - "MATH_MODULO_HELPURL": "https://ca.wikipedia.org/wiki/Residu_%28aritm%C3%A8tica%29", - "MATH_MODULO_TITLE": "residu de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Retorna el residu de dividir els dos nombres.", - "MATH_CONSTRAIN_TITLE": "limitar %1 entre %2 i %3", - "MATH_CONSTRAIN_TOOLTIP": "Limita un nombre perquè estigui entre els límits especificats (inclosos).", - "MATH_RANDOM_INT_HELPURL": "https://ca.wikipedia.org/wiki/Generaci%C3%B3_de_nombres_aleatoris", - "MATH_RANDOM_INT_TITLE": "nombre aleatori entre %1 i %2", - "MATH_RANDOM_INT_TOOLTIP": "Retorna un nombre aleatori entre els dos límits especificats, inclosos.", - "MATH_RANDOM_FLOAT_HELPURL": "https://ca.wikipedia.org/wiki/Generaci%C3%B3_de_nombres_aleatoris", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fracció aleatòria", - "MATH_RANDOM_FLOAT_TOOLTIP": "Retorna una fracció aleatòria entre 0,0 (inclòs) i 1,0 (exclòs).", - "TEXT_TEXT_HELPURL": "https://ca.wikipedia.org/wiki/Cadena_%28inform%C3%A0tica%29", - "TEXT_TEXT_TOOLTIP": "Una lletra, paraula o línia de text.", - "TEXT_JOIN_TITLE_CREATEWITH": "crear text amb", - "TEXT_JOIN_TOOLTIP": "Crea un tros de text per unió de qualsevol nombre d'elements.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unir", - "TEXT_CREATE_JOIN_TOOLTIP": "Afegeix, esborrar o reordenar seccions per reconfigurar aquest bloc de text.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Afegeix un element al text.", - "TEXT_APPEND_TITLE": "a %1 afegir text %2", - "TEXT_APPEND_TOOLTIP": "Afegir un text a la variable '%1'.", - "TEXT_LENGTH_TITLE": "llargària de %1", - "TEXT_LENGTH_TOOLTIP": "Retorna el nombre de lletres (espais inclosos) en el text proporcionat.", - "TEXT_ISEMPTY_TITLE": "%1 està buit", - "TEXT_ISEMPTY_TOOLTIP": "Retorna cert si el text proporcionat està buit.", - "TEXT_INDEXOF_TOOLTIP": "Retorna l'índex de la primera/última aparició del primer text dins el segon. Retorna %1 si no es troba el text.", - "TEXT_INDEXOF_TITLE": "en el text %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "trobar la primera aparició del text", - "TEXT_INDEXOF_OPERATOR_LAST": "trobar l'última aparició del text", - "TEXT_CHARAT_FROM_START": "recupera la lletra núm.#", - "TEXT_CHARAT_FROM_END": "recupera la lletra núm.# des del final", - "TEXT_CHARAT_FIRST": "recupera la primera lletra", - "TEXT_CHARAT_LAST": "recupera l'última lletra", - "TEXT_CHARAT_RANDOM": "recupera una lletra a l'atzar", - "TEXT_CHARAT_TOOLTIP": "Recupera la lletra de la posició especificada.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Recupera una part especificada del text.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "en el text", - "TEXT_GET_SUBSTRING_START_FROM_START": "recupera subcadena des de la lletra núm.#", - "TEXT_GET_SUBSTRING_START_FROM_END": "recupera subcadena des de la lletra núm.# des del final", - "TEXT_GET_SUBSTRING_START_FIRST": "recupera subcadena des de la primera lletra", - "TEXT_GET_SUBSTRING_END_FROM_START": "fins a la lletra núm.#", - "TEXT_GET_SUBSTRING_END_FROM_END": "fins a la lletra núm.# des del final", - "TEXT_GET_SUBSTRING_END_LAST": "fins a l'última lletra", - "TEXT_CHANGECASE_TOOLTIP": "Retorna una còpia del text amb diferents majúscules/minúscules.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "a MAJÚSCULES", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "a minúscules", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "a Text De Títol", - "TEXT_TRIM_TOOLTIP": "Retorna una còpia del text on s'han esborrat els espais d'un o dels dos extrems.", - "TEXT_TRIM_OPERATOR_BOTH": "retalla espais de tots dos extrems de", - "TEXT_TRIM_OPERATOR_LEFT": "retalla espais de l'esquerra de", - "TEXT_TRIM_OPERATOR_RIGHT": "retalla espais de la dreta de", - "TEXT_PRINT_TITLE": "imprimir %1", - "TEXT_PRINT_TOOLTIP": "Imprimir el text, el nombre o altre valor especificat.", - "TEXT_PROMPT_TYPE_TEXT": "demanar text amb el missatge", - "TEXT_PROMPT_TYPE_NUMBER": "demanar un nombre amb el missatge", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Demana que l'usuari introdueixi un nombre.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Demana que l'usuari introdueixi un text.", - "LISTS_CREATE_EMPTY_TITLE": "crear llista buida", - "LISTS_CREATE_EMPTY_TOOLTIP": "Retorna una llista, de longitud 0, que no conté cap dada.", - "LISTS_CREATE_WITH_TOOLTIP": "Crea una llista amb qualsevol nombre d'elements.", - "LISTS_CREATE_WITH_INPUT_WITH": "crear llista amb", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "llista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Afegeix, esborra o reordena seccions per reconfigurar aquest bloc de llista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Afegeix un element a la llista.", - "LISTS_REPEAT_TOOLTIP": "Crea una llista formada pel valor donat, repetit tantes vegades com s'indiqui.", - "LISTS_REPEAT_TITLE": "crea llista amb element %1 repetit %2 vegades", - "LISTS_LENGTH_TITLE": "longitud de %1", - "LISTS_LENGTH_TOOLTIP": "Retorna la longitud d'una llista.", - "LISTS_ISEMPTY_TITLE": "%1 és buida", - "LISTS_ISEMPTY_TOOLTIP": "Retorna cert si la llista és buida.", - "LISTS_INLIST": "en la llista", - "LISTS_INDEX_OF_FIRST": "buscar primera aparició d'un element", - "LISTS_INDEX_OF_LAST": "buscar última aparició d'un element", - "LISTS_INDEX_OF_TOOLTIP": "Retorna l'índex de la primera/última aparició d'un element a la llista. Retorna %1 si no s'hi troba el text.", - "LISTS_GET_INDEX_GET": "recupera", - "LISTS_GET_INDEX_GET_REMOVE": "recupera i esborra", - "LISTS_GET_INDEX_REMOVE": "esborra", - "LISTS_GET_INDEX_FROM_END": "núm.# des del final", - "LISTS_GET_INDEX_FIRST": "primer", - "LISTS_GET_INDEX_LAST": "últim", - "LISTS_GET_INDEX_RANDOM": "a l'atzar", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 és el primer element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 és l'últim element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Retorna l'element de la posició especificada a la llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Retorna el primer element d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Retorna l'últim element d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Retorna un element a l'atzar d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Esborra i retorna l'element de la posició especificada de la llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Esborra i retorna el primer element d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Esborra i retorna l'últim element d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Esborra i retorna un element a l'atzar d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Esborra l'element de la posició especificada de la llista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Esborra el primer element d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Esborra l'últim element d'una llista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Esborra un element a l'atzar d'una llista.", - "LISTS_SET_INDEX_SET": "modifica", - "LISTS_SET_INDEX_INSERT": "insereix a", - "LISTS_SET_INDEX_INPUT_TO": "com", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Modifica l'element de la posició especificada d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Modifica el primer element d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Modifica l'últim element d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Modifica un element a l'atzar d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Insereix l'element a la posició especificada d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Insereix l'element al principi d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Afegeix l'element al final d'una llista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Insereix l'element en una posició a l'atzar d'una llista.", - "LISTS_GET_SUBLIST_START_FROM_START": "recupera sub-llista des de #", - "LISTS_GET_SUBLIST_START_FROM_END": "recupera sub-llista des de # des del final", - "LISTS_GET_SUBLIST_START_FIRST": "recupera sub-llista des del principi", - "LISTS_GET_SUBLIST_END_FROM_START": "fins #", - "LISTS_GET_SUBLIST_END_FROM_END": "fins # des del final", - "LISTS_GET_SUBLIST_END_LAST": "fins l'últim", - "LISTS_GET_SUBLIST_TOOLTIP": "Crea una còpia de la part especificada d'una llista.", - "LISTS_SORT_TYPE_TEXT": "alfabètic", - "LISTS_SPLIT_WITH_DELIMITER": "amb delimitador", - "VARIABLES_GET_TOOLTIP": "Retorna el valor d'aquesta variable.", - "VARIABLES_GET_CREATE_SET": "Crea 'modifica %1'", - "VARIABLES_SET": "modifica %1 a %2", - "VARIABLES_SET_TOOLTIP": "Modifica aquesta variable al valor introduït.", - "VARIABLES_SET_CREATE_GET": "Crear 'recupera %1'", - "PROCEDURES_DEFNORETURN_TITLE": "a", - "PROCEDURES_DEFNORETURN_PROCEDURE": "fes alguna cosa", - "PROCEDURES_BEFORE_PARAMS": "amb:", - "PROCEDURES_CALL_BEFORE_PARAMS": "amb:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Crea una funció sense sortida.", - "PROCEDURES_DEFNORETURN_COMMENT": "Descriure aquesta funció...", - "PROCEDURES_DEFRETURN_RETURN": "retorna", - "PROCEDURES_DEFRETURN_TOOLTIP": "Crea una funció amb una sortida.", - "PROCEDURES_ALLOW_STATEMENTS": "permetre declaracions", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Advertència: Aquesta funció té paràmetres duplicats.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://ca.wikipedia.org/wiki/Procediment_%28Programació%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Executa la funció definida per usuari '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://ca.wikipedia.org/wiki/Procediment_%28Programació%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "Executa la funció definida per l'usuari '%1' i utilitza la seva sortida.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entrades", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Afegir, eliminar o canviar l'ordre de les entrades per aquesta funció.", - "PROCEDURES_MUTATORARG_TITLE": "nom d'entrada:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Afegir una entrada per la funció.", - "PROCEDURES_HIGHLIGHT_DEF": "Iluminar la definició de la funció", - "PROCEDURES_CREATE_DO": "Crear '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Si el valor és cert, llavors retorna un segon valor.", - "PROCEDURES_IFRETURN_WARNING": "Advertència: Aquest bloc només es pot utilitzar dins de la definició d'una funció.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Digues alguna cosa..." -} diff --git a/lib/blockly/msg/json/constants.json b/lib/blockly/msg/json/constants.json deleted file mode 100644 index 5d2b80a..0000000 --- a/lib/blockly/msg/json/constants.json +++ /dev/null @@ -1 +0,0 @@ -{"LOGIC_HUE": "210", "LOOPS_HUE": "120", "MATH_HUE": "230", "TEXTS_HUE": "160", "LISTS_HUE": "260", "COLOUR_HUE": "20", "VARIABLES_HUE": "330", "VARIABLES_DYNAMIC_HUE": "310", "PROCEDURES_HUE": "290"} \ No newline at end of file diff --git a/lib/blockly/msg/json/cs.json b/lib/blockly/msg/json/cs.json deleted file mode 100644 index a106a53..0000000 --- a/lib/blockly/msg/json/cs.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Chmee2", - "Rosnicka.kacka", - "Matěj Grabovský", - "Espertus", - "Utar", - "Clon", - "Koo6", - "Vtmarvin", - "Dvorapa", - "Dita", - "Ilimanaq29", - "Patriccck" - ] - }, - "VARIABLES_DEFAULT_NAME": "položka", - "TODAY": "Dnes", - "DUPLICATE_BLOCK": "Duplikovat", - "ADD_COMMENT": "Přidat komentář", - "REMOVE_COMMENT": "Odstranit komentář", - "EXTERNAL_INPUTS": "vnější vstupy", - "INLINE_INPUTS": "Vložené vstupy", - "DELETE_BLOCK": "Smazat blok", - "DELETE_X_BLOCKS": "Smazat %1 bloků", - "DELETE_ALL_BLOCKS": "Smazat všech %1 bloků?", - "CLEAN_UP": "Uspořádat bloky", - "COLLAPSE_BLOCK": "Sbalit blok", - "COLLAPSE_ALL": "Sbalit bloky", - "EXPAND_BLOCK": "Rozbalit blok", - "EXPAND_ALL": "Rozbalit bloky", - "DISABLE_BLOCK": "Deaktivovat blok", - "ENABLE_BLOCK": "Povolit blok", - "HELP": "Nápověda", - "UNDO": "Zpět", - "REDO": "Znovu", - "CHANGE_VALUE_TITLE": "Změnit hodnotu:", - "RENAME_VARIABLE": "Přejmenovat proměnnou...", - "RENAME_VARIABLE_TITLE": "Přejmenuj všech '%1' proměnných na:", - "NEW_VARIABLE": "Vytvořte proměnnou...", - "NEW_STRING_VARIABLE": "Vytvořit řetězcovou proměnnou...", - "NEW_NUMBER_VARIABLE": "Vytvořit číselnou proměnnou...", - "NEW_COLOUR_VARIABLE": "Vytvořit barvu proměnné...", - "NEW_VARIABLE_TYPE_TITLE": "Nový typ proměnné:", - "NEW_VARIABLE_TITLE": "Nový název proměnné:", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Proměnná pojmenovaná jako '%1' již existuje pro jiný typ: '%2'.", - "COLOUR_PICKER_HELPURL": "https://cs.wikipedia.org/wiki/Barva", - "COLOUR_PICKER_TOOLTIP": "Vyberte barvu z palety.", - "COLOUR_RANDOM_TITLE": "náhodná barva", - "COLOUR_RANDOM_TOOLTIP": "Zvolte barvu náhodně.", - "COLOUR_RGB_TITLE": "obarvěte barvou", - "COLOUR_RGB_RED": "červená", - "COLOUR_RGB_GREEN": "zelená", - "COLOUR_RGB_BLUE": "modrá", - "COLOUR_RGB_TOOLTIP": "Vytvoř barvu se zadaným množstvím červené, zelené a modré. Všechny hodnoty musí být mezi 0 a 100.", - "COLOUR_BLEND_TITLE": "smíchat", - "COLOUR_BLEND_COLOUR1": "barva 1", - "COLOUR_BLEND_COLOUR2": "barva 2", - "COLOUR_BLEND_RATIO": "poměr", - "COLOUR_BLEND_TOOLTIP": "Smíchá dvě barvy v daném poměru (0.0–1.0).", - "CONTROLS_REPEAT_HELPURL": "https://cs.wikipedia.org/wiki/Cyklus_pro", - "CONTROLS_REPEAT_TITLE": "opakuj %1 krát", - "CONTROLS_REPEAT_INPUT_DO": "dělej", - "CONTROLS_REPEAT_TOOLTIP": "Proveď určité příkazy několikrát.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "opakovat když", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "opakovat dokud", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Dokud je hodnota pravdivá, prováděj určité příkazy.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Dokud je hodnota nepravdivá, prováděj určité příkazy.", - "CONTROLS_FOR_TOOLTIP": "Nechá proměnnou '%1' nabývat hodnot od počátečního do koncového čísla po daném přírůstku a provádí s ní příslušné bloky.", - "CONTROLS_FOR_TITLE": "počítat s %1 od %2 do %3 po %4", - "CONTROLS_FOREACH_TITLE": "pro každou položku %1 v seznamu %2", - "CONTROLS_FOREACH_TOOLTIP": "Pro každou položku v seznamu nastavte do proměnné '%1' danou položku a proveďte nějaké operace.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "vyskočit ze smyčky", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "pokračuj dalším opakováním smyčky", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Vyskoč z vnitřní smyčky.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Přeskoč zbytek této smyčky a pokračuj dalším opakováním.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Upozornění: Tento blok může být použit pouze uvnitř smyčky.", - "CONTROLS_IF_TOOLTIP_1": "Je-li hodnota pravda, proveď určité příkazy.", - "CONTROLS_IF_TOOLTIP_2": "Je-li hodnota pravda, proveď první blok příkazů. V opačném případě proveď druhý blok příkazů.", - "CONTROLS_IF_TOOLTIP_3": "Je-li první hodnota pravdivá, proveď první blok příkazů. V opačném případě, je-li pravdivá druhá hodnota, proveď druhý blok příkazů.", - "CONTROLS_IF_TOOLTIP_4": "Je-li první hodnota pravda, proveď první blok příkazů. Je-li druhá hodnota pravda, proveď druhý blok příkazů. Pokud žádná hodnota není pravda, proveď poslední blok příkazů.", - "CONTROLS_IF_MSG_IF": "pokud", - "CONTROLS_IF_MSG_ELSEIF": "nebo pokud", - "CONTROLS_IF_MSG_ELSE": "jinak", - "CONTROLS_IF_IF_TOOLTIP": "Přidej, odstraň či uspořádej sekce k přenastavení tohoto bloku \"pokud\".", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Přidat podmínku do \"pokud\" bloku.", - "CONTROLS_IF_ELSE_TOOLTIP": "Přidej konečnou podmínku zahrnující ostatní případy do bloku \"pokud\".", - "IOS_ERROR": "Chyba", - "IOS_PROCEDURES_INPUTS": "vstupy", - "IOS_VARIABLES_ADD_BUTTON": "Přidat", - "IOS_VARIABLES_RENAME_BUTTON": "Přejmenovat", - "IOS_VARIABLES_DELETE_BUTTON": "Smazat", - "LOGIC_COMPARE_HELPURL": "https://cs.wikipedia.org/wiki/Nerovnost_(matematika)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Vrátí hodnotu pravda, pokud se oba vstupy rovnají jeden druhému.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Vrátí hodnotu pravda, pokud se oba vstupy nerovnají sobě navzájem.", - "LOGIC_COMPARE_TOOLTIP_LT": "Navrátí hodnotu pravda, pokud je první vstup menší než druhý vstup.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Navrátí hodnotu pravda, pokud je první vstup menší a nebo rovný druhému vstupu.", - "LOGIC_COMPARE_TOOLTIP_GT": "Navrátí hodnotu pravda, pokud první vstup je větší než druhý vstup.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Navrátí hodnotu pravda, pokud je první vstup větší a nebo rovný druhému vstupu.", - "LOGIC_OPERATION_TOOLTIP_AND": "Vrátí hodnotu pravda, pokud oba dva vstupy jsou pravdivé.", - "LOGIC_OPERATION_AND": "a", - "LOGIC_OPERATION_TOOLTIP_OR": "Vrátí hodnotu pravda, pokud alespoň jeden ze vstupů má hodnotu pravda.", - "LOGIC_OPERATION_OR": "nebo", - "LOGIC_NEGATE_TITLE": "ne %1", - "LOGIC_NEGATE_TOOLTIP": "Navrátí hodnotu pravda, pokud je vstup nepravda. Navrátí hodnotu nepravda, pokud je vstup pravda.", - "LOGIC_BOOLEAN_TRUE": "pravda", - "LOGIC_BOOLEAN_FALSE": "nepravda", - "LOGIC_BOOLEAN_TOOLTIP": "Vrací pravda nebo nepravda.", - "LOGIC_NULL": "prázdný", - "LOGIC_NULL_TOOLTIP": "Vrátí prázdnou hodnotu", - "LOGIC_TERNARY_HELPURL": "https://cs.wikipedia.org/wiki/Ternární operátor (programování)", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "pokud pravda", - "LOGIC_TERNARY_IF_FALSE": "pokud nepravda", - "LOGIC_TERNARY_TOOLTIP": "Zkontroluje podmínku v \"testu\". Když je podmínka pravda, vrátí hodnotu \"pokud pravda\"; v opačném případě vrátí hodnotu \"pokud nepravda\".", - "MATH_NUMBER_HELPURL": "https://cs.wikipedia.org/wiki/Číslo", - "MATH_NUMBER_TOOLTIP": "Číslo.", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "arcsin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "arctan", - "MATH_ARITHMETIC_HELPURL": "https://cs.wikipedia.org/wiki/Aritmetika", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Vrátí součet dvou čísel.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Vrátí rozdíl dvou čísel.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Vrátí součin dvou čísel.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Vrátí podíl dvou čísel.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Vrátí první číslo umocněné na druhé číslo.", - "MATH_SINGLE_HELPURL": "https://cs.wikipedia.org/wiki/Druhá_odmocnina", - "MATH_SINGLE_OP_ROOT": "druhá odmocnina", - "MATH_SINGLE_TOOLTIP_ROOT": "Vrátí druhou odmocninu čísla.", - "MATH_SINGLE_OP_ABSOLUTE": "absolutní hodnota", - "MATH_SINGLE_TOOLTIP_ABS": "Vrátí absolutní hodnotu čísla.", - "MATH_SINGLE_TOOLTIP_NEG": "Vrátí zápornou hodnotu čísla.", - "MATH_SINGLE_TOOLTIP_LN": "Vrátí přirozený logaritmus čísla.", - "MATH_SINGLE_TOOLTIP_LOG10": "Vrátí desítkový logaritmus čísla.", - "MATH_SINGLE_TOOLTIP_EXP": "Vrátí mocninu čísla e.", - "MATH_SINGLE_TOOLTIP_POW10": "Vrátí mocninu čísla 10.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Vrátí sinus úhlu ve stupních.", - "MATH_TRIG_TOOLTIP_COS": "Vrátí kosinus úhlu ve stupních.", - "MATH_TRIG_TOOLTIP_TAN": "Vrátí tangens úhlu ve stupních.", - "MATH_TRIG_TOOLTIP_ASIN": "Vrátí arkus sinus čísla.", - "MATH_TRIG_TOOLTIP_ACOS": "Vrátí arkus kosinus čísla.", - "MATH_TRIG_TOOLTIP_ATAN": "Vrátí arkus tangens čísla.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Vraťte jednu z následujících konstant: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (nekonečno).", - "MATH_IS_EVEN": "je sudé", - "MATH_IS_ODD": "je liché", - "MATH_IS_PRIME": "je prvočíslo", - "MATH_IS_WHOLE": "je celé", - "MATH_IS_POSITIVE": "je kladné", - "MATH_IS_NEGATIVE": "je záporné", - "MATH_IS_DIVISIBLE_BY": "je dělitelné číslem", - "MATH_IS_TOOLTIP": "Kontrola, zda je číslo sudé, liché, prvočíslo, celé, kladné, záporné nebo zda je dělitelné daným číslem. Vrací pravdu nebo nepravdu.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "zaměň %1 za %2", - "MATH_CHANGE_TOOLTIP": "Přičti číslo k proměnné '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Zaokrouhlit číslo nahoru nebo dolů.", - "MATH_ROUND_OPERATOR_ROUND": "zaokrouhlit", - "MATH_ROUND_OPERATOR_ROUNDUP": "zaokrouhlit nahoru", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "zaokrouhlit dolů", - "MATH_ONLIST_OPERATOR_SUM": "suma seznamu", - "MATH_ONLIST_TOOLTIP_SUM": "Vrátí součet všech čísel v seznamu.", - "MATH_ONLIST_OPERATOR_MIN": "nejmenší v seznamu", - "MATH_ONLIST_TOOLTIP_MIN": "Vrátí nejmenší číslo v seznamu.", - "MATH_ONLIST_OPERATOR_MAX": "největší v seznamu", - "MATH_ONLIST_TOOLTIP_MAX": "Vrátí největší číslo v seznamu.", - "MATH_ONLIST_OPERATOR_AVERAGE": "průměr v seznamu", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Vrátí průměr (aritmetický průměr) číselných hodnot v seznamu.", - "MATH_ONLIST_OPERATOR_MEDIAN": "medián v seznamu", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Vrátí medián seznamu.", - "MATH_ONLIST_OPERATOR_MODE": "nejčastější ze seznamu", - "MATH_ONLIST_TOOLTIP_MODE": "Vrátí seznam nejčastějších položek seznamu.", - "MATH_ONLIST_OPERATOR_STD_DEV": "směrodatná odchylka ze seznamu", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Vrátí směrodatnou odchylku seznamu.", - "MATH_ONLIST_OPERATOR_RANDOM": "náhodná položka seznamu", - "MATH_ONLIST_TOOLTIP_RANDOM": "Vrátí náhodnou položku ze seznamu.", - "MATH_MODULO_HELPURL": "https://cs.wikipedia.org/wiki/Modul%C3%A1rn%C3%AD_aritmetika", - "MATH_MODULO_TITLE": "zbytek po dělení %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Vrátí zbytek po dělení dvou čísel.", - "MATH_CONSTRAIN_TITLE": "omez %1 na rozmezí od %2 do %3", - "MATH_CONSTRAIN_TOOLTIP": "Omezí číslo tak, aby bylo ve stanovených mezích (včetně).", - "MATH_RANDOM_INT_HELPURL": "https://cs.wikipedia.org/wiki/Gener%C3%A1tor_n%C3%A1hodn%C3%BDch_%C4%8D%C3%ADsel", - "MATH_RANDOM_INT_TITLE": "náhodné celé číslo od %1 do %2", - "MATH_RANDOM_INT_TOOLTIP": "Vrací náhodné celé číslo mezi dvěma určenými mezemi, včetně mezních hodnot.", - "MATH_RANDOM_FLOAT_HELPURL": "https://cs.wikipedia.org/wiki/Gener%C3%A1tor_n%C3%A1hodn%C3%BDch_%C4%8D%C3%ADsel", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "náhodné číslo mezi 0 (včetně) do 1", - "MATH_RANDOM_FLOAT_TOOLTIP": "Vrátí náhodné číslo mezi 0,0 (včetně) až 1,0", - "TEXT_TEXT_HELPURL": "https://cs.wikipedia.org/wiki/Textov%C3%BD_%C5%99et%C4%9Bzec", - "TEXT_TEXT_TOOLTIP": "Písmeno, slovo nebo řádek textu.", - "TEXT_JOIN_TITLE_CREATEWITH": "vytvořit text s", - "TEXT_JOIN_TOOLTIP": "Vytvoří kousek textu spojením libovolného počtu položek.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "spojit", - "TEXT_CREATE_JOIN_TOOLTIP": "Přidat, odebrat nebo změnit pořadí oddílů tohoto textového bloku.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Přidat položku do textu.", - "TEXT_APPEND_TITLE": "do %1 přidat text %2", - "TEXT_APPEND_TOOLTIP": "Přidá určitý text k proměnné '%1'.", - "TEXT_LENGTH_TITLE": "délka %1", - "TEXT_LENGTH_TOOLTIP": "Vrátí počet písmen (včetně mezer) v zadaném textu.", - "TEXT_ISEMPTY_TITLE": "%1 je prázdný", - "TEXT_ISEMPTY_TOOLTIP": "Vrátí pravda pokud je zadaný text prázdný.", - "TEXT_INDEXOF_TOOLTIP": "Vrátí index prvního/posledního výskytu prvního textu v druhém textu. Pokud text není nalezen, vypíše %1.", - "TEXT_INDEXOF_TITLE": "v textu %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "najít první výskyt textu", - "TEXT_INDEXOF_OPERATOR_LAST": "najít poslední výskyt textu", - "TEXT_CHARAT_FROM_START": "získat písmeno #", - "TEXT_CHARAT_FROM_END": "získat # písmeno od konce", - "TEXT_CHARAT_FIRST": "získat první písmeno", - "TEXT_CHARAT_LAST": "získat poslední písmeno", - "TEXT_CHARAT_RANDOM": "získat náhodné písmeno", - "TEXT_CHARAT_TOOLTIP": "Získat písmeno na konkrétní pozici.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Získat zadanou část textu.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "v textu", - "TEXT_GET_SUBSTRING_START_FROM_START": "získat podřetězec od písmene #", - "TEXT_GET_SUBSTRING_START_FROM_END": "získat podřetězec od písmene # od konce", - "TEXT_GET_SUBSTRING_START_FIRST": "získat podřetězec od prvního písmene", - "TEXT_GET_SUBSTRING_END_FROM_START": "do písmene #", - "TEXT_GET_SUBSTRING_END_FROM_END": "do # písmene od konce", - "TEXT_GET_SUBSTRING_END_LAST": "do posledního písmene", - "TEXT_CHANGECASE_TOOLTIP": "Vrátí kopii textu s jinou velikostí písmen.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "na VELKÁ PÍSMENA", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "na malá písmena", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "na Počáteční Velká Písmena", - "TEXT_TRIM_TOOLTIP": "Vrátí kopii textu s odstraněnými mezerami z jednoho nebo obou konců.", - "TEXT_TRIM_OPERATOR_BOTH": "odstranit mezery z obou stran", - "TEXT_TRIM_OPERATOR_LEFT": "odstranit mezery z levé strany", - "TEXT_TRIM_OPERATOR_RIGHT": "odstranit mezery z pravé strany", - "TEXT_PRINT_TITLE": "tisk %1", - "TEXT_PRINT_TOOLTIP": "Tisk zadaného textu, čísla nebo jiné hodnoty.", - "TEXT_PROMPT_TYPE_TEXT": "výzva k zadání textu se zprávou", - "TEXT_PROMPT_TYPE_NUMBER": "výzva k zadání čísla se zprávou", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Výzva pro uživatele k zadání čísla.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Výzva pro uživatele k zadání nějakého textu.", - "LISTS_CREATE_EMPTY_TITLE": "vytvořit prázdný seznam", - "LISTS_CREATE_EMPTY_TOOLTIP": "Vrátí seznam nulové délky, který neobsahuje žádné datové záznamy", - "LISTS_CREATE_WITH_TOOLTIP": "Vytvoř seznam s libovolným počtem položek.", - "LISTS_CREATE_WITH_INPUT_WITH": "vytvořit seznam s", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "seznam", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Přidat, odebrat nebo změnit pořadí oddílů tohoto seznamu bloku.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Přidat položku do seznamu.", - "LISTS_REPEAT_TOOLTIP": "Vytváří seznam obsahující danou hodnotu n-krát.", - "LISTS_REPEAT_TITLE": "vytvoř seznam s položkou %1 opakovanou %2 krát", - "LISTS_LENGTH_TITLE": "délka %1", - "LISTS_LENGTH_TOOLTIP": "Vrací počet položek v seznamu.", - "LISTS_ISEMPTY_TITLE": "%1 je prázdné", - "LISTS_ISEMPTY_TOOLTIP": "Vrátí hodnotu pravda, pokud je seznam prázdný.", - "LISTS_INLIST": "v seznamu", - "LISTS_INDEX_OF_FIRST": "najít první výskyt položky", - "LISTS_INDEX_OF_LAST": "najít poslední výskyt položky", - "LISTS_INDEX_OF_TOOLTIP": "Vrací index prvního/posledního výskytu položky v seznamu. Vrací %1, pokud položka nebyla nalezena.", - "LISTS_GET_INDEX_GET": "získat", - "LISTS_GET_INDEX_GET_REMOVE": "získat a odstranit", - "LISTS_GET_INDEX_REMOVE": "odstranit", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# od konce", - "LISTS_GET_INDEX_FIRST": "první", - "LISTS_GET_INDEX_LAST": "poslední", - "LISTS_GET_INDEX_RANDOM": "náhodné", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 je první položka.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 je poslední položka.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Získá položku z určené pozice v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Vrátí první položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Vrátí poslední položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Vrátí náhodnou položku ze seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Odstraní a získá položku z určené pozice v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Odstraní a vrátí první položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Odstraní a vrátí poslední položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Odstraní a vrátí náhodnou položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Odebere položku na konkrétním místě v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Odstraní první položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Odstraní poslední položku v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Odstraní náhodou položku v seznamu.", - "LISTS_SET_INDEX_SET": "nastavit", - "LISTS_SET_INDEX_INSERT": "vložit na", - "LISTS_SET_INDEX_INPUT_TO": "jako", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Nastaví položku na konkrétní místo v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Nastaví první položku v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Nastaví poslední položku v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Nastaví náhodnou položku v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Vloží položku na určenou pozici v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Vložit položku na začátek seznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Připojí položku na konec seznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Připojí položku náhodně do seznamu.", - "LISTS_GET_SUBLIST_START_FROM_START": "získat podseznam od #", - "LISTS_GET_SUBLIST_START_FROM_END": "získat podseznam od # od konce", - "LISTS_GET_SUBLIST_START_FIRST": "získat podseznam od první položky", - "LISTS_GET_SUBLIST_END_FROM_START": "do #", - "LISTS_GET_SUBLIST_END_FROM_END": "do # od konce", - "LISTS_GET_SUBLIST_END_LAST": "jako poslední", - "LISTS_GET_SUBLIST_TOOLTIP": "Vytvoří kopii určené části seznamu.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "seřadit %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Seřadit kopii seznamu.", - "LISTS_SORT_ORDER_ASCENDING": "vzestupně", - "LISTS_SORT_ORDER_DESCENDING": "sestupně", - "LISTS_SORT_TYPE_NUMERIC": "číselné", - "LISTS_SORT_TYPE_TEXT": "abecedně", - "LISTS_SORT_TYPE_IGNORECASE": "abecedně, na velikosti písmen nezáleží", - "LISTS_SPLIT_LIST_FROM_TEXT": "udělat z textu seznam", - "LISTS_SPLIT_TEXT_FROM_LIST": "udělat ze seznamu text", - "LISTS_SPLIT_WITH_DELIMITER": "s oddělovačem", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Rozdělit text do seznamu textů, lámání na oddělovačích.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Spojit seznam textů do jednoho textu, rozdělaného oddělovači.", - "VARIABLES_GET_TOOLTIP": "Vrátí hodnotu této proměnné.", - "VARIABLES_GET_CREATE_SET": "Vytvořit \"nastavit %1\"", - "VARIABLES_SET": "nastavit %1 na %2", - "VARIABLES_SET_TOOLTIP": "Nastaví tuto proměnnou, aby se rovnala vstupu.", - "VARIABLES_SET_CREATE_GET": "Vytvořit \"získat %1\"", - "PROCEDURES_DEFNORETURN_HELPURL": "https://cs.wikipedia.org/w/index.php?title=Funkce_(programování)", - "PROCEDURES_DEFNORETURN_TITLE": "k provedení", - "PROCEDURES_DEFNORETURN_PROCEDURE": "proveď něco", - "PROCEDURES_BEFORE_PARAMS": "s:", - "PROCEDURES_CALL_BEFORE_PARAMS": "s:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Vytvořit funkci bez výstupu.", - "PROCEDURES_DEFNORETURN_COMMENT": "Popište tuto funkci...", - "PROCEDURES_DEFRETURN_HELPURL": "https://cs.wikipedia.org/w/index.php?title=Funkce_(programování)", - "PROCEDURES_DEFRETURN_RETURN": "navrátit", - "PROCEDURES_DEFRETURN_TOOLTIP": "Vytvořit funkci s výstupem.", - "PROCEDURES_ALLOW_STATEMENTS": "povolit příkazy", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Upozornění: Tato funkce má duplicitní parametry.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://cs.wikipedia.org/wiki/Podprogram", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Spustí uživatelem definovanou funkci '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://cs.wikipedia.org/wiki/Podprogram", - "PROCEDURES_CALLRETURN_TOOLTIP": "Spustí uživatelem definovanou funkci '%1' a použije její výstup.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "vstupy", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Přidat, odebrat nebo změnit pořadí vstupů této funkce.", - "PROCEDURES_MUTATORARG_TITLE": "vstupní jméno:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Přidat vstupy do funkce.", - "PROCEDURES_HIGHLIGHT_DEF": "Zvýraznit definici funkce", - "PROCEDURES_CREATE_DO": "Vytvořit '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Je-li hodnota pravda, pak vrátí druhou hodnotu.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Varování: Tento blok může být použit pouze uvnitř definici funkce." -} diff --git a/lib/blockly/msg/json/da.json b/lib/blockly/msg/json/da.json deleted file mode 100644 index 2de937d..0000000 --- a/lib/blockly/msg/json/da.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Christian List", - "RickiRunge", - "MGA73", - "Mads Haupt", - "Tjernobyl", - "Joedalton", - "Saederup92", - "JonNPoulsen" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "UNNAMED_KEY": "unavngivet", - "TODAY": "I dag", - "DUPLICATE_BLOCK": "Duplikér", - "ADD_COMMENT": "Tilføj Kommentar", - "REMOVE_COMMENT": "Fjern Kommentar", - "DUPLICATE_COMMENT": "Duplikér Kommentar", - "EXTERNAL_INPUTS": "Udvendige inputs", - "INLINE_INPUTS": "Indlejrede inputs", - "DELETE_BLOCK": "Slet blok", - "DELETE_X_BLOCKS": "Slet %1 blokke", - "DELETE_ALL_BLOCKS": "Slet alle %1 blokke?", - "CLEAN_UP": "Ryd op i blokke", - "COLLAPSE_BLOCK": "Fold blokken sammen", - "COLLAPSE_ALL": "Fold blokkene sammen", - "EXPAND_BLOCK": "Fold blokken ud", - "EXPAND_ALL": "Fold blokkene ud", - "DISABLE_BLOCK": "Deaktivér blok", - "ENABLE_BLOCK": "Aktivér blok", - "HELP": "Hjælp", - "UNDO": "Fortryd", - "REDO": "Omgør", - "CHANGE_VALUE_TITLE": "Skift værdi:", - "RENAME_VARIABLE": "Omdøb variabel...", - "RENAME_VARIABLE_TITLE": "Omdøb alle '%1' variabler til:", - "NEW_VARIABLE": "Opret variabel ...", - "NEW_STRING_VARIABLE": "Opret strengvariabel ...", - "NEW_NUMBER_VARIABLE": "Opret nummervariabel ...", - "NEW_COLOUR_VARIABLE": "Opret farvevariabel ...", - "NEW_VARIABLE_TYPE_TITLE": "Ny variabeltype:", - "NEW_VARIABLE_TITLE": "Navn til den nye variabel:", - "VARIABLE_ALREADY_EXISTS": "En variabel med navnet »%1« findes allerede.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "En variabel med navnet »%1« findes allerede for en anden type: »%2«.", - "DELETE_VARIABLE_CONFIRMATION": "Slet %1's brug af variablen »%2«?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Kan ikke slette variablen »%1« da den er en del af definitionen af funktionen »%2«", - "DELETE_VARIABLE": "Slet variablen »%1«", - "COLOUR_PICKER_HELPURL": "https://da.wikipedia.org/wiki/Farve", - "COLOUR_PICKER_TOOLTIP": "Vælg en farve fra paletten.", - "COLOUR_RANDOM_TITLE": "tilfældig farve", - "COLOUR_RANDOM_TOOLTIP": "Vælg en tilfældig farve.", - "COLOUR_RGB_TITLE": "farve med", - "COLOUR_RGB_RED": "rød", - "COLOUR_RGB_GREEN": "grøn", - "COLOUR_RGB_BLUE": "blå", - "COLOUR_RGB_TOOLTIP": "Lav en farve med den angivne mængde af rød, grøn og blå. Alle værdier skal være mellem 0 og 100.", - "COLOUR_BLEND_TITLE": "bland", - "COLOUR_BLEND_COLOUR1": "farve 1", - "COLOUR_BLEND_COLOUR2": "farve 2", - "COLOUR_BLEND_RATIO": "i forholdet", - "COLOUR_BLEND_TOOLTIP": "Blander to farver sammen i et bestemt forhold (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://da.wikipedia.org/wiki/For-l%C3%B8kke", - "CONTROLS_REPEAT_TITLE": "gentag %1 gange", - "CONTROLS_REPEAT_INPUT_DO": "udfør", - "CONTROLS_REPEAT_TOOLTIP": "Udfør nogle kommandoer flere gange.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "gentag sålænge", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "gentag indtil", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Udfør nogle kommandoer, sålænge en værdi er sand.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Udfør nogle kommandoer, sålænge en værdi er falsk.", - "CONTROLS_FOR_TOOLTIP": "Få variablen \"%1\" til at have værdierne fra startværdien til slutværdien, mens der tælles med det angivne interval, og udfør de angivne blokke.", - "CONTROLS_FOR_TITLE": "tæl med %1 fra %2 til %3 med %4", - "CONTROLS_FOREACH_TITLE": "for hvert element %1 i listen %2", - "CONTROLS_FOREACH_TOOLTIP": "For hvert element i en liste, sæt variablen '%1' til elementet, og udfør derefter nogle kommandoer.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "bryd ud af løkken", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "fortsæt med den næste gentagelse i løkken", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Bryd ud af den omgivende løkke.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Spring resten af denne løkke over, og fortsæt med den næste gentagelse.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Advarsel: Denne blok kan kun bruges i en løkke.", - "CONTROLS_IF_TOOLTIP_1": "Hvis en værdi er sand, så udfør nogle kommandoer.", - "CONTROLS_IF_TOOLTIP_2": "Hvis en værdi er sand, så udfør den første blok af kommandoer. Ellers udfør den anden blok af kommandoer.", - "CONTROLS_IF_TOOLTIP_3": "Hvis den første værdi er sand, så udfør den første blok af kommandoer. Ellers, hvis den anden værdi er sand, så udfør den anden blok af kommandoer.", - "CONTROLS_IF_TOOLTIP_4": "Hvis den første værdi er sand, så udfør den første blok af kommandoer. Ellers, hvis den anden værdi er sand, så udfør den anden blok af kommandoer. Hvis ingen af værdierne er sande, så udfør den sidste blok af kommandoer.", - "CONTROLS_IF_MSG_IF": "hvis", - "CONTROLS_IF_MSG_ELSEIF": "ellers hvis", - "CONTROLS_IF_MSG_ELSE": "ellers", - "CONTROLS_IF_IF_TOOLTIP": "Tilføj, fjern eller byt om på rækkefølgen af delene for at konfigurere denne \"hvis\" blok.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Tilføj en betingelse til denne \"hvis\" blok.", - "CONTROLS_IF_ELSE_TOOLTIP": "Tilføj en sidste fang-alt betingelse, til denne \"hvis\" blok.", - "IOS_OK": "O.k.", - "IOS_CANCEL": "Annuller", - "IOS_ERROR": "Fejl", - "IOS_PROCEDURES_INPUTS": "INDDATA", - "IOS_PROCEDURES_ADD_INPUT": "+ Tilføj inddata", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Tillad udsagn", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Denne funktion har duplikerede inddata.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Tilføj variabel", - "IOS_VARIABLES_ADD_BUTTON": "Tilføj", - "IOS_VARIABLES_RENAME_BUTTON": "Omdøb", - "IOS_VARIABLES_DELETE_BUTTON": "Slet", - "IOS_VARIABLES_VARIABLE_NAME": "Variabelnavn", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Du kan ikke bruge et tomt variabelnavn.", - "LOGIC_COMPARE_HELPURL": "https://da.wikipedia.org/wiki/Ulighed_(matematik)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Returnere sand, hvis begge inputs er lig med hinanden.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Returnere sand, hvis begge inputs ikke er lig med hinanden.", - "LOGIC_COMPARE_TOOLTIP_LT": "Returnere sand, hvis det første input er mindre end det andet input.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Returnere sand, hvis det første input er mindre end eller lig med det andet input.", - "LOGIC_COMPARE_TOOLTIP_GT": "Returnere sand, hvis det første input er større end det andet input.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Returnere sand, hvis det første input er større end eller lig med det andet input.", - "LOGIC_OPERATION_TOOLTIP_AND": "Returnere sand, hvis begge inputs er sande.", - "LOGIC_OPERATION_AND": "og", - "LOGIC_OPERATION_TOOLTIP_OR": "Returnere sand, hvis mindst et af inputtene er sande.", - "LOGIC_OPERATION_OR": "eller", - "LOGIC_NEGATE_TITLE": "ikke %1", - "LOGIC_NEGATE_TOOLTIP": "Returnerer sand, hvis input er falsk. Returnerer falsk, hvis input er sandt.", - "LOGIC_BOOLEAN_TRUE": "sand", - "LOGIC_BOOLEAN_FALSE": "falsk", - "LOGIC_BOOLEAN_TOOLTIP": "Returnerer enten sand eller falsk.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Returnerer null.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "hvis sand", - "LOGIC_TERNARY_IF_FALSE": "hvis falsk", - "LOGIC_TERNARY_TOOLTIP": "Kontrollér betingelsen i 'test'. Hvis betingelsen er sand, returnér \"hvis sand\" værdien; ellers returnér \"hvis falsk\" værdien.", - "MATH_NUMBER_HELPURL": "https://da.wikipedia.org/wiki/Tal", - "MATH_NUMBER_TOOLTIP": "Et tal.", - "MATH_DIVISION_SYMBOL": ":", - "MATH_ARITHMETIC_HELPURL": "https://da.wikipedia.org/wiki/Aritmetik", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Returnere summen af de to tal.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Returnere forskellen mellem de to tal.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Returnere produktet af de to tal.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Returnere kvotienten af de to tal.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Returnere det første tal opløftet til potensen af det andet tal.", - "MATH_SINGLE_HELPURL": "https://da.wikipedia.org/wiki/Kvadratrod", - "MATH_SINGLE_OP_ROOT": "kvadratrod", - "MATH_SINGLE_TOOLTIP_ROOT": "Returnere kvadratroden af et tal.", - "MATH_SINGLE_OP_ABSOLUTE": "absolut", - "MATH_SINGLE_TOOLTIP_ABS": "Returnere den absolutte værdi af et tal.", - "MATH_SINGLE_TOOLTIP_NEG": "Returnere negationen af et tal.", - "MATH_SINGLE_TOOLTIP_LN": "Returnere den naturlige logaritme af et tal.", - "MATH_SINGLE_TOOLTIP_LOG10": "Returnere 10-talslogaritmen af et tal.", - "MATH_SINGLE_TOOLTIP_EXP": "Returnere e til potensen af et tal.", - "MATH_SINGLE_TOOLTIP_POW10": "Returnere 10 til potensen af et tal.", - "MATH_TRIG_HELPURL": "https://da.wikipedia.org/wiki/Trigonometrisk_funktion", - "MATH_TRIG_TOOLTIP_SIN": "Returnere sinus af en vinkel (i grader).", - "MATH_TRIG_TOOLTIP_COS": "Returnere cosinus af en vinkel (i grader).", - "MATH_TRIG_TOOLTIP_TAN": "Returnere tangens af en vinkel (i grader).", - "MATH_TRIG_TOOLTIP_ASIN": "Returnere arcus sinus af et tal.", - "MATH_TRIG_TOOLTIP_ACOS": "Returnere arcus cosinus af et tal.", - "MATH_TRIG_TOOLTIP_ATAN": "Returnere arcus tangens af et tal.", - "MATH_CONSTANT_HELPURL": "https://da.wikipedia.org/wiki/Matematisk_konstant", - "MATH_CONSTANT_TOOLTIP": "Returnere en af de ofte brugte konstanter: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(2) (1.414…), sqrt(½) (0.707…) eller ∞ (uendeligt).", - "MATH_IS_EVEN": "er lige", - "MATH_IS_ODD": "er ulige", - "MATH_IS_PRIME": "er et primtal", - "MATH_IS_WHOLE": "er helt", - "MATH_IS_POSITIVE": "er positivt", - "MATH_IS_NEGATIVE": "er negativt", - "MATH_IS_DIVISIBLE_BY": "er deleligt med", - "MATH_IS_TOOLTIP": "Kontrollere, om et tal er lige, ulige, primtal, helt, positivt, negativt, eller om det er deleligt med bestemt tal. Returnere sandt eller falskt.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "skift %1 med %2", - "MATH_CHANGE_TOOLTIP": "Læg et tal til variablen '%1'.", - "MATH_ROUND_HELPURL": "https://da.wikipedia.org/wiki/Afrunding", - "MATH_ROUND_TOOLTIP": "Runde et tal op eller ned.", - "MATH_ROUND_OPERATOR_ROUND": "afrund", - "MATH_ROUND_OPERATOR_ROUNDUP": "rund op", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "rund ned", - "MATH_ONLIST_OPERATOR_SUM": "summen af listen", - "MATH_ONLIST_TOOLTIP_SUM": "Returner summen af alle tal i listen.", - "MATH_ONLIST_OPERATOR_MIN": "mindste tal i listen", - "MATH_ONLIST_TOOLTIP_MIN": "Returner det mindste tal i listen.", - "MATH_ONLIST_OPERATOR_MAX": "største tal i listen", - "MATH_ONLIST_TOOLTIP_MAX": "Returner det største tal i listen.", - "MATH_ONLIST_OPERATOR_AVERAGE": "gennemsnit af listen", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Returner gennemsnittet (middelværdien) af de numeriske værdier i listen.", - "MATH_ONLIST_OPERATOR_MEDIAN": "listens median", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Returner listens median.", - "MATH_ONLIST_OPERATOR_MODE": "listens typetal", - "MATH_ONLIST_TOOLTIP_MODE": "Returner en liste over de mest almindelige elementer på listen.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standardafvigelsen for listen", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Returner standardafvigelsen for listen.", - "MATH_ONLIST_OPERATOR_RANDOM": "tilfældigt element fra listen", - "MATH_ONLIST_TOOLTIP_RANDOM": "Returner et tilfældigt element fra listen.", - "MATH_MODULO_HELPURL": "https://da.wikipedia.org/wiki/Modulo", - "MATH_MODULO_TITLE": "resten af %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Returner resten fra at dividere de to tal.", - "MATH_CONSTRAIN_TITLE": "begræns %1 til mellem %2 og %3", - "MATH_CONSTRAIN_TOOLTIP": "Begræns et tal til at være mellem de angivne grænser (inklusiv).", - "MATH_RANDOM_INT_HELPURL": "https://da.wikipedia.org/wiki/Tilfældighedsgenerator", - "MATH_RANDOM_INT_TITLE": "tilfældigt heltal mellem %1 og %2", - "MATH_RANDOM_INT_TOOLTIP": "Returner et tilfældigt heltal mellem de to angivne grænser (inklusiv).", - "MATH_RANDOM_FLOAT_HELPURL": "https://da.wikipedia.org/wiki/Tilfældighedsgenerator", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "tilfældigt decimaltal (mellem 0 og 1)", - "MATH_RANDOM_FLOAT_TOOLTIP": "Returner et tilfældigt decimaltal mellem 0,0 (inklusiv) og 1,0 (eksklusiv).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 af X:%1 Y:%2", - "TEXT_TEXT_HELPURL": "https://da.wikipedia.org/wiki/Tekststreng", - "TEXT_TEXT_TOOLTIP": "En bogstav, et ord eller en linje med tekst.", - "TEXT_JOIN_TITLE_CREATEWITH": "lav en tekst med", - "TEXT_JOIN_TOOLTIP": "Lav et stykke tekst ved at sætte et antal elementer sammen.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "sammenføj", - "TEXT_CREATE_JOIN_TOOLTIP": "Tilføj, fjern eller byt om på rækkefølgen af delene for at konfigurere denne tekstblok.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Føj et element til teksten.", - "TEXT_APPEND_TITLE": "til %1 tilføj tekst %2", - "TEXT_APPEND_TOOLTIP": "Tilføj noget tekst til variablen '%1'.", - "TEXT_LENGTH_TITLE": "længden af %1", - "TEXT_LENGTH_TOOLTIP": "Returnerer antallet af bogstaver (herunder mellemrum) i den angivne tekst.", - "TEXT_ISEMPTY_TITLE": "%1 er tom", - "TEXT_ISEMPTY_TOOLTIP": "Returnerer sand, hvis den angivne tekst er tom.", - "TEXT_INDEXOF_TOOLTIP": "Returnerer indeks for første/sidste forekomst af første tekst i den anden tekst. Returnerer %1, hvis teksten ikke kan findes.", - "TEXT_INDEXOF_TITLE": "i tekst %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "find første forekomst af teksten", - "TEXT_INDEXOF_OPERATOR_LAST": "find sidste forekomst af teksten", - "TEXT_CHARAT_TITLE": "i tekst %1 %2", - "TEXT_CHARAT_FROM_START": "hent bogstav #", - "TEXT_CHARAT_FROM_END": "hent bogstav # fra slutningen", - "TEXT_CHARAT_FIRST": "hent første bogstav", - "TEXT_CHARAT_LAST": "hent sidste bogstav", - "TEXT_CHARAT_RANDOM": "hent tilfældigt bogstav", - "TEXT_CHARAT_TOOLTIP": "Returnerer bogstavet på den angivne placering.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Returnerer den angivne del af teksten.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "i teksten", - "TEXT_GET_SUBSTRING_START_FROM_START": "hent delstreng fra bogstav #", - "TEXT_GET_SUBSTRING_START_FROM_END": "hent delstreng fra bogstav # fra slutningen", - "TEXT_GET_SUBSTRING_START_FIRST": "hent delstreng fra første bogstav", - "TEXT_GET_SUBSTRING_END_FROM_START": "til bogstav #", - "TEXT_GET_SUBSTRING_END_FROM_END": "til bogstav # fra slutningen", - "TEXT_GET_SUBSTRING_END_LAST": "til sidste bogstav", - "TEXT_CHANGECASE_TOOLTIP": "Returner en kopi af teksten hvor bogstaverne enten er udelukkende store eller små, eller hvor første bogstav i hvert ord er stort.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "til STORE BOGSTAVER", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "til små bogstaver", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "til Stort Begyndelsesbogstav", - "TEXT_TRIM_TOOLTIP": "Returner en kopi af teksten med mellemrum fjernet fra den ene eller begge sider.", - "TEXT_TRIM_OPERATOR_BOTH": "fjern mellemrum fra begge sider af", - "TEXT_TRIM_OPERATOR_LEFT": "fjern mellemrum fra venstre side af", - "TEXT_TRIM_OPERATOR_RIGHT": "fjern mellemrum fra højre side af", - "TEXT_PRINT_TITLE": "skriv %1", - "TEXT_PRINT_TOOLTIP": "Skriv den angivne tekst, tal eller anden værdi.", - "TEXT_PROMPT_TYPE_TEXT": "spørg efter tekst med meddelelsen", - "TEXT_PROMPT_TYPE_NUMBER": "spørg efter et tal med meddelelsen", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Spørg brugeren efter et tal", - "TEXT_PROMPT_TOOLTIP_TEXT": "Spørg brugeren efter en tekst", - "TEXT_COUNT_MESSAGE0": "tæl %1 i %2", - "TEXT_COUNT_TOOLTIP": "Tæl hvor mange gange noget tekst fremgår i en anden tekst.", - "TEXT_REPLACE_MESSAGE0": "erstat %1 med %2 i %3", - "TEXT_REPLACE_TOOLTIP": "Erstat alle forekomster af noget tekst i en anden tekst.", - "TEXT_REVERSE_MESSAGE0": "vend %1 om", - "TEXT_REVERSE_TOOLTIP": "Vender rækkefølgen om for tegnene i teksten.", - "LISTS_CREATE_EMPTY_TITLE": "opret en tom liste", - "LISTS_CREATE_EMPTY_TOOLTIP": "Returnerer en liste af længde 0, som ikke indeholder nogen data", - "LISTS_CREATE_WITH_TOOLTIP": "Opret en liste med et vilkårligt antal elementer.", - "LISTS_CREATE_WITH_INPUT_WITH": "opret liste med", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "liste", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Tilføj, fjern eller byt om på rækkefølgen af delene for at konfigurere denne blok.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Føj et element til listen.", - "LISTS_REPEAT_TOOLTIP": "Opretter en liste bestående af den givne værdi gentaget et bestemt antal gange.", - "LISTS_REPEAT_TITLE": "opret liste med elementet %1 gentaget %2 gange", - "LISTS_LENGTH_TITLE": "længden af %1", - "LISTS_LENGTH_TOOLTIP": "Returnerer længden af en liste.", - "LISTS_ISEMPTY_TITLE": "%1 er tom", - "LISTS_ISEMPTY_TOOLTIP": "Returnerer sand, hvis listen er tom.", - "LISTS_INLIST": "i listen", - "LISTS_INDEX_OF_FIRST": "find første forekomst af elementet", - "LISTS_INDEX_OF_LAST": "find sidste forekomst af elementet", - "LISTS_INDEX_OF_TOOLTIP": "Returnerer indeks for første/sidste forekomst af elementet i listen. Returnerer %1, hvis elementet ikke kan findes.", - "LISTS_GET_INDEX_GET": "hent", - "LISTS_GET_INDEX_GET_REMOVE": "hent og fjern", - "LISTS_GET_INDEX_REMOVE": "fjern", - "LISTS_GET_INDEX_FROM_END": "# fra slutningen", - "LISTS_GET_INDEX_FIRST": "første", - "LISTS_GET_INDEX_LAST": "sidste", - "LISTS_GET_INDEX_RANDOM": "tilfældig", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 er det første element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 er det sidste element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Returnerer elementet på den angivne position på en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Returnerer det første element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Returnerer den sidste element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Returnerer et tilfældigt element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Fjerner og returnerer elementet på den angivne position på en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Fjerner og returnerer det første element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Fjerner og returnerer det sidste element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Fjerner og returnerer et tilfældigt element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Fjerner elementet på den angivne position på en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Fjerner det første element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Fjerner sidste element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Fjerner et tilfældigt element i en liste.", - "LISTS_SET_INDEX_SET": "sæt", - "LISTS_SET_INDEX_INSERT": "indsæt ved", - "LISTS_SET_INDEX_INPUT_TO": "som", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Sætter elementet på den angivne position i en liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Sætter det første element i en liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Sætter det sidste element i en liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Sætter et tilfældigt element i en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Indsætter elementet på den angivne position i en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Indsætter elementet i starten af en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Føj elementet til slutningen af en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Indsætter elementet tilfældigt i en liste.", - "LISTS_GET_SUBLIST_START_FROM_START": "hent underliste fra #", - "LISTS_GET_SUBLIST_START_FROM_END": "hent underliste fra # fra slutningen", - "LISTS_GET_SUBLIST_START_FIRST": "hent underliste fra første", - "LISTS_GET_SUBLIST_END_FROM_START": "til #", - "LISTS_GET_SUBLIST_END_FROM_END": "til # fra slutningen", - "LISTS_GET_SUBLIST_END_LAST": "til sidste", - "LISTS_GET_SUBLIST_TOOLTIP": "Opretter en kopi af den angivne del af en liste.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sorter %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sorter en kopi af en liste.", - "LISTS_SORT_ORDER_ASCENDING": "stigende", - "LISTS_SORT_ORDER_DESCENDING": "faldende", - "LISTS_SORT_TYPE_NUMERIC": "nummerorden", - "LISTS_SORT_TYPE_TEXT": "alfabetisk", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetisk, ignorer store/små bogstaver", - "LISTS_SPLIT_LIST_FROM_TEXT": "lav tekst til liste", - "LISTS_SPLIT_TEXT_FROM_LIST": "lav liste til tekst", - "LISTS_SPLIT_WITH_DELIMITER": "med skilletegn", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Bryd tekst op i en liste af tekster med brud ved hvert skilletegn.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Saml en liste af tekster til én tekst, der er adskilt af et skilletegn.", - "LISTS_REVERSE_MESSAGE0": "vend %1 om", - "LISTS_REVERSE_TOOLTIP": "Vend en kopi af en liste om.", - "VARIABLES_GET_TOOLTIP": "Returnerer værdien af denne variabel.", - "VARIABLES_GET_CREATE_SET": "Opret 'sæt %1'", - "VARIABLES_SET": "sæt %1 til %2", - "VARIABLES_SET_TOOLTIP": "Sætter denne variabel til at være lig med input.", - "VARIABLES_SET_CREATE_GET": "Opret 'hent %1'", - "PROCEDURES_DEFNORETURN_TITLE": "for at", - "PROCEDURES_DEFNORETURN_PROCEDURE": "gøre noget", - "PROCEDURES_BEFORE_PARAMS": "med:", - "PROCEDURES_CALL_BEFORE_PARAMS": "med:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Opretter en funktion der ikke har nogen returværdi.", - "PROCEDURES_DEFNORETURN_COMMENT": "Beskriv denne funktion...", - "PROCEDURES_DEFRETURN_RETURN": "returnér", - "PROCEDURES_DEFRETURN_TOOLTIP": "Opretter en funktion der har en returværdi.", - "PROCEDURES_ALLOW_STATEMENTS": "tillad erklæringer", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Advarsel: Denne funktion har dublerede parametre.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Kør den brugerdefinerede funktion '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Kør den brugerdefinerede funktion '%1' og brug dens returværdi.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "parametre", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Tilføje, fjerne eller ændre rækkefølgen af parametre til denne funktion.", - "PROCEDURES_MUTATORARG_TITLE": "parameternavn:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Tilføj en parameter til funktionen.", - "PROCEDURES_HIGHLIGHT_DEF": "Markér funktionsdefinitionen", - "PROCEDURES_CREATE_DO": "Opret '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Hvis en værdi er sand, så returnér en anden værdi.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Advarsel: Denne blok kan kun anvendes inden for en funktionsdefinition.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Sig noget ..." -} diff --git a/lib/blockly/msg/json/de.json b/lib/blockly/msg/json/de.json deleted file mode 100644 index 14e38db..0000000 --- a/lib/blockly/msg/json/de.json +++ /dev/null @@ -1,387 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Metalhead64", - "M165437", - "Dan-yell", - "아라", - "Octycs", - "Cvanca", - "THINK", - "Zgtm", - "Sushi" - ] - }, - "VARIABLES_DEFAULT_NAME": "Element", - "TODAY": "Heute", - "DUPLICATE_BLOCK": "Kopieren", - "ADD_COMMENT": "Kommentar hinzufügen", - "REMOVE_COMMENT": "Kommentar entfernen", - "DUPLICATE_COMMENT": "Kommentar kopieren", - "EXTERNAL_INPUTS": "externe Eingänge", - "INLINE_INPUTS": "interne Eingänge", - "DELETE_BLOCK": "Baustein löschen", - "DELETE_X_BLOCKS": "%1 Bausteine löschen", - "DELETE_ALL_BLOCKS": "Alle %1 Bausteine löschen?", - "CLEAN_UP": "Bausteine aufräumen", - "COLLAPSE_BLOCK": "Baustein zusammenfalten", - "COLLAPSE_ALL": "Alle Bausteine zusammenfalten", - "EXPAND_BLOCK": "Baustein entfalten", - "EXPAND_ALL": "Alle Bausteine entfalten", - "DISABLE_BLOCK": "Baustein deaktivieren", - "ENABLE_BLOCK": "Baustein aktivieren", - "HELP": "Hilfe", - "UNDO": "Rückgängig", - "REDO": "Wiederholen", - "CHANGE_VALUE_TITLE": "Wert ändern:", - "RENAME_VARIABLE": "Variable umbenennen …", - "RENAME_VARIABLE_TITLE": "Alle \"%1\" Variablen umbenennen in:", - "NEW_VARIABLE": "Variable erstellen …", - "NEW_STRING_VARIABLE": "Zeichenfolgenvariable erstellen …", - "NEW_NUMBER_VARIABLE": "Zahlenvariable erstellen …", - "NEW_COLOUR_VARIABLE": "Farbvariable erstellen …", - "NEW_VARIABLE_TYPE_TITLE": "Neuer Variablentyp:", - "NEW_VARIABLE_TITLE": "Name der neuen Variable:", - "VARIABLE_ALREADY_EXISTS": "Eine Variable namens „%1“ ist bereits vorhanden.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Eine Variable namens „%1“ ist bereits für einen anderen Typ vorhanden: „%2“.", - "DELETE_VARIABLE_CONFIRMATION": "%1 Verwendungen der Variable „%2“ löschen?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Die Variable „%1“ kann nicht gelöscht werden, da sie Teil der Definition der Funktion „%2“ ist.", - "DELETE_VARIABLE": "Die Variable „%1“ löschen", - "COLOUR_PICKER_HELPURL": "https://de.wikipedia.org/wiki/Farbe", - "COLOUR_PICKER_TOOLTIP": "Wählt eine Farbe aus der Palette aus.", - "COLOUR_RANDOM_TITLE": "zufällige Farbe", - "COLOUR_RANDOM_TOOLTIP": "Erzeugt eine Farbe nach dem Zufallsprinzip.", - "COLOUR_RGB_HELPURL": "https://www.december.com/html/spec/colorpercompact.html", - "COLOUR_RGB_TITLE": "Farbe aus", - "COLOUR_RGB_RED": "rot", - "COLOUR_RGB_GREEN": "grün", - "COLOUR_RGB_BLUE": "blau", - "COLOUR_RGB_TOOLTIP": "Erzeugt eine Farbe mit selbst definierten Rot-, Grün- und Blauwerten. Alle Werte müssen zwischen 0 und 100 liegen.", - "COLOUR_BLEND_HELPURL": "https://meyerweb.com/eric/tools/color-blend/#:::rgbp", - "COLOUR_BLEND_TITLE": "mische", - "COLOUR_BLEND_COLOUR1": "Farbe 1", - "COLOUR_BLEND_COLOUR2": "und Farbe 2", - "COLOUR_BLEND_RATIO": "im Verhältnis", - "COLOUR_BLEND_TOOLTIP": "Vermischt 2 Farben mit konfigurierbarem Farbverhältnis (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://de.wikipedia.org/wiki/For-Schleife", - "CONTROLS_REPEAT_TITLE": "wiederhole %1 mal:", - "CONTROLS_REPEAT_INPUT_DO": "mache", - "CONTROLS_REPEAT_TOOLTIP": "Eine Anweisung mehrfach ausführen.", - "CONTROLS_WHILEUNTIL_HELPURL": "https://de.wikipedia.org/wiki/Schleife_%28Programmierung%29", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "wiederhole solange", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "wiederhole bis", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Führt Anweisungen aus solange die Bedingung wahr ist.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Führt Anweisungen aus solange die Bedingung unwahr ist.", - "CONTROLS_FOR_HELPURL": "https://de.wikipedia.org/wiki/For-Schleife", - "CONTROLS_FOR_TOOLTIP": "Zählt die Variable \"%1\" von einem Startwert bis zu einem Endwert und führt für jeden Wert eine Anweisung aus.", - "CONTROLS_FOR_TITLE": "zähle %1 von %2 bis %3 in Schritten von %4", - "CONTROLS_FOREACH_HELPURL": "https://de.wikipedia.org/wiki/For-Schleife", - "CONTROLS_FOREACH_TITLE": "für jeden Wert %1 aus der Liste %2", - "CONTROLS_FOREACH_TOOLTIP": "Führt eine Anweisung für jeden Wert in der Liste aus und setzt dabei die Variable \"%1\" auf den aktuellen Listenwert.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "https://de.wikipedia.org/wiki/Kontrollstruktur", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "die Schleife abbrechen", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "sofort mit nächstem Schleifendurchlauf fortfahren", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Die umgebende Schleife beenden.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Diese Anweisung abbrechen und mit dem nächsten Schleifendurchlauf fortfahren.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Warnung: Dieser Baustein kann nur in einer Schleife verwendet werden.", - "CONTROLS_IF_TOOLTIP_1": "Führt eine Anweisung aus, falls eine Bedingung wahr ist.", - "CONTROLS_IF_TOOLTIP_2": "Führt die erste Anweisung aus, falls eine Bedingung wahr ist. Führt ansonsten die zweite Anweisung aus.", - "CONTROLS_IF_TOOLTIP_3": "Führt die erste Anweisung aus, falls die erste Bedingung wahr ist. Führt ansonsten die zweite Anweisung aus, falls die zweite Bedingung wahr ist.", - "CONTROLS_IF_TOOLTIP_4": "Führe die erste Anweisung aus, falls die erste Bedingung wahr ist. Führt ansonsten die zweite Anweisung aus, falls die zweite Bedingung wahr ist. Führt die dritte Anweisung aus, falls keine der beiden Bedingungen wahr ist", - "CONTROLS_IF_MSG_IF": "falls", - "CONTROLS_IF_MSG_ELSEIF": "sonst falls", - "CONTROLS_IF_MSG_ELSE": "sonst", - "CONTROLS_IF_IF_TOOLTIP": "Hinzufügen, entfernen oder sortieren von Sektionen", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Eine weitere Bedingung hinzufügen.", - "CONTROLS_IF_ELSE_TOOLTIP": "Eine sonst-Bedingung hinzufügen. Führt eine Anweisung aus, falls keine Bedingung zutrifft.", - "IOS_OK": "OK", - "IOS_CANCEL": "Abbrechen", - "IOS_ERROR": "Fehler", - "IOS_PROCEDURES_INPUTS": "PARAMETER", - "IOS_PROCEDURES_ADD_INPUT": "+ Parameter hinzufügen", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Anweisungen erlauben", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Diese Funktion hat doppelte Parameter.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Variable hinzufügen", - "IOS_VARIABLES_ADD_BUTTON": "Hinzufügen", - "IOS_VARIABLES_RENAME_BUTTON": "Umbenennen", - "IOS_VARIABLES_DELETE_BUTTON": "Löschen", - "IOS_VARIABLES_VARIABLE_NAME": "Name der Variable", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Du kannst keinen leeren Variablennamen verwenden.", - "LOGIC_COMPARE_HELPURL": "https://de.wikipedia.org/wiki/Vergleich_%28Zahlen%29", - "LOGIC_COMPARE_TOOLTIP_EQ": "Ist wahr, falls beide Werte gleich sind.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Ist wahr, falls beide Werte unterschiedlich sind.", - "LOGIC_COMPARE_TOOLTIP_LT": "Ist wahr, falls der erste Wert kleiner als der zweite Wert ist.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Ist wahr, falls der erste Wert kleiner als oder gleich groß wie der zweite Wert ist.", - "LOGIC_COMPARE_TOOLTIP_GT": "Ist wahr, falls der erste Wert größer als der zweite Wert ist.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Ist wahr, falls der erste Wert größer als oder gleich groß wie der zweite Wert ist.", - "LOGIC_OPERATION_TOOLTIP_AND": "Ist wahr, falls beide Werte wahr sind.", - "LOGIC_OPERATION_AND": "und", - "LOGIC_OPERATION_TOOLTIP_OR": "Ist wahr, falls einer der beiden Werte wahr ist.", - "LOGIC_OPERATION_OR": "oder", - "LOGIC_NEGATE_TITLE": "nicht %1", - "LOGIC_NEGATE_TOOLTIP": "Ist wahr, falls der Eingabewert unwahr ist. Ist unwahr, falls der Eingabewert wahr ist.", - "LOGIC_BOOLEAN_TRUE": "wahr", - "LOGIC_BOOLEAN_FALSE": "falsch", - "LOGIC_BOOLEAN_TOOLTIP": "Ist entweder wahr oder falsch", - "LOGIC_NULL_HELPURL": "https://de.wikipedia.org/wiki/Nullwert", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Ist \"null\".", - "LOGIC_TERNARY_HELPURL": "https://de.wikipedia.org/wiki/%3F:#Auswahloperator", - "LOGIC_TERNARY_CONDITION": "prüfe", - "LOGIC_TERNARY_IF_TRUE": "falls wahr", - "LOGIC_TERNARY_IF_FALSE": "falls falsch", - "LOGIC_TERNARY_TOOLTIP": "Überprüft eine Bedingung \"prüfe\". Falls die Bedingung wahr ist, wird der \"falls wahr\" Wert zurückgegeben, andernfalls der \"falls unwahr\" Wert", - "MATH_NUMBER_HELPURL": "https://de.wikipedia.org/wiki/Zahl", - "MATH_NUMBER_TOOLTIP": "Eine Zahl.", - "MATH_ARITHMETIC_HELPURL": "https://de.wikipedia.org/wiki/Grundrechenart", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Ist die Summe zweier Zahlen.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Ist die Differenz zweier Zahlen.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Ist das Produkt zweier Zahlen.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Ist der Quotient zweier Zahlen.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Ist die erste Zahl potenziert mit der zweiten Zahl.", - "MATH_SINGLE_HELPURL": "https://de.wikipedia.org/wiki/Quadratwurzel", - "MATH_SINGLE_OP_ROOT": "Quadratwurzel", - "MATH_SINGLE_TOOLTIP_ROOT": "Ist die Quadratwurzel einer Zahl.", - "MATH_SINGLE_OP_ABSOLUTE": "Betrag", - "MATH_SINGLE_TOOLTIP_ABS": "Ist der Betrag einer Zahl.", - "MATH_SINGLE_TOOLTIP_NEG": "Negiert eine Zahl.", - "MATH_SINGLE_TOOLTIP_LN": "Ist der natürliche Logarithmus einer Zahl.", - "MATH_SINGLE_TOOLTIP_LOG10": "Ist der dekadische Logarithmus einer Zahl.", - "MATH_SINGLE_TOOLTIP_EXP": "Ist Wert der Exponentialfunktion einer Zahl.", - "MATH_SINGLE_TOOLTIP_POW10": "Rechnet 10 hoch eine Zahl.", - "MATH_TRIG_HELPURL": "https://de.wikipedia.org/wiki/Trigonometrie", - "MATH_TRIG_TOOLTIP_SIN": "Ist der Sinus des Winkels (nicht Radiant).", - "MATH_TRIG_TOOLTIP_COS": "Ist der Kosinus des Winkels.", - "MATH_TRIG_TOOLTIP_TAN": "Ist der Tangens des Winkels (nicht Radiant).", - "MATH_TRIG_TOOLTIP_ASIN": "Ist der Arkussinus des Eingabewertes.", - "MATH_TRIG_TOOLTIP_ACOS": "Ist der Arkuskosinus des Eingabewertes.", - "MATH_TRIG_TOOLTIP_ATAN": "Ist der Arkustangens des Eingabewertes.", - "MATH_CONSTANT_HELPURL": "https://de.wikipedia.org/wiki/Mathematische_Konstante", - "MATH_CONSTANT_TOOLTIP": "Mathematische Konstanten wie: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) oder ∞ (unendlich).", - "MATH_IS_EVEN": "ist gerade", - "MATH_IS_ODD": "ist ungerade", - "MATH_IS_PRIME": "ist eine Primzahl", - "MATH_IS_WHOLE": "ist eine ganze Zahl", - "MATH_IS_POSITIVE": "ist positiv", - "MATH_IS_NEGATIVE": "ist negativ", - "MATH_IS_DIVISIBLE_BY": "ist teilbar durch", - "MATH_IS_TOOLTIP": "Überprüft ob eine Zahl gerade, ungerade, eine Primzahl, ganzzahlig, positiv, negativ oder durch eine zweite Zahl teilbar ist. Gibt wahr oder falsch zurück.", - "MATH_CHANGE_HELPURL": "https://de.wikipedia.org/wiki/Inkrement_und_Dekrement", - "MATH_CHANGE_TITLE": "erhöhe %1 um %2", - "MATH_CHANGE_TOOLTIP": "Addiert eine Zahl zu \"%1\".", - "MATH_ROUND_HELPURL": "https://de.wikipedia.org/wiki/Runden", - "MATH_ROUND_TOOLTIP": "Eine Zahl auf- oder abrunden.", - "MATH_ROUND_OPERATOR_ROUND": "runde", - "MATH_ROUND_OPERATOR_ROUNDUP": "runde auf", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "runde ab", - "MATH_ONLIST_HELPURL": "http://www.sysplus.ch/einstieg.php?links=menu&seite=4125&grad=Crash&prog=Excel", - "MATH_ONLIST_OPERATOR_SUM": "Summe über die Liste", - "MATH_ONLIST_TOOLTIP_SUM": "Ist die Summe aller Zahlen in einer Liste.", - "MATH_ONLIST_OPERATOR_MIN": "Minimalwert der Liste", - "MATH_ONLIST_TOOLTIP_MIN": "Ist die kleinste Zahl in einer Liste.", - "MATH_ONLIST_OPERATOR_MAX": "Maximalwert der Liste", - "MATH_ONLIST_TOOLTIP_MAX": "Ist die größte Zahl in einer Liste.", - "MATH_ONLIST_OPERATOR_AVERAGE": "Mittelwert der Liste", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Ist der Durchschnittswert aller Zahlen in einer Liste.", - "MATH_ONLIST_OPERATOR_MEDIAN": "Median der Liste", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Ist der Median aller Zahlen in einer Liste.", - "MATH_ONLIST_OPERATOR_MODE": "am häufigsten in der Liste", - "MATH_ONLIST_TOOLTIP_MODE": "Findet die Werte mit dem häufigstem Vorkommen in der Liste.", - "MATH_ONLIST_OPERATOR_STD_DEV": "Standardabweichung der Liste", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Ist die Standardabweichung aller Werte in der Liste.", - "MATH_ONLIST_OPERATOR_RANDOM": "Zufallswert aus der Liste", - "MATH_ONLIST_TOOLTIP_RANDOM": "Gibt einen zufälligen Wert aus der Liste zurück.", - "MATH_MODULO_HELPURL": "https://de.wikipedia.org/wiki/Modulo", - "MATH_MODULO_TITLE": "Rest von %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Der Rest nach einer Division.", - "MATH_CONSTRAIN_TITLE": "begrenze %1 zwischen %2 und %3", - "MATH_CONSTRAIN_TOOLTIP": "Begrenzt eine Zahl auf den Wertebereich zwischen zwei anderen Zahlen (inklusiv).", - "MATH_RANDOM_INT_HELPURL": "https://de.wikipedia.org/wiki/Zufallszahlen", - "MATH_RANDOM_INT_TITLE": "ganzzahlige Zufallszahl zwischen %1 und %2", - "MATH_RANDOM_INT_TOOLTIP": "Erzeugt eine ganzzahlige Zufallszahl zwischen zwei Zahlen (inklusiv).", - "MATH_RANDOM_FLOAT_HELPURL": "https://de.wikipedia.org/wiki/Zufallszahlen", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Zufallszahl (0.0 - 1.0)", - "MATH_RANDOM_FLOAT_TOOLTIP": "Erzeugt eine Zufallszahl zwischen 0.0 (inklusiv) und 1.0 (exklusiv).", - "MATH_ATAN2_HELPURL": "https://de.wikipedia.org/wiki/Arctan2", - "MATH_ATAN2_TITLE": "atan2 von X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Gibt den Arkustangens des Punktes (X, Y) in Grad von -180 bis 180 zurück.", - "TEXT_TEXT_HELPURL": "https://de.wikipedia.org/wiki/Zeichenkette", - "TEXT_TEXT_TOOLTIP": "Ein Buchstabe, Text oder Satz.", - "TEXT_JOIN_HELPURL": "", - "TEXT_JOIN_TITLE_CREATEWITH": "erstelle Text aus", - "TEXT_JOIN_TOOLTIP": "Erstellt einen Text durch das Verbinden von mehreren Textelementen.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "verbinden", - "TEXT_CREATE_JOIN_TOOLTIP": "Hinzufügen, entfernen und sortieren von Elementen.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Ein Element zum Text hinzufügen.", - "TEXT_APPEND_TITLE": "zu %1 Text %2 anhängen", - "TEXT_APPEND_TOOLTIP": "Text an die Variable \"%1\" anhängen.", - "TEXT_LENGTH_TITLE": "Länge von %1", - "TEXT_LENGTH_TOOLTIP": "Die Anzahl von Zeichen in einem Text (inkl. Leerzeichen).", - "TEXT_ISEMPTY_TITLE": "%1 ist leer", - "TEXT_ISEMPTY_TOOLTIP": "Ist wahr, falls der Text keine Zeichen enthält.", - "TEXT_INDEXOF_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "TEXT_INDEXOF_TOOLTIP": "Findet das erste / letzte Auftreten eines Suchbegriffs in einem Text. Gibt die Position des Begriffs zurück oder %1 falls der Suchbegriff nicht gefunden wurde.", - "TEXT_INDEXOF_TITLE": "im Text %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "suche erstes Auftreten des Begriffs", - "TEXT_INDEXOF_OPERATOR_LAST": "suche letztes Auftreten des Begriffs", - "TEXT_CHARAT_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "TEXT_CHARAT_TITLE": "im Text %1 %2", - "TEXT_CHARAT_FROM_START": "nimm", - "TEXT_CHARAT_FROM_END": "nimm von hinten", - "TEXT_CHARAT_FIRST": "nimm ersten", - "TEXT_CHARAT_LAST": "nimm letzten", - "TEXT_CHARAT_RANDOM": "nimm zufälligen", - "TEXT_CHARAT_TAIL": "Buchstaben", - "TEXT_CHARAT_TOOLTIP": "Extrahiert einen Buchstaben von einer bestimmten Position.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Gibt den angegebenen Textabschnitt zurück.", - "TEXT_GET_SUBSTRING_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "im Text", - "TEXT_GET_SUBSTRING_START_FROM_START": "nimm Teil ab", - "TEXT_GET_SUBSTRING_START_FROM_END": "nimm Teil ab von hinten", - "TEXT_GET_SUBSTRING_START_FIRST": "nimm Teil ab erster", - "TEXT_GET_SUBSTRING_END_FROM_START": "bis", - "TEXT_GET_SUBSTRING_END_FROM_END": "bis von hinten", - "TEXT_GET_SUBSTRING_END_LAST": "bis letzter", - "TEXT_GET_SUBSTRING_TAIL": "Buchstabe", - "TEXT_CHANGECASE_TOOLTIP": "Wandelt Schreibweise von Texten um, in Großbuchstaben, Kleinbuchstaben oder den ersten Buchstaben jedes Wortes groß und die anderen klein.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "wandel um in GROSSBUCHSTABEN", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "wandel um in kleinbuchstaben", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "wandel um in Substantive", - "TEXT_TRIM_TOOLTIP": "Entfernt Leerzeichen vom Anfang und / oder Ende eines Textes.", - "TEXT_TRIM_OPERATOR_BOTH": "entferne Leerzeichen vom Anfang und vom Ende (links und rechts)", - "TEXT_TRIM_OPERATOR_LEFT": "entferne Leerzeichen vom Anfang (links)", - "TEXT_TRIM_OPERATOR_RIGHT": "entferne Leerzeichen vom Ende (rechts)", - "TEXT_PRINT_TITLE": "gib aus %1", - "TEXT_PRINT_TOOLTIP": "Gibt den Text aus.", - "TEXT_PROMPT_TYPE_TEXT": "frage nach Text mit Hinweis", - "TEXT_PROMPT_TYPE_NUMBER": "frage nach Zahl mit Hinweis", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Fragt den Benutzer nach einer Zahl.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Fragt den Benutzer nach einem Text.", - "TEXT_COUNT_MESSAGE0": "zähle %1 in %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Zähle, wie oft ein Text innerhalb eines anderen Textes vorkommt.", - "TEXT_REPLACE_MESSAGE0": "ersetze %1 durch %2 in %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Ersetze alle Vorkommen eines Textes innerhalb eines anderen Textes.", - "TEXT_REVERSE_MESSAGE0": "kehre %1 um", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Kehre die Reihenfolge der Zeichen im Text um.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "erzeuge eine leere Liste", - "LISTS_CREATE_EMPTY_TOOLTIP": "Erzeugt eine leere Liste ohne Inhalt.", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Erzeugt eine Liste aus den angegebenen Elementen.", - "LISTS_CREATE_WITH_INPUT_WITH": "erzeuge Liste mit", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "Liste", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Hinzufügen, entfernen und sortieren von Elementen.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Ein Element zur Liste hinzufügen.", - "LISTS_REPEAT_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "LISTS_REPEAT_TOOLTIP": "Erzeugt eine Liste mit einer variablen Anzahl von Elementen", - "LISTS_REPEAT_TITLE": "erzeuge Liste mit %2 mal dem Element %1​", - "LISTS_LENGTH_TITLE": "Länge von %1", - "LISTS_LENGTH_TOOLTIP": "Die Anzahl von Elementen in der Liste.", - "LISTS_ISEMPTY_TITLE": "%1 ist leer", - "LISTS_ISEMPTY_TOOLTIP": "Ist wahr, falls die Liste leer ist.", - "LISTS_INLIST": "in der Liste", - "LISTS_INDEX_OF_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "LISTS_INDEX_OF_FIRST": "suche erstes Auftreten von", - "LISTS_INDEX_OF_LAST": "suche letztes Auftreten von", - "LISTS_INDEX_OF_TOOLTIP": "Sucht die Position (Index) eines Elementes in der Liste. Gibt %1 zurück, falls kein Element gefunden wurde.", - "LISTS_GET_INDEX_GET": "nimm", - "LISTS_GET_INDEX_GET_REMOVE": "nimm und entferne", - "LISTS_GET_INDEX_REMOVE": "entferne", - "LISTS_GET_INDEX_FROM_START": "das", - "LISTS_GET_INDEX_FROM_END": "von hinten das", - "LISTS_GET_INDEX_FIRST": "Erste", - "LISTS_GET_INDEX_LAST": "Letzte", - "LISTS_GET_INDEX_RANDOM": "Zufällig", - "LISTS_GET_INDEX_TAIL": "Element", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ist das erste Element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ist das letzte Element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Extrahiert das Element an der angegebenen Position in der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Extrahiert das erste Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Extrahiert das letzte Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Extrahiert ein zufälliges Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Extrahiert und entfernt das Element an der angegebenen Position aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Extrahiert und entfernt das erste Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Extrahiert und entfernt das letzte Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Extrahiert und entfernt ein zufälliges Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Entfernt das Element an der angegebenen Position aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Entfernt das erste Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Entfernt das letzte Element aus der Liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Entfernt ein zufälliges Element aus der Liste.", - "LISTS_SET_INDEX_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "LISTS_SET_INDEX_SET": "setze für", - "LISTS_SET_INDEX_INSERT": "füge als", - "LISTS_SET_INDEX_INPUT_TO": "ein", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Setzt das Element an der angegebenen Position in der Liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Setzt das erste Element in der Liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Setzt das letzte Element in die Liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Setzt ein zufälliges Element in der Liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Fügt das Element an der angegebenen Position in die Liste ein.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Fügt das Element an den Anfang der Liste an.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Fügt das Element ans Ende der Liste an.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Fügt das Element zufällig in die Liste ein.", - "LISTS_GET_SUBLIST_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "LISTS_GET_SUBLIST_START_FROM_START": "nimm Teilliste ab", - "LISTS_GET_SUBLIST_START_FROM_END": "nimm Teilliste ab von hinten", - "LISTS_GET_SUBLIST_START_FIRST": "nimm Teilliste ab erstes", - "LISTS_GET_SUBLIST_END_FROM_START": "bis", - "LISTS_GET_SUBLIST_END_FROM_END": "bis von hinten", - "LISTS_GET_SUBLIST_END_LAST": "bis letztes", - "LISTS_GET_SUBLIST_TAIL": "Element", - "LISTS_GET_SUBLIST_TOOLTIP": "Erstellt eine Kopie mit dem angegebenen Abschnitt der Liste.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 %2 %3 sortieren", - "LISTS_SORT_TOOLTIP": "Eine Kopie einer Liste sortieren.", - "LISTS_SORT_ORDER_ASCENDING": "aufsteigend", - "LISTS_SORT_ORDER_DESCENDING": "absteigend", - "LISTS_SORT_TYPE_NUMERIC": "numerisch", - "LISTS_SORT_TYPE_TEXT": "alphabetisch", - "LISTS_SORT_TYPE_IGNORECASE": "alphabetisch, Großschreibung ignorieren", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "Liste aus Text erstellen", - "LISTS_SPLIT_TEXT_FROM_LIST": "Text aus Liste erstellen", - "LISTS_SPLIT_WITH_DELIMITER": "mit Trennzeichen", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Text in eine Liste mit Texten aufteilen, unterbrochen bei jedem Trennzeichen.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Liste mit Texten in einen Text vereinen, getrennt durch ein Trennzeichen.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "kehre %1 um", - "LISTS_REVERSE_TOOLTIP": "Kehre eine Kopie einer Liste um.", - "ORDINAL_NUMBER_SUFFIX": ".", - "VARIABLES_GET_HELPURL": "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29", - "VARIABLES_GET_TOOLTIP": "Gibt den Wert der Variable zurück.", - "VARIABLES_GET_CREATE_SET": "Erzeuge \"Schreibe %1\"", - "VARIABLES_SET_HELPURL": "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29", - "VARIABLES_SET": "setze %1 auf %2", - "VARIABLES_SET_TOOLTIP": "Setzt den Wert einer Variable.", - "VARIABLES_SET_CREATE_GET": "Erzeuge \"Lese %1\"", - "PROCEDURES_DEFNORETURN_HELPURL": "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", - "PROCEDURES_DEFNORETURN_TITLE": "nach", - "PROCEDURES_DEFNORETURN_PROCEDURE": "etwas tun", - "PROCEDURES_BEFORE_PARAMS": "mit:", - "PROCEDURES_CALL_BEFORE_PARAMS": "mit:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Ein Funktionsblock ohne Rückgabewert.", - "PROCEDURES_DEFNORETURN_COMMENT": "Beschreibe diese Funktion …", - "PROCEDURES_DEFRETURN_HELPURL": "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", - "PROCEDURES_DEFRETURN_RETURN": "gib zurück", - "PROCEDURES_DEFRETURN_TOOLTIP": "Ein Funktionsblock mit Rückgabewert.", - "PROCEDURES_ALLOW_STATEMENTS": "Anweisungen erlauben", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Warnung: Dieser Funktionsblock hat zwei gleich benannte Parameter.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://de.wikipedia.org/wiki/Unterprogramm", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Rufe einen Funktionsblock ohne Rückgabewert auf.", - "PROCEDURES_CALLRETURN_HELPURL": "https://de.wikipedia.org/wiki/Unterprogramm", - "PROCEDURES_CALLRETURN_TOOLTIP": "Rufe einen Funktionsblock mit Rückgabewert auf.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "Parameter", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Die Eingaben zu dieser Funktion hinzufügen, entfernen oder neu anordnen.", - "PROCEDURES_MUTATORARG_TITLE": "Variable:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Eine Eingabe zur Funktion hinzufügen.", - "PROCEDURES_HIGHLIGHT_DEF": "Markiere Funktionsblock", - "PROCEDURES_CREATE_DO": "Erzeuge \"Aufruf %1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Gibt den zweiten Wert zurück und verlässt die Funktion, falls der erste Wert wahr ist.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Warnung: Dieser Block darf nur innerhalb eines Funktionsblocks genutzt werden.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Teile etwas mit…", - "COLLAPSED_WARNINGS_WARNING": "Eingeklappte Blöcke enthalten Warnungen." -} diff --git a/lib/blockly/msg/json/diq.json b/lib/blockly/msg/json/diq.json deleted file mode 100644 index 062285f..0000000 --- a/lib/blockly/msg/json/diq.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Kumkumuk", - "Marmase", - "Mirzali", - "Gırd", - "Orbot707" - ] - }, - "VARIABLES_DEFAULT_NAME": "unsur", - "UNNAMED_KEY": "bêname", - "TODAY": "Ewro", - "DUPLICATE_BLOCK": "Zewnc", - "ADD_COMMENT": "Tefsir cı ke", - "REMOVE_COMMENT": "Tefsiri Wedare", - "DUPLICATE_COMMENT": "Mışewreyo zewnc", - "EXTERNAL_INPUTS": "Cıkewtışê xarıciy", - "INLINE_INPUTS": "Cıkerdışê xomiyani", - "DELETE_BLOCK": "Bloki bestere", - "DELETE_X_BLOCKS": "%1 blokan bestere", - "DELETE_ALL_BLOCKS": "Pêro %1 bloki besteriyê?", - "CLEAN_UP": "Blokan pak ke", - "COLLAPSE_BLOCK": "Bloki teng ke", - "COLLAPSE_ALL": "Blokan teng ke", - "EXPAND_BLOCK": "Bloki hera ke", - "EXPAND_ALL": "Blokan hera ke", - "DISABLE_BLOCK": "Çengi devre ra vec", - "ENABLE_BLOCK": "Bloki feal ke", - "HELP": "Peşti", - "UNDO": "Peyser bıgê", - "REDO": "Newe ke", - "CHANGE_VALUE_TITLE": "Erci bıvurne:", - "RENAME_VARIABLE": "Vuriyayey fına name ke...", - "RENAME_VARIABLE_TITLE": "Pêro vırnayışê '%1' reyna name ke:", - "NEW_VARIABLE": "Vuriyayeyo bıvıraz...", - "NEW_STRING_VARIABLE": "Vurriyayoğê rêze vıraze...", - "NEW_NUMBER_VARIABLE": "Vurriyayoğê amari vıraze...", - "NEW_COLOUR_VARIABLE": "Vurriyayoğê rengi vıraze...", - "NEW_VARIABLE_TYPE_TITLE": "Tewrê vurriyayoğê neweyi:", - "NEW_VARIABLE_TITLE": "Tewrê vurriyayoğê neweyi:", - "VARIABLE_ALREADY_EXISTS": "Yew vırnayış be namey '%1' xora est.", - "DELETE_VARIABLE_CONFIRMATION": "%1 ke vırnayışê '%2'i gırweneno, besteriyo?", - "DELETE_VARIABLE": "Şıma vırnaoğê '%1'i besterê", - "COLOUR_PICKER_HELPURL": "https://diq.wikipedia.org/wiki/Reng", - "COLOUR_PICKER_TOOLTIP": "Şıma palet ra yew reng weçinê.", - "COLOUR_RANDOM_TITLE": "rengo rastameye", - "COLOUR_RANDOM_TOOLTIP": "Tesadufi yu ren bıweçin", - "COLOUR_RGB_TITLE": "komponentên rengan", - "COLOUR_RGB_RED": "sur", - "COLOUR_RGB_GREEN": "kıho", - "COLOUR_RGB_BLUE": "kewe", - "COLOUR_RGB_TOOLTIP": "Şıma renganê sûr, aşıl u kohoy ra rengê do spesifik vırazê. Gani ê pêro 0 u 100 miyan de bıbê.", - "COLOUR_BLEND_TITLE": "tewde", - "COLOUR_BLEND_COLOUR1": "reng 1", - "COLOUR_BLEND_COLOUR2": "reng 2", - "COLOUR_BLEND_RATIO": "nısbet", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 fıni tekrar ke", - "CONTROLS_REPEAT_INPUT_DO": "bıke", - "CONTROLS_REPEAT_TOOLTIP": "Şıma tayêna reyi akerdışi kerê.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "Tekrar kerdış de", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "hend tekrar ke", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Yew erc raşto se yu beyanat bıd.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Yew erc xırabo se tay beyanati bıd", - "CONTROLS_FOREACH_TITLE": "Lista %2 de her item %1 rê", - "CONTROLS_FOREACH_TOOLTIP": "Yew lista de her item rê, varyansê '%1' itemi rê vırazê, u dıma tayê akerdışi (beyani) bıdê", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "Çerxen ra vec", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "Gama bin da çerxeni ra dewam ke", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Öujtewada çerxeni ra bıvıci", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Diqat: No bloke şeno teyna yew çerxiyayış miyan de bıgırweyo.", - "CONTROLS_IF_TOOLTIP_1": "Eger yew vaye raşto, o taw şıma tayê akerdışi kerê.", - "CONTROLS_IF_MSG_IF": "eke", - "CONTROLS_IF_MSG_ELSEIF": "eke nêyo", - "CONTROLS_IF_MSG_ELSE": "eke çıniyo", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Bloq da if'i rê yu şert dekerê de.", - "IOS_OK": "TEMAM", - "IOS_CANCEL": "Bıtexelne", - "IOS_ERROR": "Xeta", - "IOS_PROCEDURES_INPUTS": "BEYANİ", - "IOS_PROCEDURES_ADD_INPUT": "+ Beyan cı ke", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "İfade rê mısade bıde", - "IOS_VARIABLES_ADD_VARIABLE": "+ Vurnekari cı kerê", - "IOS_VARIABLES_ADD_BUTTON": "Cı ke", - "IOS_VARIABLES_RENAME_BUTTON": "Reyna name ke", - "IOS_VARIABLES_DELETE_BUTTON": "Bestere", - "IOS_VARIABLES_VARIABLE_NAME": "Namê vurriyayışi", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Heruna nameyê curnekari veng mevıradê.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Debiyaye dı erci zey pêyêse ercê \"True\" dane.", - "LOGIC_OPERATION_TOOLTIP_AND": "Eger her dı cıkewtışi zi raştê, şıma ageyrê.", - "LOGIC_OPERATION_AND": "û", - "LOGIC_OPERATION_OR": "ya zi", - "LOGIC_NEGATE_TITLE": "%1 niyo", - "LOGIC_BOOLEAN_TRUE": "raşt", - "LOGIC_BOOLEAN_FALSE": "ğelet", - "LOGIC_BOOLEAN_TOOLTIP": "Raşt yana çep erc dano", - "LOGIC_NULL": "veng", - "LOGIC_NULL_TOOLTIP": "Veng çarneno ra.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "eke raşto", - "LOGIC_TERNARY_IF_FALSE": "eke ğeleto", - "LOGIC_TERNARY_TOOLTIP": "Şerta'test'i test keno. Eger ke şert raşta se erca 'raşt'i çarneno, çepo se erca 'çep' çarneno.", - "MATH_NUMBER_HELPURL": "https://diq.wikipedia.org/wiki/Numre", - "MATH_NUMBER_TOOLTIP": "Yew numre.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Aritmetik", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "karekok", - "MATH_SINGLE_OP_ABSOLUTE": "mutlaq", - "MATH_SINGLE_TOOLTIP_NEG": "Nêrazibiyena yew amari açarne.", - "MATH_SINGLE_TOOLTIP_EXP": "E quwetê yew amar tadano.", - "MATH_SINGLE_TOOLTIP_POW10": "Quweta yew amariya 10ıne tade.", - "MATH_TRIG_HELPURL": "https://diq.wikipedia.org/wiki/Fonksiyonê_trigonometriye", - "MATH_TRIG_TOOLTIP_ASIN": "Arksinusê yew amari açarne.", - "MATH_TRIG_TOOLTIP_ACOS": "Arkkosinusê yew amari açarne.", - "MATH_TRIG_TOOLTIP_ATAN": "Arktangensê yew amari açarne.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Sabitanê wertağan ra yew açarne: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (bêpeyniye).", - "MATH_IS_EVEN": "zewnco", - "MATH_IS_ODD": "kıto", - "MATH_IS_PRIME": "bıngehên", - "MATH_IS_WHOLE": "tamo", - "MATH_IS_POSITIVE": "pozitifo", - "MATH_IS_NEGATIVE": "negatifo", - "MATH_IS_DIVISIBLE_BY": "Leteyêno", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "%2, keno %1 vurneno", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Yu amorer loğê cêri yana cori ke", - "MATH_ROUND_OPERATOR_ROUND": "gılor ke", - "MATH_ROUND_OPERATOR_ROUNDUP": "Loğê cori ke", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "Loğê cêri ke", - "MATH_ONLIST_OPERATOR_SUM": "koma liste", - "MATH_ONLIST_OPERATOR_MIN": "Tewr qıcê lista", - "MATH_ONLIST_OPERATOR_MAX": "Tewr gırdê lista", - "MATH_ONLIST_OPERATOR_AVERAGE": "Averacê lista", - "MATH_ONLIST_OPERATOR_MEDIAN": "Wertey lista", - "MATH_ONLIST_OPERATOR_MODE": "listey modi", - "MATH_ONLIST_OPERATOR_RANDOM": "Raştamaye objeya lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Liste ra yew elemento rastameye açarne.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2 ra menden", - "MATH_MODULO_TOOLTIP": "Mendeyan ra teqsimkerdışê dı amaran açarne.", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Raştamaye nimande amor", - "MATH_ATAN2_HELPURL": "https://diq.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2, X:%1 Y:%2", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Yu herfa, satır yana çekuya metini", - "TEXT_JOIN_TITLE_CREATEWITH": "ya metin vıraz", - "TEXT_CREATE_JOIN_TITLE_JOIN": "gıre de", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Yew işaret nuşteyi ke.", - "TEXT_APPEND_TITLE": "rê %1 Metin dek %2", - "TEXT_LENGTH_TITLE": "dergiya %1", - "TEXT_ISEMPTY_TITLE": "%1 vengo", - "TEXT_INDEXOF_TITLE": "metın de %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "vıraştışê nuşteyê verêni bıvêne", - "TEXT_INDEXOF_OPERATOR_LAST": "vıraştışê nuşteyê verêni bıvêne", - "TEXT_CHARAT_TITLE": "metın de %1 %2", - "TEXT_CHARAT_FROM_START": "Herfa # bıgi", - "TEXT_CHARAT_FROM_END": "herfa # peyêne ra bıgê", - "TEXT_CHARAT_FIRST": "Herfa sıfti bıgi", - "TEXT_CHARAT_LAST": "herfa peyêne bıgê", - "TEXT_CHARAT_RANDOM": "Raştamaye yu herf bıgi", - "TEXT_CHARAT_TOOLTIP": "Şınasnaye pozisyon de yu herfer çerğ keno", - "TEXT_GET_SUBSTRING_TOOLTIP": "Tay letey metini çerğ keno", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "metın de", - "TEXT_GET_SUBSTRING_START_FROM_START": "rêza bınêne herfa # ra bıgê", - "TEXT_GET_SUBSTRING_START_FROM_END": "rêza bınêne herfa # peyêne ra bıgê", - "TEXT_GET_SUBSTRING_END_FROM_START": "heta herfa #", - "TEXT_GET_SUBSTRING_END_FROM_END": "heta herfa # peyêne", - "TEXT_GET_SUBSTRING_END_LAST": "heta herfa peyêne", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "HERFANÊ GIRDANA", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "Herfanê werdiyana", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Ser herf gırd", - "TEXT_PRINT_TITLE": "%1 çap", - "TEXT_COUNT_MESSAGE0": "%1 miyan de %2 bımare", - "TEXT_REVERSE_MESSAGE0": "karakteranê %1 weçarne", - "LISTS_CREATE_EMPTY_TITLE": "lista venge vıraze", - "LISTS_CREATE_WITH_INPUT_WITH": "Liste ya vıraz", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "liste", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Yew işaret liste ke.", - "LISTS_LENGTH_TITLE": "dergiya %1", - "LISTS_LENGTH_TOOLTIP": "Derganiya yu lister dano.", - "LISTS_ISEMPTY_TITLE": "%1 vengo", - "LISTS_ISEMPTY_TOOLTIP": "Eger kı lista venga se raşt keno çerğ", - "LISTS_INLIST": "lista de", - "LISTS_INDEX_OF_FIRST": "vıraştışê işaretê verêni bıvêne", - "LISTS_INDEX_OF_LAST": "vıraştışê nuşteyê verêni bıvêne", - "LISTS_GET_INDEX_GET": "bıgê", - "LISTS_GET_INDEX_GET_REMOVE": "Bıgi u wedarne", - "LISTS_GET_INDEX_REMOVE": "wedare", - "LISTS_GET_INDEX_FROM_END": "# peyniye ra", - "LISTS_GET_INDEX_FIRST": "verên", - "LISTS_GET_INDEX_LAST": "peyên", - "LISTS_GET_INDEX_RANDOM": "raştameye", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 objeyo sıfteyên o", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 objeyo peyên o", - "LISTS_SET_INDEX_SET": "ca ke", - "LISTS_SET_INDEX_INSERT": "De fi", - "LISTS_SET_INDEX_INPUT_TO": "zey", - "LISTS_GET_SUBLIST_END_FROM_START": "#'ya", - "LISTS_GET_SUBLIST_END_FROM_END": "Peyni # ra hetana", - "LISTS_GET_SUBLIST_END_LAST": "Hetana pey", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 %2 %3 weçine", - "LISTS_SORT_ORDER_ASCENDING": "zeydıyen", - "LISTS_SORT_ORDER_DESCENDING": "Kemeyen", - "LISTS_SORT_TYPE_NUMERIC": "Amoriyal", - "LISTS_SORT_TYPE_TEXT": "Alfabetik", - "LISTS_SPLIT_WITH_DELIMITER": "Hududoxi ya", - "LISTS_REVERSE_MESSAGE0": "%1 dimlaşt kerê", - "LISTS_REVERSE_TOOLTIP": "Yew kopyaya yew lista dimlaşt kerê.", - "VARIABLES_GET_CREATE_SET": "'%1 bınuse' vıraze", - "VARIABLES_SET": "%1 ra %2 rê eyar kerê", - "VARIABLES_SET_CREATE_GET": "'%1 bıwane' vıraze", - "PROCEDURES_DEFNORETURN_TITLE": "rê", - "PROCEDURES_DEFNORETURN_PROCEDURE": "Çıyê bık", - "PROCEDURES_BEFORE_PARAMS": "ebe:", - "PROCEDURES_CALL_BEFORE_PARAMS": "ebe:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Yew fonksiyono çap nêdate vırazeno", - "PROCEDURES_DEFNORETURN_COMMENT": "Nê fonksiyoni beyan ke...", - "PROCEDURES_DEFRETURN_RETURN": "peyser biya", - "PROCEDURES_DEFRETURN_TOOLTIP": "Yew fonksiyono çap daye vırazeno", - "PROCEDURES_ALLOW_STATEMENTS": "ifade rê mısade bıde", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Tembe: Nê fonksiyoni de parametreyê dıleti estê.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_MUTATORCONTAINER_TITLE": "cıkewtışi", - "PROCEDURES_MUTATORARG_TITLE": "namey cıkewtışi:", - "PROCEDURES_CREATE_DO": "'%1' vıraze", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Çiyê vace..." -} diff --git a/lib/blockly/msg/json/dty.json b/lib/blockly/msg/json/dty.json deleted file mode 100644 index 75ff112..0000000 --- a/lib/blockly/msg/json/dty.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Nirajan pant", - "जनक राज भट्ट", - "राम प्रसाद जोशी" - ] - }, - "VARIABLES_DEFAULT_NAME": "वस्तु", - "TODAY": "आज", - "DUPLICATE_BLOCK": "कपी गर", - "ADD_COMMENT": "टिप्पणी थप्दे", - "REMOVE_COMMENT": "टिप्पणी हटाउन्या", - "DUPLICATE_COMMENT": "हूबहू टिप्पणी", - "EXTERNAL_INPUTS": "भाइरका इन्पुटहरू", - "INLINE_INPUTS": "इनलाइन इन्पुटहरू", - "DELETE_BLOCK": "ब्लक हटाउन्या", - "DELETE_X_BLOCKS": " %1 ब्लकहरू हटाउन्या", - "DELETE_ALL_BLOCKS": "सबै %1 ब्लकनलाई हटाउन्या ?", - "CLEAN_UP": "ब्लकनलाई हटाओ", - "COLLAPSE_BLOCK": "ब्लक भत्का", - "COLLAPSE_ALL": "ब्लक भत्काओ", - "EXPAND_BLOCK": "ब्लकनलाई फैलाओ", - "EXPAND_ALL": "ब्लकनलाई फैलाओ", - "DISABLE_BLOCK": "ब्लकलाई निश्क्रिय पाड्डे", - "ENABLE_BLOCK": "ब्लकलाई सक्रिय पाड्डे", - "HELP": "सहायता", - "UNDO": "रद्द गर्न्या", - "REDO": "पुन: कायम गद्दे", - "CHANGE_VALUE_TITLE": "मान बदल", - "RENAME_VARIABLE": "भेरिबललाई पुनः नामांकन गर...", - "RENAME_VARIABLE_TITLE": "सबै भेरिबलनका %1 नाम बदल्न्या:", - "NEW_VARIABLE": "भेरिएवल बना:", - "NEW_VARIABLE_TITLE": "नयाँ भेरिबलको नाम:", - "VARIABLE_ALREADY_EXISTS": "'%1' नाउँ अरियाऽ भेरिएबल पैली बठेइ छ।", - "DELETE_VARIABLE_CONFIRMATION": "'%2' भेरिएबला %1 प्रयोग मेट्ट्या?", - "DELETE_VARIABLE": "'%1' भेरिएबल मेट:", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "पैलेट बाट एक रंग चुन ।", - "COLOUR_RANDOM_TITLE": "जुनसुकै रङ्ग", - "COLOUR_RANDOM_TOOLTIP": "रैन्डम्ली एक रंग चयन गर ।", - "COLOUR_RGB_TITLE": "यै रङ्गको", - "COLOUR_RGB_RED": "रातो", - "COLOUR_RGB_GREEN": "हरियो", - "COLOUR_RGB_BLUE": "निलो", - "COLOUR_RGB_TOOLTIP": "रातो, हरियो और नीलोको निर्दिष्ट मात्राकी साथ एक रंग बनाओ । सबै मान ० देखि १०० का बीच हुनु पडन्छ ।", - "COLOUR_BLEND_TITLE": "मिश्रण गर", - "COLOUR_BLEND_COLOUR1": "रंग 1", - "COLOUR_BLEND_COLOUR2": "रंग 2", - "COLOUR_BLEND_RATIO": "अनुपात", - "COLOUR_BLEND_TOOLTIP": "दियाका अनुपात (0.0 - 1.0) का साथ दुई रंगहरूको मिश्रण गरन्छ ।", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/Color", - "CONTROLS_REPEAT_TITLE": "%1 पल्ट दोसराओ", - "CONTROLS_REPEAT_INPUT_DO": "डू", - "CONTROLS_REPEAT_TOOLTIP": "क्यै स्टेट्मन्ट कैयों पल्ट चलाओ ।", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "दोहराओ जब की", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "दोहराओ जब तलक", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "जब तलक मान सत्य छ, तब तलक क्यै स्टेट्मेंट चलाओ ।", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "जब तक मान फॉल्स छ, तब तक क्यै स्टेट्मेंट्स चलाओ ।", - "CONTROLS_FOR_TOOLTIP": "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.", - "CONTROLS_FOR_TITLE": "गन्ती गर %1 देखी %2 %3 %4 सम्म", - "CONTROLS_FOREACH_TITLE": "%2 सूचीमी भयाः प्रत्येक आइटम %1 खिलाइ", - "CONTROLS_FOREACH_TOOLTIP": "सूचीको प्रत्येक आइटमको लागी, आइटममी चरको मान '%1' राखौं और पाछा क्यै कथन लेख ।", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "लूप बाट भाइर निकलौं", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "लूपको अर्को आईटरेशन जारी राख", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "भीत्री लूप बाट बाहिर निस्कने", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "बचेका लूपलाई छोड, और अर्को आईटरेशन जारी राख ।", - "CONTROLS_FLOW_STATEMENTS_WARNING": "सावधान: यो ब्लक केवल लूप भित्रमात्र प्रयोग गद्द सकिन्छ ।", - "CONTROLS_IF_TOOLTIP_1": "जब तलक मान सत्य छ, तब तलक क्यै स्टेट्मेंट चलाओ ।", - "CONTROLS_IF_TOOLTIP_2": "यदि एक मान सत्य छ भण्या कथनहरूको प्रथम खण्ड बणाओ । अन्यथा कथनहरूको अर्को भाग निर्मित गर ।", - "CONTROLS_IF_TOOLTIP_3": "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.", - "CONTROLS_IF_TOOLTIP_4": "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.", - "CONTROLS_IF_MSG_IF": "इफ", - "CONTROLS_IF_MSG_ELSEIF": "एल्स इफ", - "CONTROLS_IF_MSG_ELSE": "एल्स", - "CONTROLS_IF_IF_TOOLTIP": "Add, remove, or reorder sections to reconfigure this if block.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "यदि ब्लकमा एक शर्त जोडौं ।", - "CONTROLS_IF_ELSE_TOOLTIP": "Add a final, catch-all condition to the if block.", - "IOS_OK": "हुन्छ", - "IOS_CANCEL": "खारेजी", - "IOS_ERROR": "गल्ती", - "IOS_PROCEDURES_INPUTS": "इनपुटन", - "IOS_PROCEDURES_ADD_INPUT": "+ इनपुट थपः", - "IOS_VARIABLES_ADD_BUTTON": "जोड़ऽ", - "IOS_VARIABLES_RENAME_BUTTON": "पुनर्नामकरण", - "IOS_VARIABLES_DELETE_BUTTON": "मेटः", - "IOS_VARIABLES_VARIABLE_NAME": "चल(भेरिएबल) नाउँ", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "तम खाली चल नाउँ प्रयोग अरीनाइसक्दाः।", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "यदी दुवै इनपुट एक अर्काका बराबर छन् भण्या टु रिटर्न गर ।", - "LOGIC_COMPARE_TOOLTIP_NEQ": "यदी दुवै इनपुट एक अर्काको बराबर नाइथिन् भणया टु रिटर्न गर ।", - "LOGIC_COMPARE_TOOLTIP_LT": "पैल्लो इनपुट दोसरा इनपुट है नानो भया ट्रू फिर्ता अर:।", - "LOGIC_COMPARE_TOOLTIP_LTE": "पैल्लो इनपुट दोसरा इनपुट है नानो या उइ सित बराबर भया ट्रू फिर्ता अर:।", - "LOGIC_COMPARE_TOOLTIP_GT": "पैल्लो इनपुट दोसरा इनपुट है ठुलो भया ट्रू फिर्ता अर:।", - "LOGIC_COMPARE_TOOLTIP_GTE": "पैल्लो इनपुट दोसरा इनपुट है ठुलो या उइ सित बराबर भया ट्रू फिर्ता अर:।", - "LOGIC_OPERATION_TOOLTIP_AND": "दुएइ इनपुट ट्रू भया ट्रू फिर्ता अर:।", - "LOGIC_OPERATION_AND": "रे", - "LOGIC_OPERATION_TOOLTIP_OR": "कम्तीमी लै १ इनपुट सत्य भयाले सत्य फिर्ता अर।", - "LOGIC_OPERATION_OR": "या", - "LOGIC_NEGATE_TOOLTIP": "इनपुट असत्य भयाले सन्य फिर्ता अरन्छ। इनपुट सत्य भयाले असत्य फिर्ता अरन्छ।", - "LOGIC_BOOLEAN_TRUE": "सत्य", - "LOGIC_BOOLEAN_FALSE": "असत्य", - "LOGIC_BOOLEAN_TOOLTIP": "सत्य या असत्य फिर्ता अरन्छ।", - "LOGIC_NULL": "शू्य", - "LOGIC_NULL_TOOLTIP": "शून्य फिर्ता अरन्छ।", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "केयि भँण..." -} diff --git a/lib/blockly/msg/json/ee.json b/lib/blockly/msg/json/ee.json deleted file mode 100644 index c16f908..0000000 --- a/lib/blockly/msg/json/ee.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Aguve", - "Apequm" - ] - }, - "VARIABLES_DEFAULT_NAME": "nu", - "TODAY": "Egbe", - "DUPLICATE_BLOCK": "Gbugbɔe Wɔ", - "ADD_COMMENT": "Ŋlɔ Numeɖeɖe", - "REMOVE_COMMENT": "Ɖe Numeɖeɖea Ɖa", - "DUPLICATE_COMMENT": "Kɔpi Numeɖeɖea", - "EXTERNAL_INPUTS": "Gotakpeɖeŋunuwo", - "INLINE_INPUTS": "Interdzikpeɖeŋuwo", - "DELETE_BLOCK": "Tutu Hatsotsoa", - "DELETE_X_BLOCKS": "Tutu Hatsotso %1", - "DELETE_ALL_BLOCKS": "Èdi be netutu nu %1 katã?", - "CLEAN_UP": "Tutu Nuawo", - "COLLAPSE_BLOCK": "Hatsotso Me Nuwo Nebu", - "COLLAPSE_ALL": "Hatsotsoawo Me Nuwo Nebu", - "EXPAND_BLOCK": "Hatsotsoa Me Nuwo Nedze", - "EXPAND_ALL": "Hatsotsoawo Me Nuwo Nedze", - "DISABLE_BLOCK": "Tsi Hatsotsoa", - "ENABLE_BLOCK": "Si Hatsotsoa", - "HELP": "Kpekpeɖeŋu", - "UNDO": "Gbugbɔe", - "REDO": "Trɔ Wɔe", - "CHANGE_VALUE_TITLE": "Trɔ nuŋlɔdzesiawo:", - "RENAME_VARIABLE": "Na ŋkɔ bubu nuŋlɔdzesi tɔtrɔa...", - "RENAME_VARIABLE_TITLE": "Na ŋkɔ bubu nuŋlɔdzesi tɔtrɔa '%1' yi:", - "NEW_VARIABLE": "Wɔ teaŋutrɔna...", - "NEW_STRING_VARIABLE": "Wɔ nya teaŋutrɔna...", - "NEW_NUMBER_VARIABLE": "Wɔ xexlẽdzesi teaŋutrɔna...", - "NEW_COLOUR_VARIABLE": "Wɔ amadede teaŋutrɔna...", - "NEW_VARIABLE_TYPE_TITLE": "Teaŋutrɔna ƒomevi yeye:", - "NEW_VARIABLE_TITLE": "Nuŋlɔdzesi tɔtrɔa yeye ƒe ŋkɔ:", - "VARIABLE_ALREADY_EXISTS": "Teaŋutrɔna si ŋkɔe nye '%1' li xoxo.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Teaŋutrɔna '%1' li xoxo eye wotsɔ ŋkɔ sia xoxo na bubu si nye: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Netutu %1 ŋkɔ si nètsɔ na teaŋutrɔna '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Mate ŋu atutu teaŋutrɔna '%1' o elabe ewɔ akpa aɖe le teaŋutrɔna '%2' me.", - "DELETE_VARIABLE": "Tutu teaŋutrɔna '%1'", - "COLOUR_PICKER_HELPURL": "https://ee.wikipedia.org/wiki/Amadede", - "COLOUR_PICKER_TOOLTIP": "Tia amadede ɖeka le amadedetiaƒea.", - "COLOUR_RANDOM_TITLE": "amadede aɖe ko", - "COLOUR_RANDOM_TOOLTIP": "Tia amadede aɖe ko.", - "COLOUR_RGB_TITLE": "de amae kple", - "COLOUR_RGB_RED": "dzĩ", - "COLOUR_RGB_GREEN": "gbemumu", - "COLOUR_RGB_BLUE": "blɔ", - "COLOUR_RGB_TOOLTIP": "tsaka", - "COLOUR_BLEND_TITLE": "tsaka", - "COLOUR_BLEND_COLOUR1": "amedede 1", - "COLOUR_BLEND_COLOUR2": "amadede 2", - "COLOUR_BLEND_RATIO": "agbɔsɔsɔ", - "COLOUR_BLEND_TOOLTIP": "Tsaka amadede eve kple agbɔsɔsɔ si nye (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://ee.wikipedia.org/wiki/Na_nogo", - "CONTROLS_REPEAT_TITLE": "Wɔe zi %1", - "CONTROLS_REPEAT_INPUT_DO": "wɔ", - "CONTROLS_REPEAT_TOOLTIP": "Gbugbɔ biabia aɖewo zi geɖe.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "gbugbɔ wɔe ne", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "gbugbɔ wɔe va se ɖe", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Ne nyatakaka dea, ke wɔ biabia aɖewo.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Ne nyatakaka dea, ke wɔ biabia aɖewo.", - "CONTROLS_FOR_TOOLTIP": "Xexlẽdzesi tɔtrɔ '%1' nenye xexlẽdzesi si dze egɔme kple esiwo kplɔe ɖo va se ɖe mamlɛtɔ dzi, nebu dometsotso si wofia kple nyatakaka suetɔ siwo wofia asii.", - "CONTROLS_FOR_TITLE": "Xlẽ %1 tso %2 yi %3 to %4 dzi", - "CONTROLS_FOREACH_TITLE": "nu sia nu natso %2 me ayi %1 me", - "CONTROLS_FOREACH_TOOLTIP": "Tia teaŋutrɔna '%1' na nuawo dometɔ ɖe sia ɖe si li, eye nàŋlɔ gbedeasi aɖe.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "Nedo le wɔtiaɖenua me", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "neyi edzi kple wɔtiaɖenua si kplɔe ɖo", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Nedo le wɔtiaɖenua si me wòlea me.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Neto wɔtiaɖenu sia susɔea ta wòayi bubu dzi.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Nuxlɔ̃ame: Wɔtiaɖenu me ko woate ŋu azã ƒuƒoƒo sia le.", - "CONTROLS_IF_TOOLTIP_1": "Ne asime aɖe le eme la, ke taɖodzinya aɖewo neva eme.", - "CONTROLS_IF_TOOLTIP_2": "Ne asime aɖe le eme la, ke taɖodzinyawo ƒe ƒuƒoƒo gbãtɔ neva eme. Ne menye nenem o la, ke taɖodzinyawo ƒe ƒuƒoƒo evelia neva eme.", - "CONTROLS_IF_TOOLTIP_3": "Ne asime gbãtɔe le eme la, ke taɖodzinyawo ƒe ƒuƒoƒo gbãtɔ neva eme. Gake ne asime eveliae le eme la, taɖodzinyawo ƒe ƒuƒoƒo evelia boŋ neva eme.", - "CONTROLS_IF_TOOLTIP_4": "Ne asime gbãtɔ le eme la, ke taɖodzinyawo ƒe ƒuƒoƒo gbãtɔ neva eme. Ke ne taɖodzinyawo ƒe ƒuƒoƒo evelia boŋue le eme la, taɖodzinyawo ƒe ƒuƒoƒo evelia neva eme. Ne taɖodzinya aɖeke mele eme o la,taɖodzinyawo ƒe ƒuƒoƒo mamlɛtɔ neva eme.", - "CONTROLS_IF_MSG_IF": "Ne", - "CONTROLS_IF_MSG_ELSEIF": "Ke boŋ ne", - "CONTROLS_IF_MSG_ELSE": "ke boŋ", - "CONTROLS_IF_IF_TOOLTIP": "Tsɔ kpee, ɖee le eme alo gbugbɔ akpawo ɖo nàtsɔ asi le ne ƒe ƒuƒoƒoa ŋu.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Tsɔ biabia aɖe kpe ne ƒuƒoƒo la.", - "CONTROLS_IF_ELSE_TOOLTIP": "Tsɔ lé wo katã ƒe ne ƒe ƒuƒoƒo kpe biabia mamlɛa.", - "IOS_OK": "YOO", - "IOS_CANCEL": "Natasii", - "IOS_ERROR": "Vodada", - "IOS_PROCEDURES_INPUTS": "NUDEMEWO", - "IOS_PROCEDURES_ADD_INPUT": "+ Tsɔ nu kpe Nudemea", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Ɖe mɔ ɖe taɖodzinyawo ŋu", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Nudeme evee le wɔƒe sia si.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Tsɔ nugba kpee", - "IOS_VARIABLES_ADD_BUTTON": "Tsɔ kpee", - "IOS_VARIABLES_RENAME_BUTTON": "Gbugbɔ na ŋkɔe", - "IOS_VARIABLES_DELETE_BUTTON": "Tutui", - "IOS_VARIABLES_VARIABLE_NAME": "Nugba ŋkɔ", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Màte ŋu azã nugba si mena ŋkɔe o.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Masɔmasɔ_(akɔntabubu)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Ŋuɖoɖoa nenye nyateƒe ne nudeme eveawo sɔ kple wo nɔewo.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Ŋuɖoɖoa nenye nyateƒe ne nudeme eveawo mesɔ kple wo nɔewo o.", - "LOGIC_COMPARE_TOOLTIP_LT": "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ mede evelia nu o.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ mede evelia nu o alo sɔ kplii.", - "LOGIC_COMPARE_TOOLTIP_GT": "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ lolo wu evelia.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Ŋuɖoɖoa nenye nyateƒe ne nudeme gbãtɔ lolo wu evelia alo sɔ kplii.", - "LOGIC_OPERATION_TOOLTIP_AND": "Ŋuɖoɖoa nenye nyateƒe ne nudeme eveawo nye nyateƒe.", - "LOGIC_OPERATION_AND": "eye", - "LOGIC_OPERATION_TOOLTIP_OR": "Ŋuɖoɖoa nenye nyateƒe ne nudeme ɖeka teti nye nyateƒe.", - "LOGIC_OPERATION_OR": "alo", - "LOGIC_NEGATE_TITLE": "menye %1", - "LOGIC_NEGATE_TOOLTIP": "Ŋuɖoɖoa nenye nyateƒe ne nudemea menye nyateƒe o. Ŋuɖoɖoa nenye aʋatso ne nudemea nye nyateƒe.", - "LOGIC_BOOLEAN_TRUE": "dedia", - "LOGIC_BOOLEAN_FALSE": "mademadea", - "LOGIC_BOOLEAN_TOOLTIP": "Nefia dedia alo mademadea.", - "LOGIC_NULL": "ɖeke o", - "LOGIC_NULL_TOOLTIP": "Mekpɔ ɖeke o.", - "LOGIC_TERNARY_CONDITION": "dodokpɔ", - "LOGIC_TERNARY_IF_TRUE": "nenye nyuitɔ", - "LOGIC_TERNARY_IF_FALSE": "nenye dedietɔ", - "LOGIC_TERNARY_TOOLTIP": "Kpɔ nu si dze le \"dodokpɔ\" me. Ne dediae dze la, tia \"ne dedia\"; ke ne manyomanyotɔe la, tia \"ne mademadea.\"", - "MATH_NUMBER_HELPURL": "https://ee.wikipedia.org/wiki/Xexlẽdzesi", - "MATH_NUMBER_TOOLTIP": "Xexlẽdzesi aɖe", - "MATH_ARITHMETIC_HELPURL": "https://ee.wikipedia.org/wiki/Xexlẽdzesibubu", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Bu xexlẽdzesi evea ƒoƒo ƒu ƒe akɔnta.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Bu xexlẽdzesi ɖeka ɖeɖe le evelia me ƒe akɔnta.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Bu xexlẽdzesi gbãtɔ teƒe evelia ƒe akɔnta.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Bu xexlẽdzesi ɖeka mama ɖe xexlẽdzesi evelia me ƒe akɔnta.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Na be xexlẽdzesi gbãtɔ nadzi eɖokui ɖe edzi zigbɔzi xexlẽdzesi evelia.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/dzidziɖedzi_eɖokui zigbɔzi eve", - "MATH_SINGLE_OP_ROOT": "eƒe teƒe eve", - "MATH_SINGLE_TOOLTIP_ROOT": "Xexlẽdzesia nedzi ɖe edzi teƒe eɖokui", - "MATH_SINGLE_OP_ABSOLUTE": "xexlẽ blibo", - "MATH_SINGLE_TOOLTIP_ABS": "Nena xexlẽdzesi aɖe nanye xexlẽ blibo.", - "MATH_SINGLE_TOOLTIP_NEG": "Nena xexlẽdzesi aɖe nanye xexlẽdzesi madenanekeo.", - "MATH_SINGLE_TOOLTIP_LN": "Xexlẽdzesia nedzi ɖe edzi eɖokui zigbzi e.", - "MATH_SINGLE_TOOLTIP_LOG10": "Nebu zigbɔzi neni 10-teƒe-10 awɔ xexlẽdzesia.", - "MATH_SINGLE_TOOLTIP_EXP": "Nebu e-teƒe-e zigbɔzi xexlẽdzesia.", - "MATH_SINGLE_TOOLTIP_POW10": " Nebu ewo-teƒe-ewo zigbɔzi xexlẽdzesia.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Nebu dzogɔe le digri me (menye radiã o).", - "MATH_IS_EVEN": "enye eve ƒomevi", - "MATH_IS_ODD": "enye etɔ̃ ƒomevi", - "MATH_IS_PRIME": " enye xexlẽme blibo", - "MATH_IS_WHOLE": "enye blibo", - "MATH_IS_POSITIVE": "enye xexlẽme ŋgɔgbeyitɔ", - "MATH_IS_NEGATIVE": "enye xexlẽme megbeyitɔ", - "MATH_IS_DIVISIBLE_BY": "woate ŋu amae ɖe", - "MATH_ONLIST_OPERATOR_MIN": "suetɔ le wo dome", - "MATH_ONLIST_TOOLTIP_MIN": "Neʋu suetɔ le nuwo dome.", - "MATH_ONLIST_OPERATOR_MAX": "gãtɔ le nuwo dome", - "MATH_ONLIST_TOOLTIP_MAX": "Neʋu xexlẽdzesi gãtɔ.", - "LISTS_ISEMPTY_TITLE": "%1 le ƒuƒlu", - "LISTS_GET_INDEX_REMOVE": "ɖee ɖa", - "LISTS_GET_INDEX_FROM_END": "# tso nuwuwu", - "LISTS_GET_INDEX_FIRST": "gbãtɔ", - "LISTS_GET_INDEX_LAST": "mamlɛtɔ", - "LISTS_GET_INDEX_RANDOM": "ɖe sia ɖe ko", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 nye nu gbãtɔ.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 nye nu mamlɛtɔ.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Aʋu nua le afi si wòle le nuwo dome.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Aʋu nu gbãtɔ.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Aʋu nu mamlɛtɔ.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Aʋu nu ɖe sia ɖe aɖe ko.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Aɖe nua ɖa eye wòaʋu nua le afi si wòle le nuawo dome.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Eɖea nu gbãtɔ ɖa eye eya kee gaʋua nu gbãtɔ.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Eɖea nu mamlɛtɔ ɖa eye eya kee gaʋua nu mamlɛtɔ.", - "LISTS_GET_SUBLIST_END_FROM_START": "yi #", - "LISTS_GET_SUBLIST_END_FROM_END": "yi # tso nuwuwu", - "LISTS_GET_SUBLIST_END_LAST": "yi mamlɛtɔ", - "LISTS_SORT_ORDER_ASCENDING": "dzi yim", - "LISTS_SORT_ORDER_DESCENDING": "ɖiɖim", - "PROCEDURES_BEFORE_PARAMS": "kple:", - "PROCEDURES_CALL_BEFORE_PARAMS": "kple:" -} diff --git a/lib/blockly/msg/json/el.json b/lib/blockly/msg/json/el.json deleted file mode 100644 index c71b9c5..0000000 --- a/lib/blockly/msg/json/el.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Azountas", - "Espertus", - "Evropi", - "Namatreasure", - "Sfyrakis", - "Glavkos", - "Gchr", - "아라", - "Geraki", - "Ανώνυμος Βικιπαιδιστής", - "GR", - "Stam.nikos", - "Themelis", - "KATRINE1992", - "Vicng", - "Nikosgranturismogt", - "Sarri.greek" - ] - }, - "VARIABLES_DEFAULT_NAME": "αντικείμενο", - "TODAY": "Σήμερα", - "DUPLICATE_BLOCK": "Διπλότυπο", - "ADD_COMMENT": "Πρόσθεσε Το Σχόλιο", - "REMOVE_COMMENT": "Αφαίρεσε Το Σχόλιο", - "DUPLICATE_COMMENT": "Διπλότυπο σχόλιο", - "EXTERNAL_INPUTS": "Εξωτερικές Είσοδοι", - "INLINE_INPUTS": "Εσωτερικές Είσοδοι", - "DELETE_BLOCK": "Διάγραψε Το Μπλοκ", - "DELETE_X_BLOCKS": "Διάγραψε %1 Μπλοκ", - "DELETE_ALL_BLOCKS": "Να διαγραφούν και τα %1 μπλοκ;", - "CLEAN_UP": "Ταξινομείστε τα Μπλοκ", - "COLLAPSE_BLOCK": "Σύμπτυξε Το Μπλοκ", - "COLLAPSE_ALL": "Σύμπτυξε Όλα Τα Μπλοκ", - "EXPAND_BLOCK": "Επέκτεινε Το Μπλοκ", - "EXPAND_ALL": "Επέκτεινε Όλα Τα Μπλοκ", - "DISABLE_BLOCK": "Απενεργοποίησε Το Μπλοκ", - "ENABLE_BLOCK": "Ενεργοποίησε Το Μπλοκ", - "HELP": "Βοήθεια", - "UNDO": "Αναίρεση", - "REDO": "Ακύρωση αναίρεσης", - "CHANGE_VALUE_TITLE": "Άλλαξε την τιμή:", - "RENAME_VARIABLE": "Μετονόμασε τη μεταβλητή...", - "RENAME_VARIABLE_TITLE": "Μετονόμασε όλες τις μεταβλητές «%1» σε:", - "NEW_VARIABLE": "Δημιουργήστε μεταβλητή", - "NEW_STRING_VARIABLE": "Δημιουργία μεταβλητή συμβολοσειράς...", - "NEW_NUMBER_VARIABLE": "Δημιουργία μεταβλητής αριθμού...", - "NEW_COLOUR_VARIABLE": "Δημιουργία μεταβλητής χρώματος...", - "NEW_VARIABLE_TYPE_TITLE": "Νέος τύπος μεταβλητής:", - "NEW_VARIABLE_TITLE": "Νέο όνομα μεταβλητής:", - "VARIABLE_ALREADY_EXISTS": "Η μεταβλητή με το όνομα \"%1\" υπάρχει ήδη", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Μια μεταβλητή με όνομα '%1' υπάρχει πάντα για έναν άλλο τύπο: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Θέλετε να διαγράψετε το %1 που χρησιμοποιείτε της μεταβλητής '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Δεν μπορώ να διαγράψω την μεταβλητή '%1' διότι είναι μέρος του ορισμού της λειτουργίας '%2'", - "DELETE_VARIABLE": "Διαγράψτε την μεταβλητή '%1'", - "COLOUR_PICKER_HELPURL": "https://el.wikipedia.org/wiki/%CE%A7%CF%81%CF%8E%CE%BC%CE%B1", - "COLOUR_PICKER_TOOLTIP": "Επιτρέπει επιλογή χρώματος από την παλέτα.", - "COLOUR_RANDOM_TITLE": "τυχαίο χρώμα", - "COLOUR_RANDOM_TOOLTIP": "Επιλέγει χρώμα τυχαία.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "χρώμα με", - "COLOUR_RGB_RED": "κόκκινο", - "COLOUR_RGB_GREEN": "πράσινο", - "COLOUR_RGB_BLUE": "μπλε", - "COLOUR_RGB_TOOLTIP": "Δημιουργεί χρώμα με το συγκεκριμένο ποσό του κόκκινου, πράσινου και μπλε που ορίζεις. Όλες οι τιμές πρέπει να είναι μεταξύ 0 και 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "μείγμα", - "COLOUR_BLEND_COLOUR1": "χρώμα 1", - "COLOUR_BLEND_COLOUR2": "χρώμα 2", - "COLOUR_BLEND_RATIO": "αναλογία", - "COLOUR_BLEND_TOOLTIP": "Συνδυάζει δύο χρώματα μαζί με μια δεδομένη αναλογία (0.0 - 1,0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "επανάλαβε %1 φορές", - "CONTROLS_REPEAT_INPUT_DO": "κάνε", - "CONTROLS_REPEAT_TOOLTIP": "Εκτελεί κάποιες εντολές αρκετές φορές.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "επανάλαβε ενώ", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "επανάλαβε μέχρι", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Ενόσω μια τιμή είναι αληθής, τότε εκτελεί κάποιες εντολές.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Ενόσω μια τιμή είναι ψευδής, τότε εκτελεί κάποιες εντολές.", - "CONTROLS_FOR_HELPURL": "Blockly", - "CONTROLS_FOR_TOOLTIP": "Η μεταβλητή «%1» παίρνει τιμές ξεκινώντας από τον αριθμό έναρξης μέχρι τον αριθμό τέλους αυξάνοντας κάθε φορά με το καθορισμένο βήμα και εκτελώντας το καθορισμένο μπλοκ.", - "CONTROLS_FOR_TITLE": "μέτρησε με %1 από το %2 έως το %3 ανά %4", - "CONTROLS_FOREACH_TITLE": "για κάθε στοιχείο %1 στη λίστα %2", - "CONTROLS_FOREACH_TOOLTIP": "Για κάθε στοιχείο σε μια λίστα, ορίζει τη μεταβλητή «%1» στο στοιχείο και, στη συνέχεια, εκτελεί κάποιες εντολές.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "φεύγει από το μπλοκ επαναλήψεως", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "συνέχισε με την επόμενη επανάληψη του μπλοκ επαναλήψεως", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Ξεφεύγει (βγαίνει έξω) από την επανάληψη.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Παραλείπει το υπόλοιπο τμήμα αυτού του μπλοκ επαναλήψεως, και συνεχίζει με την επόμενη επανάληψη.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Προειδοποίηση: Αυτό το μπλοκ μπορεί να χρησιμοποιηθεί μόνο μέσα σε μια επανάληψη.", - "CONTROLS_IF_TOOLTIP_1": "Αν μια τιμή είναι αληθής, τότε εκτελεί κάποιες εντολές.", - "CONTROLS_IF_TOOLTIP_2": "Αν μια τιμή είναι αληθής, τότε εκτελεί το πρώτο τμήμα εντολών. Διαφορετικά, εκτελεί το δεύτερο τμήμα εντολών.", - "CONTROLS_IF_TOOLTIP_3": "Αν η πρώτη τιμή είναι αληθής, τότε εκτελεί το πρώτο τμήμα εντολών. Διαφορετικά, αν η δεύτερη τιμή είναι αληθής, εκτελεί το δεύτερο μπλοκ εντολών.", - "CONTROLS_IF_TOOLTIP_4": "Αν η πρώτη τιμή είναι αληθής, τότε εκτελεί το πρώτο τμήμα εντολών. Διαφορετικά, αν η δεύτερη τιμή είναι αληθής, εκτελεί το δεύτερο τμήμα εντολών. Αν καμία από τις τιμές δεν είναι αληθής, εκτελεί το τελευταίο τμήμα εντολών.", - "CONTROLS_IF_MSG_IF": "εάν", - "CONTROLS_IF_MSG_ELSEIF": "εναλλακτικά εάν", - "CONTROLS_IF_MSG_ELSE": "αλλιώς", - "CONTROLS_IF_IF_TOOLTIP": "Προσθέτει, αφαιρεί ή αναδιατάσσει τα τμήματα για να αναδιαμορφώσει αυτό το μπλοκ «εάν».", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Πρόσθετει μια κατάσταση/συνθήκη στο μπλοκ «εάν».", - "CONTROLS_IF_ELSE_TOOLTIP": "Προσθέτει μια τελική κατάσταση/συνθήκη, που πιάνει όλες τις άλλες περιπτώσεις, στο μπλοκ «εάν».", - "IOS_OK": "ΟΚ", - "IOS_CANCEL": "Ακυρώστε", - "IOS_ERROR": "Σφάλμα", - "IOS_PROCEDURES_INPUTS": "ΕΙΣΑΓΟΜΕΝΑ ΣΤΟΙΧΕΙΑ", - "IOS_PROCEDURES_ADD_INPUT": "Εισάγετε στοιχείο", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Να επιτρέπονται οι δηλώσεις", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Αυτή η παράμετρος απαιτεί διπλή εισαγωγή στοιχείων", - "IOS_VARIABLES_ADD_VARIABLE": "Προσθέσατε Μεταβλητή", - "IOS_VARIABLES_ADD_BUTTON": "Προσθήκη", - "IOS_VARIABLES_RENAME_BUTTON": "Αλλάξετε το όνομα του αρχείου", - "IOS_VARIABLES_DELETE_BUTTON": "Διαγραφή", - "IOS_VARIABLES_VARIABLE_NAME": "Όνομα μεταβλητής", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Δεν μπορείτε να χρησιμοποιήσετε μια μεταβλητή δίχως όνομα", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Επιστρέφει αληθής αν και οι δύο είσοδοι είναι ίσες μεταξύ τους.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Επιστρέφει αληθής αν και οι δύο είσοδοι δεν είναι ίσες μεταξύ τους.", - "LOGIC_COMPARE_TOOLTIP_LT": "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μικρότερη από τη δεύτερη είσοδο.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μικρότερη από ή ίση με τη δεύτερη είσοδο.", - "LOGIC_COMPARE_TOOLTIP_GT": "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μεγαλύτερη από τη δεύτερη είσοδο.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Επιστρέφει αληθής αν η πρώτη είσοδος είναι μικρότερη ή ίση με τη δεύτερη είσοδο.", - "LOGIC_OPERATION_TOOLTIP_AND": "Επιστρέφει αληθής αν και οι δύο είσοδοι είναι αληθής.", - "LOGIC_OPERATION_AND": "και", - "LOGIC_OPERATION_TOOLTIP_OR": "Επιστρέφει αληθής αν τουλάχιστον μια από τις εισόδους είναι αληθής.", - "LOGIC_OPERATION_OR": "ή", - "LOGIC_NEGATE_TITLE": "όχι %1", - "LOGIC_NEGATE_TOOLTIP": "Επιστρέφει αληθής αν η είσοδος είναι ψευδής. Επιστρέφει ψευδής αν η είσοδος είναι αληθής.", - "LOGIC_BOOLEAN_TRUE": "αληθής", - "LOGIC_BOOLEAN_FALSE": "ψευδής", - "LOGIC_BOOLEAN_TOOLTIP": "Επιστρέφει είτε αληθής είτε ψευδής.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "κενό", - "LOGIC_NULL_TOOLTIP": "Επιστρέφει κενό.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "έλεγχος", - "LOGIC_TERNARY_IF_TRUE": "εάν είναι αληθής", - "LOGIC_TERNARY_IF_FALSE": "εάν είναι ψευδής", - "LOGIC_TERNARY_TOOLTIP": "Ελέγχει την κατάσταση/συνθήκη στον «έλεγχο». Αν η κατάσταση/συνθήκη είναι αληθής, επιστρέφει την τιμή «εάν αληθής», διαφορετικά επιστρέφει την τιμή «εάν ψευδής».", - "MATH_NUMBER_HELPURL": "https://el.wikipedia.org/wiki/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82", - "MATH_NUMBER_TOOLTIP": "Ένας αριθμός.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^ ύψωση σε δύναμη", - "MATH_TRIG_SIN": "ημ", - "MATH_TRIG_COS": "συν", - "MATH_TRIG_TAN": "εφ", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://el.wikipedia.org/wiki/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CE%B7%CF%84%CE%B9%CE%BA%CE%AE", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Επιστρέφει το άθροισμα των δύο αριθμών.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Επιστρέφει τη διαφορά των δύο αριθμών.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Επιστρέφει το γινόμενο των δύο αριθμών.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Επιστρέφει το πηλίκο των δύο αριθμών.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Επιστρέφει τον πρώτο αριθμό υψωμένο στη δύναμη του δεύτερου αριθμού.", - "MATH_SINGLE_HELPURL": "https://el.wikipedia.org/wiki/%CE%A4%CE%B5%CF%84%CF%81%CE%B1%CE%B3%CF%89%CE%BD%CE%B9%CE%BA%CE%AE_%CF%81%CE%AF%CE%B6%CE%B1", - "MATH_SINGLE_OP_ROOT": "τετραγωνική ρίζα", - "MATH_SINGLE_TOOLTIP_ROOT": "Επιστρέφει την τετραγωνική ρίζα ενός αριθμού.", - "MATH_SINGLE_OP_ABSOLUTE": "απόλυτη", - "MATH_SINGLE_TOOLTIP_ABS": "Επιστρέφει την απόλυτη τιμή ενός αριθμού.", - "MATH_SINGLE_TOOLTIP_NEG": "Επιστρέφει την αρνητική ενός αριθμού.", - "MATH_SINGLE_TOOLTIP_LN": "Επιστρέφει τον νεπέρειο λογάριθμο ενός αριθμού.", - "MATH_SINGLE_TOOLTIP_LOG10": "Επιστρέφει τον λογάριθμο με βάση το 10 ενός αριθμού.", - "MATH_SINGLE_TOOLTIP_EXP": "Επιστρέφει το e υψωμένο στη δύναμη ενός αριθμού.", - "MATH_SINGLE_TOOLTIP_POW10": "Επιστρέφει το 10 υψωμένο στη δύναμη ενός αριθμού.", - "MATH_TRIG_HELPURL": "https://el.wikipedia.org/wiki/%CE%A4%CF%81%CE%B9%CE%B3%CF%89%CE%BD%CE%BF%CE%BC%CE%B5%CF%84%CF%81%CE%B9%CE%BA%CE%AE_%CF%83%CF%85%CE%BD%CE%AC%CF%81%CF%84%CE%B7%CF%83%CE%B7", - "MATH_TRIG_TOOLTIP_SIN": "Επιστρέφει το ημίτονο ενός βαθμού (όχι ακτινίου).", - "MATH_TRIG_TOOLTIP_COS": "Επιστρέφει το συνημίτονο ενός βαθμού (όχι ακτινίου).", - "MATH_TRIG_TOOLTIP_TAN": "Επιστρέφει την εφαπτομένη ενός βαθμού (όχι ακτινίου).", - "MATH_TRIG_TOOLTIP_ASIN": "Επιστρέφει το τόξο ημίτονου ενός αριθμού.", - "MATH_TRIG_TOOLTIP_ACOS": "Επιστρέφει το τόξο συνημίτονου ενός αριθμού.", - "MATH_TRIG_TOOLTIP_ATAN": "Επιστρέφει το τόξο εφαπτομένης ενός αριθμού.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Επιστρέφει μία από τις κοινές σταθερές: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...), ή ∞ (άπειρο).", - "MATH_IS_EVEN": "είναι άρτιος", - "MATH_IS_ODD": "είναι περιττός", - "MATH_IS_PRIME": "είναι πρώτος", - "MATH_IS_WHOLE": "είναι ακέραιος", - "MATH_IS_POSITIVE": "είναι θετικός", - "MATH_IS_NEGATIVE": "είναι αρνητικός", - "MATH_IS_DIVISIBLE_BY": "είναι διαιρετός από το", - "MATH_IS_TOOLTIP": "Ελέγχει αν ένας αριθμός είναι άρτιος, περιττός, πρώτος, ακέραιος, θετικός, αρνητικός, ή αν είναι διαιρετός από έναν ορισμένο αριθμό. Επιστρέφει αληθής ή ψευδής.", - "MATH_CHANGE_HELPURL": "https://el.wikipedia.org/wiki/%CE%A0%CF%81%CF%8C%CF%83%CE%B8%CE%B5%CF%83%CE%B7", - "MATH_CHANGE_TITLE": "άλλαξε %1 από %2", - "MATH_CHANGE_TOOLTIP": "Προσθέτει έναν αριθμό στη μεταβλητή «%1».", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Στρογγυλοποιεί έναν αριθμό προς τα πάνω ή προς τα κάτω.", - "MATH_ROUND_OPERATOR_ROUND": "στρογγυλοποίησε", - "MATH_ROUND_OPERATOR_ROUNDUP": "στρογγυλοποίησε προς τα πάνω", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "στρογγυλοποίησε προς τα κάτω", - "MATH_ONLIST_OPERATOR_SUM": "άθροισμα λίστας", - "MATH_ONLIST_TOOLTIP_SUM": "Επιστρέφει το άθροισμα όλων των αριθμών στη λίστα.", - "MATH_ONLIST_OPERATOR_MIN": "μικρότερος λίστας", - "MATH_ONLIST_TOOLTIP_MIN": "Επιστρέφει τον μικρότερο αριθμό στη λίστα.", - "MATH_ONLIST_OPERATOR_MAX": "μεγαλύτερος λίστας", - "MATH_ONLIST_TOOLTIP_MAX": "Επιστρέφει τον μεγαλύτερο αριθμό στη λίστα.", - "MATH_ONLIST_OPERATOR_AVERAGE": "μέσος όρος λίστας", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Επιστρέφει τον αριθμητικό μέσο όρο από τις αριθμητικές τιμές στη λίστα.", - "MATH_ONLIST_OPERATOR_MEDIAN": "διάμεσος λίστας", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Επιστρέφει τον διάμεσο της λίστας.", - "MATH_ONLIST_OPERATOR_MODE": "μορφές λίστας", - "MATH_ONLIST_TOOLTIP_MODE": "Επιστρέφει μια λίστα με τα πιο κοινά στοιχεία στη λίστα.", - "MATH_ONLIST_OPERATOR_STD_DEV": "τυπική απόκλιση λίστας", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Επιστρέφει την τυπική απόκλιση της λίστας.", - "MATH_ONLIST_OPERATOR_RANDOM": "τυχαίο στοιχείο λίστας", - "MATH_ONLIST_TOOLTIP_RANDOM": "Επιστρέφει ένα τυχαίο στοιχείο από τη λίστα.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "υπόλοιπο της %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Επιστρέφει το υπόλοιπο της διαίρεσης των δύο αριθμών.", - "MATH_CONSTRAIN_TITLE": "περιόρισε %1 χαμηλή %2 υψηλή %3", - "MATH_CONSTRAIN_TOOLTIP": "Περιορίζει έναν αριθμό μεταξύ των προβλεπόμενων ορίων (χωρίς αποκλεισμούς).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "τυχαίος ακέραιος από το %1 έως το %2", - "MATH_RANDOM_INT_TOOLTIP": "Επιστρέφει έναν τυχαίο ακέραιο αριθμό μεταξύ δύο συγκεκριμένων ορίων (εντός - συμπεριλαμβανομένων και των ακραίων τιμών).", - "MATH_RANDOM_FLOAT_HELPURL": "https://el.wikipedia.org/wiki/%CE%93%CE%B5%CE%BD%CE%BD%CE%AE%CF%84%CF%81%CE%B9%CE%B1_%CE%A4%CF%85%CF%87%CE%B1%CE%AF%CF%89%CE%BD_%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8E%CE%BD", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "τυχαίο κλάσμα", - "MATH_RANDOM_FLOAT_TOOLTIP": "Επιστρέψει ένα τυχαία κλάσμα μεταξύ 0,0 (κλειστό) και 1,0 (ανοικτό).", - "TEXT_TEXT_HELPURL": "https://el.wikipedia.org/wiki/%CE%A3%CF%85%CE%BC%CE%B2%CE%BF%CE%BB%CE%BF%CF%83%CE%B5%CE%B9%CF%81%CE%AC", - "TEXT_TEXT_TOOLTIP": "Ένα γράμμα, μια λέξη ή μια γραμμή κειμένου.", - "TEXT_JOIN_TITLE_CREATEWITH": "δημιούργησε κείμενο με", - "TEXT_JOIN_TOOLTIP": "Δημιουργεί ένα κομμάτι κειμένου ενώνοντας έναν απεριόριστο αριθμό αντικειμένων.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "ένωσε", - "TEXT_CREATE_JOIN_TOOLTIP": "Προσθέτει, αφαιρεί ή αναδιατάσσει τους τομείς για να αναδιαμορφώσει αυτό το μπλοκ κειμένου.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Προσθέτει ένα στοιχείο στο κείμενο.", - "TEXT_APPEND_TITLE": "έως %1 ανάθεσε κείμενο %2", - "TEXT_APPEND_TOOLTIP": "Αναθέτει κείμενο στη μεταβλητή «%1».", - "TEXT_LENGTH_TITLE": "το μήκος του %1", - "TEXT_LENGTH_TOOLTIP": "Επιστρέφει το πλήθος των γραμμάτων (συμπεριλαμβανομένων και των κενών διαστημάτων) στο παρεχόμενο κείμενο.", - "TEXT_ISEMPTY_TITLE": "το %1 είναι κενό", - "TEXT_ISEMPTY_TOOLTIP": "Επιστρέφει αληθής αν το παρεχόμενο κείμενο είναι κενό.", - "TEXT_INDEXOF_TOOLTIP": "Επιστρέφει τον δείκτη της πρώτης/τελευταίας εμφάνισης του πρώτου κειμένου στο δεύτερο κείμενο. Επιστρέφει τιμή %1, αν δε βρει το κείμενο.", - "TEXT_INDEXOF_TITLE": "στο κείμενο %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "βρες την πρώτη εμφάνιση του κειμένου", - "TEXT_INDEXOF_OPERATOR_LAST": "βρες την τελευταία εμφάνιση του κειμένου", - "TEXT_CHARAT_TITLE": "στο κείμενο %1 %2", - "TEXT_CHARAT_FROM_START": "πάρε το γράμμα #", - "TEXT_CHARAT_FROM_END": "πάρε το γράμμα # από το τέλος", - "TEXT_CHARAT_FIRST": "πάρε το πρώτο γράμμα", - "TEXT_CHARAT_LAST": "πάρε το τελευταίο γράμμα", - "TEXT_CHARAT_RANDOM": "πάρε τυχαίο γράμμα", - "TEXT_CHARAT_TOOLTIP": "Επιστρέφει το γράμμα στην καθορισμένη θέση.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Επιστρέφει ένα συγκεκριμένο τμήμα του κειμένου.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "στο κείμενο", - "TEXT_GET_SUBSTRING_START_FROM_START": "πάρε τη δευτερεύουσα συμβολοσειρά από το # γράμμα", - "TEXT_GET_SUBSTRING_START_FROM_END": "πάρε τη δευτερεύουσα συμβολοσειρά από το # γράμμα από το τέλος", - "TEXT_GET_SUBSTRING_START_FIRST": "πάρε τη δευτερεύουσα συμβολοσειρά από το πρώτο γράμμα", - "TEXT_GET_SUBSTRING_END_FROM_START": "μέχρι το # γράμμα", - "TEXT_GET_SUBSTRING_END_FROM_END": "μέχρι το # γράμμα από το τέλος", - "TEXT_GET_SUBSTRING_END_LAST": "μέχρι το τελευταίο γράμμα", - "TEXT_CHANGECASE_TOOLTIP": "Επιστρέφει ένα αντίγραφο του κειμένου σε διαφορετική μορφή γραμμάτων.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "σε ΚΕΦΑΛΑΙΑ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "σε πεζά", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "σε Λέξεις Με Πρώτα Κεφαλαία", - "TEXT_TRIM_TOOLTIP": "Επιστρέφει ένα αντίγραφο του κειμένου με αφαιρεμένα τα κενά από το ένα ή και τα δύο άκρα.", - "TEXT_TRIM_OPERATOR_BOTH": "περίκοψε τα κενά και από τις δυο πλευρές του", - "TEXT_TRIM_OPERATOR_LEFT": "περίκοψε τα κενά από την αριστερή πλευρά του", - "TEXT_TRIM_OPERATOR_RIGHT": "περίκοψε τα κενά από την δεξιά πλευρά του", - "TEXT_PRINT_TITLE": "εκτύπωσε %1", - "TEXT_PRINT_TOOLTIP": "Εκτυπώνει το καθορισμένο κείμενο, αριθμό ή άλλη τιμή.", - "TEXT_PROMPT_TYPE_TEXT": "πρότρεψε με μήνυμα για να δοθεί κείμενο", - "TEXT_PROMPT_TYPE_NUMBER": "πρότρεψε με μήνυμα για να δοθεί αριθμός", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Δημιουργεί προτροπή για τον χρήστη για να δώσει ένα αριθμό.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Δημιουργεί προτροπή για το χρήστη για να δώσει κάποιο κείμενο.", - "TEXT_COUNT_MESSAGE0": "αριθμός %1 σε %2", - "TEXT_COUNT_TOOLTIP": "Μετρά πόσες φορές κάποιο κείμενο εμφανίζεται μέσα σε ένα άλλο κείμενο.", - "TEXT_REPLACE_MESSAGE0": "αντικαταστήσετε το %1 με %2 σε %3", - "TEXT_REPLACE_TOOLTIP": "Αντικαταστήστε όλα τα ήδη υπάρχοντα στοιχεία μέρους του κειμένου με κάποιο άλλο κείμενο", - "TEXT_REVERSE_MESSAGE0": "ανάκληση %1", - "TEXT_REVERSE_TOOLTIP": "Αναγραμματισμός των χαρακτήρων του κειμένου", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "δημιούργησε κενή λίστα", - "LISTS_CREATE_EMPTY_TOOLTIP": "Επιστρέφει μια λίστα, με μήκος 0, η οποία δεν περιέχει εγγραφές δεδομένων", - "LISTS_CREATE_WITH_TOOLTIP": "Δημιουργεί λίστα με οποιονδήποτε αριθμό αντικειμένων.", - "LISTS_CREATE_WITH_INPUT_WITH": "δημιούργησε λίστα με", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "λίστα", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Προσθέτει, αφαιρεί ή αναδιατάσσει τα τμήματα για να αναδιαμορφώσει αυτό το μπλοκ λίστας.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Προσθέτει αντικείμενο στη λίστα.", - "LISTS_REPEAT_HELPURL": "Blockly", - "LISTS_REPEAT_TOOLTIP": "Δημιουργεί μια λίστα που αποτελείται από την δεδομένη τιμή που επαναλαμβάνεται για συγκεκριμένο αριθμό επαναλήψεων.", - "LISTS_REPEAT_TITLE": "δημιούργησε λίστα με το στοιχείο %1 να επαναλαμβάνεται %2 φορές", - "LISTS_LENGTH_HELPURL": "Blockly", - "LISTS_LENGTH_TITLE": "το μήκος του %1", - "LISTS_LENGTH_TOOLTIP": "Επιστρέφει το μήκος μιας λίστας.", - "LISTS_ISEMPTY_TITLE": "το %1 είναι κενό", - "LISTS_ISEMPTY_TOOLTIP": "Επιστρέφει αληθής αν η λίστα είναι κενή.", - "LISTS_INLIST": "στη λίστα", - "LISTS_INDEX_OF_HELPURL": "Blockly", - "LISTS_INDEX_OF_FIRST": "βρες την πρώτη εμφάνιση του στοιχείου", - "LISTS_INDEX_OF_LAST": "βρες την τελευταία εμφάνιση του στοιχείου", - "LISTS_INDEX_OF_TOOLTIP": "Επιστρέφει τον δείκτη της πρώτης/τελευταίας εμφάνισης του στοιχείου στη λίστα. Επιστρέφει τιμή %1, αν το στοιχείο δεν βρεθεί.", - "LISTS_GET_INDEX_GET": "πάρε", - "LISTS_GET_INDEX_GET_REMOVE": "πάρε και αφαίρεσε", - "LISTS_GET_INDEX_REMOVE": "αφαίρεσε", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# από το τέλος", - "LISTS_GET_INDEX_FIRST": "πρώτο", - "LISTS_GET_INDEX_LAST": "τελευταίο", - "LISTS_GET_INDEX_RANDOM": "τυχαίο", - "LISTS_INDEX_FROM_START_TOOLTIP": "Το %1 είναι το πρώτο στοιχείο.", - "LISTS_INDEX_FROM_END_TOOLTIP": "Το %1 είναι το τελευταίο στοιχείο.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Επιστρέφει το στοιχείο στην καθορισμένη θέση σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Επιστρέφει το πρώτο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Επιστρέφει το τελευταίο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Επιστρέφει ένα τυχαίο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Καταργεί και επιστρέφει το στοιχείο στην καθορισμένη θέση σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Καταργεί και επιστρέφει το πρώτο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Καταργεί και επιστρέφει το τελευταίο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Καταργεί και επιστρέφει ένα τυχαίο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Καταργεί το στοιχείο στην καθορισμένη θέση σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Καταργεί το πρώτο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Καταργεί το τελευταίο στοιχείο σε μια λίστα.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Καταργεί ένα τυχαίο στοιχείο σε μια λίστα.", - "LISTS_SET_INDEX_SET": "όρισε", - "LISTS_SET_INDEX_INSERT": "είσαγε στο", - "LISTS_SET_INDEX_INPUT_TO": "σε", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Ορίζει το στοιχείο στην καθορισμένη θέση σε μια λίστα.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Ορίζει το πρώτο στοιχείο σε μια λίστα.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Ορίζει το τελευταίο στοιχείο σε μια λίστα.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Ορίζει ένα τυχαίο στοιχείο σε μια λίστα.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Εισάγει το στοιχείο στην καθορισμένη θέση σε μια λίστα.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Εισάγει το στοιχείο στην αρχή μιας λίστας.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Αναθέτει το στοιχείο στο τέλος μιας λίστας.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Εισάγει το στοιχείο τυχαία σε μια λίστα.", - "LISTS_GET_SUBLIST_HELPURL": "Blockly", - "LISTS_GET_SUBLIST_START_FROM_START": "πάρε υπολίστα από #", - "LISTS_GET_SUBLIST_START_FROM_END": "πάρε υπολίστα από # από το τέλος", - "LISTS_GET_SUBLIST_START_FIRST": "πάρε υπολίστα από την αρχή", - "LISTS_GET_SUBLIST_END_FROM_START": "έως #", - "LISTS_GET_SUBLIST_END_FROM_END": "έως # από το τέλος", - "LISTS_GET_SUBLIST_END_LAST": "έως το τελευταίο", - "LISTS_GET_SUBLIST_TOOLTIP": "Δημιουργεί ένα αντίγραφο του καθορισμένου τμήματος μιας λίστας.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "επιλογή %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Επιλέξετε ένα αντίγραφο της λίστας.", - "LISTS_SORT_ORDER_ASCENDING": "Αύξουσα", - "LISTS_SORT_ORDER_DESCENDING": "Φθίνουσα", - "LISTS_SORT_TYPE_NUMERIC": "αριθμητικό", - "LISTS_SORT_TYPE_TEXT": "Αλφαβητικά", - "LISTS_SORT_TYPE_IGNORECASE": "αλφαβητικά, αγνοήστε το στοιχείο", - "LISTS_SPLIT_LIST_FROM_TEXT": "κάνετε λίστα από το κείμενο", - "LISTS_SPLIT_TEXT_FROM_LIST": "κάνετε κείμενο από τη λίστα", - "LISTS_SPLIT_WITH_DELIMITER": "με διαχωριστικό", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Διαίρεση του κειμένου σε μια λίστα κειμένων, με σπάσιμο σε κάθε διαχωριστικό.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Ενώστε μια λίστα κειμένων σε ένα κείμενο, που χωρίζονται από ένα διαχωριστικό.", - "LISTS_REVERSE_MESSAGE0": "ανάκληση %1", - "LISTS_REVERSE_TOOLTIP": "Α", - "VARIABLES_GET_TOOLTIP": "Επιστρέφει την τιμή αυτής της μεταβλητής.", - "VARIABLES_GET_CREATE_SET": "Δημιούργησε «όρισε %1»", - "VARIABLES_SET": "όρισε %1 μέχρι το %2", - "VARIABLES_SET_TOOLTIP": "Ορίζει αυτή τη μεταβλητή να είναι ίση με την είσοδο.", - "VARIABLES_SET_CREATE_GET": "Δημιούργησε «πάρε %1»", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "στο", - "PROCEDURES_DEFNORETURN_PROCEDURE": "κάνε κάτι", - "PROCEDURES_BEFORE_PARAMS": "με:", - "PROCEDURES_CALL_BEFORE_PARAMS": "με:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Δημιουργεί μια συνάρτηση χωρίς έξοδο.", - "PROCEDURES_DEFNORETURN_COMMENT": "Περιγράψετε αυτήν την ιδιότητα..", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "επέστρεψε", - "PROCEDURES_DEFRETURN_TOOLTIP": "Δημιουργεί μια συνάρτηση με μια έξοδο.", - "PROCEDURES_ALLOW_STATEMENTS": "να επιτρέπονται οι δηλώσεις", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Προειδοποίηση: Αυτή η συνάρτηση έχει διπλότυπες παραμέτρους.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://el.wikipedia.org/wiki/%CE%94%CE%B9%CE%B1%CE%B4%CE%B9%CE%BA%CE%B1%CF%83%CE%AF%CE%B1_%28%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Εκτελεί την ορισμένη από τον χρήστη συνάρτηση «%1».", - "PROCEDURES_CALLRETURN_HELPURL": "https://el.wikipedia.org/wiki/%CE%94%CE%B9%CE%B1%CE%B4%CE%B9%CE%BA%CE%B1%CF%83%CE%AF%CE%B1_%28%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "Εκτελεί την ορισμένη από τον χρήστη συνάρτηση «%1» και χρησιμοποίησε την έξοδό της.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "είσοδοι", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Προσθέτει, αφαιρεί ή αναδιατάσσει εισόδους σε αυτήν τη λειτουργία", - "PROCEDURES_MUTATORARG_TITLE": "όνομα εισόδου:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Πρόσθεσε μια είσοδος στη συνάρτηση", - "PROCEDURES_HIGHLIGHT_DEF": "Επισημάνετε τον ορισμό συνάρτησης", - "PROCEDURES_CREATE_DO": "Δημιούργησε «%1»", - "PROCEDURES_IFRETURN_TOOLTIP": "Αν μια τιμή είναι αληθής, τότε επιστρέφει τη δεύτερη τιμή.", - "PROCEDURES_IFRETURN_WARNING": "Προειδοποίηση: Αυτό το μπλοκ μπορεί να χρησιμοποιηθεί μόνο στον ορισμό μιας συνάρτησης.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Πείτε κάτι...", - "COLLAPSED_WARNINGS_WARNING": "Υπάρχουν προειδοποιήσεις για συμπτυγμένα μπλοκ." -} diff --git a/lib/blockly/msg/json/en-gb.json b/lib/blockly/msg/json/en-gb.json deleted file mode 100644 index 42ca12b..0000000 --- a/lib/blockly/msg/json/en-gb.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Andibing", - "Codynguyen1116", - "Shirayuki", - "Aefgh39622" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "TODAY": "Today", - "DUPLICATE_BLOCK": "Duplicate", - "ADD_COMMENT": "Add Comment", - "REMOVE_COMMENT": "Remove Comment", - "EXTERNAL_INPUTS": "External Inputs", - "INLINE_INPUTS": "Inline Inputs", - "DELETE_BLOCK": "Delete Block", - "DELETE_X_BLOCKS": "Delete %1 Blocks", - "DELETE_ALL_BLOCKS": "Delete all %1 blocks?", - "CLEAN_UP": "Clean up Blocks", - "COLLAPSE_BLOCK": "Collapse Block", - "COLLAPSE_ALL": "Collapse Blocks", - "EXPAND_BLOCK": "Expand Block", - "EXPAND_ALL": "Expand Blocks", - "DISABLE_BLOCK": "Disable Block", - "ENABLE_BLOCK": "Enable Block", - "HELP": "Help", - "UNDO": "Undo", - "REDO": "Redo", - "CHANGE_VALUE_TITLE": "Change value:", - "RENAME_VARIABLE": "Rename variable...", - "RENAME_VARIABLE_TITLE": "Rename all '%1' variables to:", - "NEW_VARIABLE": "Create variable...", - "NEW_VARIABLE_TITLE": "New variable name:", - "VARIABLE_ALREADY_EXISTS": "A variable named '%1' already exists.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "A variable named '%1' already exists for another variable of type '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Delete %1 uses of the '%2' variable?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Can't delete the variable '%1' because it's part of the definition of the function '%2'", - "DELETE_VARIABLE": "Delete the '%1' variable", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Colour", - "COLOUR_PICKER_TOOLTIP": "Choose a colour from the palette.", - "COLOUR_RANDOM_TITLE": "random colour", - "COLOUR_RANDOM_TOOLTIP": "Choose a colour at random.", - "COLOUR_RGB_TITLE": "colour with", - "COLOUR_RGB_RED": "red", - "COLOUR_RGB_GREEN": "green", - "COLOUR_RGB_BLUE": "blue", - "COLOUR_RGB_TOOLTIP": "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.", - "COLOUR_BLEND_TITLE": "blend", - "COLOUR_BLEND_COLOUR1": "colour 1", - "COLOUR_BLEND_COLOUR2": "colour 2", - "COLOUR_BLEND_RATIO": "ratio", - "COLOUR_BLEND_TOOLTIP": "Blends two colours together with a given ratio (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repeat %1 times", - "CONTROLS_REPEAT_INPUT_DO": "do", - "CONTROLS_REPEAT_TOOLTIP": "Do some statements several times.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repeat while", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repeat until", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "While a value is true, then do some statements.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "While a value is false, then do some statements.", - "CONTROLS_FOR_TOOLTIP": "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.", - "CONTROLS_FOR_TITLE": "count with %1 from %2 to %3 by %4", - "CONTROLS_FOREACH_TITLE": "for each item %1 in list %2", - "CONTROLS_FOREACH_TOOLTIP": "For each item in a list, set the variable '%1' to the item, and then do some statements.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "break out of loop", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continue with next iteration of loop", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Break out of the containing loop.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Skip the rest of this loop, and continue with the next iteration.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Warning: This block may only be used within a loop.", - "CONTROLS_IF_TOOLTIP_1": "If a value is true, then do some statements.", - "CONTROLS_IF_TOOLTIP_2": "If a value is true, then do the first block of statements. Otherwise, do the second block of statements.", - "CONTROLS_IF_TOOLTIP_3": "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.", - "CONTROLS_IF_TOOLTIP_4": "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.", - "CONTROLS_IF_MSG_IF": "if", - "CONTROLS_IF_MSG_ELSEIF": "else if", - "CONTROLS_IF_MSG_ELSE": "else", - "CONTROLS_IF_IF_TOOLTIP": "Add, remove, or reorder sections to reconfigure this if block.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Add a condition to the if block.", - "CONTROLS_IF_ELSE_TOOLTIP": "Add a final, catch-all condition to the if block.", - "IOS_OK": "OK", - "IOS_CANCEL": "Cancel", - "IOS_ERROR": "Error", - "IOS_PROCEDURES_INPUTS": "INPUTS", - "IOS_PROCEDURES_ADD_INPUT": "+ Add Input", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Allow statements", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "This function has duplicate inputs.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Add Variable", - "IOS_VARIABLES_ADD_BUTTON": "Add", - "IOS_VARIABLES_RENAME_BUTTON": "Rename", - "IOS_VARIABLES_DELETE_BUTTON": "Delete", - "IOS_VARIABLES_VARIABLE_NAME": "Variable name", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "You can't use an empty variable name.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Return true if both inputs equal each other.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Return true if both inputs are not equal to each other.", - "LOGIC_COMPARE_TOOLTIP_LT": "Return true if the first input is smaller than the second input.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Return true if the first input is smaller than or equal to the second input.", - "LOGIC_COMPARE_TOOLTIP_GT": "Return true if the first input is greater than the second input.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Return true if the first input is greater than or equal to the second input.", - "LOGIC_OPERATION_TOOLTIP_AND": "Return true if both inputs are true.", - "LOGIC_OPERATION_AND": "and", - "LOGIC_OPERATION_TOOLTIP_OR": "Return true if at least one of the inputs is true.", - "LOGIC_OPERATION_OR": "or", - "LOGIC_NEGATE_TITLE": "not %1", - "LOGIC_NEGATE_TOOLTIP": "Returns true if the input is false. Returns false if the input is true.", - "LOGIC_BOOLEAN_TRUE": "true", - "LOGIC_BOOLEAN_FALSE": "false", - "LOGIC_BOOLEAN_TOOLTIP": "Returns either true or false.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Returns null.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "if true", - "LOGIC_TERNARY_IF_FALSE": "if false", - "LOGIC_TERNARY_TOOLTIP": "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "A number.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Return the sum of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Return the difference of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Return the product of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Return the quotient of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Return the first number raised to the power of the second number.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "square root", - "MATH_SINGLE_TOOLTIP_ROOT": "Return the square root of a number.", - "MATH_SINGLE_OP_ABSOLUTE": "absolute", - "MATH_SINGLE_TOOLTIP_ABS": "Return the absolute value of a number.", - "MATH_SINGLE_TOOLTIP_NEG": "Return the negation of a number.", - "MATH_SINGLE_TOOLTIP_LN": "Return the natural logarithm of a number.", - "MATH_SINGLE_TOOLTIP_LOG10": "Return the base 10 logarithm of a number.", - "MATH_SINGLE_TOOLTIP_EXP": "Return e to the power of a number.", - "MATH_SINGLE_TOOLTIP_POW10": "Return 10 to the power of a number.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Return the sine of a degree (not radian).", - "MATH_TRIG_TOOLTIP_COS": "Return the cosine of a degree (not radian).", - "MATH_TRIG_TOOLTIP_TAN": "Return the tangent of a degree (not radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Return the arcsine of a number.", - "MATH_TRIG_TOOLTIP_ACOS": "Return the arccosine of a number.", - "MATH_TRIG_TOOLTIP_ATAN": "Return the arctangent of a number.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "is even", - "MATH_IS_ODD": "is odd", - "MATH_IS_PRIME": "is prime", - "MATH_IS_WHOLE": "is whole", - "MATH_IS_POSITIVE": "is positive", - "MATH_IS_NEGATIVE": "is negative", - "MATH_IS_DIVISIBLE_BY": "is divisible by", - "MATH_IS_TOOLTIP": "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "change %1 by %2", - "MATH_CHANGE_TOOLTIP": "Add a number to variable '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Round a number up or down.", - "MATH_ROUND_OPERATOR_ROUND": "round", - "MATH_ROUND_OPERATOR_ROUNDUP": "round up", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "round down", - "MATH_ONLIST_OPERATOR_SUM": "sum of list", - "MATH_ONLIST_TOOLTIP_SUM": "Return the sum of all the numbers in the list.", - "MATH_ONLIST_OPERATOR_MIN": "min of list", - "MATH_ONLIST_TOOLTIP_MIN": "Return the smallest number in the list.", - "MATH_ONLIST_OPERATOR_MAX": "max of list", - "MATH_ONLIST_TOOLTIP_MAX": "Return the largest number in the list.", - "MATH_ONLIST_OPERATOR_AVERAGE": "average of list", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Return the average (arithmetic mean) of the numeric values in the list.", - "MATH_ONLIST_OPERATOR_MEDIAN": "median of list", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Return the median number in the list.", - "MATH_ONLIST_OPERATOR_MODE": "modes of list", - "MATH_ONLIST_TOOLTIP_MODE": "Return a list of the most common item(s) in the list.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standard deviation of list", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Return the standard deviation of the list.", - "MATH_ONLIST_OPERATOR_RANDOM": "random item of list", - "MATH_ONLIST_TOOLTIP_RANDOM": "Return a random element from the list.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "remainder of %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Return the remainder from dividing the two numbers.", - "MATH_CONSTRAIN_TITLE": "constrain %1 low %2 high %3", - "MATH_CONSTRAIN_TOOLTIP": "Constrain a number to be between the specified limits (inclusive).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "random integer from %1 to %2", - "MATH_RANDOM_INT_TOOLTIP": "Return a random integer between the two specified limits, inclusive.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "random fraction", - "MATH_RANDOM_FLOAT_TOOLTIP": "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "A letter, word, or line of text.", - "TEXT_JOIN_TITLE_CREATEWITH": "create text with", - "TEXT_JOIN_TOOLTIP": "Create a piece of text by joining together any number of items.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "join", - "TEXT_CREATE_JOIN_TOOLTIP": "Add, remove, or reorder sections to reconfigure this text block.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Add an item to the text.", - "TEXT_APPEND_TITLE": "to %1 append text %2", - "TEXT_APPEND_TOOLTIP": "Append some text to variable '%1'.", - "TEXT_LENGTH_TITLE": "length of %1", - "TEXT_LENGTH_TOOLTIP": "Returns the number of letters (including spaces) in the provided text.", - "TEXT_ISEMPTY_TITLE": "%1 is empty", - "TEXT_ISEMPTY_TOOLTIP": "Returns true if the provided text is empty.", - "TEXT_INDEXOF_TOOLTIP": "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found.", - "TEXT_INDEXOF_TITLE": "in text %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "find first occurrence of text", - "TEXT_INDEXOF_OPERATOR_LAST": "find last occurrence of text", - "TEXT_CHARAT_TITLE": "in text %1 %2", - "TEXT_CHARAT_FROM_START": "get letter #", - "TEXT_CHARAT_FROM_END": "get letter # from end", - "TEXT_CHARAT_FIRST": "get first letter", - "TEXT_CHARAT_LAST": "get last letter", - "TEXT_CHARAT_RANDOM": "get random letter", - "TEXT_CHARAT_TOOLTIP": "Returns the letter at the specified position.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Returns a specified portion of the text.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in text", - "TEXT_GET_SUBSTRING_START_FROM_START": "get substring from letter #", - "TEXT_GET_SUBSTRING_START_FROM_END": "get substring from letter # from end", - "TEXT_GET_SUBSTRING_START_FIRST": "get substring from first letter", - "TEXT_GET_SUBSTRING_END_FROM_START": "to letter #", - "TEXT_GET_SUBSTRING_END_FROM_END": "to letter # from end", - "TEXT_GET_SUBSTRING_END_LAST": "to last letter", - "TEXT_CHANGECASE_TOOLTIP": "Return a copy of the text in a different case.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "to UPPER CASE", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "to lower case", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "to Title Case", - "TEXT_TRIM_TOOLTIP": "Return a copy of the text with spaces removed from one or both ends.", - "LISTS_SORT_ORDER_DESCENDING": "descendente" -} diff --git a/lib/blockly/msg/json/en.json b/lib/blockly/msg/json/en.json deleted file mode 100644 index f231171..0000000 --- a/lib/blockly/msg/json/en.json +++ /dev/null @@ -1,407 +0,0 @@ -{ - "@metadata": { - "author": "Ellen Spertus ", - "lastupdated": "2019-11-22 18:18:35.359917", - "locale": "en", - "messagedocumentation" : "qqq" - }, - "VARIABLES_DEFAULT_NAME": "item", - "UNNAMED_KEY": "unnamed", - "TODAY": "Today", - "DUPLICATE_BLOCK": "Duplicate", - "ADD_COMMENT": "Add Comment", - "REMOVE_COMMENT": "Remove Comment", - "DUPLICATE_COMMENT": "Duplicate Comment", - "EXTERNAL_INPUTS": "External Inputs", - "INLINE_INPUTS": "Inline Inputs", - "DELETE_BLOCK": "Delete Block", - "DELETE_X_BLOCKS": "Delete %1 Blocks", - "DELETE_ALL_BLOCKS": "Delete all %1 blocks?", - "CLEAN_UP": "Clean up Blocks", - "COLLAPSE_BLOCK": "Collapse Block", - "COLLAPSE_ALL": "Collapse Blocks", - "EXPAND_BLOCK": "Expand Block", - "EXPAND_ALL": "Expand Blocks", - "DISABLE_BLOCK": "Disable Block", - "ENABLE_BLOCK": "Enable Block", - "HELP": "Help", - "UNDO": "Undo", - "REDO": "Redo", - "CHANGE_VALUE_TITLE": "Change value:", - "RENAME_VARIABLE": "Rename variable...", - "RENAME_VARIABLE_TITLE": "Rename all '%1' variables to:", - "NEW_VARIABLE": "Create variable...", - "NEW_STRING_VARIABLE": "Create string variable...", - "NEW_NUMBER_VARIABLE": "Create number variable...", - "NEW_COLOUR_VARIABLE": "Create colour variable...", - "NEW_VARIABLE_TYPE_TITLE": "New variable type:", - "NEW_VARIABLE_TITLE": "New variable name:", - "VARIABLE_ALREADY_EXISTS": "A variable named '%1' already exists.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "A variable named '%1' already exists for another type: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Delete %1 uses of the '%2' variable?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Can't delete the variable '%1' because it's part of the definition of the function '%2'", - "DELETE_VARIABLE": "Delete the '%1' variable", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Choose a colour from the palette.", - "COLOUR_RANDOM_HELPURL": "http://randomcolour.com", - "COLOUR_RANDOM_TITLE": "random colour", - "COLOUR_RANDOM_TOOLTIP": "Choose a colour at random.", - "COLOUR_RGB_HELPURL": "https://www.december.com/html/spec/colorpercompact.html", - "COLOUR_RGB_TITLE": "colour with", - "COLOUR_RGB_RED": "red", - "COLOUR_RGB_GREEN": "green", - "COLOUR_RGB_BLUE": "blue", - "COLOUR_RGB_TOOLTIP": "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.", - "COLOUR_BLEND_HELPURL": "https://meyerweb.com/eric/tools/color-blend/#:::rgbp", - "COLOUR_BLEND_TITLE": "blend", - "COLOUR_BLEND_COLOUR1": "colour 1", - "COLOUR_BLEND_COLOUR2": "colour 2", - "COLOUR_BLEND_RATIO": "ratio", - "COLOUR_BLEND_TOOLTIP": "Blends two colours together with a given ratio (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repeat %1 times", - "CONTROLS_REPEAT_INPUT_DO": "do", - "CONTROLS_REPEAT_TOOLTIP": "Do some statements several times.", - "CONTROLS_WHILEUNTIL_HELPURL": "https://github.com/google/blockly/wiki/Loops#repeat", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repeat while", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repeat until", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "While a value is true, then do some statements.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "While a value is false, then do some statements.", - "CONTROLS_FOR_HELPURL": "https://github.com/google/blockly/wiki/Loops#count-with", - "CONTROLS_FOR_TOOLTIP": "Have the variable '%1' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.", - "CONTROLS_FOR_TITLE": "count with %1 from %2 to %3 by %4", - "CONTROLS_FOREACH_HELPURL": "https://github.com/google/blockly/wiki/Loops#for-each", - "CONTROLS_FOREACH_TITLE": "for each item %1 in list %2", - "CONTROLS_FOREACH_TOOLTIP": "For each item in a list, set the variable '%1' to the item, and then do some statements.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "break out of loop", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continue with next iteration of loop", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Break out of the containing loop.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Skip the rest of this loop, and continue with the next iteration.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Warning: This block may only be used within a loop.", - "CONTROLS_IF_HELPURL": "https://github.com/google/blockly/wiki/IfElse", - "CONTROLS_IF_TOOLTIP_1": "If a value is true, then do some statements.", - "CONTROLS_IF_TOOLTIP_2": "If a value is true, then do the first block of statements. Otherwise, do the second block of statements.", - "CONTROLS_IF_TOOLTIP_3": "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.", - "CONTROLS_IF_TOOLTIP_4": "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.", - "CONTROLS_IF_MSG_IF": "if", - "CONTROLS_IF_MSG_ELSEIF": "else if", - "CONTROLS_IF_MSG_ELSE": "else", - "CONTROLS_IF_IF_TOOLTIP": "Add, remove, or reorder sections to reconfigure this if block.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Add a condition to the if block.", - "CONTROLS_IF_ELSE_TOOLTIP": "Add a final, catch-all condition to the if block.", - "IOS_OK": "OK", - "IOS_CANCEL": "Cancel", - "IOS_ERROR": "Error", - "IOS_PROCEDURES_INPUTS": "INPUTS", - "IOS_PROCEDURES_ADD_INPUT": "+ Add Input", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Allow statements", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "This function has duplicate inputs.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Add Variable", - "IOS_VARIABLES_ADD_BUTTON": "Add", - "IOS_VARIABLES_RENAME_BUTTON": "Rename", - "IOS_VARIABLES_DELETE_BUTTON": "Delete", - "IOS_VARIABLES_VARIABLE_NAME": "Variable name", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "You can't use an empty variable name.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Return true if both inputs equal each other.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Return true if both inputs are not equal to each other.", - "LOGIC_COMPARE_TOOLTIP_LT": "Return true if the first input is smaller than the second input.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Return true if the first input is smaller than or equal to the second input.", - "LOGIC_COMPARE_TOOLTIP_GT": "Return true if the first input is greater than the second input.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Return true if the first input is greater than or equal to the second input.", - "LOGIC_OPERATION_HELPURL": "https://github.com/google/blockly/wiki/Logic#logical-operations", - "LOGIC_OPERATION_TOOLTIP_AND": "Return true if both inputs are true.", - "LOGIC_OPERATION_AND": "and", - "LOGIC_OPERATION_TOOLTIP_OR": "Return true if at least one of the inputs is true.", - "LOGIC_OPERATION_OR": "or", - "LOGIC_NEGATE_HELPURL": "https://github.com/google/blockly/wiki/Logic#not", - "LOGIC_NEGATE_TITLE": "not %1", - "LOGIC_NEGATE_TOOLTIP": "Returns true if the input is false. Returns false if the input is true.", - "LOGIC_BOOLEAN_HELPURL": "https://github.com/google/blockly/wiki/Logic#values", - "LOGIC_BOOLEAN_TRUE": "true", - "LOGIC_BOOLEAN_FALSE": "false", - "LOGIC_BOOLEAN_TOOLTIP": "Returns either true or false.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Returns null.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "if true", - "LOGIC_TERNARY_IF_FALSE": "if false", - "LOGIC_TERNARY_TOOLTIP": "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "A number.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Return the sum of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Return the difference of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Return the product of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Return the quotient of the two numbers.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Return the first number raised to the power of the second number.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "square root", - "MATH_SINGLE_TOOLTIP_ROOT": "Return the square root of a number.", - "MATH_SINGLE_OP_ABSOLUTE": "absolute", - "MATH_SINGLE_TOOLTIP_ABS": "Return the absolute value of a number.", - "MATH_SINGLE_TOOLTIP_NEG": "Return the negation of a number.", - "MATH_SINGLE_TOOLTIP_LN": "Return the natural logarithm of a number.", - "MATH_SINGLE_TOOLTIP_LOG10": "Return the base 10 logarithm of a number.", - "MATH_SINGLE_TOOLTIP_EXP": "Return e to the power of a number.", - "MATH_SINGLE_TOOLTIP_POW10": "Return 10 to the power of a number.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Return the sine of a degree (not radian).", - "MATH_TRIG_TOOLTIP_COS": "Return the cosine of a degree (not radian).", - "MATH_TRIG_TOOLTIP_TAN": "Return the tangent of a degree (not radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Return the arcsine of a number.", - "MATH_TRIG_TOOLTIP_ACOS": "Return the arccosine of a number.", - "MATH_TRIG_TOOLTIP_ATAN": "Return the arctangent of a number.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "is even", - "MATH_IS_ODD": "is odd", - "MATH_IS_PRIME": "is prime", - "MATH_IS_WHOLE": "is whole", - "MATH_IS_POSITIVE": "is positive", - "MATH_IS_NEGATIVE": "is negative", - "MATH_IS_DIVISIBLE_BY": "is divisible by", - "MATH_IS_TOOLTIP": "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "change %1 by %2", - "MATH_CHANGE_TOOLTIP": "Add a number to variable '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Round a number up or down.", - "MATH_ROUND_OPERATOR_ROUND": "round", - "MATH_ROUND_OPERATOR_ROUNDUP": "round up", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "round down", - "MATH_ONLIST_HELPURL": "", - "MATH_ONLIST_OPERATOR_SUM": "sum of list", - "MATH_ONLIST_TOOLTIP_SUM": "Return the sum of all the numbers in the list.", - "MATH_ONLIST_OPERATOR_MIN": "min of list", - "MATH_ONLIST_TOOLTIP_MIN": "Return the smallest number in the list.", - "MATH_ONLIST_OPERATOR_MAX": "max of list", - "MATH_ONLIST_TOOLTIP_MAX": "Return the largest number in the list.", - "MATH_ONLIST_OPERATOR_AVERAGE": "average of list", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Return the average (arithmetic mean) of the numeric values in the list.", - "MATH_ONLIST_OPERATOR_MEDIAN": "median of list", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Return the median number in the list.", - "MATH_ONLIST_OPERATOR_MODE": "modes of list", - "MATH_ONLIST_TOOLTIP_MODE": "Return a list of the most common item(s) in the list.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standard deviation of list", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Return the standard deviation of the list.", - "MATH_ONLIST_OPERATOR_RANDOM": "random item of list", - "MATH_ONLIST_TOOLTIP_RANDOM": "Return a random element from the list.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "remainder of %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Return the remainder from dividing the two numbers.", - "MATH_CONSTRAIN_HELPURL": "https://en.wikipedia.org/wiki/Clamping_(graphics)", - "MATH_CONSTRAIN_TITLE": "constrain %1 low %2 high %3", - "MATH_CONSTRAIN_TOOLTIP": "Constrain a number to be between the specified limits (inclusive).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "random integer from %1 to %2", - "MATH_RANDOM_INT_TOOLTIP": "Return a random integer between the two specified limits, inclusive.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "random fraction", - "MATH_RANDOM_FLOAT_TOOLTIP": "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 of X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Return the arctangent of point (X, Y) in degrees from -180 to 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "A letter, word, or line of text.", - "TEXT_JOIN_HELPURL": "https://github.com/google/blockly/wiki/Text#text-creation", - "TEXT_JOIN_TITLE_CREATEWITH": "create text with", - "TEXT_JOIN_TOOLTIP": "Create a piece of text by joining together any number of items.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "join", - "TEXT_CREATE_JOIN_TOOLTIP": "Add, remove, or reorder sections to reconfigure this text block.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Add an item to the text.", - "TEXT_APPEND_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_APPEND_TITLE": "to %1 append text %2", - "TEXT_APPEND_TOOLTIP": "Append some text to variable '%1'.", - "TEXT_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_LENGTH_TITLE": "length of %1", - "TEXT_LENGTH_TOOLTIP": "Returns the number of letters (including spaces) in the provided text.", - "TEXT_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Text#checking-for-empty-text", - "TEXT_ISEMPTY_TITLE": "%1 is empty", - "TEXT_ISEMPTY_TOOLTIP": "Returns true if the provided text is empty.", - "TEXT_INDEXOF_HELPURL": "https://github.com/google/blockly/wiki/Text#finding-text", - "TEXT_INDEXOF_TOOLTIP": "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found.", - "TEXT_INDEXOF_TITLE": "in text %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "find first occurrence of text", - "TEXT_INDEXOF_OPERATOR_LAST": "find last occurrence of text", - "TEXT_CHARAT_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-text", - "TEXT_CHARAT_TITLE": "in text %1 %2", - "TEXT_CHARAT_FROM_START": "get letter #", - "TEXT_CHARAT_FROM_END": "get letter # from end", - "TEXT_CHARAT_FIRST": "get first letter", - "TEXT_CHARAT_LAST": "get last letter", - "TEXT_CHARAT_RANDOM": "get random letter", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "Returns the letter at the specified position.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Returns a specified portion of the text.", - "TEXT_GET_SUBSTRING_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in text", - "TEXT_GET_SUBSTRING_START_FROM_START": "get substring from letter #", - "TEXT_GET_SUBSTRING_START_FROM_END": "get substring from letter # from end", - "TEXT_GET_SUBSTRING_START_FIRST": "get substring from first letter", - "TEXT_GET_SUBSTRING_END_FROM_START": "to letter #", - "TEXT_GET_SUBSTRING_END_FROM_END": "to letter # from end", - "TEXT_GET_SUBSTRING_END_LAST": "to last letter", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_HELPURL": "https://github.com/google/blockly/wiki/Text#adjusting-text-case", - "TEXT_CHANGECASE_TOOLTIP": "Return a copy of the text in a different case.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "to UPPER CASE", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "to lower case", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "to Title Case", - "TEXT_TRIM_HELPURL": "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces", - "TEXT_TRIM_TOOLTIP": "Return a copy of the text with spaces removed from one or both ends.", - "TEXT_TRIM_OPERATOR_BOTH": "trim spaces from both sides of", - "TEXT_TRIM_OPERATOR_LEFT": "trim spaces from left side of", - "TEXT_TRIM_OPERATOR_RIGHT": "trim spaces from right side of", - "TEXT_PRINT_HELPURL": "https://github.com/google/blockly/wiki/Text#printing-text", - "TEXT_PRINT_TITLE": "print %1", - "TEXT_PRINT_TOOLTIP": "Print the specified text, number or other value.", - "TEXT_PROMPT_HELPURL": "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user", - "TEXT_PROMPT_TYPE_TEXT": "prompt for text with message", - "TEXT_PROMPT_TYPE_NUMBER": "prompt for number with message", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Prompt for user for a number.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Prompt for user for some text.", - "TEXT_COUNT_MESSAGE0": "count %1 in %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Count how many times some text occurs within some other text.", - "TEXT_REPLACE_MESSAGE0": "replace %1 with %2 in %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Replace all occurances of some text within some other text.", - "TEXT_REVERSE_MESSAGE0": "reverse %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Reverses the order of the characters in the text.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "create empty list", - "LISTS_CREATE_EMPTY_TOOLTIP": "Returns a list, of length 0, containing no data records", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Create a list with any number of items.", - "LISTS_CREATE_WITH_INPUT_WITH": "create list with", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "list", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Add, remove, or reorder sections to reconfigure this list block.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Add an item to the list.", - "LISTS_REPEAT_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_REPEAT_TOOLTIP": "Creates a list consisting of the given value repeated the specified number of times.", - "LISTS_REPEAT_TITLE": "create list with item %1 repeated %2 times", - "LISTS_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Lists#length-of", - "LISTS_LENGTH_TITLE": "length of %1", - "LISTS_LENGTH_TOOLTIP": "Returns the length of a list.", - "LISTS_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#is-empty", - "LISTS_ISEMPTY_TITLE": "%1 is empty", - "LISTS_ISEMPTY_TOOLTIP": "Returns true if the list is empty.", - "LISTS_INLIST": "in list", - "LISTS_INDEX_OF_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", - "LISTS_INDEX_OF_FIRST": "find first occurrence of item", - "LISTS_INDEX_OF_LAST": "find last occurrence of item", - "LISTS_INDEX_OF_TOOLTIP": "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found.", - "LISTS_GET_INDEX_GET": "get", - "LISTS_GET_INDEX_GET_REMOVE": "get and remove", - "LISTS_GET_INDEX_REMOVE": "remove", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# from end", - "LISTS_GET_INDEX_FIRST": "first", - "LISTS_GET_INDEX_LAST": "last", - "LISTS_GET_INDEX_RANDOM": "random", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 is the first item.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 is the last item.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Returns the item at the specified position in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Returns the first item in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Returns the last item in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Returns a random item in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Removes and returns the item at the specified position in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Removes and returns the first item in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Removes and returns the last item in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Removes and returns a random item in a list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Removes the item at the specified position in a list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Removes the first item in a list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Removes the last item in a list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Removes a random item in a list.", - "LISTS_SET_INDEX_HELPURL": "https://github.com/google/blockly/wiki/Lists#in-list--set", - "LISTS_SET_INDEX_SET": "set", - "LISTS_SET_INDEX_INSERT": "insert at", - "LISTS_SET_INDEX_INPUT_TO": "as", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Sets the item at the specified position in a list.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Sets the first item in a list.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Sets the last item in a list.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Sets a random item in a list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Inserts the item at the specified position in a list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Inserts the item at the start of a list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Append the item to the end of a list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Inserts the item randomly in a list.", - "LISTS_GET_SUBLIST_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-a-sublist", - "LISTS_GET_SUBLIST_START_FROM_START": "get sub-list from #", - "LISTS_GET_SUBLIST_START_FROM_END": "get sub-list from # from end", - "LISTS_GET_SUBLIST_START_FIRST": "get sub-list from first", - "LISTS_GET_SUBLIST_END_FROM_START": "to #", - "LISTS_GET_SUBLIST_END_FROM_END": "to # from end", - "LISTS_GET_SUBLIST_END_LAST": "to last", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "Creates a copy of the specified portion of a list.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sort %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sort a copy of a list.", - "LISTS_SORT_ORDER_ASCENDING": "ascending", - "LISTS_SORT_ORDER_DESCENDING": "descending", - "LISTS_SORT_TYPE_NUMERIC": "numeric", - "LISTS_SORT_TYPE_TEXT": "alphabetic", - "LISTS_SORT_TYPE_IGNORECASE": "alphabetic, ignore case", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "make list from text", - "LISTS_SPLIT_TEXT_FROM_LIST": "make text from list", - "LISTS_SPLIT_WITH_DELIMITER": "with delimiter", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Split text into a list of texts, breaking at each delimiter.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Join a list of texts into one text, separated by a delimiter.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "reverse %1", - "LISTS_REVERSE_TOOLTIP": "Reverse a copy of a list.", - "ORDINAL_NUMBER_SUFFIX": "", - "VARIABLES_GET_HELPURL": "https://github.com/google/blockly/wiki/Variables#get", - "VARIABLES_GET_TOOLTIP": "Returns the value of this variable.", - "VARIABLES_GET_CREATE_SET": "Create 'set %1'", - "VARIABLES_SET_HELPURL": "https://github.com/google/blockly/wiki/Variables#set", - "VARIABLES_SET": "set %1 to %2", - "VARIABLES_SET_TOOLTIP": "Sets this variable to be equal to the input.", - "VARIABLES_SET_CREATE_GET": "Create 'get %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_DEFNORETURN_TITLE": "to", - "PROCEDURES_DEFNORETURN_PROCEDURE": "do something", - "PROCEDURES_BEFORE_PARAMS": "with:", - "PROCEDURES_CALL_BEFORE_PARAMS": "with:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Creates a function with no output.", - "PROCEDURES_DEFNORETURN_COMMENT": "Describe this function...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_DEFRETURN_RETURN": "return", - "PROCEDURES_DEFRETURN_TOOLTIP": "Creates a function with an output.", - "PROCEDURES_ALLOW_STATEMENTS": "allow statements", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Warning: This function has duplicate parameters.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Run the user-defined function '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Run the user-defined function '%1' and use its output.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "inputs", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Add, remove, or reorder inputs to this function.", - "PROCEDURES_MUTATORARG_TITLE": "input name:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Add an input to the function.", - "PROCEDURES_HIGHLIGHT_DEF": "Highlight function definition", - "PROCEDURES_CREATE_DO": "Create '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "If a value is true, then return a second value.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Warning: This block may be used only within a function definition.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Say something...", - "COLLAPSED_WARNINGS_WARNING": "Collapsed blocks contain warnings." -} diff --git a/lib/blockly/msg/json/eo.json b/lib/blockly/msg/json/eo.json deleted file mode 100644 index e50bd98..0000000 --- a/lib/blockly/msg/json/eo.json +++ /dev/null @@ -1,348 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Etrapani", - "Ochilov", - "Orikrin1998", - "Robin van der Vliet", - "Cérilew", - "Mirin" - ] - }, - "VARIABLES_DEFAULT_NAME": "elemento", - "TODAY": "Hodiaŭ", - "DUPLICATE_BLOCK": "Duobligi", - "ADD_COMMENT": "Aldoni komenton", - "REMOVE_COMMENT": "Forigi komenton", - "DUPLICATE_COMMENT": "Duobligi Komenton", - "EXTERNAL_INPUTS": "Eksteraj eniroj", - "INLINE_INPUTS": "Entekstaj eniroj", - "DELETE_BLOCK": "Forigi blokon", - "DELETE_X_BLOCKS": "Forigi %1 blokojn", - "DELETE_ALL_BLOCKS": "Ĉu forigi ĉiujn %1 blokojn?", - "CLEAN_UP": "Purigi blokojn", - "COLLAPSE_BLOCK": "Faldi blokon", - "COLLAPSE_ALL": "Faldi blokojn", - "EXPAND_BLOCK": "Malfaldi blokon", - "EXPAND_ALL": "Malfaldi blokojn", - "DISABLE_BLOCK": "Malŝalti blokon", - "ENABLE_BLOCK": "Ŝalti blokon", - "HELP": "Helpo", - "UNDO": "Malfari", - "REDO": "Refari", - "CHANGE_VALUE_TITLE": "Ŝangi valoron:", - "RENAME_VARIABLE": "Renomi variablon...", - "RENAME_VARIABLE_TITLE": "Renomi ĉiujn '%1' variablojn kiel:", - "NEW_VARIABLE": "Nova variablo...", - "NEW_STRING_VARIABLE": "Krei signoĉenan variablon...", - "NEW_NUMBER_VARIABLE": "Krei nombran variablon...", - "NEW_COLOUR_VARIABLE": "Krei koloran variablon...", - "NEW_VARIABLE_TYPE_TITLE": "Tipo de nova variablo:", - "NEW_VARIABLE_TITLE": "Nova nomo de variablo:", - "VARIABLE_ALREADY_EXISTS": "Jam ekzistas variablo kun la nomo '%1'.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Jam ekzistas variablo kun la nomo '%1' por alia tipo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Ĉu forigi %1 uzojn de la variablo '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ne povas forigi la variablon '%1' ĉar ĝi estas parto de la difino de la funkcio '%2'", - "DELETE_VARIABLE": "Forigi la variablon '%1'", - "COLOUR_PICKER_HELPURL": "https://eo.wikipedia.org/wiki/Koloro", - "COLOUR_PICKER_TOOLTIP": "Elekti koloron el la paletro.", - "COLOUR_RANDOM_TITLE": "hazarda koloro", - "COLOUR_RANDOM_TOOLTIP": "Elekti hazardan koloron.", - "COLOUR_RGB_TITLE": "kolorigi per", - "COLOUR_RGB_RED": "ruĝa", - "COLOUR_RGB_GREEN": "verda", - "COLOUR_RGB_BLUE": "blua", - "COLOUR_RGB_TOOLTIP": "Kreas koloron kun specifita kvanto de ruĝo, verdo, kaj bluo. Ĉiuj valoroj devas esti inter 0 kaj 100.", - "COLOUR_BLEND_TITLE": "miksi", - "COLOUR_BLEND_COLOUR1": "koloro 1", - "COLOUR_BLEND_COLOUR2": "koloro 2", - "COLOUR_BLEND_RATIO": "proporcio", - "COLOUR_BLEND_TOOLTIP": "Kunmiksas du kolorojn laŭ specifita proporcio (0,0 - 1,0).", - "CONTROLS_REPEAT_HELPURL": "https://eo.wikipedia.org/wiki/Iteracio", - "CONTROLS_REPEAT_TITLE": "ripeti %1 fojojn", - "CONTROLS_REPEAT_INPUT_DO": "fari", - "CONTROLS_REPEAT_TOOLTIP": "Plenumas kelkajn ordonojn plurfoje.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ripeti dum", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ripeti ĝis", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Plenumi ordonojn dum la valoro egalas veron.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Plenumi ordonojn dum valoro egalas malvero.", - "CONTROLS_FOR_TOOLTIP": "Varias la variablon '%1', ekde la komenca nombro ĝis la fina nombro, laŭ la specifita diferenco; dume rulas la specifitajn blokojn.", - "CONTROLS_FOR_TITLE": "kalkuli kun variablo %1 ekde %2 ĝis %3 per diferenco %4", - "CONTROLS_FOREACH_TITLE": "por ĉiu elemento %1 en la listo %2", - "CONTROLS_FOREACH_TOOLTIP": "Pri ĉiu elemento en listo, difinas la variablon '%1' al la elemento, kaj faras kelkajn ordonojn.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "eliri el la ciklo", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "daŭrigi je la venonta ripeto de la ciklo", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Eliri el la enhava ciklo.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Pretersalti la ceteron de tiu ĉi ciklo kaj daŭrigi je la venonta ripeto.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Averto: tiu ĉi bloko uzeblas nur ene de ciklo.", - "CONTROLS_IF_TOOLTIP_1": "Plenumi ordonojn se la valoro estas vero.", - "CONTROLS_IF_TOOLTIP_2": "Plenumi la unuan blokon de ordonoj se la valoro estas vero, se ne, la duan.", - "CONTROLS_IF_TOOLTIP_3": "Se la unua valoro estas vero, do faras la unuan blokon de ordonoj. Alie, se la dua valoro estas vero, do faras la duan blokon de ordonoj.", - "CONTROLS_IF_TOOLTIP_4": "Se la unua valoro estas vero, do faras la unuan blokon de ordonoj. Alie, se la dua valoro estas vero, do faras la duan blokon de ordonoj. Se neniu el la du valoroj estas vero, do faras la lastan blokon de ordonoj.", - "CONTROLS_IF_MSG_IF": "se", - "CONTROLS_IF_MSG_ELSEIF": "alie se", - "CONTROLS_IF_MSG_ELSE": "alie", - "CONTROLS_IF_IF_TOOLTIP": "Aldoni, forigi aŭ reorganizi partojn por reagordi la 'se'-blokon.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Aldoni kondiĉon al la bloko 'se'", - "CONTROLS_IF_ELSE_TOOLTIP": "Aldoni 'aliokaze' kondiĉon al la 'se' bloko.", - "IOS_OK": "Bone", - "IOS_CANCEL": "Nuligi", - "IOS_ERROR": "Eraro", - "IOS_PROCEDURES_INPUTS": "ENIROJ", - "IOS_PROCEDURES_ADD_INPUT": "+ Aldoni eniron", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permesi ordonojn", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ĉi tiu funkcio havas du samnomajn enirojn.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Aldoni Variablon", - "IOS_VARIABLES_ADD_BUTTON": "Aldoni", - "IOS_VARIABLES_RENAME_BUTTON": "Alinomigi", - "IOS_VARIABLES_DELETE_BUTTON": "Forigi", - "IOS_VARIABLES_VARIABLE_NAME": "Nomo de variablo", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "La nomo de la variablo devas esti ne malplena.", - "LOGIC_COMPARE_HELPURL": "https://eo.wikipedia.org/wiki/Neegala%C4%B5o_(pli_granda,_malpli_granda)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Liveri veron, se la du eniroj egalas.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Liveri veron, se la du eniroj ne egalas.", - "LOGIC_COMPARE_TOOLTIP_LT": "Liveri veron, se la unua eniro estas pli malgranda ol la dua.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Vero estos liverita, se la unua eniro estas pli eta aŭ egala al la dua.", - "LOGIC_COMPARE_TOOLTIP_GT": "Liveri veron, se la unua eniro estas pli granda ol la dua.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Vero estos liverita, se la unua eniro estas pli granda aŭ egala al la dua.", - "LOGIC_OPERATION_TOOLTIP_AND": "Liveri veron, se la du eniroj egalas veron.", - "LOGIC_OPERATION_AND": "kaj", - "LOGIC_OPERATION_TOOLTIP_OR": "Liveri veron, se almenaŭ unu el la eniroj egalas veron.", - "LOGIC_OPERATION_OR": "aŭ", - "LOGIC_NEGATE_TITLE": "maligi %1", - "LOGIC_NEGATE_TOOLTIP": "Liveri veron, se la eniro egalas malveron. Liveri malveron, se la eniro egalas veron.", - "LOGIC_BOOLEAN_TRUE": "vera", - "LOGIC_BOOLEAN_FALSE": "falsa", - "LOGIC_BOOLEAN_TOOLTIP": "Liveri ĉu veron ĉu malveron.", - "LOGIC_NULL": "senvalora", - "LOGIC_NULL_TOOLTIP": "Liveras senvaloron.", - "LOGIC_TERNARY_CONDITION": "testi", - "LOGIC_TERNARY_IF_TRUE": "se estas vero", - "LOGIC_TERNARY_IF_FALSE": "se estas malvero", - "LOGIC_TERNARY_TOOLTIP": "Kontroli la kondiĉon en 'testo'. Se la kondiĉo egalas veron, liveri la valoron 'se estas vero', aliokaze liveri la valoron 'se estas malvero'.", - "MATH_NUMBER_HELPURL": "https://eo.wikipedia.org/wiki/Nombro", - "MATH_NUMBER_TOOLTIP": "Nombro.", - "MATH_ARITHMETIC_HELPURL": "https://eo.wikipedia.org/wiki/Aritmetiko", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Liveri la sumon de la du nombroj.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Liveri la diferencon inter la du nombroj.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "La produto de la du numeroj estos liverita.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Liveri la kvocienton de la du nombroj.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Livero la tian potencon de la unua nombro, kia la dua nombro estas", - "MATH_SINGLE_HELPURL": "https://eo.wikipedia.org/wiki/Kvadrata_radiko", - "MATH_SINGLE_OP_ROOT": "kvadrata radiko", - "MATH_SINGLE_TOOLTIP_ROOT": "Liveri la kvadratan radikon de nombro.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluta", - "MATH_SINGLE_TOOLTIP_ABS": "Liveri la absolutan valoron de nombro.", - "MATH_SINGLE_TOOLTIP_NEG": "La negativigo de numero estos liverita.", - "MATH_SINGLE_TOOLTIP_LN": "Liveri la naturan logaritmon de nombro.", - "MATH_SINGLE_TOOLTIP_LOG10": "La dekbaza logaritmo de numero estos liverita.", - "MATH_SINGLE_TOOLTIP_EXP": "Liveri potencon de e.", - "MATH_SINGLE_TOOLTIP_POW10": "Liveri tian potencon de 10, kia la eniro estas.", - "MATH_TRIG_HELPURL": "https://eo.wikipedia.org/wiki/Trigonometria_funkcio", - "MATH_TRIG_TOOLTIP_SIN": "Liveras la sinuson de angulo en gradoj (ne radianoj).", - "MATH_TRIG_TOOLTIP_COS": "Liveras la kosinuson de angulo en gradoj (ne radianoj).", - "MATH_TRIG_TOOLTIP_TAN": "Liveras la tangenton de angulo en gradoj (ne radianoj).", - "MATH_TRIG_TOOLTIP_ASIN": "La sinusarko de nombro estos liverita.", - "MATH_TRIG_TOOLTIP_ACOS": "Liveras la arkokosinuson de nombro.", - "MATH_TRIG_TOOLTIP_ATAN": "La targentarko de nombro estos liverita.", - "MATH_CONSTANT_HELPURL": "https://eo.wikipedia.org/wiki/Matematika_konstanto", - "MATH_CONSTANT_TOOLTIP": "Liveras unu el la ofte uzataj konstantoj: π (3,141…), e (2,718…), φ (1,618…), √2 (1,414…), √½ (0,707…), aŭ ∞ (malfinio).", - "MATH_IS_EVEN": "estas para", - "MATH_IS_ODD": "estas nepara", - "MATH_IS_PRIME": "estas primo", - "MATH_IS_WHOLE": "estas entjero", - "MATH_IS_POSITIVE": "estas pozitiva", - "MATH_IS_NEGATIVE": "estas negativa", - "MATH_IS_DIVISIBLE_BY": "estas dividebla de", - "MATH_IS_TOOLTIP": "Vero aŭ malvero estos liverita, depende de la rezulto de kontrolo, ĉu nombro estas para, nepara, pozitiva, negativa, aŭ dividebla de iu nombro.", - "MATH_CHANGE_HELPURL": "https://eo.wikipedia.org/wiki/Kremento", - "MATH_CHANGE_TITLE": "krementi %1 per %2", - "MATH_CHANGE_TOOLTIP": "Aldoni nombron al variablo '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Rondigi nombroj, supren aŭ malsupren.", - "MATH_ROUND_OPERATOR_ROUND": "rondigi", - "MATH_ROUND_OPERATOR_ROUNDUP": "Rondigi supren", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "rondigi malsupren", - "MATH_ONLIST_OPERATOR_SUM": "sumo de listo", - "MATH_ONLIST_TOOLTIP_SUM": "Liveri la sumon de ĉiuj nombroj en la listo.", - "MATH_ONLIST_OPERATOR_MIN": "listminimumo", - "MATH_ONLIST_TOOLTIP_MIN": "Liveri la plej malgrandan nombron en la listo.", - "MATH_ONLIST_OPERATOR_MAX": "listmaksimumo", - "MATH_ONLIST_TOOLTIP_MAX": "Liveri la plej grandan nombron en la listo.", - "MATH_ONLIST_OPERATOR_AVERAGE": "listmezumo", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Liveri la aritmetikan meznombron de la nombroj en la listo.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediano de listo", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Liveras la medianan nombron en la listo.", - "MATH_ONLIST_OPERATOR_MODE": "modoj de listo", - "MATH_ONLIST_TOOLTIP_MODE": "Liveras liston de la plej ofta(j) elemento(j) en la listo.", - "MATH_ONLIST_OPERATOR_STD_DEV": "Norma devio de la listo", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Liveri la norman devion de la listo.", - "MATH_ONLIST_OPERATOR_RANDOM": "hazarda elemento el la listo", - "MATH_ONLIST_TOOLTIP_RANDOM": "Liveri hazardan elementon el la listo.", - "MATH_MODULO_HELPURL": "https://eo.wikipedia.org/wiki/Resto", - "MATH_MODULO_TITLE": "resto de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Liveri la reston de la divido de la du nombroj.", - "MATH_CONSTRAIN_TITLE": "limigi %1 inter %2 kaj %3", - "MATH_CONSTRAIN_TOOLTIP": "La nombro estos limigita tiel ke ĝi egalas la limojn aŭ troviĝas inter ili.", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "hazarda entjero inter %1 kaj %2", - "MATH_RANDOM_INT_TOOLTIP": "Nombro estos hazarde liverita, tiel ke ĝi egalas la limojn aŭ troviĝas inter ili.", - "MATH_RANDOM_FLOAT_HELPURL": "https://eo.wikipedia.org/wiki/Hazardo", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "hazarda frakcio", - "MATH_RANDOM_FLOAT_TOOLTIP": "Liveras hazardan frakcion inter 0,0 (inkluzive) kaj 1,0 (ekskluzive).", - "MATH_ATAN2_HELPURL": "https://eo.wikipedia.org/wiki/Inversa_trigonometria_funkcio#Duargumenta_varianto_de_tangentarko", - "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Liveras la arkotangenton de punkto (X, Y) en gradoj inter -180 kaj 180.", - "TEXT_TEXT_HELPURL": "https://eo.wikipedia.org/wiki/Signoĉeno", - "TEXT_TEXT_TOOLTIP": "Litero, vorto, aŭ linio da teksto.", - "TEXT_JOIN_TITLE_CREATEWITH": "krei tekston kun", - "TEXT_JOIN_TOOLTIP": "Krei pecon de teksto per kunigi ajnan nombron de eroj.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "kunigi", - "TEXT_CREATE_JOIN_TOOLTIP": "Aldonu, forigu, aŭ reorganizu partojn por reagordi la tekstan blokon.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Aldoni eron al la teksto.", - "TEXT_APPEND_TITLE": "al %1 postaldoni tekston %2", - "TEXT_APPEND_TOOLTIP": "Postapendi iom da teksto al variablo '%1'.", - "TEXT_LENGTH_TITLE": "longo de %1", - "TEXT_LENGTH_TOOLTIP": "Liveras la nombron de literoj (inkluzive de spacetoj) en la provizita teksto.", - "TEXT_ISEMPTY_TITLE": "%1 malplenas", - "TEXT_ISEMPTY_TOOLTIP": "Liveras veron, se la provizita teksto estas malplena.", - "TEXT_INDEXOF_TOOLTIP": "Liveras indekson de la unua/lasta okazo de la unua teksto en la dua teksto. Liveras %1 se la unua teksto ne okazas en la dua teksto.", - "TEXT_INDEXOF_TITLE": "en la teksto %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "trovi la unuan okazon de teksto", - "TEXT_INDEXOF_OPERATOR_LAST": "trovi la lastan okazon de teksto", - "TEXT_CHARAT_TITLE": "en la teksto %1, %2", - "TEXT_CHARAT_FROM_START": "akiri literon de numero", - "TEXT_CHARAT_FROM_END": "akiri literon de inversa numero", - "TEXT_CHARAT_FIRST": "akiri unuan literon", - "TEXT_CHARAT_LAST": "akiri lastan literon", - "TEXT_CHARAT_RANDOM": "akiri hazardan literon", - "TEXT_CHARAT_TOOLTIP": "Liveras literon ĉe specifita loko.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Liveri specifitan parto de la teksto.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "en la teksto", - "TEXT_GET_SUBSTRING_START_FROM_START": "akiri subsignoĉenon ekde litero de numero", - "TEXT_GET_SUBSTRING_START_FROM_END": "akiri subsignoĉenon ekde litero de inversa numero", - "TEXT_GET_SUBSTRING_START_FIRST": "akiri subsignoĉenon ekde la unua litero", - "TEXT_GET_SUBSTRING_END_FROM_START": "ĝis litero de numero", - "TEXT_GET_SUBSTRING_END_FROM_END": "ĝis litero de inversa numero", - "TEXT_GET_SUBSTRING_END_LAST": "ĝis lasta litero", - "TEXT_CHANGECASE_TOOLTIP": "Liveras kopion de la teksto je alia usklo.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "MAJUSKLIGI", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "minuskligi", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Nomuskligi", - "TEXT_TRIM_TOOLTIP": "Liveras kopion de teksto, de kies fino(j) spacetoj foriĝis.", - "TEXT_TRIM_OPERATOR_BOTH": "forigi spacetojn for de ambaŭ finoj de", - "TEXT_TRIM_OPERATOR_LEFT": "forigi spacetojn for de maldekstra fino de", - "TEXT_TRIM_OPERATOR_RIGHT": "forigi spacetojn for de dekstra fino de", - "TEXT_PRINT_TITLE": "presi %1", - "TEXT_PRINT_TOOLTIP": "Presi la specifitan tekston, nombron aŭ alian valoron.", - "TEXT_PROMPT_TYPE_TEXT": "ricevi tekston per mesaĝo", - "TEXT_PROMPT_TYPE_NUMBER": "ricevi nombron per mesaĝo", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Peti nombron al uzanto.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Peti tekston al uzanto.", - "TEXT_COUNT_MESSAGE0": "kalkuli la okazojn de %1 en %2", - "TEXT_COUNT_TOOLTIP": "Kalkuli kiomfoje iu teksto okazas en iu alia teksto.", - "TEXT_REPLACE_MESSAGE0": "anstataŭigi tekston %1 per %2 en %3", - "TEXT_REPLACE_TOOLTIP": "Anstataŭigi ĉiujn okazojn de iu teksto en alia teksto.", - "TEXT_REVERSE_MESSAGE0": "inversigi tekston %1", - "TEXT_REVERSE_TOOLTIP": "Inversigi la ordon de la skribsignoj en la teksto.", - "LISTS_CREATE_EMPTY_TITLE": "krei malplenan liston", - "LISTS_CREATE_EMPTY_TOOLTIP": "Liveri liston, de longo 0, sen datenaj rikordoj", - "LISTS_CREATE_WITH_TOOLTIP": "Krei liston kun ajna nombro de elementoj.", - "LISTS_CREATE_WITH_INPUT_WITH": "krei liston kun", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "listo", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Aldoni, forigi aŭ ordigi partojn por reagordi la listan blokon.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Aldoni elementon al la listo.", - "LISTS_REPEAT_TOOLTIP": "Listo kun la specifita nombro de elementoj, kiuj havos la donitan valoron, estos kreita.", - "LISTS_REPEAT_TITLE": "krei liston kun elemento %1 ripetita %2 fojojn", - "LISTS_LENGTH_TITLE": "longo de %1", - "LISTS_LENGTH_TOOLTIP": "Liveri la longon de listo.", - "LISTS_ISEMPTY_TITLE": "%1 malplenas", - "LISTS_ISEMPTY_TOOLTIP": "Liveri veron, se la listo malplenas.", - "LISTS_INLIST": "en la listo", - "LISTS_INDEX_OF_FIRST": "trovi la unuan aperon de elemento", - "LISTS_INDEX_OF_LAST": "trovi la lastan aperon de elemento", - "LISTS_INDEX_OF_TOOLTIP": "La indekso de la unua/lasta apero de la elemento en la listo estos liverita. %1 estos liverita se la elemento ne estas trovita.", - "LISTS_GET_INDEX_GET": "akiri", - "LISTS_GET_INDEX_GET_REMOVE": "akiri kaj forigi", - "LISTS_GET_INDEX_REMOVE": "forigi", - "LISTS_GET_INDEX_FROM_END": "#el la fino", - "LISTS_GET_INDEX_FIRST": "unuan", - "LISTS_GET_INDEX_LAST": "lastan", - "LISTS_GET_INDEX_RANDOM": "hazardan", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 estas la unua elemento.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 estas la lasta elemento.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Liveri la elementon ĉe la specifita pozicio en listo.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "La unua elemento en la listo esto liverita.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Liveri la lastan elementon en la listo.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Hazarda elemento en la listo estos liverita.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Liveri kaj forigi la elementon en la specifita pozicio de la listo.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "La unua elemento en la listo estos liverita kaj forigita.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Forigi kaj liveri la lastan elementon en listo.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Hazarda elemento en la listo estos liverita kaj forigita.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "La elemento en la specifita pozicio en la listo estos forigita.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "La unua elemento en la listo estos forigita.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "La lasta elemento en la listo estos forigita.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Hazarda elemento en la listo estos forigita.", - "LISTS_SET_INDEX_SET": "difini", - "LISTS_SET_INDEX_INSERT": "enmeti je", - "LISTS_SET_INDEX_INPUT_TO": "kiel", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Difinas la elementon ĉe la specifita pozicio en listo", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Difinas la unua elementon en listo.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Difinas la lastan elementon en listo.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Difinas hazardan elementon en listo.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Enigas la elementon ĉe specifita pozicio en listo.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Antaŭaldonas la elementon ĉe la komenco de listo.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Postaldonas la elementon ĉe la fino de listo.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Enigas la elementon hazarde en listo.", - "LISTS_GET_SUBLIST_START_FROM_START": "akiri subliston ekde elemento de numero", - "LISTS_GET_SUBLIST_START_FROM_END": "akiri subliston ekde elemento de inversa numero", - "LISTS_GET_SUBLIST_START_FIRST": "akiri subliston ekde la unua elemento", - "LISTS_GET_SUBLIST_END_FROM_START": "ĝis elemento de numero", - "LISTS_GET_SUBLIST_END_FROM_END": "ĝis elemento de inversa numero", - "LISTS_GET_SUBLIST_END_LAST": "ĝis la lasta elemento", - "LISTS_GET_SUBLIST_TOOLTIP": "Kreas kopion de la specifita parto de listo.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "ordigi %1 %2 liston %3", - "LISTS_SORT_TOOLTIP": "Ordigas kopion de listo.", - "LISTS_SORT_ORDER_ASCENDING": "kreskante", - "LISTS_SORT_ORDER_DESCENDING": "malkreskante", - "LISTS_SORT_TYPE_NUMERIC": "nombre", - "LISTS_SORT_TYPE_TEXT": "alfabete", - "LISTS_SORT_TYPE_IGNORECASE": "alfabete, ignorante usklon", - "LISTS_SPLIT_LIST_FROM_TEXT": "fari liston el teksto", - "LISTS_SPLIT_TEXT_FROM_LIST": "fari tekston el listo", - "LISTS_SPLIT_WITH_DELIMITER": "kun apartigilo", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Disdividas tekston en liston da tekstoj, laŭ apartigilo.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Kunigas liston de tekstoj en unu tekston, kun apartigilo inter la elementoj.", - "LISTS_REVERSE_MESSAGE0": "inversigi liston %1", - "LISTS_REVERSE_TOOLTIP": "Inversigi kopion de listo.", - "VARIABLES_GET_TOOLTIP": "Liveras la valoron de ĉi tiu variablo.", - "VARIABLES_GET_CREATE_SET": "Krei blokon 'difini variablon %1'", - "VARIABLES_SET": "difini %1 kiel %2", - "VARIABLES_SET_TOOLTIP": "Difinas ĉi tiun variablon kiel la eniron.", - "VARIABLES_SET_CREATE_GET": "Krei blokon 'akiri variablon %1'", - "PROCEDURES_DEFNORETURN_TITLE": "por", - "PROCEDURES_DEFNORETURN_PROCEDURE": "fari ion", - "PROCEDURES_BEFORE_PARAMS": "kun:", - "PROCEDURES_CALL_BEFORE_PARAMS": "kun:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Krei funkcion sen eliro.", - "PROCEDURES_DEFNORETURN_COMMENT": "Priskribi ĉi tiun funkcion...", - "PROCEDURES_DEFRETURN_RETURN": "liveri", - "PROCEDURES_DEFRETURN_TOOLTIP": "Krei funkcion kun unu eliro.", - "PROCEDURES_ALLOW_STATEMENTS": "permesi ordonojn", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Averto: la funkcio havas du parametrojn kun la sama nomo.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://eo.wikipedia.org/wiki/Subprogramo", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Ruli la uzanto-difinitan funkcion '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://eo.wikipedia.org/wiki/Subprogramo", - "PROCEDURES_CALLRETURN_TOOLTIP": "Ruli la uzanto-difinitan funkcion '%1' kaj uzi ĝian eliron.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "eniroj", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Aldoni, forigi, aŭ reorganizi enirojn je ĉi tiu funkcio.", - "PROCEDURES_MUTATORARG_TITLE": "nomo de enigo:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Aldoni eniron al la funkcio.", - "PROCEDURES_HIGHLIGHT_DEF": "Emfazi difinon de funkcio", - "PROCEDURES_CREATE_DO": "Krei '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Se valoro estas vero, do liveras duan valoron.", - "PROCEDURES_IFRETURN_WARNING": "Averto: Ĉi tiu bloko estas uzebla nur en difino de funkcio.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Diru ion…", - "COLLAPSED_WARNINGS_WARNING": "Falditaj blokoj enhavas avertojn." -} diff --git a/lib/blockly/msg/json/es.json b/lib/blockly/msg/json/es.json deleted file mode 100644 index 25b33f3..0000000 --- a/lib/blockly/msg/json/es.json +++ /dev/null @@ -1,362 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Fitoschido", - "VegaDark", - "WeSiToS", - "Macofe", - "Codynguyen1116", - "Indiralena", - "Rubentl134", - "Martineduardo", - "Julián L", - "Luisangelrg", - "MarcoAurelio", - "Ryo567", - "Harvest" - ] - }, - "VARIABLES_DEFAULT_NAME": "elemento", - "TODAY": "Hoy", - "DUPLICATE_BLOCK": "Duplicar", - "ADD_COMMENT": "Añadir comentario", - "REMOVE_COMMENT": "Eliminar comentario", - "DUPLICATE_COMMENT": "Duplicar comentario", - "EXTERNAL_INPUTS": "Entradas externas", - "INLINE_INPUTS": "Entradas en línea", - "DELETE_BLOCK": "Eliminar bloque", - "DELETE_X_BLOCKS": "Eliminar %1 bloques", - "DELETE_ALL_BLOCKS": "¿Eliminar todos los %1 bloques?", - "CLEAN_UP": "Limpiar los bloques", - "COLLAPSE_BLOCK": "Contraer bloque", - "COLLAPSE_ALL": "Contraer bloques", - "EXPAND_BLOCK": "Expandir bloque", - "EXPAND_ALL": "Expandir bloques", - "DISABLE_BLOCK": "Desactivar bloque", - "ENABLE_BLOCK": "Activar bloque", - "HELP": "Ayuda", - "UNDO": "Deshacer", - "REDO": "Rehacer", - "CHANGE_VALUE_TITLE": "Cambiar el valor:", - "RENAME_VARIABLE": "Cambiar nombre de variable…", - "RENAME_VARIABLE_TITLE": "Renombrar todas las variables «%1» a:", - "NEW_VARIABLE": "Crear variable…", - "NEW_STRING_VARIABLE": "Crear una cadena variable...", - "NEW_NUMBER_VARIABLE": "Crear una variable de número...", - "NEW_COLOUR_VARIABLE": "Crear una variable de color...", - "NEW_VARIABLE_TYPE_TITLE": "Nuevo tipo de variable:", - "NEW_VARIABLE_TITLE": "Nombre de variable nueva:", - "VARIABLE_ALREADY_EXISTS": "Ya existe una variable llamada '%1'.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Ya existe una variable nombrada '%1' para otra variable del tipo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "¿Borrar %1 usos de la variable '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "No se puede eliminar la variable '%1' porque es parte de la definición de la función '%2'", - "DELETE_VARIABLE": "Borrar la variable \"%1\"", - "COLOUR_PICKER_HELPURL": "https://es.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Elige un color de la paleta.", - "COLOUR_RANDOM_TITLE": "color aleatorio", - "COLOUR_RANDOM_TOOLTIP": "Elige un color al azar.", - "COLOUR_RGB_TITLE": "colorear con", - "COLOUR_RGB_RED": "rojo", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "azul", - "COLOUR_RGB_TOOLTIP": "Crea un color con cantidades específicas de rojo, verde y azul. Todos los valores deben encontrarse entre 0 y 100.", - "COLOUR_BLEND_TITLE": "combinar", - "COLOUR_BLEND_COLOUR1": "color 1", - "COLOUR_BLEND_COLOUR2": "color 2", - "COLOUR_BLEND_RATIO": "proporción", - "COLOUR_BLEND_TOOLTIP": "Combina dos colores con una proporción determinada (0,0-1,0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repetir %1 veces", - "CONTROLS_REPEAT_INPUT_DO": "hacer", - "CONTROLS_REPEAT_TOOLTIP": "Hacer algunas declaraciones varias veces.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetir mientras", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repetir hasta", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Mientras un valor sea verdadero, entonces hacer algunas declaraciones.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Mientras un valor sea falso, entonces hacer algunas declaraciones.", - "CONTROLS_FOR_TOOLTIP": "Hacer que la variable \"%1\" tome los valores desde el número de inicio hasta el número final, contando con el intervalo especificado, y hacer los bloques especificados.", - "CONTROLS_FOR_TITLE": "contar con %1 desde %2 hasta %3 de a %4", - "CONTROLS_FOREACH_HELPURL": "https://es.wikipedia.org/wiki/Foreach", - "CONTROLS_FOREACH_TITLE": "para cada elemento %1 en la lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Para cada elemento en una lista, establecer la variable '%1' al elemento y luego hacer algunas declaraciones.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "romper el bucle", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continuar con la siguiente iteración del bucle", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Romper el bucle que lo contiene.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Saltar el resto de este bucle, y continuar con la siguiente iteración.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Atención: este bloque puede usarse solamente dentro de un bucle.", - "CONTROLS_IF_TOOLTIP_1": "Si un valor es verdadero, entonces hacer algunas declaraciones.", - "CONTROLS_IF_TOOLTIP_2": "Si un valor es verdadero, entonces hacer el primer bloque de declaraciones. De lo contrario, hacer el segundo bloque de declaraciones.", - "CONTROLS_IF_TOOLTIP_3": "Si el primer valor es verdadero, entonces hacer el primer bloque de declaraciones. De lo contrario, si el segundo valor es verdadero, hacer el segundo bloque de declaraciones.", - "CONTROLS_IF_TOOLTIP_4": "Si el primer valor es verdadero, entonces hacer el primer bloque de declaraciones. De lo contrario, si el segundo valor es verdadero, hacer el segundo bloque de declaraciones. Si ninguno de los valores son verdaderos, hacer el último bloque de declaraciones.", - "CONTROLS_IF_MSG_IF": "si", - "CONTROLS_IF_MSG_ELSEIF": "sino si", - "CONTROLS_IF_MSG_ELSE": "sino", - "CONTROLS_IF_IF_TOOLTIP": "Agregar, eliminar o reordenar las secciones para reconfigurar este bloque.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Agregar una condición a este bloque.", - "CONTROLS_IF_ELSE_TOOLTIP": "Agregar una condición general final a este bloque.", - "IOS_OK": "Aceptar", - "IOS_CANCEL": "Cancelar", - "IOS_ERROR": "Error", - "IOS_PROCEDURES_INPUTS": "ENTRADAS", - "IOS_PROCEDURES_ADD_INPUT": "+ Añadir entrada", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permitir declaraciones", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Esta función tiene entradas duplicadas.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Añadir variable", - "IOS_VARIABLES_ADD_BUTTON": "Añadir", - "IOS_VARIABLES_RENAME_BUTTON": "Renombrar", - "IOS_VARIABLES_DELETE_BUTTON": "Borrar", - "IOS_VARIABLES_VARIABLE_NAME": "Nombre de la variable", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "No puedes usar un nombre de variable vacío.", - "LOGIC_COMPARE_HELPURL": "https://es.wikipedia.org/wiki/Desigualdad_matemática", - "LOGIC_COMPARE_TOOLTIP_EQ": "Devuelve verdadero si ambas entradas son iguales.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Devuelve verdadero si ambas entradas son distintas.", - "LOGIC_COMPARE_TOOLTIP_LT": "Devuelve verdadero si la primera entrada es menor que la segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Devuelve verdadero si la primera entrada es menor que o igual a la segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_GT": "Devuelve verdadero si la primera entrada es mayor que la segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Devuelve verdadero si la primera entrada es mayor o igual a la segunda entrada.", - "LOGIC_OPERATION_TOOLTIP_AND": "Devuelve verdadero si ambas entradas son verdaderas.", - "LOGIC_OPERATION_AND": "y", - "LOGIC_OPERATION_TOOLTIP_OR": "Devuelve verdadero si al menos una de las entradas es verdadera.", - "LOGIC_OPERATION_OR": "o", - "LOGIC_NEGATE_TITLE": "no %1", - "LOGIC_NEGATE_TOOLTIP": "Devuelve verdadero si la entrada es falsa. Devuelve falso si la entrada es verdadera.", - "LOGIC_BOOLEAN_TRUE": "verdadero", - "LOGIC_BOOLEAN_FALSE": "falso", - "LOGIC_BOOLEAN_TOOLTIP": "Devuelve verdadero o falso.", - "LOGIC_NULL": "nulo", - "LOGIC_NULL_TOOLTIP": "Devuelve nulo.", - "LOGIC_TERNARY_CONDITION": "prueba", - "LOGIC_TERNARY_IF_TRUE": "si es verdadero", - "LOGIC_TERNARY_IF_FALSE": "si es falso", - "LOGIC_TERNARY_TOOLTIP": "Comprueba la condición en \"prueba\". Si la condición es verdadera, devuelve el valor \"si es verdadero\"; de lo contrario, devuelve el valor \"si es falso\".", - "MATH_NUMBER_HELPURL": "https://es.wikipedia.org/wiki/Número", - "MATH_NUMBER_TOOLTIP": "Un número.", - "MATH_ARITHMETIC_HELPURL": "https://es.wikipedia.org/wiki/Aritmética", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Devuelve la suma de ambos números.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Devuelve la diferencia de ambos números.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Devuelve el producto de ambos números.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Devuelve el cociente de ambos números.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Devuelve el primer número elevado a la potencia del segundo.", - "MATH_SINGLE_HELPURL": "https://es.wikipedia.org/wiki/Ra%C3%ADz_cuadrada", - "MATH_SINGLE_OP_ROOT": "raíz cuadrada", - "MATH_SINGLE_TOOLTIP_ROOT": "Devuelve la raíz cuadrada de un número.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluto", - "MATH_SINGLE_TOOLTIP_ABS": "Devuelve el valor absoluto de un número.", - "MATH_SINGLE_TOOLTIP_NEG": "Devuelve la negación de un número.", - "MATH_SINGLE_TOOLTIP_LN": "Devuelve el logaritmo natural de un número.", - "MATH_SINGLE_TOOLTIP_LOG10": "Devuelve el logaritmo base 10 de un número.", - "MATH_SINGLE_TOOLTIP_EXP": "Devuelve e a la potencia de un número.", - "MATH_SINGLE_TOOLTIP_POW10": "Devuelve 10 a la potencia de un número.", - "MATH_TRIG_HELPURL": "https://es.wikipedia.org/wiki/Función_trigonométrica", - "MATH_TRIG_TOOLTIP_SIN": "Devuelve el seno de un grado (no radián).", - "MATH_TRIG_TOOLTIP_COS": "Devuelve el coseno de un grado (no radián).", - "MATH_TRIG_TOOLTIP_TAN": "Devuelve la tangente de un grado (no radián).", - "MATH_TRIG_TOOLTIP_ASIN": "Devuelve el arcoseno de un número.", - "MATH_TRIG_TOOLTIP_ACOS": "Devuelve el arcocoseno de un número.", - "MATH_TRIG_TOOLTIP_ATAN": "Devuelve el arcotangente de un número.", - "MATH_CONSTANT_HELPURL": "https://es.wikipedia.org/wiki/Anexo:Constantes_matemáticas", - "MATH_CONSTANT_TOOLTIP": "Devuelve una de las constantes comunes: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) o ∞ (infinito).", - "MATH_IS_EVEN": "es par", - "MATH_IS_ODD": "es impar", - "MATH_IS_PRIME": "es primo", - "MATH_IS_WHOLE": "es entero", - "MATH_IS_POSITIVE": "es positivo", - "MATH_IS_NEGATIVE": "es negativo", - "MATH_IS_DIVISIBLE_BY": "es divisible por", - "MATH_IS_TOOLTIP": "Comprueba si un número es par, impar, primo, entero, positivo, negativo, o si es divisible por un número determinado. Devuelve verdadero o falso.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "añadir %2 a %1", - "MATH_CHANGE_TOOLTIP": "Añadir un número a la variable «%1».", - "MATH_ROUND_HELPURL": "https://es.wikipedia.org/wiki/Redondeo", - "MATH_ROUND_TOOLTIP": "Redondear un número al alza o a la baja.", - "MATH_ROUND_OPERATOR_ROUND": "redondear", - "MATH_ROUND_OPERATOR_ROUNDUP": "redondear al alza", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "redondear a la baja", - "MATH_ONLIST_OPERATOR_SUM": "suma de la lista", - "MATH_ONLIST_TOOLTIP_SUM": "Devuelve la suma de todos los números en la lista.", - "MATH_ONLIST_OPERATOR_MIN": "mínimo de la lista", - "MATH_ONLIST_TOOLTIP_MIN": "Devuelve el número más pequeño en la lista.", - "MATH_ONLIST_OPERATOR_MAX": "máximo de la lista", - "MATH_ONLIST_TOOLTIP_MAX": "Devuelve el número más grande en la lista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "promedio de la lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Devuelve el promedio (media aritmética) de los valores numéricos en la lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana de la lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Devuelve la mediana en la lista.", - "MATH_ONLIST_OPERATOR_MODE": "modas de la lista", - "MATH_ONLIST_TOOLTIP_MODE": "Devuelve una lista de los elementos más comunes en la lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "desviación estándar de la lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Devuelve la desviación estándar de la lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "elemento aleatorio de la lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Devuelve un elemento aleatorio de la lista.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "resto de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Devuelve el resto al dividir los dos números.", - "MATH_CONSTRAIN_TITLE": "limitar %1 entre %2 y %3", - "MATH_CONSTRAIN_TOOLTIP": "Limitar un número entre los límites especificados (inclusive).", - "MATH_RANDOM_INT_HELPURL": "https://es.wikipedia.org/wiki/Generador_de_números_aleatorios", - "MATH_RANDOM_INT_TITLE": "entero aleatorio de %1 a %2", - "MATH_RANDOM_INT_TOOLTIP": "Devuelve un entero aleatorio entre los dos límites especificados, inclusive.", - "MATH_RANDOM_FLOAT_HELPURL": "https://es.wikipedia.org/wiki/Generador_de_números_aleatorios", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fracción aleatoria", - "MATH_RANDOM_FLOAT_TOOLTIP": "Devuelve una fracción aleatoria entre 0,0 (ambos inclusive) y 1.0 (exclusivo).", - "MATH_ATAN2_HELPURL": "https://es.wikipedia.org/wiki/Arcotangente_de_dos_par%C3%A1metros", - "MATH_ATAN2_TITLE": "Arcotangente de X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Regresar el arcotangente del punto (X,Y) en grados de -180 a 180.", - "TEXT_TEXT_HELPURL": "https://es.wikipedia.org/wiki/Cadena_de_caracteres", - "TEXT_TEXT_TOOLTIP": "Una letra, palabra o línea de texto.", - "TEXT_JOIN_TITLE_CREATEWITH": "crear texto con", - "TEXT_JOIN_TOOLTIP": "Crear un fragmento de texto al unir cualquier número de elementos.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unir", - "TEXT_CREATE_JOIN_TOOLTIP": "Agregar, eliminar o reordenar las secciones para reconfigurar este bloque de texto.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Agregar un elemento al texto.", - "TEXT_APPEND_TITLE": "a %1 añade el texto %2", - "TEXT_APPEND_TOOLTIP": "Añadir texto a la variable '%1'.", - "TEXT_LENGTH_TITLE": "longitud de %1", - "TEXT_LENGTH_TOOLTIP": "Devuelve el número de letras (espacios incluidos) del texto proporcionado.", - "TEXT_ISEMPTY_TITLE": "%1 está vacío", - "TEXT_ISEMPTY_TOOLTIP": "Devuelve verdadero si el texto proporcionado está vacío.", - "TEXT_INDEXOF_TOOLTIP": "Devuelve el índice de la primera/última aparición del primer texto en el segundo texto. Devuelve %1 si el texto no se encuentra.", - "TEXT_INDEXOF_TITLE": "en el texto %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "encontrar la primera aparición del texto", - "TEXT_INDEXOF_OPERATOR_LAST": "encontrar la última aparición del texto", - "TEXT_CHARAT_TITLE": "en el texto %1 %2", - "TEXT_CHARAT_FROM_START": "obtener la letra #", - "TEXT_CHARAT_FROM_END": "obtener la letra # del final", - "TEXT_CHARAT_FIRST": "obtener la primera letra", - "TEXT_CHARAT_LAST": "obtener la última letra", - "TEXT_CHARAT_RANDOM": "obtener letra aleatoria", - "TEXT_CHARAT_TOOLTIP": "Devuelve la letra en la posición especificada.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Devuelve una porción determinada del texto.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "en el texto", - "TEXT_GET_SUBSTRING_START_FROM_START": "obtener subcadena desde la letra #", - "TEXT_GET_SUBSTRING_START_FROM_END": "obtener subcadena desde la letra # del final", - "TEXT_GET_SUBSTRING_START_FIRST": "obtener subcadena desde la primera letra", - "TEXT_GET_SUBSTRING_END_FROM_START": "hasta la letra #", - "TEXT_GET_SUBSTRING_END_FROM_END": "hasta la letra # del final", - "TEXT_GET_SUBSTRING_END_LAST": "hasta la última letra", - "TEXT_CHANGECASE_TOOLTIP": "Devuelve una copia del texto en un tamaño diferente.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "a MAYÚSCULAS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "a minúsculas", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "a Mayúsculas Cada Palabra", - "TEXT_TRIM_TOOLTIP": "Devuelve una copia del texto sin los espacios de uno o ambos extremos.", - "TEXT_TRIM_OPERATOR_BOTH": "quitar espacios de ambos lados de", - "TEXT_TRIM_OPERATOR_LEFT": "quitar espacios iniciales de", - "TEXT_TRIM_OPERATOR_RIGHT": "quitar espacios finales de", - "TEXT_PRINT_TITLE": "imprimir %1", - "TEXT_PRINT_TOOLTIP": "Imprimir el texto, número u otro valor especificado.", - "TEXT_PROMPT_TYPE_TEXT": "solicitar texto con el mensaje", - "TEXT_PROMPT_TYPE_NUMBER": "solicitar número con el mensaje", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Solicitar al usuario un número.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Solicitar al usuario un texto.", - "TEXT_COUNT_MESSAGE0": "contar %1 en %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Cuantas veces aparece un texto dentro de otro texto.", - "TEXT_REPLACE_MESSAGE0": "reemplazar %1 con %2 en %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Reemplazar todas las veces que un texto dentro de otro texto.", - "TEXT_REVERSE_MESSAGE0": "invertir %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Invierte el orden de los caracteres en el texto.", - "LISTS_CREATE_EMPTY_TITLE": "crear lista vacía", - "LISTS_CREATE_EMPTY_TOOLTIP": "Devuelve una lista, de longitud 0, sin ningún dato", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Crear una lista con cualquier número de elementos.", - "LISTS_CREATE_WITH_INPUT_WITH": "crear lista con", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Agregar, eliminar o reorganizar las secciones para reconfigurar este bloque de lista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Agregar un elemento a la lista.", - "LISTS_REPEAT_TOOLTIP": "Crea una lista que consta de un valor dado repetido el número de veces especificado.", - "LISTS_REPEAT_TITLE": "crear lista con el elemento %1 repetido %2 veces", - "LISTS_LENGTH_TITLE": "longitud de %1", - "LISTS_LENGTH_TOOLTIP": "Devuelve la longitud de una lista.", - "LISTS_ISEMPTY_TITLE": "%1 está vacía", - "LISTS_ISEMPTY_TOOLTIP": "Devuelve verdadero si la lista está vacía.", - "LISTS_INLIST": "en la lista", - "LISTS_INDEX_OF_FIRST": "encontrar la primera aparición del elemento", - "LISTS_INDEX_OF_LAST": "encontrar la última aparición del elemento", - "LISTS_INDEX_OF_TOOLTIP": "Devuelve el índice de la primera/última aparición del elemento en la lista. Devuelve %1 si el elemento no se encuentra.", - "LISTS_GET_INDEX_GET": "obtener", - "LISTS_GET_INDEX_GET_REMOVE": "obtener y eliminar", - "LISTS_GET_INDEX_REMOVE": "eliminar", - "LISTS_GET_INDEX_FROM_END": "# del final", - "LISTS_GET_INDEX_FIRST": "primero", - "LISTS_GET_INDEX_LAST": "último", - "LISTS_GET_INDEX_RANDOM": "aleatorio", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 es el primer elemento.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 es el último elemento.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Devuelve el elemento en la posición especificada en una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Devuelve el primer elemento de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Devuelve el último elemento de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Devuelve un elemento aleatorio en una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Elimina y devuelve el elemento en la posición especificada en una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Elimina y devuelve el primer elemento de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Elimina y devuelve el último elemento de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Elimina y devuelve un elemento aleatorio en una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Elimina el elemento en la posición especificada en una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Elimina el primer elemento de una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Elimina el último elemento de una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Elimina un elemento aleatorio en una lista.", - "LISTS_SET_INDEX_SET": "establecer", - "LISTS_SET_INDEX_INSERT": "insertar en", - "LISTS_SET_INDEX_INPUT_TO": "como", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Establece el elemento en la posición especificada en una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Establece el primer elemento de una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Establece el último elemento de una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Establece un elemento aleatorio en una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Inserta el elemento en la posición especificada en una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Inserta el elemento al inicio de una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Añade el elemento al final de una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Inserta el elemento aleatoriamente en una lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "obtener sublista desde #", - "LISTS_GET_SUBLIST_START_FROM_END": "obtener sublista desde # del final", - "LISTS_GET_SUBLIST_START_FIRST": "obtener sublista desde el primero", - "LISTS_GET_SUBLIST_END_FROM_START": "hasta #", - "LISTS_GET_SUBLIST_END_FROM_END": "hasta # del final", - "LISTS_GET_SUBLIST_END_LAST": "hasta el último", - "LISTS_GET_SUBLIST_TOOLTIP": "Crea una copia de la parte especificada de una lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "orden %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ordenar una copia de una lista.", - "LISTS_SORT_ORDER_ASCENDING": "ascendente", - "LISTS_SORT_ORDER_DESCENDING": "descendente", - "LISTS_SORT_TYPE_NUMERIC": "numérico", - "LISTS_SORT_TYPE_TEXT": "alfabético", - "LISTS_SORT_TYPE_IGNORECASE": "alfabético, ignorar mayúscula/minúscula", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "hacer lista a partir de texto", - "LISTS_SPLIT_TEXT_FROM_LIST": "hacer texto a partir de lista", - "LISTS_SPLIT_WITH_DELIMITER": "con delimitador", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Dividir el texto en una lista de textos, separando en cada delimitador.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Unir una lista de textos en un solo texto, separado por un delimitador.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "invertir %1", - "LISTS_REVERSE_TOOLTIP": "Invertir una copia de una lista.", - "VARIABLES_GET_TOOLTIP": "Devuelve el valor de esta variable.", - "VARIABLES_GET_CREATE_SET": "Crear 'establecer %1'", - "VARIABLES_SET": "establecer %1 a %2", - "VARIABLES_SET_TOOLTIP": "Establece esta variable para que sea igual a la entrada.", - "VARIABLES_SET_CREATE_GET": "Crear 'obtener %1'", - "PROCEDURES_DEFNORETURN_TITLE": "para", - "PROCEDURES_DEFNORETURN_PROCEDURE": "hacer algo", - "PROCEDURES_BEFORE_PARAMS": "con:", - "PROCEDURES_CALL_BEFORE_PARAMS": "con:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Crea una función sin salida.", - "PROCEDURES_DEFNORETURN_COMMENT": "Describe esta función...", - "PROCEDURES_DEFRETURN_RETURN": "devuelve", - "PROCEDURES_DEFRETURN_TOOLTIP": "Crea una función con una salida.", - "PROCEDURES_ALLOW_STATEMENTS": "permitir declaraciones", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Advertencia: Esta función tiene parámetros duplicados.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://es.wikipedia.org/wiki/Subrutina", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Ejecuta la función definida por el usuario '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://es.wikipedia.org/wiki/Subrutina", - "PROCEDURES_CALLRETURN_TOOLTIP": "Ejecuta la función definida por el usuario '%1' y usa su salida.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entradas", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Añadir, eliminar o reordenar entradas para esta función.", - "PROCEDURES_MUTATORARG_TITLE": "nombre de entrada:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Añadir una entrada a la función.", - "PROCEDURES_HIGHLIGHT_DEF": "Destacar definición de la función", - "PROCEDURES_CREATE_DO": "Crear '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Si un valor es verdadero, entonces devuelve un segundo valor.", - "PROCEDURES_IFRETURN_WARNING": "Advertencia: Este bloque solo puede ser utilizado dentro de la definición de una función.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Di algo…", - "COLLAPSED_WARNINGS_WARNING": "Bloques colapsados contienen advertencias." -} diff --git a/lib/blockly/msg/json/et.json b/lib/blockly/msg/json/et.json deleted file mode 100644 index a2f11bc..0000000 --- a/lib/blockly/msg/json/et.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Aivarannamaa", - "Hasso", - "Puik", - "Ilmarine", - "Masavi" - ] - }, - "VARIABLES_DEFAULT_NAME": "objekt", - "TODAY": "Täna", - "DUPLICATE_BLOCK": "Tekita duplikaat", - "ADD_COMMENT": "Lisa kommentaar", - "REMOVE_COMMENT": "Eemalda kommentaar", - "DUPLICATE_COMMENT": "Dubleeri kommentaar", - "EXTERNAL_INPUTS": "Sisendid ploki taga", - "INLINE_INPUTS": "Sisendid ploki sees", - "DELETE_BLOCK": "Kustuta plokk", - "DELETE_X_BLOCKS": "Kustuta %1 plokki", - "DELETE_ALL_BLOCKS": "Kas kustutada kõik %1 plokki?", - "CLEAN_UP": "Korista plokid kokku", - "COLLAPSE_BLOCK": "Tõmba plokk kokku", - "COLLAPSE_ALL": "Tõmba plokid kokku", - "EXPAND_BLOCK": "Laota plokk laiali", - "EXPAND_ALL": "Laota plokid laiali", - "DISABLE_BLOCK": "Keela ploki kasutamine", - "ENABLE_BLOCK": "Luba ploki kasutamine", - "HELP": "Abi", - "UNDO": "Võta tagasi", - "REDO": "Tee uuesti", - "CHANGE_VALUE_TITLE": "Muuda väärtust:", - "RENAME_VARIABLE": "Nimeta muutuja ümber ...", - "RENAME_VARIABLE_TITLE": "Muutuja „%1“ uus nimi:", - "NEW_VARIABLE": "Uus muutuja ...", - "NEW_STRING_VARIABLE": "Loo muutuja sõnena...", - "NEW_NUMBER_VARIABLE": "Loo muutuja arvuna...", - "NEW_COLOUR_VARIABLE": "Loo muutuja värvina...", - "NEW_VARIABLE_TYPE_TITLE": "Uue muutuja tüüp:", - "NEW_VARIABLE_TITLE": "Uue muutuja nimi:", - "VARIABLE_ALREADY_EXISTS": "'%1'-nimeline muutuja on juba olemas.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Muutuja nimega '%1' juba eksisteerib teise tüübina: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Kas kustutada %1 kohas kasutatav muutuja '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Muutujat '%1' ei saa kustutada, sest see on osa funktsiooni '%2' määratlusest", - "DELETE_VARIABLE": "Kustuta muutuja '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Valitud värv paletist.", - "COLOUR_RANDOM_TITLE": "juhuslik värv", - "COLOUR_RANDOM_TOOLTIP": "Juhuslikult valitud värv.", - "COLOUR_RGB_TITLE": "segu", - "COLOUR_RGB_RED": "punasest", - "COLOUR_RGB_GREEN": "rohelisest", - "COLOUR_RGB_BLUE": "sinisest", - "COLOUR_RGB_TOOLTIP": "Tekitab värvi määratud hulgast punasest, rohelisest ja sinisest. Kõik väärtused peavad olema 0 ja 100 vahel.", - "COLOUR_BLEND_TITLE": "segu", - "COLOUR_BLEND_COLOUR1": "1. värvist", - "COLOUR_BLEND_COLOUR2": "2. värvist", - "COLOUR_BLEND_RATIO": "suhtega", - "COLOUR_BLEND_TOOLTIP": "Segab kaks värvi määratud suhtega (0.0 - 1.0) kokku.", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 korda", - "CONTROLS_REPEAT_INPUT_DO": "käivita", - "CONTROLS_REPEAT_TOOLTIP": "Plokis olevate käskude käivitamine määratud arv kordi.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "seni kuni on", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "seni kuni pole", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Plokis olevaid käske korratakse seni kui avaldis on tõene.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Plokis olevaid käske korratakse seni kui avaldis pole tõene.", - "CONTROLS_FOR_TOOLTIP": "Annab muutujale '%1' väärtused ühest numbrist teiseni, muutes seda intervalli kaupa ja käivitab igal muudatusel ploki sees oleva koodi.", - "CONTROLS_FOR_TITLE": "loendus muutujaga %1 alates %2 kuni %3, %4 kaupa", - "CONTROLS_FOREACH_TITLE": "iga elemendiga %1 loendis %2", - "CONTROLS_FOREACH_TOOLTIP": "Iga elemendiga loendis anna muutujale '%1' elemendi väärtus ja kõivita plokis olevad käsud.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "välju kordusest", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "katkesta see kordus ja liigu järgmisele", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Väljub kordusest ja liigub edasi korduse järel oleva koodi käivitamisele.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Katkestab korduses oleva koodi käivitamise ja käivitab järgmise korduse.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Hoiatus: Seda plokki saab kasutada ainult korduse sees.", - "CONTROLS_IF_TOOLTIP_1": "Kui avaldis on tõene, käivita ploki sees olevad käsud.", - "CONTROLS_IF_TOOLTIP_2": "Kui avaldis on tõene, käivita käsud esimesest plokist. Vastasel juhul käivita käsud teisest plokist.", - "CONTROLS_IF_TOOLTIP_3": "Kui esimene avaldis on tõene, käivita käsud esimesest plokist. Vastasel juhul, kui teine avaldis on tõene, käivita käsud teisest plokist.", - "CONTROLS_IF_TOOLTIP_4": "Kui esimene avaldis on tõene, käivita käsud esimesest plokist. Vastasel juhul, kui teine avaldis on tõene, käivita käsud teisest plokist. Kui ükski avaldistest pole tõene, käivita käsud viimasest plokist.", - "CONTROLS_IF_MSG_IF": "kui", - "CONTROLS_IF_MSG_ELSEIF": "vastasel juhul, kui", - "CONTROLS_IF_MSG_ELSE": "vastasel juhul", - "CONTROLS_IF_IF_TOOLTIP": "Selle „kui“ ploki muutmine sektsioonide lisamise, eemaldamise ja järjestamisega.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Lisab „kui“ plokile tingimuse.", - "CONTROLS_IF_ELSE_TOOLTIP": "Lisab „kui“ plokile lõpliku tingimuseta koodiploki.", - "IOS_OK": "OK", - "IOS_CANCEL": "Tühista", - "IOS_ERROR": "Viga", - "IOS_PROCEDURES_INPUTS": "SISEND", - "IOS_PROCEDURES_ADD_INPUT": "+ Lisa sisend", - "IOS_VARIABLES_ADD_VARIABLE": "+ Lisa muutuja", - "IOS_VARIABLES_ADD_BUTTON": "Lisa", - "IOS_VARIABLES_RENAME_BUTTON": "Nimeta ümber", - "IOS_VARIABLES_DELETE_BUTTON": "Kustuta", - "IOS_VARIABLES_VARIABLE_NAME": "Muutuja nimi", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Tühja muutuja nime ei saa kasutada.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Tagastab „tõene“, kui avaldiste väärtused on võrdsed.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Tagastab „tõene“, kui avaldiste väärtused pole võrdsed.", - "LOGIC_COMPARE_TOOLTIP_LT": "Tagastab „tõene“, kui esimese avaldise väärtus on väiksem kui teise väärtus.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Tagastab „tõene“, kui esimese avaldise väärtus on väiksem või võrdne teise väärtusega.", - "LOGIC_COMPARE_TOOLTIP_GT": "Tagastab „tõene“, kui esimese avaldise väärtus on suurem kui teise väärtus.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Tagastab „tõene“, kui esimese avaldise väärtus on suurem või võrdne teise väärtusega.", - "LOGIC_OPERATION_TOOLTIP_AND": "Tagastab „tõene“, kui mõlemad avaldised on tõesed.", - "LOGIC_OPERATION_AND": "ja", - "LOGIC_OPERATION_TOOLTIP_OR": "Tagastab „tõene“, kui vähemalt üks avaldistest on tõene.", - "LOGIC_OPERATION_OR": "või", - "LOGIC_NEGATE_TITLE": "pole %1", - "LOGIC_NEGATE_TOOLTIP": "Tagastab „tõene“, kui avaldis on väär. Tagastab „väär“, kui avaldis on tõene.", - "LOGIC_BOOLEAN_TRUE": "tõene", - "LOGIC_BOOLEAN_FALSE": "väär", - "LOGIC_BOOLEAN_TOOLTIP": "Tagastab tõeväärtuse – kas „tõene“ või „väär“.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Tagastab nulli.", - "LOGIC_TERNARY_CONDITION": "tingimus", - "LOGIC_TERNARY_IF_TRUE": "kui tõene", - "LOGIC_TERNARY_IF_FALSE": "kui väär", - "LOGIC_TERNARY_TOOLTIP": "Kui tingimuse väärtus on tõene, tagastab „kui tõene“ väärtuse, vastasel juhul „kui väär“ väärtuse.", - "MATH_NUMBER_HELPURL": "https://et.wikipedia.org/wiki/Arv", - "MATH_NUMBER_TOOLTIP": "Arv.", - "MATH_ARITHMETIC_HELPURL": "https://et.wikipedia.org/wiki/Aritmeetika", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Tagastab kahe arvu summa.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Tagastab kahe arvu vahe.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Tagastab kahe arvu korrutise.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Tagastab kahe arvu jagatise.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Tagastab esimese arvu teise arvu astmes.", - "MATH_SINGLE_HELPURL": "https://et.wikipedia.org/wiki/Ruutjuur", - "MATH_SINGLE_OP_ROOT": "ruutjuur", - "MATH_SINGLE_TOOLTIP_ROOT": "Tagastab arvu ruutjuure.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluutväärtus", - "MATH_SINGLE_TOOLTIP_ABS": "Tagastab arvu absoluutväärtuse.", - "MATH_SINGLE_TOOLTIP_NEG": "Tagastab arvu vastandväärtuse.", - "MATH_SINGLE_TOOLTIP_LN": "Tagastab arvu naturaallogaritmi.", - "MATH_SINGLE_TOOLTIP_LOG10": "Tagastab arvu kümnendlogaritm.", - "MATH_SINGLE_TOOLTIP_EXP": "Tagasta e arvu astmes.", - "MATH_SINGLE_TOOLTIP_POW10": "Tagastab 10 arvu astmes.", - "MATH_TRIG_HELPURL": "https://et.wikipedia.org/wiki/Trigonomeetrilised_funktsioonid", - "MATH_TRIG_TOOLTIP_SIN": "Tagastab arvu (kraadid) siinuse.", - "MATH_TRIG_TOOLTIP_COS": "Tagastab arvu (kraadid) kosiinuse.", - "MATH_TRIG_TOOLTIP_TAN": "Tagastab arvu (kraadid) tangensi.", - "MATH_TRIG_TOOLTIP_ASIN": "Tagastab arvu arkussiinuse.", - "MATH_TRIG_TOOLTIP_ACOS": "Tagastab arvu arkuskoosiinuse.", - "MATH_TRIG_TOOLTIP_ATAN": "Tagastab arvu arkustangensi.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Tagastab ühe konstantidest: π (3,141…), e (2,718…), φ (1.618…), √2) (1,414…), √½ (0,707…), või ∞ (infinity).", - "MATH_IS_EVEN": "on paarisarv", - "MATH_IS_ODD": "on paaritu arv", - "MATH_IS_PRIME": "on algarv", - "MATH_IS_WHOLE": "on täisarv", - "MATH_IS_POSITIVE": "on positiivne arv", - "MATH_IS_NEGATIVE": "on negatiivne arv", - "MATH_IS_DIVISIBLE_BY": "jagub arvuga", - "MATH_IS_TOOLTIP": "Kontrollib kas arv on paarisarv, paaritu arv, algarv, täisarv, positiivne, negatiivne või jagub kindla arvuga. Tagastab „tõene“ või „väär“.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "muuda %1 %2 võrra", - "MATH_CHANGE_TOOLTIP": "Lisab arvu muutujale '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Ümardab arvu üles või alla.", - "MATH_ROUND_OPERATOR_ROUND": "ümarda", - "MATH_ROUND_OPERATOR_ROUNDUP": "ümarda üles", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ümarda alla", - "MATH_ONLIST_OPERATOR_SUM": "loendi summa", - "MATH_ONLIST_TOOLTIP_SUM": "Tagastab kõigi loendis olevate arvude summa.", - "MATH_ONLIST_OPERATOR_MIN": "loendi miinimum", - "MATH_ONLIST_TOOLTIP_MIN": "Tagastab väikseima loendis oleva arvu.", - "MATH_ONLIST_OPERATOR_MAX": "loendi maksimum", - "MATH_ONLIST_TOOLTIP_MAX": "Tagastab suurima loendis oleva arvu.", - "MATH_ONLIST_OPERATOR_AVERAGE": "loendi keskmine", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Tagastab loendis olevate arvväärtuste aritmeetilise keskmise.", - "MATH_ONLIST_OPERATOR_MEDIAN": "loendi mediaan", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Return the median number in the list.", - "MATH_ONLIST_OPERATOR_MODE": "loendi moodid", - "MATH_ONLIST_TOOLTIP_MODE": "Tagastab loendi kõige sagedamini esinevate loendi liikmetega.", - "MATH_ONLIST_OPERATOR_STD_DEV": "loendi standardhälve", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Tagastab loendi standardhälbe.", - "MATH_ONLIST_OPERATOR_RANDOM": "juhuslik element loendist", - "MATH_ONLIST_TOOLTIP_RANDOM": "Tagastab juhusliku elemendi loendist.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2 jääk", - "MATH_MODULO_TOOLTIP": "Tagastab esimese numbri teisega jagamisel tekkiva jäägi.", - "MATH_CONSTRAIN_TITLE": "%1 piirang %2 ja %3 vahele", - "MATH_CONSTRAIN_TOOLTIP": "Piirab arvu väärtuse toodud piiridesse (piirarvud kaasa arvatud).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "juhuslik täisarv %1 ja %2 vahel", - "MATH_RANDOM_INT_TOOLTIP": "Tagastab juhusliku täisarvu toodud piiride vahel (piirarvud kaasa arvatud).", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "juhuslik murdosa", - "MATH_RANDOM_FLOAT_TOOLTIP": "Tagastab juhusliku murdosa 0.0 (kaasa arvatud) and 1.0 (välja arvatud) vahel.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2(X:%1, Y:%2)", - "MATH_ATAN2_TOOLTIP": "Tagastab punkti (X, Y) arkustangentsit kraadides vahemikus -180 kuni 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Täht, sõna või rida teksti.", - "TEXT_JOIN_TITLE_CREATEWITH": "tekita tekst", - "TEXT_JOIN_TOOLTIP": "Tekitab teksti ühendades mistahes arvu elemente.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "ühenda", - "TEXT_CREATE_JOIN_TOOLTIP": "Tekstiploki muutmine sektsioonide lisamise, eemaldamise või järjestuse muutmisega.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Objekti lisamine tekstile.", - "TEXT_APPEND_TITLE": "lisa muutuja %1 lõppu tekst %2", - "TEXT_APPEND_TOOLTIP": "Lisab teksti muutuja „%1“ väärtuse lõppu.", - "TEXT_LENGTH_TITLE": "%1 pikkus", - "TEXT_LENGTH_TOOLTIP": "Tagastab sümbolite aru (ka tühikud) toodud tekstis.", - "TEXT_ISEMPTY_TITLE": "%1 on tühi", - "TEXT_ISEMPTY_TOOLTIP": "Tagastab „tõene“, kui tekstis pole ühtegi sümbolit.", - "TEXT_INDEXOF_TOOLTIP": "Tagastab esimesest tekstist esimese/viimase leitud teise teksti asukoha (indeksi). Kui teksti ei leita, tagastab %1.", - "TEXT_INDEXOF_TITLE": "tekstist %1 %2 %3 asukoht", - "TEXT_INDEXOF_OPERATOR_FIRST": "esimese leitud tekstitüki", - "TEXT_INDEXOF_OPERATOR_LAST": "viimase leitud tekstitüki", - "TEXT_CHARAT_TITLE": "tekstis %1 %2", - "TEXT_CHARAT_FROM_START": "sümbol #", - "TEXT_CHARAT_FROM_END": "lõpust sümbol #", - "TEXT_CHARAT_FIRST": "esimene sümbol", - "TEXT_CHARAT_LAST": "viimane sümbol", - "TEXT_CHARAT_RANDOM": "juhuslik sümbol", - "TEXT_CHARAT_TOOLTIP": "Tagastab tekstis määratud asukohal oleva sümboli.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Tagastab määratud tüki tekstist.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "tekstist", - "TEXT_GET_SUBSTRING_START_FROM_START": "alates sümbolist #", - "TEXT_GET_SUBSTRING_START_FROM_END": "alates (lõpust) sümbolist #", - "TEXT_GET_SUBSTRING_START_FIRST": "alates esimesest sümbolist", - "TEXT_GET_SUBSTRING_END_FROM_START": "kuni sümbolini #", - "TEXT_GET_SUBSTRING_END_FROM_END": "kuni (lõpust) sümbolini #", - "TEXT_GET_SUBSTRING_END_LAST": "kuni viimase sümbolini", - "TEXT_CHANGECASE_TOOLTIP": "Tagastab muudetud tähesuurusega teksti koopia.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "SUURTE TÄHTEDEGA", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "väikeste tähtedega", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Suurte Esitähtedega", - "TEXT_TRIM_TOOLTIP": "Tagastab koopia tekstist, millel on tühikud ühelt või mõlemalt poolt eemaldatud.", - "TEXT_TRIM_OPERATOR_BOTH": "mõlemalt poolt eemaldatud tühikutega", - "TEXT_TRIM_OPERATOR_LEFT": "algusest eemaldatud tühikutega", - "TEXT_TRIM_OPERATOR_RIGHT": "lõpust eemaldatud tühikutega", - "TEXT_PRINT_TITLE": "trüki %1", - "TEXT_PRINT_TOOLTIP": "Trükib määratud teksti, numbri või mõne muu objekti väärtuse.", - "TEXT_PROMPT_TYPE_TEXT": "kasutajalt küsitud tekst teatega", - "TEXT_PROMPT_TYPE_NUMBER": "kasutajalt küsitud arv teatega", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Küsib kasutajalt teadet näidates mingit arvu.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Küsib kasutajalt teadet näidates mingit teksti.", - "TEXT_COUNT_MESSAGE0": "loenda %1 %2-ses", - "TEXT_COUNT_TOOLTIP": "Loenda, mitu korda mingi tekst esineb teise teksti sees.", - "TEXT_REPLACE_MESSAGE0": "asenda %1 %2-ga %3-s", - "TEXT_REPLACE_TOOLTIP": "Asenda mõne teksti esinemine mõnes muus tekstis.", - "TEXT_REVERSE_MESSAGE0": "ümberpöördud %1", - "LISTS_CREATE_EMPTY_TITLE": "tühi loend", - "LISTS_CREATE_EMPTY_TOOLTIP": "Tagastab loendi, mille pikkus on 0 ja milles pole ühtegi elementi.", - "LISTS_CREATE_WITH_TOOLTIP": "Tekitab mistahes arvust elementidest loendi.", - "LISTS_CREATE_WITH_INPUT_WITH": "uus loend", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "loend", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Loendiploki elementide lisamine, eemaldamine või järjestuse muutmine.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Elemendi lisamine loendisse.", - "LISTS_REPEAT_TOOLTIP": "Tekitab uue loendi, millesse lisatakse ühte elementi pikkusega määratud arv kordi.", - "LISTS_REPEAT_TITLE": "loend pikkusega %2 elemendist %1", - "LISTS_LENGTH_TITLE": "%1 pikkus", - "LISTS_LENGTH_TOOLTIP": "Tagastab loendi pikkuse.", - "LISTS_ISEMPTY_TITLE": "%1 on tühi", - "LISTS_ISEMPTY_TOOLTIP": "Tagastab „tõene“ kui loend on tühi.", - "LISTS_INLIST": "loendis", - "LISTS_INDEX_OF_FIRST": "esimene leitud", - "LISTS_INDEX_OF_LAST": "viimase leitud", - "LISTS_INDEX_OF_TOOLTIP": "Tagastab esimese/viimase loendist leitud objekti asukoha (objekti järjekorranumbri loendis). Kui objekti ei leita, tagastab %1.", - "LISTS_GET_INDEX_GET": "võetud", - "LISTS_GET_INDEX_GET_REMOVE": "võetud ja eemaldatud", - "LISTS_GET_INDEX_REMOVE": "eemalda", - "LISTS_GET_INDEX_FROM_START": "element #", - "LISTS_GET_INDEX_FROM_END": "element # (lõpust)", - "LISTS_GET_INDEX_FIRST": "esimene element", - "LISTS_GET_INDEX_LAST": "viimane element", - "LISTS_GET_INDEX_RANDOM": "juhuslik element", - "LISTS_INDEX_FROM_START_TOOLTIP": "Esimene element on %1.", - "LISTS_INDEX_FROM_END_TOOLTIP": "Viimane element on %1.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Tagastab loendis määratud asukohal oleva elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Tagastab loendi esimese elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Tagastab loendi viimase elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Tagastab loendi juhusliku elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Tagastab ja eemaldab loendist määratud asukohal oleva elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Tagastab ja eemaldab loendist esimese elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Tagastab ja eemaldab loendist viimase elemendi.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Tagastab ja eemaldab loendist juhusliku elemendi.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Eemaldab loendist määratud asukohal oleva elemendi.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Eemaldab loendist esimese elemendi.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Eemaldab loendist viimase elemendi.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Eemaldab loendist juhusliku elemendi.", - "LISTS_SET_INDEX_SET": "asenda", - "LISTS_SET_INDEX_INSERT": "lisa asukohale", - "LISTS_SET_INDEX_INPUT_TO": ", väärtus", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Asendab loendis määratud kohal oleva elemendi.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Asendab loendis esimese elemendi.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Asendab loendis viimase elemendi.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Asendab loendis juhusliku elemendi.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Lisab määratud asukohale loendis uue elemendi.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Lisab loendi algusesse uue elemendi.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Lisab loendi lõppu uue elemendi.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Lisab juhuslikule kohale loendis uue elemendi.", - "LISTS_GET_SUBLIST_START_FROM_START": "alamloend elemendist #", - "LISTS_GET_SUBLIST_START_FROM_END": "alamloend elemendist # (lõpust)", - "LISTS_GET_SUBLIST_START_FIRST": "alamloend algusest", - "LISTS_GET_SUBLIST_END_FROM_START": "elemendini #", - "LISTS_GET_SUBLIST_END_FROM_END": "elemendini # (lõpust)", - "LISTS_GET_SUBLIST_END_LAST": "lõpuni", - "LISTS_GET_SUBLIST_TOOLTIP": "Tekitab loendi määratud osast koopia.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 %2 sorteeritud %3", - "LISTS_SORT_TOOLTIP": "Loendi koopia sorteerimine.", - "LISTS_SORT_ORDER_ASCENDING": "kasvavalt", - "LISTS_SORT_ORDER_DESCENDING": "kahanevalt", - "LISTS_SORT_TYPE_NUMERIC": "arvväärtuste järgi", - "LISTS_SORT_TYPE_TEXT": "tähestiku järgi", - "LISTS_SORT_TYPE_IGNORECASE": "tähestiku järgi (tähesuurust eirates)", - "LISTS_SPLIT_LIST_FROM_TEXT": "loend, tekitatud tekstist", - "LISTS_SPLIT_TEXT_FROM_LIST": "tekst, tekitatud loendist", - "LISTS_SPLIT_WITH_DELIMITER": "eraldajaga", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Tükeldab teksti eraldajade kohalt ja asetab tükid tekstide loendisse.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Ühendab tekstide loendis olevad tükid üheks tekstiks, asetades tükkide vahele eraldaja.", - "VARIABLES_GET_TOOLTIP": "Tagastab selle muutuja väärtuse.", - "VARIABLES_GET_CREATE_SET": "Tekita 'määra „%1“ väärtuseks' plokk", - "VARIABLES_SET": "määra %1 väärtuseks %2", - "VARIABLES_SET_TOOLTIP": "Määrab selle muutuja väärtuse võrdseks sisendi väärtusega.", - "VARIABLES_SET_CREATE_GET": "Tekita '„%1“ väärtus' plokk", - "PROCEDURES_DEFNORETURN_TITLE": "funktsioon", - "PROCEDURES_DEFNORETURN_PROCEDURE": "teeme midagi", - "PROCEDURES_BEFORE_PARAMS": "sisenditega:", - "PROCEDURES_CALL_BEFORE_PARAMS": "sisenditega:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Tekitab funktsiooni, mis ei tagasta midagi.", - "PROCEDURES_DEFNORETURN_COMMENT": "Funktsiooni kirjeldus ...", - "PROCEDURES_DEFRETURN_RETURN": "tagasta", - "PROCEDURES_DEFRETURN_TOOLTIP": "Tekitab funktsiooni, mis tagastab midagi.", - "PROCEDURES_ALLOW_STATEMENTS": "kood plokis", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Hoiatus: Sel funktsioonil on mitu sama nimega sisendit.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://et.wikipedia.org/wiki/Alamprogramm", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Käivitab kasutaja defineeritud funktsiooni '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://et.wikipedia.org/wiki/Alamprogramm", - "PROCEDURES_CALLRETURN_TOOLTIP": "Run the user-defined function '%1' and use its output.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "sisendid", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Funktsiooni sisendite lisamine, eemaldamine või järjestuse muutmine.", - "PROCEDURES_MUTATORARG_TITLE": "sisend nimega:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Lisab funktsioonile sisendi.", - "PROCEDURES_HIGHLIGHT_DEF": "Tõsta funktsiooni definitsioon esile", - "PROCEDURES_CREATE_DO": "Tekita '%1' plokk", - "PROCEDURES_IFRETURN_TOOLTIP": "Kui väärtus on tõene, tagastatakse teine väärtus.", - "PROCEDURES_IFRETURN_WARNING": "Hoiatus: Seda plokki saab kasutada ainult funktsiooni definitsioonis." -} diff --git a/lib/blockly/msg/json/eu.json b/lib/blockly/msg/json/eu.json deleted file mode 100644 index 9c20983..0000000 --- a/lib/blockly/msg/json/eu.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "@metadata": { - "authors": [ - "An13sa", - "Asieriko", - "Mikel Ibaiba", - "Subi", - "RFenichel", - "Amaia", - "EukeneFL" - ] - }, - "VARIABLES_DEFAULT_NAME": "Elementua", - "TODAY": "Gaur", - "DUPLICATE_BLOCK": "Bikoiztu", - "ADD_COMMENT": "Iruzkina gehitu", - "REMOVE_COMMENT": "Iruzkina ezabatu", - "DUPLICATE_COMMENT": "Iruzkina bikoiztu", - "EXTERNAL_INPUTS": "Kanpoko sarrerak", - "INLINE_INPUTS": "Inpuntak Linean", - "DELETE_BLOCK": "Ezabatu blokea", - "DELETE_X_BLOCKS": "Ezabatu %1 bloke", - "DELETE_ALL_BLOCKS": "Ezabatu %1 blokeak?", - "CLEAN_UP": "Blokeak garbitu", - "COLLAPSE_BLOCK": "Blokea kolapsatu", - "COLLAPSE_ALL": "Blokeak kolapsatu", - "EXPAND_BLOCK": "Blokea Hedatu", - "EXPAND_ALL": "Blokeak Hedatu", - "DISABLE_BLOCK": "Ezgaitu blokea", - "ENABLE_BLOCK": "Gaitu blokea", - "HELP": "Laguntza", - "UNDO": "Desegin", - "REDO": "Berregin", - "CHANGE_VALUE_TITLE": "Aldatu balioa:", - "RENAME_VARIABLE": "Aldatu aldagaiaren izena...", - "RENAME_VARIABLE_TITLE": "Aldatu '%1' aldagai guztien izenak eta izen hau eman:", - "NEW_VARIABLE": "Aldagaia sortu...", - "NEW_STRING_VARIABLE": "Kate aldakorra sortu...", - "NEW_NUMBER_VARIABLE": "Zenbaki aldagaia sortu...", - "NEW_COLOUR_VARIABLE": "Kolore aldagaia sortu...", - "NEW_VARIABLE_TYPE_TITLE": "Aldagai berriaren izena:", - "NEW_VARIABLE_TITLE": "Aldagai berriaren izena:", - "VARIABLE_ALREADY_EXISTS": "%1 parametro izena dagoeneko existitzen da", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "%1 izeneko aldagaia dagoeneko existitzen da %2 motako beste aldagai batekin.", - "DELETE_VARIABLE_CONFIRMATION": "Ezabatu %2 aldagaiaren %1 erabilerak?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ezin da '%1' aldagaia ezabatu '%2' funtzioaren definizioaren zati delako.", - "DELETE_VARIABLE": "%1 parametro izena ezabatu.", - "COLOUR_PICKER_HELPURL": "https://eu.wikipedia.org/wiki/Kolore", - "COLOUR_PICKER_TOOLTIP": "Hautatu kolore bat paletatik.", - "COLOUR_RANDOM_TITLE": "ausazko kolorea", - "COLOUR_RANDOM_TOOLTIP": "Aukeratu ausaz kolore bat.", - "COLOUR_RGB_TITLE": "colour with", - "COLOUR_RGB_RED": "gorria", - "COLOUR_RGB_GREEN": "berdea", - "COLOUR_RGB_BLUE": "urdina", - "COLOUR_RGB_TOOLTIP": "Sortu kolorea zehaztutako gorriz, berdearekin eta urdinekin. Balio guztiak 0 eta 100 artean egon behar dira.", - "COLOUR_BLEND_TITLE": "Nahastu", - "COLOUR_BLEND_COLOUR1": "1 Kolorea", - "COLOUR_BLEND_COLOUR2": "2 Kolorea", - "COLOUR_BLEND_RATIO": "Ratioa", - "COLOUR_BLEND_TOOLTIP": "Bi koloreko nahasketak erlazio jakin batekin nahasten ditu (0.0-1.0)", - "CONTROLS_REPEAT_HELPURL": "https://eu.wikipedia.org/wiki/For_begizta", - "CONTROLS_REPEAT_TITLE": "errepikatu %1 aldiz", - "CONTROLS_REPEAT_INPUT_DO": "egin", - "CONTROLS_REPEAT_TOOLTIP": "Adierazpen batzuk hainbat aldiz egin.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "bitartean errepikatu", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "arte errepikatu", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Balorea egia den bitartean, egin adierazpen batzuk.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Balorea gezurra den bitartean, egin adierazpen batzuk.", - "CONTROLS_FOR_TOOLTIP": "%1 aldagaiak hasierako zenbakiaren eta amaierako zenbakirako balioak hartzen ditu, zehaztutako tartea zenbatzen du eta zehaztutako blokeak egin.", - "CONTROLS_FOR_TITLE": "%1 zenbatu %2-tik %3-ra %4-ra", - "CONTROLS_FOREACH_TITLE": "%1 elementu bakoitzeko %2 zerrendan", - "CONTROLS_FOREACH_TOOLTIP": "Zerrendako elementu bakoitzarentzat, ezarri %1 aldagaia elementura, eta egin adierazpen batzuk.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "begizta eten", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "jarraitu hurrengo begizta iterazioarekin", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Agertzen den begiztatik ihes egin.", - "CONTROLS_IF_TOOLTIP_1": "Balorea egia den bitartean, egin adierazpen batzuk.", - "CONTROLS_IF_TOOLTIP_2": "Balorea egia bada, orduan egin ezazu lehenengo adierazpen blokea. Bestela, egin ezazu bigarren adierazpen blokea.", - "CONTROLS_IF_TOOLTIP_3": "Lehenengo balorea egia bada, orduan egin ezazu lehenengo adierazpen blokea. Bestela, bigarren balorea egia bada, egin ezazu bigarren adierazpen blokea.", - "CONTROLS_IF_TOOLTIP_4": "Lehenengo balorea egia bada, orduan egin ezazu lehenengo adierazpen blokea. Bestela, bigarren balorea egia bada, egin ezazu bigarren adierazpen blokea. Baloreetako bat ere ez bada egia, egin ezazu adierazpenen azkeneko blokea.", - "CONTROLS_IF_MSG_IF": "baldin eta", - "CONTROLS_IF_MSG_ELSEIF": "bestela baldin eta", - "CONTROLS_IF_MSG_ELSE": "bestela", - "CONTROLS_IF_IF_TOOLTIP": "Gehitu, ezabatu, ala berrantolatu aukeraketak \"ba\" bloke hau berrezartzeko.", - "IOS_OK": "Ados", - "IOS_CANCEL": "Utzi", - "IOS_ERROR": "Errorea", - "IOS_PROCEDURES_INPUTS": "SARRERAK", - "IOS_PROCEDURES_ADD_INPUT": "+ Gehitu sarrera", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Adierazpenak baimendu", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Funtzio honek errepikatutako sarrerak ditu.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Gehitu aldagaia", - "IOS_VARIABLES_ADD_BUTTON": "Gehitu", - "IOS_VARIABLES_RENAME_BUTTON": "Izena aldatu", - "IOS_VARIABLES_DELETE_BUTTON": "Ezabatu", - "IOS_VARIABLES_VARIABLE_NAME": "Aldagaiaren izena", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ezin duzu aldagaiaren izen huts bat erabili.", - "LOGIC_COMPARE_HELPURL": "https://eu.wikipedia.org/wiki/Desberdintza", - "LOGIC_OPERATION_AND": "eta", - "LOGIC_OPERATION_OR": "edo", - "LOGIC_NEGATE_TITLE": "ez %1", - "LOGIC_BOOLEAN_TRUE": "egia", - "LOGIC_BOOLEAN_FALSE": "gezurra", - "LOGIC_NULL": "nulu", - "LOGIC_TERNARY_CONDITION": "Froga", - "LOGIC_TERNARY_IF_TRUE": "egia bada", - "LOGIC_TERNARY_IF_FALSE": "gezurra bada", - "MATH_NUMBER_HELPURL": "https://eu.wikipedia.org/wiki/Zenbaki", - "MATH_NUMBER_TOOLTIP": "Zenbaki bat.", - "MATH_ARITHMETIC_HELPURL": "https://eu.wikipedia.org/wiki/Aritmetika", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Bi zenbakien batura ematen du.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Bi zenbakien kendura ematen du.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Bi zenbakien biderkadura ematen du.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Bi zenbakien zatidura ematen du.", - "MATH_SINGLE_HELPURL": "https://eu.wikipedia.org/wiki/Erro_karratu", - "MATH_SINGLE_OP_ROOT": "erro karratua", - "MATH_SINGLE_TOOLTIP_ROOT": "Zenbaki baten erro karratua ematen du.", - "MATH_SINGLE_OP_ABSOLUTE": "absolutua", - "MATH_SINGLE_TOOLTIP_ABS": "Zenbaki baten balio absolutua ematen du.", - "MATH_SINGLE_TOOLTIP_LN": "Zenbaki baten logaritmo naturala ematen du.", - "MATH_TRIG_HELPURL": "https://eu.wikipedia.org/wiki/Funtzio_trigonometriko", - "MATH_TRIG_TOOLTIP_ASIN": "Zenbaki baten arku sinua ematen du.", - "MATH_TRIG_TOOLTIP_ACOS": "Zenbaki baten arku kosinua ematen du.", - "MATH_TRIG_TOOLTIP_ATAN": "Zenbaki baten arku tangentea ematen du.", - "MATH_CONSTANT_TOOLTIP": "Konstante ohikoenetako bat itzultzen du: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), edo ∞ (infinitua).", - "MATH_IS_EVEN": "bikoitia da", - "MATH_IS_ODD": "bakoitia da", - "MATH_IS_PRIME": "zenbaki lehena da", - "MATH_IS_WHOLE": "zenbaki osoa da", - "MATH_IS_POSITIVE": "positiboa da", - "MATH_IS_NEGATIVE": "negatiboa da", - "MATH_IS_DIVISIBLE_BY": "honakoaz zatigarria da", - "MATH_CHANGE_TITLE": "aldatu %1 %2(e)ra", - "MATH_CHANGE_TOOLTIP": "Gehitu zenbakia '%1' aldagaiari.", - "MATH_ROUND_HELPURL": "https://eu.wikipedia.org/wiki/Biribiltze", - "MATH_ROUND_TOOLTIP": "Zenbaki bat gehiagoz edo gutxiagoz biribildu.", - "MATH_ROUND_OPERATOR_ROUND": "biribildu", - "MATH_ROUND_OPERATOR_ROUNDUP": "gehiagoz biribildu", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "gutxiagoz biribildu", - "MATH_ONLIST_OPERATOR_SUM": "zerrendaren batura", - "MATH_ONLIST_TOOLTIP_SUM": "Eman zerrendako zenbaki guztien batura.", - "MATH_ONLIST_OPERATOR_MIN": "zerrendako minimoa", - "MATH_ONLIST_TOOLTIP_MIN": "Eman zerrendako zenbakirik txikiena.", - "MATH_ONLIST_OPERATOR_MAX": "zerrendako maximoa", - "MATH_ONLIST_TOOLTIP_MAX": "Eman zerrendako zenbakirik handiena.", - "MATH_ONLIST_OPERATOR_AVERAGE": "zerrendaren batazbestekoa", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Zerrendako zenbakizko balioen batazbestekoa (aritmetikoa) itzultzen du.", - "MATH_ONLIST_OPERATOR_MEDIAN": "zerrendako mediana", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Eman zerrendako zenbaki media.", - "MATH_ONLIST_OPERATOR_MODE": "zerrendako modak", - "MATH_ONLIST_TOOLTIP_MODE": "Bueltatu artikulurik ohikoenetarikoen zerrenda.", - "MATH_ONLIST_OPERATOR_STD_DEV": "zerrendako deribazio estandarra", - "MATH_ONLIST_OPERATOR_RANDOM": "zerrendako artikulu aleatorioa", - "MATH_ONLIST_TOOLTIP_RANDOM": "Itzuli zerrendako elementu aleatorioa.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2(r)en oroigarria", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "zatiki aleatorioa", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Letra bat, hitza edo testuko lerroa.", - "TEXT_JOIN_TITLE_CREATEWITH": "Testua sortu hurrengoarekin", - "TEXT_CREATE_JOIN_TITLE_JOIN": "elkartu", - "TEXT_CREATE_JOIN_TOOLTIP": "Gehitu, ezabatu, ala berrantolatu aukeraketak testu bloke hau berrezartzeko.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Gehitu artikulu bat testura.", - "TEXT_APPEND_TITLE": "%1tik testu atxikita %2", - "TEXT_LENGTH_TITLE": "%1(r)en luzeera", - "TEXT_ISEMPTY_TITLE": "%1 hutsik dago", - "TEXT_INDEXOF_TITLE": "testuan %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "bilatu testuaren lehenengo agerpena", - "TEXT_INDEXOF_OPERATOR_LAST": "bilatu testuaren azkenengo agerpena", - "TEXT_CHARAT_TITLE": "testuan %1 %2", - "TEXT_CHARAT_FROM_START": "hartu # letra", - "TEXT_CHARAT_FROM_END": "hartu # letra bukaeratik", - "TEXT_CHARAT_FIRST": "hartu lehenengo letra", - "TEXT_CHARAT_LAST": "hartu azkenengo letra", - "TEXT_CHARAT_RANDOM": "letra aleatorioa lortu", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "testuan", - "TEXT_PRINT_TITLE": "inprimatu %1", - "TEXT_PRINT_TOOLTIP": "zehaztutako testua, zenbakia edo bestelako balioa inprimatzen du.", - "TEXT_REVERSE_MESSAGE0": "%1(e)ri buelta eman", - "LISTS_CREATE_EMPTY_TITLE": "sortu zerrenda hutsa", - "LISTS_CREATE_EMPTY_TOOLTIP": "Zerrenda bat itzultzen du, 0 luzera duena, daturik gabekoa", - "LISTS_CREATE_WITH_INPUT_WITH": "Zerrenda sortu hurrengoarekin", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "zerrenda", - "LISTS_LENGTH_TITLE": "zerrendaren luzera", - "LISTS_LENGTH_TOOLTIP": "zerrendaren luzera itzultzen du", - "LISTS_ISEMPTY_TITLE": "%1 hutsik dago", - "LISTS_ISEMPTY_TOOLTIP": "egia itzultzen du zerrenda hutsik badago.", - "LISTS_INLIST": "zerrendan", - "LISTS_GET_INDEX_GET": "lortu", - "LISTS_GET_INDEX_GET_REMOVE": "lortu eta kendu", - "LISTS_GET_INDEX_REMOVE": "kendu", - "LISTS_GET_INDEX_FIRST": "lehena", - "LISTS_GET_INDEX_LAST": "azkena", - "LISTS_GET_INDEX_RANDOM": "ausazkoa", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 lehenengo artikulua da.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 azken artikulua da.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Artikulua zerrendako posizio zehatz batera bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Lehenengo artikulua zerrendara bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Azken artikulua zerrendara bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Artikulu aleatorioa zerrendara bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Artikulua zerrendako posizio zehatz batera kentzen eta bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Lehenengo artikulua zerrendako posizio zehatz batera kentzen eta bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Zerrendako azken artikulua kentzen eta bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Artikulu aleatorio bat zerrendatik kentzen eta bueltatzen du.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Artikulua zerrendako posizio zehatz batetik kentzen du.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Lehenengo artikulua zerrendatik kentzen du.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Azken artikulua zerrendatik kentzen du.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Artikulu aleatorioa zerrendatik kentzen du.", - "LISTS_SET_INDEX_SET": "ezarri", - "LISTS_SET_INDEX_INPUT_TO": "honela", - "LISTS_SORT_ORDER_ASCENDING": "goranzkoa", - "LISTS_SORT_ORDER_DESCENDING": "beheranzkoa", - "LISTS_SORT_TYPE_NUMERIC": "Zenbakizkoa", - "LISTS_SORT_TYPE_TEXT": "Alfabetikoki", - "LISTS_SPLIT_LIST_FROM_TEXT": "Testuatik lista sortu", - "LISTS_SPLIT_TEXT_FROM_LIST": "listatik testua sortu", - "PROCEDURES_DEFNORETURN_TITLE": "honi", - "PROCEDURES_DEFNORETURN_PROCEDURE": "egin zerbait", - "PROCEDURES_BEFORE_PARAMS": "honekin", - "PROCEDURES_CALL_BEFORE_PARAMS": "honekin", - "PROCEDURES_DEFRETURN_RETURN": "itzuli", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Abisua: Funtzio honek parametro bikoiztuak dauzka.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Azpierrutina", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Azpierrutina", - "PROCEDURES_MUTATORCONTAINER_TITLE": "sarrerak", - "PROCEDURES_MUTATORARG_TITLE": "sarreraren izena:", - "PROCEDURES_CREATE_DO": "'%1' sortu", - "PROCEDURES_IFRETURN_TOOLTIP": "Balioa egiazkoa bada, orduan itzuli bigarren baliora.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Esan zerbait..." -} diff --git a/lib/blockly/msg/json/fa.json b/lib/blockly/msg/json/fa.json deleted file mode 100644 index 56c6cc1..0000000 --- a/lib/blockly/msg/json/fa.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Ebraminio", - "Reza1615", - "Alirezaaa", - "Mehran", - "MohandesWiki", - "Dalba", - "Hamisun", - "Nhzandi", - "Arash.pt", - "Hossein.safavi" - ] - }, - "VARIABLES_DEFAULT_NAME": "مورد", - "TODAY": "امروز", - "DUPLICATE_BLOCK": "تکراری", - "ADD_COMMENT": "افزودن نظر", - "REMOVE_COMMENT": "حذف نظر", - "EXTERNAL_INPUTS": "ورودی‌های خارجی", - "INLINE_INPUTS": "ورودی‌های درون خطی", - "DELETE_BLOCK": "حذف بلوک", - "DELETE_X_BLOCKS": "حذف بلوک‌های %1", - "DELETE_ALL_BLOCKS": "حذف همهٔ بلاک‌های %1؟", - "CLEAN_UP": "تمیز کردن بلوک‌ها", - "COLLAPSE_BLOCK": "فروپاشی بلوک", - "COLLAPSE_ALL": "فروپاشی بلوک‌ها", - "EXPAND_BLOCK": "گسترش بلوک", - "EXPAND_ALL": "گسترش بلوک‌ها", - "DISABLE_BLOCK": "غیرفعال‌سازی بلوک", - "ENABLE_BLOCK": "فعال‌سازی بلوک", - "HELP": "راهنما", - "UNDO": "واگردانی", - "REDO": "انجام دوباره", - "CHANGE_VALUE_TITLE": "تغییر مقدار:", - "RENAME_VARIABLE": "تغییر نام متغیر...", - "RENAME_VARIABLE_TITLE": "تغییر نام همهٔ متغیرهای «%1» به:", - "NEW_VARIABLE": "ایجاد متغیر...", - "NEW_STRING_VARIABLE": "ساخت متغیر رشته...", - "NEW_NUMBER_VARIABLE": "ساخت متغیر عددی...", - "NEW_COLOUR_VARIABLE": "ساخت متغیر رنگ...", - "NEW_VARIABLE_TYPE_TITLE": "نوع متغیر جدید:", - "NEW_VARIABLE_TITLE": "نام متغیر تازه:", - "VARIABLE_ALREADY_EXISTS": "متغیری با نام '%1' هم اکنون وجود دارد", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "در حال حاضر یک متغیر با نام '%1' برای متغیر دیگری از نوع '%2' وجود دارد.", - "DELETE_VARIABLE_CONFIRMATION": "تعداد %1 استفاده از متغیر '%2' پاک شود؟", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "متغیر '%1' را نمی‌توان پاک کرد، زیرا جزیی از تعریف تابع '%2' می‌باشد", - "DELETE_VARIABLE": "متغیر '%1'را پاک کنید", - "COLOUR_PICKER_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%86%DA%AF", - "COLOUR_PICKER_TOOLTIP": "انتخاب یک رنگ از تخته‌رنگ.", - "COLOUR_RANDOM_TITLE": "رنگ تصادفی", - "COLOUR_RANDOM_TOOLTIP": "انتخاب یک رنگ به شکل تصادفی.", - "COLOUR_RGB_TITLE": "رنگ با", - "COLOUR_RGB_RED": "قرمز", - "COLOUR_RGB_GREEN": "سبز", - "COLOUR_RGB_BLUE": "آبی", - "COLOUR_RGB_TOOLTIP": "ساخت یک رنگ با مقدار مشخص‌شده‌ای از قرمز، سبز و آبی. همهٔ مقادیر باید بین ۰ تا ۱۰۰ باشند.", - "COLOUR_BLEND_TITLE": "مخلوط", - "COLOUR_BLEND_COLOUR1": "رنگ ۱", - "COLOUR_BLEND_COLOUR2": "رنگ ۲", - "COLOUR_BLEND_RATIO": "نسبت", - "COLOUR_BLEND_TOOLTIP": "دو رنگ را با نسبت مشخص‌شده مخلوط می‌کند (۰٫۰ - ۱٫۰)", - "CONTROLS_REPEAT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AD%D9%84%D9%82%D9%87_%D9%81%D9%88%D8%B1", - "CONTROLS_REPEAT_TITLE": "%1 بار تکرار", - "CONTROLS_REPEAT_INPUT_DO": "انجام", - "CONTROLS_REPEAT_TOOLTIP": "انجام چند عبارت چندین بار.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تکرار در حالی که", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تکرار تا زمانی که", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده.", - "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", - "CONTROLS_FOR_TITLE": "با تعداد %1 از %2 به %3 با گام‌های %4", - "CONTROLS_FOREACH_TITLE": "برای هر مورد %1 در فهرست %2", - "CONTROLS_FOREACH_TOOLTIP": "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "خروج از حلقه", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ادامه با تکرار بعدی حلقه", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "شکستن حلقهٔ شامل.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "پریدن از بقیهٔ حلقه و ادامه با تکرار بعدی.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "اخطار: این بلوک ممکن است فقط داخل یک حلقه استفاده شود.", - "CONTROLS_IF_TOOLTIP_1": "اگر یک مقدار صحیح است، سپس چند عبارت را انجام بده.", - "CONTROLS_IF_TOOLTIP_2": "اگر یک مقدار صحیح است، اول بلوک اول عبارات را انجام بده. در غیر این صورت بلوک دوم عبارات انجام بده.", - "CONTROLS_IF_TOOLTIP_3": "اگر مقدار اول صحیح بود، از آن بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم صحیح است، بلوک دوم عبارات را انجام بده.", - "CONTROLS_IF_TOOLTIP_4": "اگر مقدار اول درست است، بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم درست باشد بلوک دوم عبارات را انجام بده. اگر هیچ از مقادیر درست نبود، آخرین بلوک عبارات را انجام بده.", - "CONTROLS_IF_MSG_IF": "اگر", - "CONTROLS_IF_MSG_ELSEIF": "درغیر اینصورت اگر", - "CONTROLS_IF_MSG_ELSE": "درغیر اینصورت", - "CONTROLS_IF_IF_TOOLTIP": "افزودن، حذف یا بازمرتب‌سازی قسمت‌ها برای پیکربندی دوبارهٔ این بلوک اگر.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "افزودن یک شرط به بلوک اگر.", - "CONTROLS_IF_ELSE_TOOLTIP": "اضافه کردن نهایی، گرفتن همهٔ شرایط به بلوک اگر.", - "IOS_OK": "تأیید", - "IOS_CANCEL": "لغو", - "IOS_ERROR": "خطا", - "IOS_PROCEDURES_INPUTS": "ورودی‌ها", - "IOS_PROCEDURES_ADD_INPUT": "+ افزودن ورودی", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "اجازه اظهارات", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "این تابع دارای ورودی‌های تکراری است.", - "IOS_VARIABLES_ADD_VARIABLE": "+ افزودن متغیر", - "IOS_VARIABLES_ADD_BUTTON": "افزودن", - "IOS_VARIABLES_RENAME_BUTTON": "تغییر نام", - "IOS_VARIABLES_DELETE_BUTTON": "حذف", - "IOS_VARIABLES_VARIABLE_NAME": "نام متغیر", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "نام متغیر نمی‌تواند خالی باشد", - "LOGIC_COMPARE_HELPURL": "https://fa.wikipedia.org/wiki/%D9%86%D8%A7%D8%A8%D8%B1%D8%A7%D8%A8%D8%B1%DB%8C", - "LOGIC_COMPARE_TOOLTIP_EQ": "بازگشت صحیح اگر هر دو ورودی با یکدیگر برابر باشد.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "برگرداندن صحیح اگر هر دو ورودی با یکدیگر برابر نباشند.", - "LOGIC_COMPARE_TOOLTIP_LT": "بازگرداندن صحیح اگر ورودی اول کوچکتر از ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_LTE": "بازگرداندن صحیح اگر ورودی اول کوچکتر یا مساوی با ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_GT": "بازگرداندن صحیح اگر ورودی اول بزرگتر از ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_GTE": "بازگرداندن صحیح اگر ورودی اول بزرگتر یا مساوی یا ورودی دوم باشد.", - "LOGIC_OPERATION_TOOLTIP_AND": "بازگرداندن صحیح اگر هر دو ورودی صحیح باشد.", - "LOGIC_OPERATION_AND": "و", - "LOGIC_OPERATION_TOOLTIP_OR": "بازگرداندن صحیح اگر یکی از دو ورودی صحیح باشد.", - "LOGIC_OPERATION_OR": "یا", - "LOGIC_NEGATE_TITLE": "نه %1", - "LOGIC_NEGATE_TOOLTIP": "صجیج باز می‌گرداند اگر ورودی نا صحیح باشند. ناصحیح بازمی‌گرداند اگر ورودی صحیح باشد.", - "LOGIC_BOOLEAN_TRUE": "صحیح", - "LOGIC_BOOLEAN_FALSE": "ناصحیح", - "LOGIC_BOOLEAN_TOOLTIP": "بازگرداندن یکی از صحیح یا ناصحیح.", - "LOGIC_NULL": "تهی", - "LOGIC_NULL_TOOLTIP": "تهی بازمی‌گرداند.", - "LOGIC_TERNARY_CONDITION": "آزمایش", - "LOGIC_TERNARY_IF_TRUE": "اگر صحیح", - "LOGIC_TERNARY_IF_FALSE": "اگر ناصحیح", - "LOGIC_TERNARY_TOOLTIP": "بررسی وضعیت در «آزمایش». اگر وضعیت صحیح باشد، مقدار «اگر صحیح» را بر می‌گرداند در غیر اینصورت مقدار «اگر ناصحیح» را.", - "MATH_NUMBER_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B9%D8%AF%D8%AF", - "MATH_NUMBER_TOOLTIP": "یک عدد.", - "MATH_ARITHMETIC_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AD%D8%B3%D8%A7%D8%A8", - "MATH_ARITHMETIC_TOOLTIP_ADD": "بازگرداندن مقدار جمع دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "بازگرداندن تفاوت دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "بازگرداندن حاصلضرب دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "بازگرداندن باقی‌ماندهٔ دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "بازگرداندن اولین عددی که از توان عدد دوم حاصل شده باشد.", - "MATH_SINGLE_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%DB%8C%D8%B4%D9%87_%D8%AF%D9%88%D9%85", - "MATH_SINGLE_OP_ROOT": "ریشهٔ دوم", - "MATH_SINGLE_TOOLTIP_ROOT": "ریشهٔ دوم یک عدد را باز می‌گرداند.", - "MATH_SINGLE_OP_ABSOLUTE": "مطلق", - "MATH_SINGLE_TOOLTIP_ABS": "قدر مطلق یک عدد را بازمی‌گرداند.", - "MATH_SINGLE_TOOLTIP_NEG": "منفی‌شدهٔ یک عدد را باز می‌گرداند.", - "MATH_SINGLE_TOOLTIP_LN": "لوگاریتم طبیعی یک عدد را باز می‌گرداند.", - "MATH_SINGLE_TOOLTIP_LOG10": "بازگرداندن لگاریتم بر پایهٔ ۱۰ یک عدد.", - "MATH_SINGLE_TOOLTIP_EXP": "بازگرداندن توان e یک عدد.", - "MATH_SINGLE_TOOLTIP_POW10": "بازگرداندن توان ۱۰ یک عدد.", - "MATH_TRIG_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AA%D8%A7%D8%A8%D8%B9%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%85%D8%AB%D9%84%D8%AB%D8%A7%D8%AA%DB%8C", - "MATH_TRIG_TOOLTIP_SIN": "بازگرداندن سینوس یک زاویه به درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_COS": "بازگرداندن کسینوس یک زاویه درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_TAN": "بازگرداندن تانژانت یک زاویه به درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ASIN": "بازگرداندن آرک‌سینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ACOS": "بازگرداندن آرک‌کسینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ATAN": "بازگرداندن آرک‌تانژانت درجه (نه رادیان).", - "MATH_CONSTANT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AB%D8%A7%D8%A8%D8%AA_%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C", - "MATH_CONSTANT_TOOLTIP": "یکی از مقادیر ثابت جهانی را برمی‌گرداند: π (۳٫۱۴۱…)، e (۲٫۷۱۸...)، φ (۱٫۶۱۸)، sqrt(۲) (۱٫۴۱۴)، sqrt(۱/۲) (۰٫۷۰۷...) و یا ∞ (بی‌نهایت).", - "MATH_IS_EVEN": "زوج است", - "MATH_IS_ODD": "فرد است", - "MATH_IS_PRIME": "عدد اول است", - "MATH_IS_WHOLE": "کامل است", - "MATH_IS_POSITIVE": "مثبت است", - "MATH_IS_NEGATIVE": "منفی است", - "MATH_IS_DIVISIBLE_BY": "تقسیم شده بر", - "MATH_IS_TOOLTIP": "بررسی می‌کند که آیا یک عدد زوج، فرد، اول، کامل، مثبت، منفی یا بخش‌پذیر عدد خاصی باشد را بررسی می‌کند. درست یا نادرست باز می‌گرداند.", - "MATH_CHANGE_HELPURL": "https://fa.wikipedia.org/wiki/%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C#.D8.A7.D9.81.D8.B2.D8.A7.DB.8C.D8.B4_.D8.B4.D9.85.D8.A7.D8.B1.D9.86.D8.AF.D9.87", - "MATH_CHANGE_TITLE": "تغییر %1 با %2", - "MATH_CHANGE_TOOLTIP": "افزودن یک عدد به متغیر '%1'.", - "MATH_ROUND_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "MATH_ROUND_TOOLTIP": "گردکردن یک عدد به بالا یا پایین.", - "MATH_ROUND_OPERATOR_ROUND": "گردکردن", - "MATH_ROUND_OPERATOR_ROUNDUP": "گرد به بالا", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "گرد به پایین", - "MATH_ONLIST_OPERATOR_SUM": "جمع فهرست", - "MATH_ONLIST_TOOLTIP_SUM": "جمع همهٔ عددهای فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_MIN": "کوچک‌ترین عدد در فهرست", - "MATH_ONLIST_TOOLTIP_MIN": "کوچک‌ترین عدد در فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_MAX": "بزرگ‌ترین عدد در فهرست", - "MATH_ONLIST_TOOLTIP_MAX": "بزرگ‌ترین عدد در فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_AVERAGE": "میانگین فهرست", - "MATH_ONLIST_TOOLTIP_AVERAGE": "میانگین (میانگین ریاضی) مقادیر عددی فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_MEDIAN": "میانهٔ فهرست", - "MATH_ONLIST_TOOLTIP_MEDIAN": "میانهٔ عدد در فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_MODE": "مد فهرست", - "MATH_ONLIST_TOOLTIP_MODE": "شایع‌ترین قلم(های) در فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_STD_DEV": "انحراف معیار فهرست", - "MATH_ONLIST_TOOLTIP_STD_DEV": "انحراف معیار فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_RANDOM": "مورد تصادفی از فهرست", - "MATH_ONLIST_TOOLTIP_RANDOM": "موردی تصادفی از فهرست را بر می‌گرداند.", - "MATH_MODULO_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%BE%DB%8C%D9%85%D8%A7%D9%86%D9%87", - "MATH_MODULO_TITLE": "باقی‌ماندهٔ %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "باقی‌ماندهٔ تقسیم دو عدد را بر می‌گرداند.", - "MATH_CONSTRAIN_TITLE": "محدودکردن %1 پایین %2 بالا %3", - "MATH_CONSTRAIN_TOOLTIP": "محدودکردن یک عدد بین محدودیت‌های مشخص‌شده (بسته).", - "MATH_RANDOM_INT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C", - "MATH_RANDOM_INT_TITLE": "عدد صحیح تصادفی بین %1 تا %2", - "MATH_RANDOM_INT_TOOLTIP": "یک عدد تصادفی بین دو مقدار مشخص‌شده به صورت بسته باز می‌گرداند.", - "MATH_RANDOM_FLOAT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%AA%D9%88%D9%84%DB%8C%D8%AF_%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "کسر تصادفی", - "MATH_RANDOM_FLOAT_TOOLTIP": "بازگرداندن کسری تصادفی بین ۰٫۰ (بسته) تا ۱٫۰ (باز).", - "TEXT_TEXT_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D8%B4%D8%AA%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "TEXT_TEXT_TOOLTIP": "یک حرف، کلمه یا خطی از متن.", - "TEXT_JOIN_TITLE_CREATEWITH": "ایجاد متن با", - "TEXT_JOIN_TOOLTIP": "یک تکه‌ای از متن را با چسپاندن همهٔ تعداد از موارد ایجاد می‌کند.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "عضویت", - "TEXT_CREATE_JOIN_TOOLTIP": "اضافه کردن، حذف یا مرتب‌سازی بحش‌ها برای تنظیم مجدد این بلوک متنی.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "افزودن یک مورد به متن.", - "TEXT_APPEND_TITLE": "به %1 الحاق متن %2", - "TEXT_APPEND_TOOLTIP": "الحاق متنی به متغیر «%1».", - "TEXT_LENGTH_TITLE": "طول %1", - "TEXT_LENGTH_TOOLTIP": "بازگرداندن عددی از حروف (شامل فاصله‌ها) در متن فراهم‌شده.", - "TEXT_ISEMPTY_TITLE": "%1 خالی است", - "TEXT_ISEMPTY_TOOLTIP": "اضافه کردن صحیح اگر متن فراهم‌شده خالی است.", - "TEXT_INDEXOF_TOOLTIP": "شاخصی از اولین آخرین رخ‌داد متن اول در متن دوم بر می‌گرداند. اگر متن یافت نشد %1 باز می‌گرداند.", - "TEXT_INDEXOF_TITLE": "در متن %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "اولین رخداد متن را بیاب", - "TEXT_INDEXOF_OPERATOR_LAST": "آخرین رخداد متن را بیاب", - "TEXT_CHARAT_TITLE": "در متن %1 %2", - "TEXT_CHARAT_FROM_START": "گرفتن حرف #", - "TEXT_CHARAT_FROM_END": "گرفتن حرف # از آخر", - "TEXT_CHARAT_FIRST": "گرفتن اولین حرف", - "TEXT_CHARAT_LAST": "گرفتن آخرین حرف", - "TEXT_CHARAT_RANDOM": "گرفتن حرف تصادفی", - "TEXT_CHARAT_TOOLTIP": "حرفی در موقعیت مشخص‌شده بر می‌گرداند.", - "TEXT_GET_SUBSTRING_TOOLTIP": "قسمت مشخصی‌شده‌ای از متن را بر می‌گرداند.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "در متن", - "TEXT_GET_SUBSTRING_START_FROM_START": "گرفتن زیرمتن از حرف #", - "TEXT_GET_SUBSTRING_START_FROM_END": "گرفتن زیرمتن از حرف # به انتها", - "TEXT_GET_SUBSTRING_START_FIRST": "گرفتن زیرمتن از اولین حرف", - "TEXT_GET_SUBSTRING_END_FROM_START": "به حرف #", - "TEXT_GET_SUBSTRING_END_FROM_END": "به حرف # از انتها", - "TEXT_GET_SUBSTRING_END_LAST": "به آخرین حرف", - "TEXT_CHANGECASE_TOOLTIP": "بازگرداندن کپی متن در حالتی متفاوت.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "به حروف بزرگ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "به حروف کوچک", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "به حروف بزرگ عنوان", - "TEXT_TRIM_TOOLTIP": "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند.", - "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", - "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_PRINT_TITLE": "چاپ %1", - "TEXT_PRINT_TOOLTIP": "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده.", - "TEXT_PROMPT_TYPE_TEXT": "اعلان برای متن با پیام", - "TEXT_PROMPT_TYPE_NUMBER": "اعلان برای عدد با پیام", - "TEXT_PROMPT_TOOLTIP_NUMBER": "اعلان برای کاربر با یک عدد.", - "TEXT_PROMPT_TOOLTIP_TEXT": "اعلان برای کاربر برای یک متن.", - "TEXT_COUNT_MESSAGE0": "تعداد %1 را در %2 بشمار", - "TEXT_COUNT_TOOLTIP": "تعداد دفعاتی که یک متن درون یک متن دیگر تکرار شده است را برمی‌گرداند", - "TEXT_REPLACE_MESSAGE0": "درون %3، متن %1 را با %2 جایگزین کن", - "TEXT_REPLACE_TOOLTIP": "جایگزین کردن تمام مواردی که از متنی درون متن دیگر وجود دارد", - "TEXT_REVERSE_MESSAGE0": "معکوس %1", - "TEXT_REVERSE_TOOLTIP": "چینش کاراکترها درون متن را برعکس می‌کند", - "LISTS_CREATE_EMPTY_TITLE": "ایجاد فهرست خالی", - "LISTS_CREATE_EMPTY_TOOLTIP": "فهرستی با طول صفر شامل هیچ رکورد داده‌ای بر می‌گرداند.", - "LISTS_CREATE_WITH_TOOLTIP": "فهرستی از هر عددی از موارد می‌سازد.", - "LISTS_CREATE_WITH_INPUT_WITH": "ایجاد فهرست با", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "فهرست", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "اضافه کردن، حذف کردن یا ترتیب‌سازی مجدد بخش‌ها این بلوک فهرستی.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "اضافه کردن یک مورد به فهرست.", - "LISTS_REPEAT_TOOLTIP": "فهرستی شامل مقادیر داده‌شدهٔ تکرار شده عدد مشخص‌شده می‌سازد.", - "LISTS_REPEAT_TITLE": "فهرستی با %1 تکرارشده به اندازهٔ %2 می‌سازد", - "LISTS_LENGTH_TITLE": "طول %1", - "LISTS_LENGTH_TOOLTIP": "طول یک فهرست را برمی‌گرداند.", - "LISTS_ISEMPTY_TITLE": "%1 خالی است", - "LISTS_ISEMPTY_TOOLTIP": "اگر فهرست خالی است مقدار صجیج بر می‌گرداند.", - "LISTS_INLIST": "در فهرست", - "LISTS_INDEX_OF_FIRST": "یافتن اولین رخ‌داد مورد", - "LISTS_INDEX_OF_LAST": "یافتن آخرین رخ‌داد مورد", - "LISTS_INDEX_OF_TOOLTIP": "شاخصی از اولین/آخرین رخ‌داد مورد در فهرست را بر می‌گرداند. %1 بر می‌گرداند اگر آیتم موجود نبود.", - "LISTS_GET_INDEX_GET": "گرفتن", - "LISTS_GET_INDEX_GET_REMOVE": "گرفتن و حذف‌کردن", - "LISTS_GET_INDEX_REMOVE": "حذف‌کردن", - "LISTS_GET_INDEX_FROM_END": "# از انتها", - "LISTS_GET_INDEX_FIRST": "اولین", - "LISTS_GET_INDEX_LAST": "آخرین", - "LISTS_GET_INDEX_RANDOM": "تصادفی", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 اولین مورد است.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 آخرین مورد است.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "موردی در محل مشخص‌شده بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "اولین مورد یک فهرست را بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "آخرین مورد در یک فهرست را بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "یک مورد تصادفی در یک فهرست بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "مورد در محل مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "اولین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "آخرین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "مورد تصادفی‌ای را در فهرست حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "مورد مشخص‌شده در موقعیت مشخص در یک فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "اولین مورد را در یک فهرست حذف می‌کند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "آخرین مورد را در یک فهرست حذف می‌کند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "یک مورد تصادفی را یک فهرست حذف می‌کند.", - "LISTS_SET_INDEX_SET": "اعمال", - "LISTS_SET_INDEX_INSERT": "درج در", - "LISTS_SET_INDEX_INPUT_TO": "به عنوان", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "مورد مشخص‌شده در یک فهرست را قرار می‌دهد.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "اولین مورد در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "آخرین مورد در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "یک مورد تصادفی در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "موردی در موقعیت مشخص‌شده در یک فهرست اضافه می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "موردی به ته فهرست اضافه می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "موردی به ته فهرست الحاق می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "مورد را به صورت تصادفی در یک فهرست می‌افزاید.", - "LISTS_GET_SUBLIST_START_FROM_START": "گرفتن زیرمجموعه‌ای از #", - "LISTS_GET_SUBLIST_START_FROM_END": "گرفتن زیرمجموعه‌ای از # از انتها", - "LISTS_GET_SUBLIST_START_FIRST": "گرفتن زیرمجموعه‌ای از ابتدا", - "LISTS_GET_SUBLIST_END_FROM_START": "به #", - "LISTS_GET_SUBLIST_END_FROM_END": "به # از انتها", - "LISTS_GET_SUBLIST_END_LAST": "به آخرین", - "LISTS_GET_SUBLIST_TOOLTIP": "کپی از قسمت مشخص‌شدهٔ لیست درست می‌کند.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "مرتب‌سازی%1 %2 %3", - "LISTS_SORT_TOOLTIP": "یک کپی از لیست را مرتب کنید.", - "LISTS_SORT_ORDER_ASCENDING": "صعودی", - "LISTS_SORT_ORDER_DESCENDING": "نزولی", - "LISTS_SORT_TYPE_NUMERIC": "عددی", - "LISTS_SORT_TYPE_TEXT": "حروفی ، الفبایی", - "LISTS_SORT_TYPE_IGNORECASE": "حروفی ، رد کردن مورد", - "LISTS_SPLIT_LIST_FROM_TEXT": "ایجاد فهرست از متن", - "LISTS_SPLIT_TEXT_FROM_LIST": "ایجاد متن از فهرست", - "LISTS_SPLIT_WITH_DELIMITER": "همراه جداساز", - "LISTS_SPLIT_TOOLTIP_SPLIT": "شکستن متن به فهرستی از متن‌ها، شکستن در محل جداکننده", - "LISTS_SPLIT_TOOLTIP_JOIN": "چسباندن یک فهرست از متن‌ها و تشکیل یک متن که با یک جداکننده جدا شده‌اند", - "LISTS_REVERSE_MESSAGE0": "معکوس %1", - "LISTS_REVERSE_TOOLTIP": "یک کپی از لیست را معکوس کنید.", - "VARIABLES_GET_TOOLTIP": "مقدار این متغیر را بر می‌گرداند.", - "VARIABLES_GET_CREATE_SET": "درست‌کردن «تنظیم %1»", - "VARIABLES_SET": "مجموعه %1 به %2", - "VARIABLES_SET_TOOLTIP": "متغیر برابر با خروجی را مشخص می‌کند.", - "VARIABLES_SET_CREATE_GET": "درست‌کردن «گرفتن %1»", - "PROCEDURES_DEFNORETURN_TITLE": "به", - "PROCEDURES_DEFNORETURN_PROCEDURE": "انجام چیزی", - "PROCEDURES_BEFORE_PARAMS": "با:", - "PROCEDURES_CALL_BEFORE_PARAMS": "با:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "تابعی می‌سازد بدون هیچ خروجی.", - "PROCEDURES_DEFNORETURN_COMMENT": "توصیف این عملکرد...", - "PROCEDURES_DEFRETURN_RETURN": "بازگشت", - "PROCEDURES_DEFRETURN_TOOLTIP": "تابعی با یک خروجی می‌سازد.", - "PROCEDURES_ALLOW_STATEMENTS": "اجازه اظهارات", - "PROCEDURES_DEF_DUPLICATE_WARNING": "اخطار: این تابعی پارامتر تکراری دارد.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_(%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87)", - "PROCEDURES_CALLNORETURN_TOOLTIP": "اجرای تابع تعریف‌شده توسط کاربر «%1».", - "PROCEDURES_CALLRETURN_HELPURL": "https://fa.wikipedia.org/wiki/%D8%B1%D9%88%DB%8C%D9%87_%28%D8%B9%D9%84%D9%88%D9%85_%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "اجرای تابع تعریف‌شده توسط کاربر «%1» و استفاده از خروجی آن.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ورودی‌ها", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "افزودن، حذف یا دوباره مرتب‌کردن ورودی این تابع.", - "PROCEDURES_MUTATORARG_TITLE": "نام ورودی:", - "PROCEDURES_MUTATORARG_TOOLTIP": "اضافه کردن ورودی به تابع.", - "PROCEDURES_HIGHLIGHT_DEF": "برجسته‌سازی تعریف تابع", - "PROCEDURES_CREATE_DO": "ساختن «%1»", - "PROCEDURES_IFRETURN_TOOLTIP": "اگر یک مقدار صحیح است، مقدار دوم را برگردان.", - "PROCEDURES_IFRETURN_WARNING": "اخطار: این بلوک احتمالاً فقط داخل یک تابع استفاده می‌شود.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "یک چیزی بگو..." -} diff --git a/lib/blockly/msg/json/fi.json b/lib/blockly/msg/json/fi.json deleted file mode 100644 index 5c7c01f..0000000 --- a/lib/blockly/msg/json/fi.json +++ /dev/null @@ -1,369 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Nike", - "Silvonen", - "Espertus", - "Pettevi", - "McSalama", - "Espeox", - "SNuutti", - "PStudios", - "Mikahama", - "Pyscowicz", - "Pahkiqaz", - "Hopea", - "KK" - ] - }, - "VARIABLES_DEFAULT_NAME": "kohde", - "TODAY": "Tänään", - "DUPLICATE_BLOCK": "Kaksoiskappale", - "ADD_COMMENT": "Lisää kommentti", - "REMOVE_COMMENT": "Poista kommentti", - "DUPLICATE_COMMENT": "Kahdenna kommentti", - "EXTERNAL_INPUTS": "Ulkoiset syötteet", - "INLINE_INPUTS": "Tuo syötteet", - "DELETE_BLOCK": "Poista lohko", - "DELETE_X_BLOCKS": "Poista %1 lohkoa", - "DELETE_ALL_BLOCKS": "Poistetaanko kaikki %1 lohkoa?", - "CLEAN_UP": "Siivoa lohkot", - "COLLAPSE_BLOCK": "Sulje lohko", - "COLLAPSE_ALL": "Sulje lohkot", - "EXPAND_BLOCK": "Laajenna lohko", - "EXPAND_ALL": "Laajenna lohkot", - "DISABLE_BLOCK": "Passivoi lohko", - "ENABLE_BLOCK": "Aktivoi lohko", - "HELP": "Apua", - "UNDO": "Kumoa", - "REDO": "Tee uudelleen", - "CHANGE_VALUE_TITLE": "Muuta arvoa:", - "RENAME_VARIABLE": "Nimeä uudelleen muuttuja...", - "RENAME_VARIABLE_TITLE": "Nimeä uudelleen kaikki '%1' muuttujaa:", - "NEW_VARIABLE": "Luo muuttuja...", - "NEW_STRING_VARIABLE": "Luo merkkijonomuuttuja...", - "NEW_NUMBER_VARIABLE": "Luo numeromuuttuja...", - "NEW_COLOUR_VARIABLE": "Luo värimuuttuja...", - "NEW_VARIABLE_TYPE_TITLE": "Uuden muuttujan tyyppi:", - "NEW_VARIABLE_TITLE": "Uuden muuttujan nimi:", - "VARIABLE_ALREADY_EXISTS": "Muuttuja nimeltään '%1' on jo olemassa.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Muuttuja nimeltä '%1' on jo olemassa toiselle tyypille: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Poistetaanko %1 käyttöä muuttujalta '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ei voida poistaa muuttujaa '%1' koska se on osa funktion määritelmää '%2'", - "DELETE_VARIABLE": "Poista muuttuja '%1'", - "COLOUR_PICKER_HELPURL": "https://fi.wikipedia.org/wiki/V%C3%A4ri", - "COLOUR_PICKER_TOOLTIP": "Valitse väri paletista.", - "COLOUR_RANDOM_TITLE": "satunnainen väri", - "COLOUR_RANDOM_TOOLTIP": "Valitse väri sattumanvaraisesti.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "väri, jossa on", - "COLOUR_RGB_RED": "punainen", - "COLOUR_RGB_GREEN": "vihreä", - "COLOUR_RGB_BLUE": "sininen", - "COLOUR_RGB_TOOLTIP": "Luo väri, jossa on tietty määrä punaista, vihreää ja sinistä. Kaikkien arvojen tulee olla välillä 0 - 100.", - "COLOUR_BLEND_TITLE": "sekoitus", - "COLOUR_BLEND_COLOUR1": "väri 1", - "COLOUR_BLEND_COLOUR2": "väri 2", - "COLOUR_BLEND_RATIO": "suhde", - "COLOUR_BLEND_TOOLTIP": "Sekoittaa kaksi väriä keskenään annetussa suhteessa (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "toista %1 kertaa", - "CONTROLS_REPEAT_INPUT_DO": "tee", - "CONTROLS_REPEAT_TOOLTIP": "Suorita joukko lausekkeita useampi kertaa.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "toista niin kauan kuin", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "toista kunnes", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Niin kauan kuin arvo on tosi, suorita joukko lausekkeita.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Niin kauan kuin arvo on epätosi, suorita joukko lausekkeita.", - "CONTROLS_FOR_TOOLTIP": "Aseta muuttujaan \"%1\" arvot alkuarvosta loppuarvoon annetun askeleen välein ja suorita joka askeleella annettu koodilohko.", - "CONTROLS_FOR_TITLE": "laske %1 Väli %2-%3 %4:n välein", - "CONTROLS_FOREACH_TITLE": "kullekin kohteelle %1 listassa %2", - "CONTROLS_FOREACH_TOOLTIP": "Aseta muuttujan %1 arvoksi kukin listan kohde vuorollaan ja suorita joukko lausekkeita.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "poistu silmukasta", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "jatka silmukan seuraavaan toistoon", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Poistu sisemmästä silmukasta.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Ohita loput tästä silmukasta ja siirry seuraavaan toistoon.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Varoitus: Tätä lohkoa voi käyttää vain silmukan sisällä.", - "CONTROLS_IF_TOOLTIP_1": "Jos arvo on tosi, suorita lauseke.", - "CONTROLS_IF_TOOLTIP_2": "Jos arvo on tosi, suorita ensimmäinen lohko lausekkeita. Muuten suorita toinen lohko lausekkeita.", - "CONTROLS_IF_TOOLTIP_3": "Jos ensimmäinen arvo on tosi, suorita ensimmäinen lohko lausekkeita. Muuten, jos toinen arvo on tosi, suorita toinen lohko lausekkeita.", - "CONTROLS_IF_TOOLTIP_4": "Jos ensimmäinen arvo on tosi, suorita ensimmäinen lohko lausekkeita. Muuten, jos toinen arvo on tosi, suorita toinen lohko lausekkeita. Jos mikään arvoista ei ole tosi, suorita viimeinen lohko lausekkeita.", - "CONTROLS_IF_MSG_IF": "jos", - "CONTROLS_IF_MSG_ELSEIF": "muuten jos", - "CONTROLS_IF_MSG_ELSE": "muuten", - "CONTROLS_IF_IF_TOOLTIP": "Lisää, poista tai järjestele osioita tässä \"jos\" lohkossa.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Lisää ehto \"jos\" lohkoon.", - "CONTROLS_IF_ELSE_TOOLTIP": "Lisää lopullinen \"muuten\" lohko \"jos\" lohkoon.", - "IOS_OK": "OK", - "IOS_CANCEL": "Peruuta", - "IOS_ERROR": "Virhe", - "IOS_PROCEDURES_INPUTS": "SYÖTTEET", - "IOS_PROCEDURES_ADD_INPUT": "+ Lisää syöte", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Salli lausekkeet", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Tällä toiminnolla on päällekkäisiä syötteitä.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Lisää muuttuja", - "IOS_VARIABLES_ADD_BUTTON": "Lisää", - "IOS_VARIABLES_RENAME_BUTTON": "Nimeä uudelleen", - "IOS_VARIABLES_DELETE_BUTTON": "Poista", - "IOS_VARIABLES_VARIABLE_NAME": "Muuttujan nimi", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Et voi käyttää tyhjää muuttujan nimeä.", - "LOGIC_COMPARE_HELPURL": "https://fi.wikipedia.org/wiki/Ep%C3%A4yht%C3%A4l%C3%B6", - "LOGIC_COMPARE_TOOLTIP_EQ": "Palauta tosi, jos syötteet ovat keskenään samat.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Palauttaa tosi, jos syötteet eivät ole keskenään samoja.", - "LOGIC_COMPARE_TOOLTIP_LT": "Palauttaa tosi, jos ensimmäinen syöte on pienempi, kuin toinen.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Palauttaa tosi, jos ensimmäinen syöte on pienempi tai yhtä suuri, kuin toinen.", - "LOGIC_COMPARE_TOOLTIP_GT": "Palauttaa tosi, jos ensimmäinen syöte on suurempi, kuin toinen.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Palauttaa tosi, jos ensimmäinen syöte on suurempi tai yhtä suuri, kuin toinen.", - "LOGIC_OPERATION_TOOLTIP_AND": "Palauttaa tosi, jos kummatkin syötteet ovat tosia.", - "LOGIC_OPERATION_AND": "ja", - "LOGIC_OPERATION_TOOLTIP_OR": "Palauttaa tosi, jos ainakin yksi syötteistä on tosi.", - "LOGIC_OPERATION_OR": "tai", - "LOGIC_NEGATE_TITLE": "ei %1", - "LOGIC_NEGATE_TOOLTIP": "Palauttaa tosi, jos syöte on epätosi. Palauttaa epätosi, jos syöte on tosi.", - "LOGIC_BOOLEAN_TRUE": "tosi", - "LOGIC_BOOLEAN_FALSE": "epätosi", - "LOGIC_BOOLEAN_TOOLTIP": "Palauttaa joko tosi tai epätosi.", - "LOGIC_NULL": "ei mitään", - "LOGIC_NULL_TOOLTIP": "Palauttaa \"ei mitään\"-arvon.", - "LOGIC_TERNARY_CONDITION": "testi", - "LOGIC_TERNARY_IF_TRUE": "jos tosi", - "LOGIC_TERNARY_IF_FALSE": "jos epätosi", - "LOGIC_TERNARY_TOOLTIP": "Tarkistaa testin ehdon. Jos ehto on tosi, palauttaa \"jos tosi\" arvon, muuten palauttaa \"jos epätosi\" arvon.", - "MATH_NUMBER_HELPURL": "https://fi.wikipedia.org/wiki/Luku", - "MATH_NUMBER_TOOLTIP": "Luku.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "⋅", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "http://fi.wikipedia.org/wiki/Aritmetiikka", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Palauttaa kahden luvun summan.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Palauttaa kahden luvun erotuksen.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Palauttaa kertolaskun tulon.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Palauttaa jakolaskun osamäärän.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Palauttaa ensimmäisen luvun korotettuna toisen luvun potenssiin.", - "MATH_SINGLE_HELPURL": "https://fi.wikipedia.org/wiki/Neli%C3%B6juuri", - "MATH_SINGLE_OP_ROOT": "neliöjuuri", - "MATH_SINGLE_TOOLTIP_ROOT": "Palauttaa luvun neliöjuuren.", - "MATH_SINGLE_OP_ABSOLUTE": "itseisarvo", - "MATH_SINGLE_TOOLTIP_ABS": "Palauttaa luvun itseisarvon.", - "MATH_SINGLE_TOOLTIP_NEG": "Palauttaa numeron vastaluvun.", - "MATH_SINGLE_TOOLTIP_LN": "Palauttaa luvun luonnollisen logaritmin.", - "MATH_SINGLE_TOOLTIP_LOG10": "Palauttaa luvun kymmenkantaisen logaritmin.", - "MATH_SINGLE_TOOLTIP_EXP": "Palauttaa e potenssiin luku.", - "MATH_SINGLE_TOOLTIP_POW10": "Palauttaa 10 potenssiin luku.", - "MATH_TRIG_HELPURL": "https://fi.wikipedia.org/wiki/Trigonometrinen_funktio", - "MATH_TRIG_TOOLTIP_SIN": "Palauttaa asteluvun (ei radiaanin) sinin.", - "MATH_TRIG_TOOLTIP_COS": "Palauttaa asteluvun (ei radiaanin) kosinin.", - "MATH_TRIG_TOOLTIP_TAN": "Palauttaa asteluvun (ei radiaanin) tangentin.", - "MATH_TRIG_TOOLTIP_ASIN": "Palauttaa luvun arkussinin.", - "MATH_TRIG_TOOLTIP_ACOS": "Palauttaa luvun arkuskosinin.", - "MATH_TRIG_TOOLTIP_ATAN": "Palauttaa luvun arkustangentin.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Palauttaa jonkin seuraavista vakioista: π (3.141…), e (2.718…), φ (1.618…), neliöjuuri(2) (1.414…), neliöjuuri(½) (0.707…), or ∞ (ääretön).", - "MATH_IS_EVEN": "on parillinen", - "MATH_IS_ODD": "on pariton", - "MATH_IS_PRIME": "on alkuluku", - "MATH_IS_WHOLE": "on kokonaisluku", - "MATH_IS_POSITIVE": "on positiivinen", - "MATH_IS_NEGATIVE": "on negatiivinen", - "MATH_IS_DIVISIBLE_BY": "on jaollinen luvulla", - "MATH_IS_TOOLTIP": "Tarkistaa onko numero parillinen, pariton, alkuluku, kokonaisluku, positiivinen, negatiivinen, tai jos se on jaollinen toisella luvulla. Palauttaa tosi tai epätosi.", - "MATH_CHANGE_HELPURL": "https://fi.wikipedia.org/wiki/Yhteenlasku", - "MATH_CHANGE_TITLE": "muuta %1 arvolla %2", - "MATH_CHANGE_TOOLTIP": "Lisää arvo muuttujaan '%1'.", - "MATH_ROUND_HELPURL": "https://fi.wikipedia.org/wiki/Py%C3%B6rist%C3%A4minen", - "MATH_ROUND_TOOLTIP": "Pyöristää luvun ylös- tai alaspäin.", - "MATH_ROUND_OPERATOR_ROUND": "pyöristä", - "MATH_ROUND_OPERATOR_ROUNDUP": "pyöristä ylöspäin", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "pyöristä alaspäin", - "MATH_ONLIST_OPERATOR_SUM": "summa luvuista", - "MATH_ONLIST_TOOLTIP_SUM": "Palauttaa kaikkien annettujen lukujen summan.", - "MATH_ONLIST_OPERATOR_MIN": "pienin luvuista", - "MATH_ONLIST_TOOLTIP_MIN": "Palauttaa pienimmän annetuista luvuista.", - "MATH_ONLIST_OPERATOR_MAX": "suurin luvuista", - "MATH_ONLIST_TOOLTIP_MAX": "Palauttaa suurimman annetuista luvuista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "keskiarvo luvuista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Palauttaa aritmeettisen keskiarvon annetuista luvuista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "keskiluku luvuista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Palauttaa annettujen lukujen keskiluvun.", - "MATH_ONLIST_OPERATOR_MODE": "tyyppiarvo luvuista", - "MATH_ONLIST_TOOLTIP_MODE": "Palauttaa luettelon yleisimmistä luvuista annetussa listassa.", - "MATH_ONLIST_OPERATOR_STD_DEV": "keskihajonta luvuista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Palauttaa annettujen lukujen keskihajonnan.", - "MATH_ONLIST_OPERATOR_RANDOM": "satunnainen valinta luvuista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Palauttaa satunnaisesti valitun luvun annetuista luvuista.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2 jakojäännös", - "MATH_MODULO_TOOLTIP": "Palauttaa jakolaskun jakojäännöksen.", - "MATH_CONSTRAIN_TITLE": "rajoita %1 vähintään %2 enintään %3", - "MATH_CONSTRAIN_TOOLTIP": "Rajoittaa arvon annetulle suljetulle välille.", - "MATH_RANDOM_INT_HELPURL": "https://fi.wikipedia.org/wiki/Satunnaisluku", - "MATH_RANDOM_INT_TITLE": "Palauttaa satunnaisen kokonaisluvun väliltä %1-%2", - "MATH_RANDOM_INT_TOOLTIP": "Palauttaa satunnaisen kokonaisluvun kahden annetun arvon suljetulta väliltä.", - "MATH_RANDOM_FLOAT_HELPURL": "https://fi.wikipedia.org/wiki/Satunnaisluku", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "satunnainen murtoluku", - "MATH_RANDOM_FLOAT_TOOLTIP": "Palauttaa satunnaisen luvun oikealta puoliavoimesta välistä [0.0, 1.0).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan(X:%1,Y:%2)", - "MATH_ATAN2_TOOLTIP": "Palauta pisteen (X,Y) arkustangentti välillä -180–180.", - "TEXT_TEXT_HELPURL": "https://fi.wikipedia.org/wiki/Merkkijono", - "TEXT_TEXT_TOOLTIP": "Kirjain, sana tai rivi tekstiä.", - "TEXT_JOIN_TITLE_CREATEWITH": "luo teksti", - "TEXT_JOIN_TOOLTIP": "Luo merkkijonon liittämällä yhteen minkä tahansa määrän kohteita.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "liitä", - "TEXT_CREATE_JOIN_TOOLTIP": "Lisää, poista tai uudelleen järjestä osioita tässä lohkossa.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Lisää kohteen tekstiin.", - "TEXT_APPEND_TITLE": "muuttujaan %1 lisää teksti %2", - "TEXT_APPEND_TOOLTIP": "Lisää tekstiä muuttujaan '%1'.", - "TEXT_LENGTH_TITLE": "%1:n pituus", - "TEXT_LENGTH_TOOLTIP": "Palauttaa annetussa tekstissä olevien merkkien määrän (välilyönnit mukaan lukien).", - "TEXT_ISEMPTY_TITLE": "%1 on tyhjä", - "TEXT_ISEMPTY_TOOLTIP": "Palauttaa tosi, jos annettu teksti on tyhjä.", - "TEXT_INDEXOF_TOOLTIP": "Palauttaa ensin annetun tekstin ensimmäisen/viimeisen esiintymän osoitteen toisessa tekstissä. Palauttaa osoitteen %1 jos tekstiä ei löytynyt.", - "TEXT_INDEXOF_TITLE": "tekstissä %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "etsi ensimmäinen esiintymä merkkijonolle", - "TEXT_INDEXOF_OPERATOR_LAST": "etsi viimeinen esiintymä merkkijonolle", - "TEXT_CHARAT_TITLE": "tekstissä %1 %2", - "TEXT_CHARAT_FROM_START": "Hae kirjain nro", - "TEXT_CHARAT_FROM_END": "Hae kirjain nro (lopusta laskien)", - "TEXT_CHARAT_FIRST": "hae ensimmäinen kirjain", - "TEXT_CHARAT_LAST": "hae viimeinen kirjain", - "TEXT_CHARAT_RANDOM": "hae satunnainen kirjain", - "TEXT_CHARAT_TOOLTIP": "Palauttaa annetussa kohdassa olevan kirjaimen.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Palauttaa määrätyn osan tekstistä.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "merkkijonosta", - "TEXT_GET_SUBSTRING_START_FROM_START": "hae osa alkaen kirjaimesta nro", - "TEXT_GET_SUBSTRING_START_FROM_END": "hae osa alkaen kirjaimesta nro (lopusta laskien)", - "TEXT_GET_SUBSTRING_START_FIRST": "hae osa alkaen ensimmäisestä kirjaimesta", - "TEXT_GET_SUBSTRING_END_FROM_START": "kirjaimeen nro", - "TEXT_GET_SUBSTRING_END_FROM_END": "kirjaimeen nro (lopusta laskien)", - "TEXT_GET_SUBSTRING_END_LAST": "viimeiseen kirjaimeen", - "TEXT_CHANGECASE_TOOLTIP": "Palauttaa kopion tekstistä eri kirjainkoossa.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "isot kirjaimet", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "pienet kirjaimet", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "isot alkukirjaimet", - "TEXT_TRIM_TOOLTIP": "Palauttaa kopion tekstistä siten, että välilyönnit on poistettu yhdestä tai molemmista päistä.", - "TEXT_TRIM_OPERATOR_BOTH": "poistaa välilyönnit kummaltakin puolelta", - "TEXT_TRIM_OPERATOR_LEFT": "poistaa välilyönnit vasemmalta puolelta", - "TEXT_TRIM_OPERATOR_RIGHT": "poistaa välilyönnit oikealta puolelta", - "TEXT_PRINT_TITLE": "tulosta %1", - "TEXT_PRINT_TOOLTIP": "Tulostaa annetun tekstin, numeron tai muun arvon.", - "TEXT_PROMPT_TYPE_TEXT": "käyttäen annettua viestiä, kehottaa syöttämään tekstiä", - "TEXT_PROMPT_TYPE_NUMBER": "käyttäen annettua viestiä, kehottaa syöttämään numeron", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Kehottaa käyttäjää syöttämään numeron.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Kehottaa käyttäjää syöttämään tekstiä.", - "TEXT_COUNT_MESSAGE0": "laske määrä '%1' '%2' sisällä", - "TEXT_COUNT_TOOLTIP": "Laske kuinka monta kertaa jokin teksti esiintyy jossakin toisessa tekstissä.", - "TEXT_REPLACE_MESSAGE0": "Korvaa teksti %1 tekstillä %2 tekstissä %3", - "TEXT_REPLACE_TOOLTIP": "Korvaa tietyn tekstin ilmentymät tekstin sisällä.", - "TEXT_REVERSE_MESSAGE0": "%1 takaperin", - "TEXT_REVERSE_TOOLTIP": "Muuttaa tekstin kirjainten järjestyksen toisin päin.", - "LISTS_CREATE_EMPTY_TITLE": "Luo tyhjä lista", - "LISTS_CREATE_EMPTY_TOOLTIP": "Palauta tyhjä lista, pituus 0", - "LISTS_CREATE_WITH_TOOLTIP": "Luo lista, jossa on mikä tahansa määrä kohteita.", - "LISTS_CREATE_WITH_INPUT_WITH": "luo lista", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Listää, poista tai järjestele uudestaan osioita tässä lohkossa.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Lisää kohde listaan.", - "LISTS_REPEAT_TOOLTIP": "Luo listan, jossa annettu arvo toistuu määrätyn monta kertaa.", - "LISTS_REPEAT_TITLE": "luo lista, jossa kohde %1 toistuu %2 kertaa", - "LISTS_LENGTH_TITLE": "%1:n pituus", - "LISTS_LENGTH_TOOLTIP": "Palauttaa listan pituuden.", - "LISTS_ISEMPTY_TITLE": "%1 on tyhjä", - "LISTS_ISEMPTY_TOOLTIP": "Palauttaa tosi, jos lista on tyhjä.", - "LISTS_INLIST": "listassa", - "LISTS_INDEX_OF_FIRST": "etsi ensimmäinen esiintymä kohteelle", - "LISTS_INDEX_OF_LAST": "etsi viimeinen esiintymä kohteelle", - "LISTS_INDEX_OF_TOOLTIP": "Palauttaa kohteen ensimmäisen/viimeisen esiintymän kohdan listassa. Palauttaa %1 jos kohdetta ei löydy.", - "LISTS_GET_INDEX_GET": "hae", - "LISTS_GET_INDEX_GET_REMOVE": "hae ja poista", - "LISTS_GET_INDEX_REMOVE": "poista", - "LISTS_GET_INDEX_FROM_START": "nro", - "LISTS_GET_INDEX_FROM_END": "nro (lopusta laskien)", - "LISTS_GET_INDEX_FIRST": "ensimmäinen", - "LISTS_GET_INDEX_LAST": "viimeinen", - "LISTS_GET_INDEX_RANDOM": "satunnainen", - "LISTS_INDEX_FROM_START_TOOLTIP": "Numero %1 tarkoittaa listan ensimmäistä kohdetta.", - "LISTS_INDEX_FROM_END_TOOLTIP": "Numero %1 tarkoittaa listan viimeistä kohdetta.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Palauta kohde annetusta kohdasta listaa.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Palauta ensimmäinen kohde listalta.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Palauttaa listan viimeisen kohteen.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Palauttaa satunnaisen kohteen listalta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Poistaa ja palauttaa kohteen listan annetusta kohdasta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Poistaa ja palauttaa ensimmäisen kohteen listalta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Poistaa ja palauttaa viimeisen kohteen listalta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Poistaa ja palauttaa satunnaisen kohteen listalta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Poistaa kohteen listalta annetusta kohtaa.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Poistaa ensimmäisen kohteen listalta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Poistaa viimeisen kohteen listalta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Poistaa satunnaisen kohteen listalta.", - "LISTS_SET_INDEX_SET": "aseta", - "LISTS_SET_INDEX_INSERT": "lisää kohtaan", - "LISTS_SET_INDEX_INPUT_TO": "kohteeksi", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Asettaa kohteen annettuun kohtaan listassa.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Asettaa listan ensimmäisen kohteen.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Asettaa listan viimeisen kohteen.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Asettaa satunnaisen kohteen listassa.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Lisää kohteen annettuun kohtaan listassa.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Lisää kohteen listan kärkeen.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Lisää kohteen listan loppuun.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Lisää kohteen satunnaiseen kohtaan listassa.", - "LISTS_GET_SUBLIST_START_FROM_START": "hae osalista alkaen kohdasta", - "LISTS_GET_SUBLIST_START_FROM_END": "hae osalista alkaen kohdasta (lopusta laskien)", - "LISTS_GET_SUBLIST_START_FIRST": "hae osalista alkaen alusta", - "LISTS_GET_SUBLIST_END_FROM_START": "päättyen kohtaan", - "LISTS_GET_SUBLIST_END_FROM_END": "päättyen kohtaan (lopusta laskien)", - "LISTS_GET_SUBLIST_END_LAST": "viimeinen", - "LISTS_GET_SUBLIST_TOOLTIP": "Luo kopio määrätystä kohden listaa.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "lajittele %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Lajittele kopio luettelosta.", - "LISTS_SORT_ORDER_ASCENDING": "nouseva", - "LISTS_SORT_ORDER_DESCENDING": "laskeva", - "LISTS_SORT_TYPE_NUMERIC": "numeerinen", - "LISTS_SORT_TYPE_TEXT": "aakkosjärjestys", - "LISTS_SORT_TYPE_IGNORECASE": "aakkosjärjestyksessä, välittämättä kirjainkoosta", - "LISTS_SPLIT_LIST_FROM_TEXT": "tee lista tekstistä", - "LISTS_SPLIT_TEXT_FROM_LIST": "tee listasta teksti", - "LISTS_SPLIT_WITH_DELIMITER": "erottimen kanssa", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Jaa teksti osiin erotinmerkin perusteella ja järjestä osat listaksi.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Yhdistä luettelon tekstit yhdeksi tekstiksi, erotettuina välimerkillä.", - "LISTS_REVERSE_MESSAGE0": "%1 takaperin", - "LISTS_REVERSE_TOOLTIP": "Palauta käännetty kopio listasta.", - "VARIABLES_GET_TOOLTIP": "Palauttaa muuttujan arvon.", - "VARIABLES_GET_CREATE_SET": "Luo 'aseta %1'", - "VARIABLES_SET": "aseta %1 arvoksi %2", - "VARIABLES_SET_TOOLTIP": "Asettaa muutujan arvoksi annetun syötteen.", - "VARIABLES_SET_CREATE_GET": "Luo 'hae %1'", - "PROCEDURES_DEFNORETURN_TITLE": "tehdäksesi", - "PROCEDURES_DEFNORETURN_PROCEDURE": "tee jotain", - "PROCEDURES_BEFORE_PARAMS": "parametrit:", - "PROCEDURES_CALL_BEFORE_PARAMS": "parametrit:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Luo funktio, jolla ei ole tuotosta.", - "PROCEDURES_DEFNORETURN_COMMENT": "Kuvaile tämä funktio...", - "PROCEDURES_DEFRETURN_RETURN": "palauta", - "PROCEDURES_DEFRETURN_TOOLTIP": "Luo funktio, jolla ei ole tuotosta.", - "PROCEDURES_ALLOW_STATEMENTS": "salli kommentit", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Varoitus: tällä funktiolla on sama parametri useamman kerran.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://fi.wikipedia.org/wiki/Aliohjelma", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Suorittaa käyttäjän määrittelemä funktio '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://fi.wikipedia.org/wiki/Aliohjelma", - "PROCEDURES_CALLRETURN_TOOLTIP": "Suorittaa käyttäjän määrittelemän funktion '%1' ja käyttää sen tuotosta.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "syötteet", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Lisää, poista tai järjestele uudelleen tämän toiminnon tulot.", - "PROCEDURES_MUTATORARG_TITLE": "syötteen nimi:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Lisää sisääntulon funktioon.", - "PROCEDURES_HIGHLIGHT_DEF": "Korosta funktion määritelmä", - "PROCEDURES_CREATE_DO": "Luo '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Jos arvo on tosi, palauta toinen arvo.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Varoitus: tätä lohkoa voi käyttää vain funktion määrityksessä.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Sano jotakin...", - "COLLAPSED_WARNINGS_WARNING": "Supistetut lohkot sisältävät varoituksia." -} diff --git a/lib/blockly/msg/json/fr.json b/lib/blockly/msg/json/fr.json deleted file mode 100644 index fb5be78..0000000 --- a/lib/blockly/msg/json/fr.json +++ /dev/null @@ -1,369 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Espertus", - "Gomoko", - "ProfGra", - "Wladek92", - "Fredlefred", - "Grimault", - "Rixed", - "Frigory", - "Appr", - "Vexthedorito", - "Urhixidur", - "RoboErikG", - "Zarisi", - "Alacabe", - "Pititnatole" - ] - }, - "VARIABLES_DEFAULT_NAME": "élément", - "UNNAMED_KEY": "non nommé", - "TODAY": "Aujourd'hui", - "DUPLICATE_BLOCK": "Dupliquer", - "ADD_COMMENT": "Ajouter un commentaire", - "REMOVE_COMMENT": "Supprimer un commentaire", - "DUPLICATE_COMMENT": "Dupliquer le commentaire", - "EXTERNAL_INPUTS": "Entrées externes", - "INLINE_INPUTS": "Entrées en ligne", - "DELETE_BLOCK": "Supprimer le bloc", - "DELETE_X_BLOCKS": "Supprimer %1 blocs", - "DELETE_ALL_BLOCKS": "Supprimer ces %1 blocs ?", - "CLEAN_UP": "Nettoyer les blocs", - "COLLAPSE_BLOCK": "Réduire le bloc", - "COLLAPSE_ALL": "Réduire les blocs", - "EXPAND_BLOCK": "Développer le bloc", - "EXPAND_ALL": "Développer les blocs", - "DISABLE_BLOCK": "Désactiver le bloc", - "ENABLE_BLOCK": "Activer le bloc", - "HELP": "Aide", - "UNDO": "Annuler", - "REDO": "Refaire", - "CHANGE_VALUE_TITLE": "Modifier la valeur :", - "RENAME_VARIABLE": "Renommer la variable…", - "RENAME_VARIABLE_TITLE": "Renommer toutes les variables « %1 » en :", - "NEW_VARIABLE": "Créer une variable...", - "NEW_STRING_VARIABLE": "Créer une variable chaîne…", - "NEW_NUMBER_VARIABLE": "Créer une variable nombre…", - "NEW_COLOUR_VARIABLE": "Créer une variable couleur…", - "NEW_VARIABLE_TYPE_TITLE": "Nouveau type de variable :", - "NEW_VARIABLE_TITLE": "Nom de la nouvelle variable :", - "VARIABLE_ALREADY_EXISTS": "Une variable appelée '%1' existe déjà.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Une variable nommée '%1' existe déjà pour un autre type : '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Supprimer %1 utilisations de la variable '%2' ?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Impossible de supprimer la variable '%1' parce qu’elle fait partie de la définition de la fonction '%2'", - "DELETE_VARIABLE": "Supprimer la variable '%1'", - "COLOUR_PICKER_HELPURL": "https://fr.wikipedia.org/wiki/Couleur", - "COLOUR_PICKER_TOOLTIP": "Choisir une couleur dans la palette.", - "COLOUR_RANDOM_TITLE": "couleur aléatoire", - "COLOUR_RANDOM_TOOLTIP": "Choisir une couleur au hasard.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "colorier en", - "COLOUR_RGB_RED": "rouge", - "COLOUR_RGB_GREEN": "vert", - "COLOUR_RGB_BLUE": "bleu", - "COLOUR_RGB_TOOLTIP": "Créer une couleur avec la quantité spécifiée de rouge, vert et bleu. Les valeurs doivent être comprises entre 0 et 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "mélanger", - "COLOUR_BLEND_COLOUR1": "couleur 1", - "COLOUR_BLEND_COLOUR2": "couleur 2", - "COLOUR_BLEND_RATIO": "taux", - "COLOUR_BLEND_TOOLTIP": "Mélange deux couleurs dans une proportion donnée (de 0.0 à 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://fr.wikipedia.org/wiki/Boucle_for", - "CONTROLS_REPEAT_TITLE": "répéter %1 fois", - "CONTROLS_REPEAT_INPUT_DO": "faire", - "CONTROLS_REPEAT_TOOLTIP": "Exécuter des instructions plusieurs fois.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "répéter tant que", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "répéter jusqu’à", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Tant qu’une valeur est vraie, alors exécuter des instructions.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Tant qu’une valeur est fausse, alors exécuter des instructions.", - "CONTROLS_FOR_TOOLTIP": "Faire prendre à la variable « %1 » les valeurs depuis le nombre de début jusqu’au nombre de fin, en s’incrémentant du pas spécifié, et exécuter les instructions spécifiées.", - "CONTROLS_FOR_TITLE": "compter avec %1 de %2 à %3 par %4", - "CONTROLS_FOREACH_TITLE": "pour chaque élément %1 dans la liste %2", - "CONTROLS_FOREACH_TOOLTIP": "Pour chaque élément d’une liste, assigner la valeur de l’élément à la variable '%1', puis exécuter des instructions.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "quitter la boucle", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "passer à l’itération de boucle suivante", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Sortir de la boucle englobante.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Sauter le reste de cette boucle, et poursuivre avec l’itération suivante.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Attention : Ce bloc ne devrait être utilisé que dans une boucle.", - "CONTROLS_IF_TOOLTIP_1": "Si une valeur est vraie, alors exécuter certains ordres.", - "CONTROLS_IF_TOOLTIP_2": "Si une valeur est vraie, alors exécuter le premier bloc d’ordres. Sinon, exécuter le second bloc d’ordres.", - "CONTROLS_IF_TOOLTIP_3": "Si la première valeur est vraie, alors exécuter le premier bloc d’ordres. Sinon, si la seconde valeur est vraie, exécuter le second bloc d’ordres.", - "CONTROLS_IF_TOOLTIP_4": "Si la première valeur est vraie, alors exécuter le premier bloc d’ordres. Sinon, si la seconde valeur est vraie, exécuter le second bloc d’ordres. Si aucune des valeurs n’est vraie, exécuter le dernier bloc d’ordres.", - "CONTROLS_IF_MSG_IF": "si", - "CONTROLS_IF_MSG_ELSEIF": "sinon si", - "CONTROLS_IF_MSG_ELSE": "sinon", - "CONTROLS_IF_IF_TOOLTIP": "Ajouter, supprimer ou réordonner les sections pour reconfigurer ce bloc si.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Ajouter une condition au bloc si.", - "CONTROLS_IF_ELSE_TOOLTIP": "Ajouter une condition finale fourre-tout au bloc si.", - "IOS_OK": "OK", - "IOS_CANCEL": "Annuler", - "IOS_ERROR": "Erreur", - "IOS_PROCEDURES_INPUTS": "ENTRÉES", - "IOS_PROCEDURES_ADD_INPUT": "+ Ajouter une entrée", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Ordres autorisés", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Cette fonction a des entrées dupliquées.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Ajouter une variable", - "IOS_VARIABLES_ADD_BUTTON": "Ajouter", - "IOS_VARIABLES_RENAME_BUTTON": "Renommer", - "IOS_VARIABLES_DELETE_BUTTON": "Supprimer", - "IOS_VARIABLES_VARIABLE_NAME": "Nom de la variable", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Vous ne pouvez pas utiliser un nom de variable vide.", - "LOGIC_COMPARE_HELPURL": "https://fr.wikipedia.org/wiki/In%C3%A9galit%C3%A9_(math%C3%A9matiques)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Renvoyer vrai si les deux entrées sont égales.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Renvoyer vrai si les deux entrées sont différentes.", - "LOGIC_COMPARE_TOOLTIP_LT": "Renvoyer vrai si la première entrée est plus petite que la seconde.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Renvoyer vrai si la première entrée est plus petite ou égale à la seconde.", - "LOGIC_COMPARE_TOOLTIP_GT": "Renvoyer vrai si la première entrée est plus grande que la seconde.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Renvoyer true si la première entrée est supérieure ou égale à la seconde.", - "LOGIC_OPERATION_TOOLTIP_AND": "Renvoyer vrai si les deux entrées sont vraies.", - "LOGIC_OPERATION_AND": "et", - "LOGIC_OPERATION_TOOLTIP_OR": "Renvoyer vrai si au moins une des entrées est vraie.", - "LOGIC_OPERATION_OR": "ou", - "LOGIC_NEGATE_TITLE": "pas %1", - "LOGIC_NEGATE_TOOLTIP": "Renvoie vrai si l’entrée est fausse. Renvoie faux si l’entrée est vraie.", - "LOGIC_BOOLEAN_TRUE": "vrai", - "LOGIC_BOOLEAN_FALSE": "faux", - "LOGIC_BOOLEAN_TOOLTIP": "Renvoie soit vrai soit faux.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "nul", - "LOGIC_NULL_TOOLTIP": "Renvoie nul.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "si vrai", - "LOGIC_TERNARY_IF_FALSE": "si faux", - "LOGIC_TERNARY_TOOLTIP": "Vérifier la condition dans 'test'. Si elle est vraie, renvoie la valeur 'si vrai' ; sinon renvoie la valeur 'si faux'.", - "MATH_NUMBER_HELPURL": "https://fr.wikipedia.org/wiki/Nombre", - "MATH_NUMBER_TOOLTIP": "Un nombre.", - "MATH_ARITHMETIC_HELPURL": "https://fr.wikipedia.org/wiki/Arithm%C3%A9tique", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Renvoie la somme des deux nombres.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Renvoie la différence des deux nombres.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Renvoie le produit des deux nombres.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Renvoie le quotient des deux nombres.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Renvoie le premier nombre élevé à la puissance du second.", - "MATH_SINGLE_HELPURL": "https://fr.wikipedia.org/wiki/Racine_carr%C3%A9e", - "MATH_SINGLE_OP_ROOT": "racine carrée", - "MATH_SINGLE_TOOLTIP_ROOT": "Renvoie la racine carrée d’un nombre.", - "MATH_SINGLE_OP_ABSOLUTE": "valeur absolue", - "MATH_SINGLE_TOOLTIP_ABS": "Renvoie la valeur absolue d’un nombre.", - "MATH_SINGLE_TOOLTIP_NEG": "Renvoie l’opposé d’un nombre", - "MATH_SINGLE_TOOLTIP_LN": "Renvoie le logarithme naturel d’un nombre.", - "MATH_SINGLE_TOOLTIP_LOG10": "Renvoie le logarithme décimal d’un nombre.", - "MATH_SINGLE_TOOLTIP_EXP": "Renvoie e à la puissance d’un nombre.", - "MATH_SINGLE_TOOLTIP_POW10": "Renvoie 10 à la puissance d’un nombre.", - "MATH_TRIG_HELPURL": "https://fr.wikipedia.org/wiki/Fonction_trigonom%C3%A9trique", - "MATH_TRIG_TOOLTIP_SIN": "Renvoie le sinus d’un angle en degrés (pas en radians).", - "MATH_TRIG_TOOLTIP_COS": "Renvoie le cosinus d’un angle en degrés (pas en radians).", - "MATH_TRIG_TOOLTIP_TAN": "Renvoie la tangente d’un angle en degrés (pas en radians).", - "MATH_TRIG_TOOLTIP_ASIN": "Renvoie l’arcsinus d’un nombre.", - "MATH_TRIG_TOOLTIP_ACOS": "Renvoie l’arccosinus d’un nombre.", - "MATH_TRIG_TOOLTIP_ATAN": "Renvoie l’arctangente d’un nombre.", - "MATH_CONSTANT_HELPURL": "https://fr.wikipedia.org/wiki/Table_de_constantes_math%C3%A9matiques", - "MATH_CONSTANT_TOOLTIP": "Renvoie une des constantes courantes : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infini).", - "MATH_IS_EVEN": "est pair", - "MATH_IS_ODD": "est impair", - "MATH_IS_PRIME": "est premier", - "MATH_IS_WHOLE": "est entier", - "MATH_IS_POSITIVE": "est positif", - "MATH_IS_NEGATIVE": "est négatif", - "MATH_IS_DIVISIBLE_BY": "est divisible par", - "MATH_IS_TOOLTIP": "Vérifier si un nombre est pair, impair, premier, entier, positif, négatif, ou s’il est divisible par un certain nombre. Renvoie vrai ou faux.", - "MATH_CHANGE_HELPURL": "https://fr.wikipedia.org/wiki/Idiome_de_programmation", - "MATH_CHANGE_TITLE": "incrémenter %1 de %2", - "MATH_CHANGE_TOOLTIP": "Ajouter un nombre à la variable '%1'.", - "MATH_ROUND_HELPURL": "https://fr.wikipedia.org/wiki/Arrondi_(math%C3%A9matiques)", - "MATH_ROUND_TOOLTIP": "Arrondir un nombre au-dessus ou au-dessous.", - "MATH_ROUND_OPERATOR_ROUND": "arrondir", - "MATH_ROUND_OPERATOR_ROUNDUP": "arrondir par excès", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arrondir par défaut", - "MATH_ONLIST_OPERATOR_SUM": "somme de la liste", - "MATH_ONLIST_TOOLTIP_SUM": "Renvoyer la somme de tous les nombres dans la liste.", - "MATH_ONLIST_OPERATOR_MIN": "minimum de la liste", - "MATH_ONLIST_TOOLTIP_MIN": "Renvoyer le plus petit nombre dans la liste.", - "MATH_ONLIST_OPERATOR_MAX": "maximum de la liste", - "MATH_ONLIST_TOOLTIP_MAX": "Renvoyer le plus grand nombre dans la liste.", - "MATH_ONLIST_OPERATOR_AVERAGE": "moyenne de la liste", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Renvoyer la moyenne (arithmétique) des valeurs numériques dans la liste.", - "MATH_ONLIST_OPERATOR_MEDIAN": "médiane de la liste", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Renvoyer le nombre médian de la liste.", - "MATH_ONLIST_OPERATOR_MODE": "majoritaires de la liste", - "MATH_ONLIST_TOOLTIP_MODE": "Renvoyer une liste des élément(s) le(s) plus courant(s) dans la liste.", - "MATH_ONLIST_OPERATOR_STD_DEV": "écart-type de la liste", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Renvoyer l’écart-type de la liste.", - "MATH_ONLIST_OPERATOR_RANDOM": "élément aléatoire de la liste", - "MATH_ONLIST_TOOLTIP_RANDOM": "Renvoyer un élément dans la liste au hasard.", - "MATH_MODULO_HELPURL": "https://fr.wikipedia.org/wiki/Modulo_(op%C3%A9ration)", - "MATH_MODULO_TITLE": "reste de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Renvoyer le reste de la division euclidienne des deux nombres.", - "MATH_CONSTRAIN_TITLE": "contraindre %1 entre %2 et %3", - "MATH_CONSTRAIN_TOOLTIP": "Contraindre un nombre à être entre les limites spécifiées (incluses).", - "MATH_RANDOM_INT_HELPURL": "https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_de_nombres_al%C3%A9atoires", - "MATH_RANDOM_INT_TITLE": "entier aléatoire entre %1 et %2", - "MATH_RANDOM_INT_TOOLTIP": "Renvoyer un entier aléatoire entre les deux limites spécifiées, incluses.", - "MATH_RANDOM_FLOAT_HELPURL": "https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_de_nombres_al%C3%A9atoires", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fraction aléatoire", - "MATH_RANDOM_FLOAT_TOOLTIP": "Renvoyer une fraction aléatoire entre 0.0 (inclus) et 1.0 (exclus).", - "MATH_ATAN2_HELPURL": "https://fr.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Renvoie l'arc tangente du point (X, Y) en degrés entre -180 et 180.", - "TEXT_TEXT_HELPURL": "https://fr.wikipedia.org/wiki/Cha%C3%AEne_de_caract%C3%A8res", - "TEXT_TEXT_TOOLTIP": "Une lettre, un mot ou une ligne de texte.", - "TEXT_JOIN_TITLE_CREATEWITH": "créer un texte avec", - "TEXT_JOIN_TOOLTIP": "Créer un morceau de texte en agrégeant un nombre quelconque d’éléments.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "joindre", - "TEXT_CREATE_JOIN_TOOLTIP": "Ajouter, supprimer, ou réordonner des sections pour reconfigurer ce bloc de texte.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Ajouter un élément au texte.", - "TEXT_APPEND_TITLE": "ajouter le texte %2 à %1", - "TEXT_APPEND_TOOLTIP": "Ajouter du texte à la variable '%1'.", - "TEXT_LENGTH_TITLE": "longueur de %1", - "TEXT_LENGTH_TOOLTIP": "Renvoie le nombre de lettres (espaces compris) dans le texte fourni.", - "TEXT_ISEMPTY_TITLE": "%1 est vide", - "TEXT_ISEMPTY_TOOLTIP": "Renvoie vrai si le texte fourni est vide.", - "TEXT_INDEXOF_TOOLTIP": "Renvoie l’index de la première/dernière occurrence de la première chaîne dans la seconde. Renvoie %1 si la chaîne n’est pas trouvée.", - "TEXT_INDEXOF_TITLE": "dans le texte %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "trouver la première occurrence de la chaîne", - "TEXT_INDEXOF_OPERATOR_LAST": "trouver la dernière occurrence de la chaîne", - "TEXT_CHARAT_TITLE": "dans le texte %1 %2", - "TEXT_CHARAT_FROM_START": "obtenir la lettre #", - "TEXT_CHARAT_FROM_END": "obtenir la lettre # depuis la fin", - "TEXT_CHARAT_FIRST": "obtenir la première lettre", - "TEXT_CHARAT_LAST": "obtenir la dernière lettre", - "TEXT_CHARAT_RANDOM": "obtenir une lettre au hasard", - "TEXT_CHARAT_TOOLTIP": "Renvoie la lettre à la position indiquée.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Renvoie une partie indiquée du texte.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "dans le texte", - "TEXT_GET_SUBSTRING_START_FROM_START": "obtenir la sous-chaîne depuis la lettre #", - "TEXT_GET_SUBSTRING_START_FROM_END": "obtenir la sous-chaîne depuis la lettre # depuis la fin", - "TEXT_GET_SUBSTRING_START_FIRST": "obtenir la sous-chaîne depuis la première lettre", - "TEXT_GET_SUBSTRING_END_FROM_START": "jusqu’à la lettre #", - "TEXT_GET_SUBSTRING_END_FROM_END": "jusqu’à la lettre # depuis la fin", - "TEXT_GET_SUBSTRING_END_LAST": "jusqu’à la dernière lettre", - "TEXT_CHANGECASE_TOOLTIP": "Renvoyer une copie du texte dans une autre casse.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "en MAJUSCULES", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "en minuscules", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "en Majuscule Au Début De Chaque Mot", - "TEXT_TRIM_TOOLTIP": "Renvoyer une copie du texte avec les espaces supprimés d’un bout ou des deux.", - "TEXT_TRIM_OPERATOR_BOTH": "supprimer les espaces des deux côtés", - "TEXT_TRIM_OPERATOR_LEFT": "supprimer les espaces du côté gauche", - "TEXT_TRIM_OPERATOR_RIGHT": "supprimer les espaces du côté droit", - "TEXT_PRINT_TITLE": "afficher %1", - "TEXT_PRINT_TOOLTIP": "Afficher le texte, le nombre ou une autre valeur spécifiée.", - "TEXT_PROMPT_TYPE_TEXT": "invite pour un texte avec un message", - "TEXT_PROMPT_TYPE_NUMBER": "invite pour un nombre avec un message", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Demander un nombre à l’utilisateur.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Demander un texte à l’utilisateur.", - "TEXT_COUNT_MESSAGE0": "nombre %1 sur %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Compter combien de fois un texte donné apparait dans un autre.", - "TEXT_REPLACE_MESSAGE0": "remplacer %1 par %2 dans %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Remplacer toutes les occurrences d’un texte par un autre.", - "TEXT_REVERSE_MESSAGE0": "inverser %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Inverse l’ordre des caractères dans le texte.", - "LISTS_CREATE_EMPTY_TITLE": "créer une liste vide", - "LISTS_CREATE_EMPTY_TOOLTIP": "Renvoyer une liste, de longueur 0, ne contenant aucun enregistrement", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Créer une liste avec un nombre quelconque d’éléments.", - "LISTS_CREATE_WITH_INPUT_WITH": "créer une liste avec", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "liste", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Ajouter, supprimer, ou réordonner les sections pour reconfigurer ce bloc de liste.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Ajouter un élément à la liste.", - "LISTS_REPEAT_TOOLTIP": "Crée une liste consistant en la valeur fournie répétée le nombre de fois indiqué.", - "LISTS_REPEAT_TITLE": "créer une liste avec l’élément %1 répété %2 fois", - "LISTS_LENGTH_TITLE": "longueur de %1", - "LISTS_LENGTH_TOOLTIP": "Renvoie la longueur d’une liste.", - "LISTS_ISEMPTY_TITLE": "%1 est vide", - "LISTS_ISEMPTY_TOOLTIP": "Renvoie vrai si la liste est vide.", - "LISTS_INLIST": "dans la liste", - "LISTS_INDEX_OF_FIRST": "trouver la première occurrence de l’élément", - "LISTS_INDEX_OF_LAST": "trouver la dernière occurrence de l’élément", - "LISTS_INDEX_OF_TOOLTIP": "Renvoie l’index de la première/dernière occurrence de l’élément dans la liste. Renvoie %1 si l'élément n'est pas trouvé.", - "LISTS_GET_INDEX_GET": "obtenir", - "LISTS_GET_INDEX_GET_REMOVE": "obtenir et supprimer", - "LISTS_GET_INDEX_REMOVE": "supprimer", - "LISTS_GET_INDEX_FROM_END": "# depuis la fin", - "LISTS_GET_INDEX_FIRST": "premier", - "LISTS_GET_INDEX_LAST": "dernier", - "LISTS_GET_INDEX_RANDOM": "aléatoire", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 est le premier élément.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 est le dernier élément.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Renvoie l’élément à la position indiquée dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Renvoie le premier élément dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Renvoie le dernier élément dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Renvoie un élément au hasard dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Supprime et renvoie l’élément à la position indiquée dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Supprime et renvoie le premier élément dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Supprime et renvoie le dernier élément dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Supprime et renvoie un élément au hasard dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Supprime l’élément à la position indiquée dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Supprime le premier élément dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Supprime le dernier élément dans une liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Supprime un élément au hasard dans une liste.", - "LISTS_SET_INDEX_SET": "mettre", - "LISTS_SET_INDEX_INSERT": "insérer en", - "LISTS_SET_INDEX_INPUT_TO": "comme", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Met à jour l’élément à la position indiquée dans une liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Fixe le premier élément dans une liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Fixe le dernier élément dans une liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Fixe un élément au hasard dans une liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Insère l’élément à la position indiquée dans une liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Insère l’élément au début d’une liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ajouter l’élément à la fin d’une liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Insère l’élément au hasard dans une liste.", - "LISTS_GET_SUBLIST_START_FROM_START": "obtenir la sous-liste depuis #", - "LISTS_GET_SUBLIST_START_FROM_END": "obtenir la sous-liste depuis # depuis la fin", - "LISTS_GET_SUBLIST_START_FIRST": "obtenir la sous-liste depuis le début", - "LISTS_GET_SUBLIST_END_FROM_START": "jusqu’à #", - "LISTS_GET_SUBLIST_END_FROM_END": "jusqu’à # depuis la fin", - "LISTS_GET_SUBLIST_END_LAST": "jusqu’à la fin", - "LISTS_GET_SUBLIST_TOOLTIP": "Crée une copie de la partie spécifiée d’une liste.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "trier %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Trier une copie d’une liste.", - "LISTS_SORT_ORDER_ASCENDING": "croissant", - "LISTS_SORT_ORDER_DESCENDING": "décroissant", - "LISTS_SORT_TYPE_NUMERIC": "numérique", - "LISTS_SORT_TYPE_TEXT": "alphabétique", - "LISTS_SORT_TYPE_IGNORECASE": "alphabétique, en ignorant la casse", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "créer une liste depuis le texte", - "LISTS_SPLIT_TEXT_FROM_LIST": "créer un texte depuis la liste", - "LISTS_SPLIT_WITH_DELIMITER": "avec séparateur", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Couper un texte en une liste de textes, en coupant à chaque séparateur.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Réunir une liste de textes en un seul, en les séparant par un séparateur.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "inverser %1", - "LISTS_REVERSE_TOOLTIP": "Inverser la copie d’une liste.", - "VARIABLES_GET_TOOLTIP": "Renvoie la valeur de cette variable.", - "VARIABLES_GET_CREATE_SET": "Créer 'fixer %1'", - "VARIABLES_SET": "fixer %1 à %2", - "VARIABLES_SET_TOOLTIP": "Fixe cette variable pour qu’elle soit égale à la valeur de l’entrée.", - "VARIABLES_SET_CREATE_GET": "Créer 'obtenir %1'", - "PROCEDURES_DEFNORETURN_TITLE": "pour", - "PROCEDURES_DEFNORETURN_PROCEDURE": "faire quelque chose", - "PROCEDURES_BEFORE_PARAMS": "avec :", - "PROCEDURES_CALL_BEFORE_PARAMS": "avec :", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Crée une fonction sans sortie.", - "PROCEDURES_DEFNORETURN_COMMENT": "Décrire cette fonction…", - "PROCEDURES_DEFRETURN_RETURN": "retour", - "PROCEDURES_DEFRETURN_TOOLTIP": "Crée une fonction avec une sortie.", - "PROCEDURES_ALLOW_STATEMENTS": "autoriser les ordres", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Attention : Cette fonction a des paramètres en double.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://fr.wikipedia.org/wiki/Sous-programme", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Exécuter la fonction '%1' définie par l’utilisateur.", - "PROCEDURES_CALLRETURN_HELPURL": "https://fr.wikipedia.org/wiki/Sous-programme", - "PROCEDURES_CALLRETURN_TOOLTIP": "Exécuter la fonction '%1' définie par l’utilisateur et utiliser son résultat.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entrées", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Ajouter, supprimer, ou réarranger les entrées de cette fonction.", - "PROCEDURES_MUTATORARG_TITLE": "nom de l’entrée :", - "PROCEDURES_MUTATORARG_TOOLTIP": "Ajouter une entrée à la fonction.", - "PROCEDURES_HIGHLIGHT_DEF": "Surligner la définition de la fonction", - "PROCEDURES_CREATE_DO": "Créer '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Si une valeur est vraie, alors renvoyer une seconde valeur.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Attention : Ce bloc pourrait n’être utilisé que dans une définition de fonction.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Dire quelque chose…", - "COLLAPSED_WARNINGS_WARNING": "Les blocs repliés contiennent des avertissements." -} diff --git a/lib/blockly/msg/json/gl.json b/lib/blockly/msg/json/gl.json deleted file mode 100644 index 7fc26dd..0000000 --- a/lib/blockly/msg/json/gl.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Chairego apc", - "Elisardojm", - "Macofe", - "Navhy", - "Toliño", - "Iváns" - ] - }, - "VARIABLES_DEFAULT_NAME": "elemento", - "TODAY": "Hoxe", - "DUPLICATE_BLOCK": "Duplicar", - "ADD_COMMENT": "Engadir un comentario", - "REMOVE_COMMENT": "Eliminar o comentario", - "EXTERNAL_INPUTS": "Entradas externas", - "INLINE_INPUTS": "Entradas en liña", - "DELETE_BLOCK": "Borrar o bloque", - "DELETE_X_BLOCKS": "Borrar %1 bloques", - "DELETE_ALL_BLOCKS": "Queres eliminar os %1 bloques?", - "CLEAN_UP": "Limpar os bloques", - "COLLAPSE_BLOCK": "Contraer o bloque", - "COLLAPSE_ALL": "Contraer os bloques", - "EXPAND_BLOCK": "Expandir o bloque", - "EXPAND_ALL": "Expandir os bloques", - "DISABLE_BLOCK": "Desactivar o bloque", - "ENABLE_BLOCK": "Activar o bloque", - "HELP": "Axuda", - "UNDO": "Desfacer", - "REDO": "Refacer", - "CHANGE_VALUE_TITLE": "Cambiar o valor:", - "RENAME_VARIABLE": "Renomear a variable...", - "RENAME_VARIABLE_TITLE": "Renomear todas as variables \"%1\" a:", - "NEW_VARIABLE": "Crear a variable...", - "NEW_VARIABLE_TITLE": "Nome da nova variable:", - "COLOUR_PICKER_HELPURL": "https://gl.wikipedia.org/wiki/Cor", - "COLOUR_PICKER_TOOLTIP": "Escolle unha cor da paleta.", - "COLOUR_RANDOM_TITLE": "cor ó chou", - "COLOUR_RANDOM_TOOLTIP": "Escolle unha cor ao chou.", - "COLOUR_RGB_TITLE": "colorar con", - "COLOUR_RGB_RED": "vermello", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "azul", - "COLOUR_BLEND_TITLE": "mesturar", - "COLOUR_BLEND_COLOUR1": "cor 1", - "COLOUR_BLEND_COLOUR2": "cor 2", - "COLOUR_BLEND_RATIO": "proporción", - "COLOUR_BLEND_TOOLTIP": "Mestura dúas cores ca proporción indicada (0.0 - 1.0).", - "CONTROLS_REPEAT_INPUT_DO": "facer", - "CONTROLS_REPEAT_TOOLTIP": "Faga algunhas instrucións varias veces.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetir mentres", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repetir ata", - "CONTROLS_IF_MSG_IF": "se", - "CONTROLS_IF_MSG_ELSEIF": "mais se", - "CONTROLS_IF_MSG_ELSE": "senón", - "IOS_OK": "Feito", - "IOS_CANCEL": "Cancelar", - "IOS_ERROR": "Erro", - "IOS_PROCEDURES_INPUTS": "ENTRADAS", - "IOS_PROCEDURES_ADD_INPUT": "+ Engadir entrada", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permitir declaracións", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Esta función ten entradas duplicadas.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Engadir variábel", - "IOS_VARIABLES_ADD_BUTTON": "Engadir", - "IOS_VARIABLES_RENAME_BUTTON": "Renomear", - "IOS_VARIABLES_DELETE_BUTTON": "Eliminar", - "IOS_VARIABLES_VARIABLE_NAME": "Nome da variábel", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_OR": "ou", - "LOGIC_NEGATE_TITLE": "non %1", - "LOGIC_BOOLEAN_TRUE": "verdadeiro", - "LOGIC_BOOLEAN_FALSE": "falso", - "LOGIC_NULL": "nulo", - "LOGIC_NULL_TOOLTIP": "Retornar nulo.", - "LOGIC_TERNARY_CONDITION": "proba", - "LOGIC_TERNARY_IF_TRUE": "se verdadeiro", - "LOGIC_TERNARY_IF_FALSE": "se falso", - "MATH_NUMBER_TOOLTIP": "Un número.", - "MATH_ARITHMETIC_HELPURL": "https://gl.wikipedia.org/wiki/Aritmética", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Retorna a suma de dous números.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Retorna a diferenza de dous números.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Retorna o produto de dous números.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Retorna o cociente da división de dous números.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Retorna o primeiro número elevado á potencia do segundo número.", - "MATH_SINGLE_HELPURL": "https://gl.wikipedia.org/wiki/Raíz_cadrada", - "MATH_SINGLE_OP_ROOT": "raíz cadrada", - "MATH_SINGLE_TOOLTIP_ROOT": "Retorna a raíz cadrada dun número.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluto", - "MATH_SINGLE_TOOLTIP_ABS": "Retorna o valor absoluto dun número.", - "MATH_SINGLE_TOOLTIP_NEG": "Retorna o oposto dun número.", - "MATH_SINGLE_TOOLTIP_LN": "Retorna o logarítmo natural dun número.", - "MATH_SINGLE_TOOLTIP_LOG10": "Retorna o logarítmo en base 10 dun número.", - "MATH_SINGLE_TOOLTIP_EXP": "Retorna o número e elevado á potencia dun número.", - "MATH_SINGLE_TOOLTIP_POW10": "Retorna 10 elevado á potencia dun número.", - "MATH_TRIG_HELPURL": "https://gl.m.wikipedia.org/wiki/Función_trigonométrica", - "MATH_TRIG_TOOLTIP_SIN": "Retorna o seno dun grao (non radiano).", - "MATH_TRIG_TOOLTIP_COS": "Retorna o coseno dun grao (non radiano).", - "MATH_TRIG_TOOLTIP_TAN": "Retorna a tanxente dun grao (non radiano).", - "MATH_TRIG_TOOLTIP_ASIN": "Retorna o arco seno dum número.", - "MATH_TRIG_TOOLTIP_ACOS": "Retorna o arco coseno dun número.", - "MATH_TRIG_TOOLTIP_ATAN": "Retorna o arco tanxente dun número.", - "MATH_CONSTANT_HELPURL": "https://gl.wikipedia.org/wiki/Constante_matemática", - "MATH_CONSTANT_TOOLTIP": "Retorna unha das constantes comúns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito).", - "MATH_IS_EVEN": "é par", - "MATH_IS_ODD": "é impar", - "MATH_IS_PRIME": "é primo", - "MATH_IS_WHOLE": "é enteiro", - "MATH_IS_POSITIVE": "é positivo", - "MATH_IS_NEGATIVE": "é negativo", - "MATH_IS_DIVISIBLE_BY": "é divisíbel por", - "MATH_IS_TOOLTIP": "Verifica se un número é par, impar, primo, enteiro, positivo, negativo, ou se é divisíbel por outro número. Retorna verdadeiro ou falso.", - "MATH_CHANGE_TITLE": "mudar %1 por %2", - "MATH_CHANGE_TOOLTIP": "Suma un número á variábel '%1'.", - "MATH_ROUND_HELPURL": "https://gl.wikipedia.org/wiki/Arredondamento", - "MATH_ROUND_TOOLTIP": "Arredonda un número cara enriba ou cara abaixo.", - "MATH_ROUND_OPERATOR_ROUND": "arredonda", - "MATH_ROUND_OPERATOR_ROUNDUP": "arredonda cara arriba", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arredonda cara abaixo", - "MATH_ONLIST_OPERATOR_SUM": "suma da listaxe", - "MATH_ONLIST_TOOLTIP_SUM": "Retorna a suma de tódolos números da listaxe.", - "MATH_ONLIST_OPERATOR_MIN": "menor dunha listaxe", - "MATH_ONLIST_TOOLTIP_MIN": "Retorna o menor número da listaxe.", - "MATH_ONLIST_OPERATOR_MAX": "maior dunha listaxe", - "MATH_ONLIST_TOOLTIP_MAX": "Retorna o maior número da listaxe", - "MATH_ONLIST_OPERATOR_AVERAGE": "media dunha listaxe", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unir", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "no texto", - "TEXT_PRINT_TITLE": "imprime %1", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "listaxe", - "LISTS_ISEMPTY_TITLE": "%1 atópase baleira", - "LISTS_ISEMPTY_TOOLTIP": "Retona verdadeiro se a listaxe atópase baleira.", - "LISTS_INLIST": "na listaxe", - "LISTS_GET_INDEX_FIRST": "primeiro", - "LISTS_GET_INDEX_LAST": "derradeiro", - "LISTS_GET_INDEX_RANDOM": "ó chou", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 é o primeiro elemento.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 é o derradeiro elemento.", - "LISTS_SET_INDEX_SET": "definir", - "LISTS_SET_INDEX_INSERT": "inserir en", - "LISTS_SET_INDEX_INPUT_TO": "como", - "LISTS_SORT_TOOLTIP": "Ordear unha copia dunha listaxe.", - "LISTS_SORT_ORDER_ASCENDING": "ascendente", - "LISTS_SORT_ORDER_DESCENDING": "descendente", - "LISTS_SORT_TYPE_NUMERIC": "numérica", - "LISTS_SORT_TYPE_TEXT": "alfabética", - "LISTS_SORT_TYPE_IGNORECASE": "alfabética, iñorar maiúsculas/minúsculas", - "PROCEDURES_DEFNORETURN_TITLE": "cara", - "PROCEDURES_DEFNORETURN_PROCEDURE": "facer algo", - "PROCEDURES_BEFORE_PARAMS": "con:", - "PROCEDURES_CALL_BEFORE_PARAMS": "con:", - "PROCEDURES_DEFRETURN_RETURN": "retornar", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entradas" -} diff --git a/lib/blockly/msg/json/gor.json b/lib/blockly/msg/json/gor.json deleted file mode 100644 index 214fdae..0000000 --- a/lib/blockly/msg/json/gor.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Lukman Tomayahu", - "Marwan Mohamad", - "Zhoelyakin", - "RFenichel" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "TODAY": "Engontiye", - "DUPLICATE_BLOCK": "Duplikat", - "ADD_COMMENT": "Moduhenga tuladu", - "REMOVE_COMMENT": "Mohinggi tuladu", - "EXTERNAL_INPUTS": "tuwanga lonto eksternal", - "INLINE_INPUTS": "tuwanga lo inline", - "DELETE_BLOCK": "Moluluto Blok", - "DELETE_X_BLOCKS": "Moluluto %1 Blok", - "DELETE_ALL_BLOCKS": "Luluta nga'amila %1 blocks?", - "COLLAPSE_BLOCK": "Mohe'uto Blok", - "COLLAPSE_ALL": "Mohe'uto Blok", - "EXPAND_BLOCK": "Lolade Blok", - "EXPAND_ALL": "Lolade Blok", - "DISABLE_BLOCK": "Moberenti Blok", - "ENABLE_BLOCK": "Momulayi Blok", - "HELP": "Tuulungi", - "CHANGE_VALUE_TITLE": "Ubawa nilai", - "RENAME_VARIABLE": "Tangguli uulangi variabel", - "RENAME_VARIABLE_TITLE": "Tangguli uulangi nga'amila % variabel ode:", - "NEW_VARIABLE": "Variabel bohu...", - "NEW_VARIABLE_TITLE": "Tanggulo Variabel bohu", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Laku", - "COLOUR_PICKER_TOOLTIP": "Piliya laku lonto daputari lo laku", - "COLOUR_RANDOM_TITLE": "Laku acak", - "COLOUR_RANDOM_TOOLTIP": "Piliya laku acak", - "COLOUR_RGB_TITLE": "wolo laku", - "COLOUR_RGB_RED": "meela", - "COLOUR_RGB_GREEN": "moyidu", - "COLOUR_RGB_BLUE": "wahu'ente", - "COLOUR_RGB_TOOLTIP": "Pohutuwa laku wolo jumula u tilantu monto u meela, moyidu wawu wahu'ente. Nga'amila musi o woolota 0 wawu 100", - "COLOUR_BLEND_TITLE": "Ulawuwa", - "COLOUR_BLEND_COLOUR1": "laku 1", - "COLOUR_BLEND_COLOUR2": "laku 2", - "COLOUR_BLEND_RATIO": "rasio", - "COLOUR_BLEND_TOOLTIP": "Mongulawu dulo laku pe'eenta wolo rasio (0.0-1.0)", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ulangiya %1 kali", - "CONTROLS_REPEAT_INPUT_DO": "pohutuwa", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "Ulangiya wonu", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ulangiya sambe", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Wonu nilai banari, pohutuwa po'ongoolo", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Wonu nilai diya banari, pohutuwa parenta", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "Mokaluwari lonto u'uulangiya", - "CONTROLS_IF_MSG_IF": "wonu", - "CONTROLS_IF_MSG_ELSEIF": "wonu uweewo", - "CONTROLS_IF_MSG_ELSE": "uweewo", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_OPERATION_AND": "wawu", - "LOGIC_OPERATION_OR": "meyalo", - "LOGIC_NEGATE_TITLE": "diila %1", - "LOGIC_BOOLEAN_TRUE": "banari", - "LOGIC_BOOLEAN_FALSE": "tala", - "LOGIC_NULL": "noolo", - "LOGIC_TERNARY_CONDITION": "yimontalo", - "LOGIC_TERNARY_IF_TRUE": "wonu banari", - "LOGIC_TERNARY_IF_FALSE": "wonu tala", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Noomoro", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "akar pangkat dua", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "TEXT_CREATE_JOIN_TITLE_JOIN": "wayito", - "TEXT_CREATE_JOIN_TOOLTIP": "Duhengi, yinggila, meyalo susungiya ulangi tuladu blok.", - "TEXT_LENGTH_TITLE": "haya'o lo %1", - "TEXT_ISEMPTY_TITLE": "%1 koosongi", - "TEXT_ISEMPTY_TOOLTIP": "Pohalinga banari wonu tuladu u sadi-sadia koosongi.", - "TEXT_INDEXOF_OPERATOR_FIRST": "lolohe u yilowali bohuliyo to delomo tuladu", - "TEXT_INDEXOF_OPERATOR_LAST": "lolohe u yilowali pulitiyo to delomo tuladu", - "TEXT_CHARAT_FROM_START": "hama hurupu #", - "TEXT_CHARAT_FROM_END": "hama hurupu # monto wuleya", - "TEXT_CHARAT_FIRST": "hama tulade bungaliyo", - "TEXT_CHARAT_LAST": "hama tulade pulitiyo", - "TEXT_CHARAT_RANDOM": "hama tulade ambulati", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "to delomo tuladu", - "TEXT_GET_SUBSTRING_END_FROM_START": "ode hurupu", - "TEXT_GET_SUBSTRING_END_FROM_END": "ode tuladu # monto wuleya", - "TEXT_GET_SUBSTRING_END_LAST": "to tulade pulitiyo", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "mowali HURUPU DAMANGO", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "mowali hurupu kiki'o", - "PROCEDURES_CREATE_DO": "Pohutu '%1'" -} diff --git a/lib/blockly/msg/json/ha.json b/lib/blockly/msg/json/ha.json deleted file mode 100644 index eb1adad..0000000 --- a/lib/blockly/msg/json/ha.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Mapmeld" - ] - }, - "VARIABLES_DEFAULT_NAME": "waniabu", - "TODAY": "Yau", - "DUPLICATE_BLOCK": "Yi kwafi", - "ADD_COMMENT": "Daɗa Sharhi", - "REMOVE_COMMENT": "Cire Sharhi", - "DUPLICATE_COMMENT": "Kwafi Sharhi", - "EXTERNAL_INPUTS": "Bayanan Waje", - "INLINE_INPUTS": "Bayanai na Cikin layi", - "DELETE_BLOCK": "Goge Bulo", - "DELETE_X_BLOCKS": "Goge Bulo %1", - "DELETE_ALL_BLOCKS": "A goge duk bululluka %1?", - "CLEAN_UP": "A share Bululluka", - "COLLAPSE_BLOCK": "Rusa Bulo", - "COLLAPSE_ALL": "Rusa Bululluka", - "EXPAND_BLOCK": "Faɗaɗa Bulo", - "EXPAND_ALL": "Faɗaɗa Bulullaka", - "DISABLE_BLOCK": "Kashe Bulo", - "ENABLE_BLOCK": "Kunna Bulo", - "HELP": "Taimako", - "UNDO": "Fasa", - "REDO": "Sake", - "CHANGE_VALUE_TITLE": "Canza kima:", - "RENAME_VARIABLE": "Sake sunan siffa...", - "RENAME_VARIABLE_TITLE": "Sake sunnan duk siffofi '%1' zuwa:", - "NEW_VARIABLE": "Ƙirƙiri siffofi...", - "NEW_STRING_VARIABLE": "Ƙiriƙiri kalmar siffa...", - "NEW_NUMBER_VARIABLE": "Ƙirƙiri siffa ta lamba...", - "NEW_COLOUR_VARIABLE": "Ƙirƙiri siffa ta launi...", - "NEW_VARIABLE_TYPE_TITLE": "Irin sabuwar siffa:", - "NEW_VARIABLE_TITLE": "Sunan sabuwar siffa:", - "VARIABLE_ALREADY_EXISTS": "Tuni akwai sunnan siffa da aka kira '%1'.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Tuni akwai sunan siffa da aka kira '%1' domin wata iri ta: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "A goge amfanunnukan %1 na siffar '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "An kasa goge siffa '%1' sabo da tana daga sashi na bayanin aikin '%2'", - "DELETE_VARIABLE": "A goge siffar '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Zaɓi launi daga faifan launuka.", - "COLOUR_RANDOM_TITLE": "launuka da aka hargitsa", - "COLOUR_RANDOM_TOOLTIP": "Zaɓi launi daga wanɗanda aka hargitsa.", - "COLOUR_RGB_TITLE": "launi tare da", - "COLOUR_RGB_RED": "ja", - "COLOUR_RGB_GREEN": "kore", - "COLOUR_RGB_BLUE": "shuɗi", - "COLOUR_RGB_TOOLTIP": "Ƙirƙiri launi tare da wani yawa da aka fayyace na ja, kore, da shuɗi. Duk kimomin dole su zamo tsakanin 0 da 100.", - "COLOUR_BLEND_TITLE": "gauraya", - "COLOUR_BLEND_COLOUR1": "launi na 1", - "COLOUR_BLEND_COLOUR2": "launi na 2", - "COLOUR_BLEND_RATIO": "lissafi", - "COLOUR_BLEND_TOOLTIP": "Ana gauraya launuka biyu tare da wani lissafi da aka bayar (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "maimaita sau %1", - "CONTROLS_REPEAT_INPUT_DO": "yi", - "CONTROLS_REPEAT_TOOLTIP": "Yi wasu bayanai sau da dama.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "maimaita yayin da", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "maimaita har sai", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Yayin da wata kima ta zama gaskiya, maimaita wasu lambobi.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Yayin da wata kima ta zama ƙarya, maimaita wasu lambobi.", - "CONTROLS_FOR_TOOLTIP": "Sami siffar '%1' ta ɗauki kowa ce kima daga lambar da aka fara da ita zuwa lambar da aka ƙare da ita, ana ƙirgawa daga wata tazara da aka fayyace. Maimaita wannan lamba a kowane lokaci:", - "CONTROLS_FOR_TITLE": "Ƙirga da %1 daga %2 zuwa %3 ƙara %4", - "CONTROLS_FOREACH_TITLE": "ga kowane abu %1 a cikin jeri %2", - "CONTROLS_FOREACH_TOOLTIP": "Ga kowane abu a jeri, saka siffar '%1' zuwa ga abin, sannan a maimaita wasu lambobin.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ɓalle daga cikin kewaye", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "fara da maimaitawa ta gaba ta kewaye", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ɓalle daga kewaye wanda ya ƙunsa.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Tsallake sauran wannan kewaye, sannan kuma a ci gaba da maimaitawa ta gaba ta kewaye.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Gargaɗi: Wannan bulon za a iya amfani da shi ne kawai a wajen kewaye.", - "CONTROLS_IF_TOOLTIP_1": "Idan kima gaskiya ce, to a yi wasu maganganu.", - "CONTROLS_IF_TOOLTIP_2": "Idan kimar gaskiya ce, to a yi bulo na farko na maganganu. Idan ba haka ba, yi bulo na biyu na maganganu.", - "CONTROLS_IF_TOOLTIP_3": "Idan kimar farko gaskiya ce, to yi bulon farko na maganganun. In ba haka ba, idan kima ta biyu ce gaskiya, yi bolu na biyu na maganganun.", - "CONTROLS_IF_TOOLTIP_4": "Idan kimar farko gaskiya ce, to yi bulon farko na maganganun. In ba haka ba, idan kima ta biyu ce gaskiya, yi bolu na biyu na maganganun. Idan babu kimar da take gaskiya, yi bulo na ƙarshe na maganganun.", - "CONTROLS_IF_MSG_IF": "idan", - "CONTROLS_IF_MSG_ELSEIF": "wani idan", - "CONTROLS_IF_MSG_ELSE": "wani", - "CONTROLS_IF_IF_TOOLTIP": "Daɗa, cire, ko sake tsarin ɓangarori domin sake fasalin wannan idan bulo.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Daɗa sharaɗi zuwa idan bulo.", - "CONTROLS_IF_ELSE_TOOLTIP": "Daɗa na ƙarshe, sharaɗin kama-duk zuwa idan bulo.", - "IOS_OK": "TO", - "IOS_CANCEL": "Soke", - "IOS_ERROR": "Kuskure", - "IOS_PROCEDURES_INPUTS": "BAYANAI", - "IOS_PROCEDURES_ADD_INPUT": "+ Daɗa Bayani", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Bar lamba", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Wannan aikin yana da kwafin bayanai.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Daɗa Siffa", - "IOS_VARIABLES_ADD_BUTTON": "Daɗa", - "IOS_VARIABLES_RENAME_BUTTON": "Sake suna", - "IOS_VARIABLES_DELETE_BUTTON": "Goge", - "IOS_VARIABLES_VARIABLE_NAME": "Sunan siffa", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ba za ka iya amfani da sunann siffa wanda ba komai ba.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Koma gaskiya idan duk bayanan sun yi dai dai da juna.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Koma gaskiya idan duk bayanan ba su yi dai dai da juna ba.", - "LOGIC_COMPARE_TOOLTIP_LT": "Koma gaskiya idan bayanin farko ya fi na biyu ƙanƙanta.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Koma gaskiya idan bayanin farko ya fi ƙanƙanta ko dai dai da bayani na biyu.", - "LOGIC_COMPARE_TOOLTIP_GT": "Koma gaskiya idan bayanin farko ya fi bayani na biyu yawa.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Koma gaskiya idan bayanin farko ya fi ko ya yi dai dai da bayani na biyu.", - "LOGIC_OPERATION_TOOLTIP_AND": "Koma gaskiya idan duk bayanan gaskiya ne.", - "LOGIC_OPERATION_AND": "kuma", - "LOGIC_OPERATION_TOOLTIP_OR": "Koma gaskiya idan a ƙalla ɗayan bayanan gaskiya ne.", - "LOGIC_OPERATION_OR": "ko", - "LOGIC_NEGATE_TITLE": "ba %1", - "LOGIC_NEGATE_TOOLTIP": "Koma gaskiya idan bayanin ƙarya ne. Koma ƙarya idan bayanin gaskiya ne.", - "LOGIC_BOOLEAN_TRUE": "gaskiya", - "LOGIC_BOOLEAN_FALSE": "ƙarya", - "LOGIC_BOOLEAN_TOOLTIP": "Ya koma kodai gaskiya ko ƙarya.", - "LOGIC_NULL": "maras amfani", - "LOGIC_NULL_TOOLTIP": "Ya koma maras amfani.", - "LOGIC_TERNARY_CONDITION": "gwaji", - "LOGIC_TERNARY_IF_TRUE": "idan gaskiya ne", - "LOGIC_TERNARY_IF_FALSE": "idan ƙarya ne", - "LOGIC_TERNARY_TOOLTIP": "Duba sharaɗin a cikin 'gwaji'. Idan sharaɗin gaskiya ne, mayar da kimar 'idan gaskiya ne'; idan ba haka ba mayar da kimar 'idan ƙarya ne'.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Lambda.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Dawo da jumlar lambobin guda biyu.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Dawo da bambancin lambobin guda biyu.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Dawo da ruɓin lambobin guda biyu.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Dawo da sakamakon lambobin guda biyu bayan an raba su da juna.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Dawo da lambar farko wadda aka ɗaga ta zuwa ƙarfin lamba ta biyu.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "lamba da ta ruɓanya kanta", - "MATH_SINGLE_TOOLTIP_ROOT": "Dawo da wata lamba da ta ruɓanya kanta.", - "MATH_SINGLE_OP_ABSOLUTE": "cikakkiya", - "MATH_SINGLE_TOOLTIP_ABS": "Dawo da cikakkiyar kima na wata lamba.", - "MATH_SINGLE_TOOLTIP_NEG": "Dawo da kishiya na wata lamba.", - "MATH_SINGLE_TOOLTIP_LN": "Dawo da jerin lambobi da aka tara ko aka ɗebe.", - "MATH_SINGLE_TOOLTIP_LOG10": "Dawo da tushe 10 na jerin lambobi da aka tara ko aka ɗebe na wata lamba.", - "MATH_SINGLE_TOOLTIP_EXP": "Dawo da e zuwa ƙarfin wata lamba.", - "MATH_SINGLE_TOOLTIP_POW10": "Dawo da 10 zuwa ƙarfin wata lamba.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Dawo da sine na wani gwargwado (banda layin kusurwar waje).", - "MATH_TRIG_TOOLTIP_COS": "Dawo da cosine na wani gwargwado (banda layin kusurwar waje).", - "MATH_TRIG_TOOLTIP_TAN": "Dawo da tangent na wani gwargwado (banda layin kusurwar waje).", - "MATH_TRIG_TOOLTIP_ASIN": "Dawo da arcsine na wata lamba.", - "MATH_TRIG_TOOLTIP_ACOS": "Dawo da arccosine na wata lamba.", - "MATH_TRIG_TOOLTIP_ATAN": "Dawo da arctangent na wata lamba.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Dawo da ɗaya daga cikin sanannen zaunannen lissafi: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ko ∞ (maras iyaka).", - "MATH_IS_EVEN": "lamba da za a iya rabawa da biyu", - "MATH_IS_ODD": "lamba ce da ba za a iya rabawa da biyu ba", - "MATH_IS_PRIME": "lamba ce da kawai za a iya rabawa da kanta", - "MATH_IS_WHOLE": "lamba ce cikakkiya", - "MATH_IS_POSITIVE": "lamba ce da tafi sufuli", - "MATH_IS_NEGATIVE": "lamba ce da bata kai sufuli ba", - "MATH_IS_DIVISIBLE_BY": "lamba ce da za a iya rabawa da", - "MATH_IS_TOOLTIP": "Duba idan lamba ce da za a iya rabawa da biyu, lamba wadda ba za a iya rabawa da biyu ba, lamba ce kawai da za a iya rabawa da kanta, lamba ce cikakkiya,lamba ce da tafi sufuli, lamba ce da bata kai sufuli ba, lamba ce da za a iya rabawa da wata lamba. Ta dawo da gaskiya ko ƙarya.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "canza %1 da %2", - "MATH_CHANGE_TOOLTIP": "Daɗa wata lamba zuwa siffa '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Cika lamba sama ko ƙasa.", - "MATH_ROUND_OPERATOR_ROUND": "cika", - "MATH_ROUND_OPERATOR_ROUNDUP": "cika sama", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "cika ƙasa", - "MATH_ONLIST_OPERATOR_SUM": "jumlar jeri", - "MATH_ONLIST_TOOLTIP_SUM": "Dawo da jumlar duk lambobi na cikin jerin.", - "MATH_ONLIST_OPERATOR_MIN": "Taƙaicewa na jeri", - "MATH_ONLIST_TOOLTIP_MIN": "Dawo da lambobi ƙanana a cikin jerin.", - "MATH_ONLIST_OPERATOR_MAX": "cikakke na jeri", - "MATH_ONLIST_TOOLTIP_MAX": "Dawo da babbar lamba dake cikin jerin.", - "MATH_ONLIST_OPERATOR_AVERAGE": "Tsaka-tsaki na jeri", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Dawo da tsaka-tsaki (matsakaicin lissafi) na kimar lambobi dake cikin jerin.", - "MATH_ONLIST_OPERATOR_MEDIAN": "tsakiyar jeri", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Dawo da lambar tsakiya ta cikin jeri.", - "MATH_ONLIST_OPERATOR_MODE": "mai yawan bayyana na jeri", - "MATH_ONLIST_TOOLTIP_MODE": "Dawo da jeri na abubuwan da suka fi bayyana a cikin jeri.", - "MATH_ONLIST_OPERATOR_STD_DEV": "matakan bambance-bambance na jeri", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Dawo da matakan bambance-bambance na jeri.", - "MATH_ONLIST_OPERATOR_RANDOM": "bazuwar kaya na jeri", - "MATH_ONLIST_TOOLTIP_RANDOM": "Dawo da bazuwar kaya daga jerin.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "saura daga raba %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Dawo da saura daga raba lambobin guda biyu.", - "MATH_CONSTRAIN_TITLE": "ƙarfi %1 ƙasa %2 sama %3", - "MATH_CONSTRAIN_TOOLTIP": "Tsare lamba tsakanin lambobi da aka fayyace masu ƙarama da babbar kima (haɗawa).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "bazuwar cikakkiyar lamba daga %1 zuwa %2", - "MATH_RANDOM_INT_TOOLTIP": "Dawo da bazuwar cikakkiyar lamba tsakanin wani gwargwado da aka fayyace, haɗawa.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "ɓangare mai buzuwa", - "MATH_RANDOM_FLOAT_TOOLTIP": "Dawo da ɓangare mai bazuwa tsakanin 0.0 (haɗawa) da 1.0 (rabewa).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 na X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Dawo da arctangent na tsinin (X, Y) a gwargwado daga -180 zuwa 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Harafi, kalma, ko layi na rubutu.", - "TEXT_JOIN_TITLE_CREATEWITH": "ƙirƙiri rubutu da", - "TEXT_JOIN_TOOLTIP": "Ƙirƙiri guntun rubutu ta haɗa kowace lamba ta kayayyaki.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "haɗa", - "TEXT_CREATE_JOIN_TOOLTIP": "Daɗa, cire, ko sake tsarin ɓangarori domin sake fasalin wannan bulo na rubutu.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Daɗa wani kaya zuwa ga rubutun.", - "TEXT_APPEND_TITLE": "zuwa %1 daɗa rubutu %2", - "TEXT_APPEND_TOOLTIP": "Daɗa wani rubutu zuwa siffa ta '%1'.", - "TEXT_LENGTH_TITLE": "tsawon %1", - "TEXT_LENGTH_TOOLTIP": "Ya dawo lamba ta haruffa (da ya haɗa da sarari) a cikin rubutun da aka bayar.", - "TEXT_ISEMPTY_TITLE": "%1 babu komai", - "TEXT_ISEMPTY_TOOLTIP": "Ya dawo gaskiya idan rubutun da aka bayar babu komai.", - "TEXT_INDEXOF_TOOLTIP": "nemo a cikin rubutu. Returns %1 if text is not found.", - "TEXT_INDEXOF_TITLE": "ta rubutu %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "nemo afkuwar farko ta rubutu", - "TEXT_INDEXOF_OPERATOR_LAST": "nemo afkuwar ƙarshe ta rubutu", - "TEXT_CHARAT_TITLE": "ta rubutu %1 %2", - "TEXT_CHARAT_FROM_START": "sami harafin #", - "TEXT_CHARAT_FROM_END": "sami harafin # daga ƙarshe", - "TEXT_CHARAT_FIRST": "sami harafin farko", - "TEXT_CHARAT_LAST": "sami harafin ƙarshe", - "TEXT_CHARAT_RANDOM": "sami harafi mai bazuwa", - "TEXT_CHARAT_TOOLTIP": "Ya dawo da harafi a gurbi da aka fayyace.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Ya dawo da ɓangaren rubutu da aka fayyace.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ta rubutu", - "TEXT_GET_SUBSTRING_START_FROM_START": "sami sashin jumla daga harafin #", - "TEXT_GET_SUBSTRING_START_FROM_END": "sami sashin jumla daga harafin # daga ƙarshe", - "TEXT_GET_SUBSTRING_START_FIRST": "sami sashin jumla daga harafin farko", - "TEXT_GET_SUBSTRING_END_FROM_START": "zuwa harafin #", - "TEXT_GET_SUBSTRING_END_FROM_END": "zuwa harafin # daga ƙarshe", - "TEXT_GET_SUBSTRING_END_LAST": "zuwa harafi na ƙarshe", - "TEXT_CHANGECASE_TOOLTIP": "Return a copy of the text in a different case.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "zuwa MANYAN BAƘAƘE", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "zuwa ƙananan baƙaƙe", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "zuwa Baƙaƙe Dake nuna Suna", - "TEXT_TRIM_TOOLTIP": "Dawo da kwafin rubutu tare da sauran sarari da aka cire daga ƙarshe ɗaya ko biyu.", - "TEXT_TRIM_OPERATOR_BOTH": "datse sarari daga ɓangarori guda biyu na", - "TEXT_TRIM_OPERATOR_LEFT": "datse sarari daga ɓangaren hagu na", - "TEXT_TRIM_OPERATOR_RIGHT": "datse sarari daga ɓangaren dama na", - "TEXT_PRINT_TITLE": "buga %1", - "TEXT_PRINT_TOOLTIP": "Buga rubutun da aka fayyace, lamba ko wata kima.", - "TEXT_PROMPT_TYPE_TEXT": "samo rubutu tare da saƙo", - "TEXT_PROMPT_TYPE_NUMBER": "samo lamba tare da saƙo", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Samo wani mai amfani domin wata lamba.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Samo wani mai amfani domin wani rubutu.", - "TEXT_COUNT_MESSAGE0": "ƙirga %1 a cikin %2", - "TEXT_COUNT_TOOLTIP": "Ƙirga sau nawa wani rubutu ya afku a cikin sauran wasu rubutu.", - "TEXT_REPLACE_MESSAGE0": "maye gurbin %1 da %2 a cikin %3", - "TEXT_REPLACE_TOOLTIP": "Maye gurbin duk afkuwa na wani rubutu a cikin wasu rubutu.", - "TEXT_REVERSE_MESSAGE0": "juya %1", - "TEXT_REVERSE_TOOLTIP": "Ya juya tsari na haruffa a cikin rubutu.", - "LISTS_CREATE_EMPTY_TITLE": "ƙirƙiri jeri wanda babu komai", - "LISTS_CREATE_EMPTY_TOOLTIP": "Ya dawo da jeri, na tsawon 0, wanda bai ƙunshi ajiye bayanai ba", - "LISTS_CREATE_WITH_TOOLTIP": "Ƙiƙiri jeri tare da kowace lamba na kayayyaki.", - "LISTS_CREATE_WITH_INPUT_WITH": "ƙirƙiri jeri", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "jeri", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Daɗa, cire, ko sake tsarin ɓangarori domin sake fasalin wannan bulo.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Daɗa wani kaya zuwa jerin.", - "LISTS_REPEAT_TOOLTIP": "Ya ƙirƙiri jeri da ya ƙunshi wata kima da aka bayar da aka maimaita yawan lambar da aka fayyace.", - "LISTS_REPEAT_TITLE": "ƙirƙiri jeri tare da wani abu %1 da aka maimaita sau %2", - "LISTS_LENGTH_TITLE": "tsawo na %1", - "LISTS_LENGTH_TOOLTIP": "Ya dawo da tsawon wani jeri.", - "LISTS_ISEMPTY_TITLE": "%1 babu komai", - "LISTS_ISEMPTY_TOOLTIP": "Ya dawo gaskiya idan jerin babu komai.", - "LISTS_INLIST": "a jeri", - "LISTS_INDEX_OF_FIRST": "nemo afkuwar farko daga wani abu", - "LISTS_INDEX_OF_LAST": "nemo afkuwar ƙarshe daga wani abu", - "LISTS_INDEX_OF_TOOLTIP": "Ya dawo da jeri na farkon/ƙarshen afkuwa na wani abu a cikin jerin. Ya dawo da %1 idan ba a sami wani abin ba.", - "LISTS_GET_INDEX_GET": "samowa", - "LISTS_GET_INDEX_GET_REMOVE": "samowa da cirewa", - "LISTS_GET_INDEX_REMOVE": "cire", - "LISTS_GET_INDEX_FROM_END": "# daga ƙarshe", - "LISTS_GET_INDEX_FIRST": "farko", - "LISTS_GET_INDEX_LAST": "ƙarshe", - "LISTS_GET_INDEX_RANDOM": "bazuwa", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 shine wani abu na farko.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 shine wani abu na ƙarshe.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Ya dawo da abin a wani gurbi da aka fayyace a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Ya dawo da wani abu na farko a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Ya dawo da wani abu na ƙarshe a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Ya dawo da wani abu a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Ya cire kuma ya dawo da abin a gurbin da aka fayyace a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Ya cire kuma ya dawo da abin farko a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Ya cire kuma ya dawo da abin ƙarshe a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Ya cire kuma ya dawo abu mai bazuwa a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Ya cire wani abin a wani gurbi da aka fayyace a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Ya cire abin farko a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Ya cire abin ƙarshe a cikin jeri.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Ya cire abu mai bazuwa a cikin jeri.", - "LISTS_SET_INDEX_SET": "shirya", - "LISTS_SET_INDEX_INSERT": "cusa a", - "LISTS_SET_INDEX_INPUT_TO": "a matsayin", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Ya shirya wani abin a wani gurbi da aka fayyace a cikin jeri.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Ya shirya abin farko a cikin jeri.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Ya shirya abin ƙarshe a cikin jeri.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Ya shirya abu mai bazuwa a cikin jeri.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ya cusa wani abin a wani gurbi da aka fayyace a cikin jeri.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ya cusa wani abin a farko na jeri.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ya maƙala wani abin a ƙarshe na jeri.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Cusa wani abu ta hanyar bazawa a cikin jeri.", - "LISTS_GET_SUBLIST_START_FROM_START": "sami sashin jeri daga #", - "LISTS_GET_SUBLIST_START_FROM_END": "sami sashin jeri daga # daga ƙarshe", - "LISTS_GET_SUBLIST_START_FIRST": "sami sashin jeri daga farko", - "LISTS_GET_SUBLIST_END_FROM_START": "zuwa #", - "LISTS_GET_SUBLIST_END_FROM_END": "zuwa # daga ƙarshe", - "LISTS_GET_SUBLIST_END_LAST": "zuwa ƙarshe", - "LISTS_GET_SUBLIST_TOOLTIP": "Ƙirƙiri kwafi na ɓangaren da aka fayyace daga wani jeri.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "ware %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ware kwafi na jeri.", - "LISTS_SORT_ORDER_ASCENDING": "hawa", - "LISTS_SORT_ORDER_DESCENDING": "sauka", - "LISTS_SORT_TYPE_NUMERIC": "na lamba", - "LISTS_SORT_TYPE_TEXT": "na haruffa", - "LISTS_SORT_TYPE_IGNORECASE": "na haruffa, a=A", - "LISTS_SPLIT_LIST_FROM_TEXT": "yi jeri daga rubutu", - "LISTS_SPLIT_TEXT_FROM_LIST": "yi rubutu daga jeri", - "LISTS_SPLIT_WITH_DELIMITER": "tare da mai raba kalmomi", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Tsaga rubutu zuwa jerin rubututtuka, a karya a kowane mai raba kalmomi.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Haɗa jerin rubututtuka zuwa rubutu guda ɗaya, a raba tare da mai raba rubutu.", - "LISTS_REVERSE_MESSAGE0": "juya %1", - "LISTS_REVERSE_TOOLTIP": "Sauya tsarin kwafi daga jeri.", - "VARIABLES_GET_TOOLTIP": "Ya dawo da kima na wannan siffa.", - "VARIABLES_GET_CREATE_SET": "Ƙirƙiri 'set %1'", - "VARIABLES_SET": "saita %1 zuwa %2", - "VARIABLES_SET_TOOLTIP": "Ya saita wannan siffa ta zama dai dai da bayanin.", - "VARIABLES_SET_CREATE_GET": "Ƙirƙiri 'get %1'", - "PROCEDURES_DEFNORETURN_TITLE": "da", - "PROCEDURES_DEFNORETURN_PROCEDURE": "yi", - "PROCEDURES_BEFORE_PARAMS": "tare da:", - "PROCEDURES_CALL_BEFORE_PARAMS": "tare da:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Ya ƙirƙiri wani aiki ba tare da sakamako ba.", - "PROCEDURES_DEFNORETURN_COMMENT": "Kwatanta wannan aiki...", - "PROCEDURES_DEFRETURN_RETURN": "mayar", - "PROCEDURES_DEFRETURN_TOOLTIP": "Ya ƙirƙiri wani aiki ba tare da wani sakamako ba.", - "PROCEDURES_ALLOW_STATEMENTS": "ƙyale bayanai", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Gardaɗi: Wannan aikin yana da ruɓi na gazawa.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Gudanar da aiki '%1' wanda mai amfani ya ayyana.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Gudanar da aiki '%1' kuma a yi amfani da sakamakon sa.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "bayani", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Daɗa, cire, ko sake tsarin bayani na wannan aiki.", - "PROCEDURES_MUTATORARG_TITLE": "saka suna:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Daɗa wani bayani ga aikin.", - "PROCEDURES_HIGHLIGHT_DEF": "Bayar da haske na bayanin aiki", - "PROCEDURES_CREATE_DO": "Ƙirƙiri '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Idan wata kima gaskiya ce, to dawo da kima ta biyu.", - "PROCEDURES_IFRETURN_WARNING": "Gargaɗi: Za a iya amfani da wannan bulo ne kawai a cikin bayani na wani aiki.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Faɗi wani abu..." -} diff --git a/lib/blockly/msg/json/he.json b/lib/blockly/msg/json/he.json deleted file mode 100644 index 87b7056..0000000 --- a/lib/blockly/msg/json/he.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Dorongol", - "YaronSh", - "Amire80", - "Inkbug", - "Yona b", - "Noamrotem", - "Dvb", - "LaG roiL", - "아라", - "Elyashiv", - "Guycn2", - "Deborahjay", - "נדב ס", - "Motife", - "Steeve815" - ] - }, - "VARIABLES_DEFAULT_NAME": "פריט", - "TODAY": "היום", - "DUPLICATE_BLOCK": "שכפל", - "ADD_COMMENT": "הוסף תגובה", - "REMOVE_COMMENT": "הסר תגובה", - "DUPLICATE_COMMENT": "שכפול ההערה", - "EXTERNAL_INPUTS": "קלטים חיצוניים", - "INLINE_INPUTS": "קלטים פנימיים", - "DELETE_BLOCK": "מחק קטע קוד", - "DELETE_X_BLOCKS": "מחק %1 קטעי קוד", - "DELETE_ALL_BLOCKS": "האם למחוק את כל %1 קטעי הקוד?", - "CLEAN_UP": "סידור בלוקים", - "COLLAPSE_BLOCK": "צמצם קטע קוד", - "COLLAPSE_ALL": "צמצם קטעי קוד", - "EXPAND_BLOCK": "הרחב קטע קוד", - "EXPAND_ALL": "הרחב קטעי קוד", - "DISABLE_BLOCK": "נטרל קטע קוד", - "ENABLE_BLOCK": "הפעל קטע קוד", - "HELP": "עזרה", - "UNDO": "ביטול", - "REDO": "ביצוע חוזר", - "CHANGE_VALUE_TITLE": "שנה ערך:", - "RENAME_VARIABLE": "שנה את שם המשתנה...", - "RENAME_VARIABLE_TITLE": "שנה את שם כל '%1' המשתנים ל:", - "NEW_VARIABLE": "צור משתנה...", - "NEW_STRING_VARIABLE": "צור משתנה מחרוזת", - "NEW_NUMBER_VARIABLE": "צור משתנה מחרוזת", - "NEW_COLOUR_VARIABLE": "יצירת משתנה צבע...", - "NEW_VARIABLE_TYPE_TITLE": "סוג המשתנה החדש:", - "NEW_VARIABLE_TITLE": "שם המשתנה החדש:", - "VARIABLE_ALREADY_EXISTS": "קיים כבר משתנה בשם \"%1\".", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "קיים כבר משתנה בשם \"%1\" מסוג אחר: \"%2\"", - "DELETE_VARIABLE_CONFIRMATION": "למחוק %1 שימושים במשתנה ‚%2’?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "אי אפשר למחוק את המשתנה \"%1\", מכיוון שהגדרת הפונקציה \"%2\" משתמשת בו.", - "DELETE_VARIABLE": "מחק את משתנה ה'%1'", - "COLOUR_PICKER_HELPURL": "http://he.wikipedia.org/wiki/%D7%A6%D7%91%D7%A2", - "COLOUR_PICKER_TOOLTIP": "בחר צבע מן הצבעים.", - "COLOUR_RANDOM_TITLE": "צבע אקראי", - "COLOUR_RANDOM_TOOLTIP": "בחר צבא אקראי.", - "COLOUR_RGB_TITLE": "צבע עם", - "COLOUR_RGB_RED": "אדום", - "COLOUR_RGB_GREEN": "ירוק", - "COLOUR_RGB_BLUE": "כחול", - "COLOUR_RGB_TOOLTIP": "צור צבע עם הסכום המצוין של אדום, ירוק וכחול. כל הערכים חייבים להיות בין 0 ל100.", - "COLOUR_BLEND_TITLE": "ערבב", - "COLOUR_BLEND_COLOUR1": "צבע 1", - "COLOUR_BLEND_COLOUR2": "צבע 2", - "COLOUR_BLEND_RATIO": "יחס", - "COLOUR_BLEND_TOOLTIP": "מערבב שני צבעים יחד עם יחס נתון(0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://he.wikipedia.org/wiki/בקרת_זרימה", - "CONTROLS_REPEAT_TITLE": "חזור על הפעולה %1 פעמים", - "CONTROLS_REPEAT_INPUT_DO": "תעשה", - "CONTROLS_REPEAT_TOOLTIP": "לעשות כמה פעולות מספר פעמים.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "חזור כל עוד", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "חזור עד ש...", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "כל עוד הערך הוא אמת, לעשות כמה פעולות.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "בזמן שהערך שווה לשגוי, תעשה מספר חישובים.", - "CONTROLS_FOR_TITLE": "תספור עם %1 מ- %2 ל- %3 עד- %4", - "CONTROLS_FOREACH_TITLE": "לכל פריט %1 ברשימה %2", - "CONTROLS_FOREACH_TOOLTIP": "לכל פריט ברשימה, להגדיר את המשתנה '%1' לפריט הזה, ולאחר מכן לעשות כמה פעולות.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "צא מהלולאה", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "המשך עם האיטרציה הבאה של הלולאה", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "צא אל מחוץ ללולאה הכוללת.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "דלג על שאר הלולאה והמשך עם האיטרציה הבאה.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "אזהרה: בלוק זה עשוי לשמש רק בתוך לולאה.", - "CONTROLS_IF_TOOLTIP_1": "אם ערך נכון, לבצע כמה פעולות.", - "CONTROLS_IF_TOOLTIP_2": "אם הערך הוא אמת, לבצע את הבלוק הראשון של הפעולות. אחרת, לבצע את הבלוק השני של הפעולות.", - "CONTROLS_IF_TOOLTIP_3": "אם הערך הראשון הוא אמת, לבצע את הבלוק הראשון של הפעולות. אחרת, אם הערך השני הוא אמת, לבצע את הבלוק השני של הפעולות.", - "CONTROLS_IF_TOOLTIP_4": "אם הערך הראשון הוא אמת, לבצע את הבלוק הראשון של הפעולות. אחרת, אם הערך השני הוא אמת, לבצע את הבלוק השני של הפעולות. אם אף אחד מהם אינו נכון, לבצע את הבלוק האחרון של הפעולות.", - "CONTROLS_IF_MSG_IF": "אם", - "CONTROLS_IF_MSG_ELSEIF": "אחרת אם", - "CONTROLS_IF_MSG_ELSE": "אחרת", - "CONTROLS_IF_IF_TOOLTIP": "תוסיף, תמחק, או תסדר מחדש כדי להגדיר מחדש את הבלוק If.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "תוסיף תנאי לבלוק If.", - "CONTROLS_IF_ELSE_TOOLTIP": "לסיום, כל התנאים תקפים לגבי בלוק If.", - "IOS_OK": "אישור", - "IOS_CANCEL": "ביטול", - "IOS_ERROR": "שגיאה", - "IOS_PROCEDURES_ADD_INPUT": "+ הוספת קלט", - "IOS_VARIABLES_ADD_VARIABLE": "+ הוספת משתנה", - "IOS_VARIABLES_ADD_BUTTON": "הוספה", - "IOS_VARIABLES_RENAME_BUTTON": "שינוי שם", - "IOS_VARIABLES_DELETE_BUTTON": "מחיקה", - "IOS_VARIABLES_VARIABLE_NAME": "שם המשתנה", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "לא ניתן להזין שם ריק למשתנה.", - "LOGIC_COMPARE_TOOLTIP_EQ": "תחזיר נכון אם שני הקלטים שווים אחד לשני.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "תחזיר אמת אם שני הקלטים אינם שווים זה לזה.", - "LOGIC_COMPARE_TOOLTIP_LT": "תחזיר אמת (true) אם הקלט הראשון הוא קטן יותר מאשר הקלט השני.", - "LOGIC_COMPARE_TOOLTIP_LTE": "תחזיר אמת אם הקלט הראשון הוא קטן יותר או שווה לקלט השני.", - "LOGIC_COMPARE_TOOLTIP_GT": "תחזיר נכון אם הקלט הראשון גדול יותר מהקלט השני.", - "LOGIC_COMPARE_TOOLTIP_GTE": "תחזיר נכון אם הקלט הראשון גדול יותר או שווה לכניסה השנייה.", - "LOGIC_OPERATION_TOOLTIP_AND": "תחזיר נכון אם שני הקלטים נכונים.", - "LOGIC_OPERATION_AND": "ו", - "LOGIC_OPERATION_TOOLTIP_OR": "תחזיר נכון אם מתקיים לפחות אחד מהקלטים נכונים.", - "LOGIC_OPERATION_OR": "או", - "LOGIC_NEGATE_TITLE": "לא %1", - "LOGIC_NEGATE_TOOLTIP": "החזר אמת אם הקלט הוא שקר. החזר שקר אם הקלט אמת.", - "LOGIC_BOOLEAN_TRUE": "נכון", - "LOGIC_BOOLEAN_FALSE": "שגוי", - "LOGIC_BOOLEAN_TOOLTIP": "מחזיר או האם נכון או האם שגוי.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "תחזיר ריק.", - "LOGIC_TERNARY_CONDITION": "בדיקה", - "LOGIC_TERNARY_IF_TRUE": "אם נכון", - "LOGIC_TERNARY_IF_FALSE": "אם שגוי", - "LOGIC_TERNARY_TOOLTIP": "בדוק את התנאי ב'מבחן'. אם התנאי נכון, תחזיר את הערך 'אם נכון'; אחרת תחזיר את הערך 'אם שגוי'.", - "MATH_NUMBER_HELPURL": "https://he.wikipedia.org/wiki/מספר_ממשי", - "MATH_NUMBER_TOOLTIP": "מספר.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://he.wikipedia.org/wiki/ארבע_פעולות_החשבון", - "MATH_ARITHMETIC_TOOLTIP_ADD": "תחזיר את סכום שני המספרים.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "החזרת ההפרש בין שני מספרים.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "החזרת תוצאת הכפל בין שני מספרים.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "החזרת המנה של שני המספרים.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "החזרת המספר הראשון בחזקת המספר השני.", - "MATH_SINGLE_HELPURL": "https://he.wikipedia.org/wiki/שורש_ריבועי", - "MATH_SINGLE_OP_ROOT": "שורש ריבועי", - "MATH_SINGLE_TOOLTIP_ROOT": "החזרת השורש הריבועי של מספר.", - "MATH_SINGLE_OP_ABSOLUTE": "ערך מוחלט", - "MATH_SINGLE_TOOLTIP_ABS": "החזרת הערך המוחלט של מספר.", - "MATH_SINGLE_TOOLTIP_NEG": "החזרת הערך הנגדי של מספר.", - "MATH_SINGLE_TOOLTIP_LN": "החזרת הלוגריתם הטבעי של מספר.", - "MATH_SINGLE_TOOLTIP_LOG10": "החזרת הלוגריתם לפי בסיס עשר של מספר.", - "MATH_SINGLE_TOOLTIP_EXP": "החזרת e בחזקת מספר.", - "MATH_SINGLE_TOOLTIP_POW10": "החזרת 10 בחזקת מספר.", - "MATH_TRIG_HELPURL": "https://he.wikipedia.org/wiki/פונקציות_טריגונומטריות", - "MATH_TRIG_TOOLTIP_SIN": "החזרת הסינוס של מעלה (לא רדיאן).", - "MATH_TRIG_TOOLTIP_COS": "החזרת הקוסינוס של מעלה (לא רדיאן).", - "MATH_TRIG_TOOLTIP_TAN": "החזרת הטנגס של מעלה (לא רדיאן).", - "MATH_CONSTANT_HELPURL": "https://he.wikipedia.org/wiki/קבוע_מתמטי", - "MATH_IS_EVEN": "זוגי", - "MATH_IS_ODD": "אי-זוגי", - "MATH_IS_PRIME": "ראשוני", - "MATH_IS_WHOLE": "שלם", - "MATH_IS_POSITIVE": "חיובי", - "MATH_IS_NEGATIVE": "שלילי", - "MATH_IS_DIVISIBLE_BY": "מתחלק ב", - "MATH_CHANGE_TITLE": "שינוי %1 על־ידי %2", - "MATH_CHANGE_TOOLTIP": "הוסף מספר למשתנה '%1'.", - "MATH_ROUND_HELPURL": "https://he.wikipedia.org/wiki/עיגול_(אריתמטיקה)", - "MATH_ROUND_TOOLTIP": "עיגול מספר למעלה או למטה.", - "MATH_ROUND_OPERATOR_ROUND": "עיגול", - "MATH_ROUND_OPERATOR_ROUNDUP": "עיגול למעלה", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "עיגול למטה", - "MATH_ONLIST_OPERATOR_SUM": "סכום של רשימה", - "MATH_ONLIST_TOOLTIP_SUM": "החזרת הסכום של המספרים ברשימה.", - "MATH_ONLIST_OPERATOR_MIN": "מינימום של רשימה", - "MATH_ONLIST_TOOLTIP_MIN": "תחזיר את המספר הקטן ביותר ברשימה.", - "MATH_ONLIST_OPERATOR_MAX": "מקסימום של רשימה", - "MATH_ONLIST_TOOLTIP_MAX": "תחזיר את המספר הגדול ביותר ברשימה.", - "MATH_ONLIST_OPERATOR_AVERAGE": "ממוצע של רשימה", - "MATH_ONLIST_OPERATOR_MEDIAN": "חציון של רשימה", - "MATH_ONLIST_TOOLTIP_MEDIAN": "תחזיר את המספר החיצוני ביותר ברשימה.", - "MATH_ONLIST_OPERATOR_MODE": "שכיחי הרשימה", - "MATH_ONLIST_TOOLTIP_MODE": "החזרת רשימה של הפריטים הנפוצים ביותר ברשימה", - "MATH_ONLIST_TOOLTIP_STD_DEV": "מחזיר את סטיית התקן של הרשימה.", - "MATH_ONLIST_OPERATOR_RANDOM": "פריט אקראי מרשימה", - "MATH_ONLIST_TOOLTIP_RANDOM": "תחזיר רכיב אקראי מרשימה.", - "MATH_MODULO_TITLE": "שארית החילוק %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "החזרת השארית מחלוקת שני המספרים.", - "MATH_CONSTRAIN_TITLE": "הגבל %1 בין %2 ל %3", - "MATH_RANDOM_INT_TITLE": "מספר שלם אקראי בין %1 ל-%2 (כולל)", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "שבר אקראי", - "TEXT_TEXT_HELPURL": "https://he.wikipedia.org/wiki/מחרוזת_(מדעי_המחשב)", - "TEXT_TEXT_TOOLTIP": "אות, מילה, או שורת טקסט.", - "TEXT_JOIN_TITLE_CREATEWITH": "יצירת טקסט עם", - "TEXT_CREATE_JOIN_TITLE_JOIN": "צירוף", - "TEXT_APPEND_TITLE": "אל %1 הוספת טקסט %2", - "TEXT_LENGTH_TITLE": "אורכו של %1", - "TEXT_LENGTH_TOOLTIP": "מחזיר את מספר התווים (אותיות, רווחים וכו') בטקסט שהוזן.", - "TEXT_ISEMPTY_TITLE": "%1 הוא ריק", - "TEXT_INDEXOF_TOOLTIP": "מחזירה את האינדקס של המופע הראשון/האחרון בטקסט הראשון לתוך הטקסט השני. מחזירה %1 אם הטקסט אינו נמצא.", - "TEXT_CHARAT_FIRST": "לקבל את האות הראשונה", - "TEXT_CHARAT_LAST": "לקבל את האות האחרונה", - "TEXT_CHARAT_RANDOM": "לקבל אות אקראית", - "TEXT_CHARAT_TOOLTIP": "מחזיר את האות במיקום שהוגדר.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "בתוך הטקסט", - "TEXT_GET_SUBSTRING_END_FROM_START": "לאות #", - "TEXT_GET_SUBSTRING_END_FROM_END": "לאות # מהסוף", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "לאותיות גדולות (עבור טקסט באנגלית)", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "לאותיות קטנות (עבור טקסט באנגלית)", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "לאותיות גדולות בתחילת כל מילה (עבור טקסט באנגלית)", - "TEXT_TRIM_TOOLTIP": "להחזיר עותק של הטקסט לאחר מחיקת רווחים מאחד או משני הקצוות.", - "TEXT_TRIM_OPERATOR_BOTH": "למחוק רווחים משני הקצוות", - "TEXT_TRIM_OPERATOR_LEFT": "למחוק רווחים מימין", - "TEXT_TRIM_OPERATOR_RIGHT": "למחוק רווחים משמאל", - "TEXT_PRINT_TITLE": "הדפס %1", - "TEXT_PRINT_TOOLTIP": "להדפיס טקסט, מספר או ערך אחר שצוין", - "TEXT_PROMPT_TYPE_TEXT": "בקשה להזנת טקסט עם הודעה", - "TEXT_PROMPT_TYPE_NUMBER": "בקשה למספר עם הודעה", - "TEXT_PROMPT_TOOLTIP_NUMBER": "בקש מהמשתמש מספר.", - "TEXT_PROMPT_TOOLTIP_TEXT": "בקשה למשתמש להזין טקסט כלשהו.", - "LISTS_CREATE_EMPTY_TITLE": "צור רשימה ריקה", - "LISTS_CREATE_EMPTY_TOOLTIP": "החזר רשימה,באורך 0, המכילה רשומות נתונים", - "LISTS_CREATE_WITH_TOOLTIP": "צור רשימה עם כל מספר של פריטים.", - "LISTS_CREATE_WITH_INPUT_WITH": "צור רשימה עם", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "רשימה", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "תוסיף, תמחק, או תסדר מחדש כדי להגדיר מחדש את הבלוק If.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "הוסף פריט לרשימה.", - "LISTS_REPEAT_TOOLTIP": "יוצר רשימה המורכבת מהערך נתון חוזר מספר פעמים שצוין.", - "LISTS_REPEAT_TITLE": "ליצור רשימה עם הפריט %1 %2 פעמים", - "LISTS_LENGTH_TITLE": "אורכו של %1", - "LISTS_LENGTH_TOOLTIP": "מחזירה את האורך של רשימה.", - "LISTS_ISEMPTY_TITLE": "%1 הוא ריק", - "LISTS_ISEMPTY_TOOLTIP": "מחזיר אמת אם הרשימה ריקה.", - "LISTS_INLIST": "ברשימה", - "LISTS_INDEX_OF_FIRST": "מחזירה את המיקום הראשון של פריט ברשימה", - "LISTS_INDEX_OF_LAST": "מחזירה את המיקום האחרון של פריט ברשימה", - "LISTS_INDEX_OF_TOOLTIP": "מחזירה את האינדקס של המופע הראשון/האחרון של הפריט ברשימה. מחזירה %1 אם הפריט אינו נמצא.", - "LISTS_GET_INDEX_GET": "לקבל", - "LISTS_GET_INDEX_GET_REMOVE": "קבל ומחק", - "LISTS_GET_INDEX_REMOVE": "הסרה", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# מהסוף", - "LISTS_GET_INDEX_FIRST": "ראשון", - "LISTS_GET_INDEX_LAST": "אחרון", - "LISTS_GET_INDEX_RANDOM": "אקראי", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 הוא הפריט הראשון.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 הוא הפריט האחרון.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "מחזיר פריט במיקום שצוין ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "מחזיר את הפריט הראשון ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "מחזיר את הפריט האחרון ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "מחזיר פריט אקראי מהרשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "מסיר ומחזיר את הפריט במיקום שצוין ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "מסיר ומחזיר את הפריט הראשון ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "מסיר ומחזיר את הפריט האחרון ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "מחק והחזר פריט אקראי מהרשימה.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "מחזיר פריט במיקום שצוין ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "הסר את הפריט הראשון ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "הסר את הפריט הראשון ברשימה.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "הסר פריט אקראי ברשימה.", - "LISTS_SET_INDEX_SET": "הגדר", - "LISTS_SET_INDEX_INSERT": "הכנס ב", - "LISTS_SET_INDEX_INPUT_TO": "כמו", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "מגדיר את הפריט במיקום שצוין ברשימה.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "מגדיר את הפריט הראשון ברשימה.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "מגדיר את הפריט האחרון ברשימה.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "מגדיר פריט אקראי ברשימה.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "מכניס את הפריט במיקום שצוין ברשימה.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "מכניס את הפריט בתחילת רשימה.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "מוסיף את הפריט בסוף רשימה.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "הוסף פריט באופן אקראי ברשימה.", - "LISTS_GET_SUBLIST_START_FROM_START": "לקבל חלק מהרשימה החל מ-#", - "LISTS_GET_SUBLIST_START_FROM_END": "לקבל חלק מהרשימה החל מ-# עד הסוף", - "LISTS_GET_SUBLIST_START_FIRST": "לקבל חלק מהרשימה החל מהתחלה", - "LISTS_GET_SUBLIST_END_FROM_START": "ל #", - "LISTS_GET_SUBLIST_END_FROM_END": "ל # מהסוף", - "LISTS_GET_SUBLIST_END_LAST": "לאחרון", - "LISTS_GET_SUBLIST_TOOLTIP": "יוצרת עותק של חלק מסוים מהרשימה.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TOOLTIP": "מיון עותק של הרשימה.", - "LISTS_SORT_ORDER_ASCENDING": "סדר עולה", - "LISTS_SORT_ORDER_DESCENDING": "סדר יורד", - "LISTS_SORT_TYPE_NUMERIC": "נומרי", - "LISTS_SORT_TYPE_TEXT": "סדר אלפביתי", - "LISTS_SORT_TYPE_IGNORECASE": "סדר אלפביתי, לא תלוי רישיות", - "LISTS_SPLIT_LIST_FROM_TEXT": "יצירת רשימה מטקסט", - "LISTS_SPLIT_TEXT_FROM_LIST": "יצירת טקסט מרשימה", - "VARIABLES_GET_TOOLTIP": "להחזיר את הערך של משתנה זה.", - "VARIABLES_GET_CREATE_SET": "ליצור 'הגדר %1'", - "VARIABLES_SET": "הגדר %1 ל- %2", - "VARIABLES_SET_TOOLTIP": "מגדיר משתנה זה להיות שווה לקלט.", - "VARIABLES_SET_CREATE_GET": "ליצור 'קרא %1'", - "PROCEDURES_DEFNORETURN_TITLE": "לביצוע:", - "PROCEDURES_DEFNORETURN_PROCEDURE": "לעשות משהו", - "PROCEDURES_BEFORE_PARAMS": "עם:", - "PROCEDURES_CALL_BEFORE_PARAMS": "עם:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "יצירת פונקציה ללא פלט.", - "PROCEDURES_DEFNORETURN_COMMENT": "תאר את הפונקציה הזו...", - "PROCEDURES_DEFRETURN_RETURN": "להחזיר", - "PROCEDURES_DEFRETURN_TOOLTIP": "יצירת פונקציה עם פלט.", - "PROCEDURES_ALLOW_STATEMENTS": "לאפשר פעולות", - "PROCEDURES_DEF_DUPLICATE_WARNING": "אזהרה: לפונקציה זו יש פרמטרים כפולים.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://he.wikipedia.org/wiki/שגרה_(תכנות)", - "PROCEDURES_CALLNORETURN_TOOLTIP": "להפעיל את הפונקציה המוגדרת על-ידי המשתמש '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://he.wikipedia.org/wiki/שגרה_(תכנות)", - "PROCEDURES_CALLRETURN_TOOLTIP": "להפעיל את הפונקציה המוגדרת על-ידי המשתמש '%1' ולהשתמש הפלט שלה.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "מקורות קלט", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "הוסף, הסר או סדר מחדש קלטים לפונקציה זו", - "PROCEDURES_MUTATORARG_TITLE": "שם הקלט:", - "PROCEDURES_MUTATORARG_TOOLTIP": "הוסף קלט לפונקציה", - "PROCEDURES_HIGHLIGHT_DEF": "הדגש הגדרה של פונקציה", - "PROCEDURES_CREATE_DO": "ליצור '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "אם ערך נכון, אז להחזיר ערך שני.", - "PROCEDURES_IFRETURN_WARNING": "אזהרה: בלוק זה עשוי לשמש רק בתוך הגדרה של פונקציה.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "נא להזין הערה..." -} diff --git a/lib/blockly/msg/json/hi.json b/lib/blockly/msg/json/hi.json deleted file mode 100644 index ddd1fec..0000000 --- a/lib/blockly/msg/json/hi.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Bl707", - "संजीव कुमार", - "Phoenix303", - "Sfic", - "Earlyengineers", - "Sachinkatiyar", - "Nilesh shukla" - ] - }, - "VARIABLES_DEFAULT_NAME": "वस्तु", - "UNNAMED_KEY": "अज्ञात", - "TODAY": "आज", - "DUPLICATE_BLOCK": "कॉपी करें", - "ADD_COMMENT": "टिप्पणी छोड़ें", - "REMOVE_COMMENT": "टिप्पणी हटायें", - "EXTERNAL_INPUTS": "बाहरी इनपुट", - "INLINE_INPUTS": "इनलाइन इनपुट", - "DELETE_BLOCK": "ब्लॉक हटाएँ", - "DELETE_X_BLOCKS": "%1 ब्लॉक हटाएँ", - "DELETE_ALL_BLOCKS": "सभी %1 खानों को हटा दें?", - "CLEAN_UP": "खानों को साफ करें", - "COLLAPSE_BLOCK": "ब्लॉक को संक्षिप्त करें", - "COLLAPSE_ALL": "ब्लॉक संक्षिप्त करें", - "EXPAND_BLOCK": "ब्लॉक का विस्तार करें", - "EXPAND_ALL": "ब्लॉक विस्तार करें", - "DISABLE_BLOCK": "ब्लॉक को अक्षम करें", - "ENABLE_BLOCK": "ब्लॉक को सक्षम करें", - "HELP": "सहायता", - "UNDO": "पूर्ववत करें", - "REDO": "फिर से करें", - "CHANGE_VALUE_TITLE": "मान परिवर्तित करें:", - "RENAME_VARIABLE": "चर का नाम बदलें...", - "RENAME_VARIABLE_TITLE": "सभी '%1' चरों के नाम बदलें:", - "NEW_VARIABLE": "चर बनाएँ...", - "NEW_STRING_VARIABLE": "लड़ी चर बनायें...", - "NEW_NUMBER_VARIABLE": "संख्या चर बनायें...", - "NEW_COLOUR_VARIABLE": "रंग चर बनाएँ...", - "NEW_VARIABLE_TYPE_TITLE": "नए चर का नाम:", - "NEW_VARIABLE_TITLE": "नए चर का नाम:", - "VARIABLE_ALREADY_EXISTS": "प्राचल नाम '%1' पहले से मौजूद है।", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%1' नाम का एक चर पहले से '%2' प्रकार के अन्य चर के लिए मौजूद है।", - "DELETE_VARIABLE_CONFIRMATION": "'%2' चर के %1 उपयोग को हटाएँ?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "चर '%1' को नहीं हटा सकता क्योंकि यह फ़ंक्शन '%2' की परिभाषा का हिस्सा है", - "DELETE_VARIABLE": "'%1' चर को हटाएँ", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "पैलेट से एक रंग चुनें।", - "COLOUR_RANDOM_TITLE": "कोई भी रंग", - "COLOUR_RANDOM_TOOLTIP": "कोई भी एक रंग का चयन करें।", - "COLOUR_RGB_TITLE": "इसके साथ रंग करें", - "COLOUR_RGB_RED": "लाल", - "COLOUR_RGB_GREEN": "हरा", - "COLOUR_RGB_BLUE": "नीला", - "COLOUR_RGB_TOOLTIP": "लाल, हरा और नीले की निर्दिष्ट मात्रा के साथ एक रंग बनायें। सभी मान ० से १०० के बीच होने चाहिए।", - "COLOUR_BLEND_TITLE": "मिश्रण करें", - "COLOUR_BLEND_COLOUR1": "रंग 1", - "COLOUR_BLEND_COLOUR2": "रंग 2", - "COLOUR_BLEND_RATIO": "अनुपात", - "COLOUR_BLEND_TOOLTIP": "दिए गए अनुपात (0.0 - 1.0) के साथ दो रंगों का मिश्रण करता है।", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 बार दोहराएँ", - "CONTROLS_REPEAT_INPUT_DO": "करें", - "CONTROLS_REPEAT_TOOLTIP": "कुछ विवरण कई बार चलाएँ।", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "दोहराएँ जब कि", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "दोहराएँ जब तक", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "जब तक मान सही है, तब तक कुछ विवरण चलाएँ।", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "जब तक मान गलत है, तब तक कुछ विवरण चलाएँ।", - "CONTROLS_FOR_TOOLTIP": "क्या चर '%1' प्रारंभ संख्या से अंत संख्या तक मानों को लेता है, निर्दिष्ट अंतराल के अनुसार गिनती करता है, और निर्दिष्ट रुकावटों को करता है।", - "CONTROLS_FOR_TITLE": "%1 से %2 से %3 तक %4 के साथ गिनती करें", - "CONTROLS_FOREACH_TITLE": "प्रत्येक वस्तु के लिए %1 सूची में %2", - "CONTROLS_FOREACH_TOOLTIP": "सूची के प्रत्येक वस्तु के लिए, वस्तु में चर का मान '%1' रखें और बाद में कुछ कथन लिखें।", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "फंदे से बाहर निकलें", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "फंदे की अगली यात्रा के साथ जारी रखें", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "भीतरी फंदे से बाहर निकलें।", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "बाकी बचे फंदे को छोड़ें, और अगली यात्रा जारी रखें।", - "CONTROLS_FLOW_STATEMENTS_WARNING": "सावधान: ये ब्लॉक केवल लूप के अंदर इस्तेमाल किया जा सकता है।", - "CONTROLS_IF_TOOLTIP_1": "यदी मान सही है, तो कुछ विवरण चलाएँ।", - "CONTROLS_IF_TOOLTIP_2": "यदि एक मान सत्य है तो कथनों का प्रथम खण्ड बनायें। अन्यथा कथनों का दूसरा भाग निर्मित करें।", - "CONTROLS_IF_TOOLTIP_3": "यदि पहले मान सही है, तो बयानों का पहला खंड करें। अन्यथा, यदि दूसरा मान सत्य है, तो बयानों का दूसरा खंड करें।", - "CONTROLS_IF_TOOLTIP_4": "यदि पहला मान सही है, तो बयानों का पहला खंड करें। अन्यथा, यदि दूसरा मान सत्य है, तो बयानों का दूसरा खंड करें। यदि कोई भी मान सही नहीं है, तो बयानों का अंतिम खंड करें।", - "CONTROLS_IF_MSG_IF": "यदि", - "CONTROLS_IF_MSG_ELSEIF": "यदि अन्य", - "CONTROLS_IF_MSG_ELSE": "अन्य", - "CONTROLS_IF_IF_TOOLTIP": "भाग को समनरूप बनाने के लिए जोङें, हटाएं, या पुनः व्यवस्थित करें यदि यह बंद है।", - "CONTROLS_IF_ELSEIF_TOOLTIP": "एक शर्त जोड़ें यदि ब्लॉक है।", - "CONTROLS_IF_ELSE_TOOLTIP": "यदि ब्लॉक है तो इसके लिए एक अंतिम, कैच-सभी स्थिति जोड़ें।", - "IOS_OK": "ठीक है", - "IOS_CANCEL": "रद्द करें", - "IOS_ERROR": "त्रुटि", - "IOS_PROCEDURES_INPUTS": "इनपुट", - "IOS_PROCEDURES_ADD_INPUT": "+ इनपुट जोड़ें", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "बयानों की अनुमति दें", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "इस फंक्शन में नकली निवेश हैं।", - "IOS_VARIABLES_ADD_VARIABLE": "+ चर जोड़ें", - "IOS_VARIABLES_ADD_BUTTON": "जोड़ें", - "IOS_VARIABLES_RENAME_BUTTON": "नाम बदलें", - "IOS_VARIABLES_DELETE_BUTTON": "हटाएँ", - "IOS_VARIABLES_VARIABLE_NAME": "चर का नाम", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "आप रिक्त चर नाम उपयोग नहीं कर सकते", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "ट्रू रिटर्न करें यदि दोनो इनपुट इक दूसरे के बराबर हों।", - "LOGIC_COMPARE_TOOLTIP_NEQ": "ट्रू रिटर्न करें यदि दोनो इनपुट इक दूसरे के बराबर नहीं हों।", - "LOGIC_COMPARE_TOOLTIP_LT": "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से छोटा हो।", - "LOGIC_COMPARE_TOOLTIP_LTE": "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से छोटा हो या बराबर हो।", - "LOGIC_COMPARE_TOOLTIP_GT": "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से बड़ा हो।", - "LOGIC_COMPARE_TOOLTIP_GTE": "ट्रू रिटर्न करें यदि पहला इनपुट दूसरे इनपुट से बड़ा हो या बराबर हो।", - "LOGIC_OPERATION_TOOLTIP_AND": "ट्रू रिटर्न करें यदि दोनो इनपुट ट्रू हों।", - "LOGIC_OPERATION_AND": "AND (तथा)", - "LOGIC_OPERATION_TOOLTIP_OR": "ट्रू रिटर्न करें यदि दोनो मे से इक इनपुट ट्रू हो।", - "LOGIC_OPERATION_OR": "OR (अथवा)", - "LOGIC_NEGATE_TITLE": "NOT (पूरक) %1", - "LOGIC_NEGATE_TOOLTIP": "ट्रू रिटर्न करता है यदि इनपुट फॉल्स है। फॉल्स रिटर्न करता है यदि इनपुट ट्रू है।", - "LOGIC_BOOLEAN_TRUE": "सही", - "LOGIC_BOOLEAN_FALSE": "गलत", - "LOGIC_BOOLEAN_TOOLTIP": "ट्रू या फॉल्स रिटर्न करता है।", - "LOGIC_NULL": "NULL (अमान्य)", - "LOGIC_NULL_TOOLTIP": "null (अमान्य) रिटर्न करता है।", - "LOGIC_TERNARY_CONDITION": "टेस्ट", - "LOGIC_TERNARY_IF_TRUE": "यदि सही है", - "LOGIC_TERNARY_IF_FALSE": "यदि गलत है", - "LOGIC_TERNARY_TOOLTIP": "'परीक्षण' में हालत की जांच करें। यदि स्थिति सही है, तो 'सच' मान लौटाता है; अन्यथा वापस लौटता 'अगर झूठा'मान देता है।", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "एक संख्या।", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "दो संख्याओं का योग रिटर्न करें।", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "दो संख्याओं का अंतर रिटर्न करें।", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "दो संख्याओं का गुणन रिटर्न करें।", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "दो संख्याओं का भागफल रिटर्न करें।", - "MATH_ARITHMETIC_TOOLTIP_POWER": "दूसरे नंबर की शक्ति को उठाए गए पहले नंबर पर लौटें", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "वर्गमूल", - "MATH_SINGLE_TOOLTIP_ROOT": "संख्या का वर्गमूल रिटर्न करें।", - "MATH_SINGLE_OP_ABSOLUTE": "परम", - "MATH_SINGLE_TOOLTIP_ABS": "संख्या का परम मान रिटर्न करें।", - "MATH_SINGLE_TOOLTIP_NEG": "संख्या का निषेध मान रिटर्न करें।", - "MATH_SINGLE_TOOLTIP_LN": "संख्या का प्राकृतिक लघुगणक रिटर्न करें।", - "MATH_SINGLE_TOOLTIP_LOG10": "संख्या का मूल 10 लघुगणक रिटर्न करें।", - "MATH_SINGLE_TOOLTIP_EXP": "किसी संख्या की शक्ति को वापस ई करें।", - "MATH_SINGLE_TOOLTIP_POW10": "किसी संख्या की शक्ति पर 10 लौटें।", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "डिग्री का साइन रिटर्न करें (रेडियन नही)", - "MATH_TRIG_TOOLTIP_COS": "डिग्री का कोसाइन रिटर्न करें (रेडियन नही)", - "MATH_TRIG_TOOLTIP_TAN": "डिग्री का टैन्जन्ट रिटर्न करें (रेडियन नही)", - "MATH_TRIG_TOOLTIP_ASIN": "संख्या का आर्कसाइन रिटर्न करें।", - "MATH_TRIG_TOOLTIP_ACOS": "संख्या का आर्ककोसाइन रिटर्न करें।", - "MATH_TRIG_TOOLTIP_ATAN": "संख्या का आर्कटैन्जन्ट रिटर्न करें।", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "सामान्य स्थिरांक में से एक को वापस लौटें:π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity)।", - "MATH_IS_EVEN": "सम है", - "MATH_IS_ODD": "विषम है", - "MATH_IS_PRIME": "अभाज्य है", - "MATH_IS_WHOLE": "पूर्णांक है", - "MATH_IS_POSITIVE": "धनात्मक है", - "MATH_IS_NEGATIVE": "ऋणात्मक है", - "MATH_IS_DIVISIBLE_BY": "इसके द्वारा विभाज्य है", - "MATH_IS_TOOLTIP": "जांचें कि क्या कोई संख्या एक सम, विषम, मुख्य, संपूर्ण, सकारात्मक, नकारात्मक है या यदि वह निश्चित संख्या से विभाजित है। वास्तविक या गलत रिटर्न देता है।", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "%1 को %2 से बदलें", - "MATH_CHANGE_TOOLTIP": "संख्या को चर '%1' से जोड़ें।", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "संख्या को बड़ा या घटा के पूर्णांक बनाएँ।", - "MATH_ROUND_OPERATOR_ROUND": "पूर्णांक बनाएँ", - "MATH_ROUND_OPERATOR_ROUNDUP": "बड़ा के पूर्णांक बनाएँ", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "घटा के पूर्णांक बनाएँ", - "MATH_ONLIST_OPERATOR_SUM": "सूची का योग", - "MATH_ONLIST_TOOLTIP_SUM": "सूची की सभी संख्याओं का योग रिटर्न करें।", - "MATH_ONLIST_OPERATOR_MIN": "सूची मे न्यूनतम", - "MATH_ONLIST_TOOLTIP_MIN": "सूची मे सबसे छोटी संख्या रिटर्न करें।", - "MATH_ONLIST_OPERATOR_MAX": "सूची मे अधिकतम", - "MATH_ONLIST_TOOLTIP_MAX": "सूची में सबसे बड़ी संख्या रिटर्न करें।", - "MATH_ONLIST_OPERATOR_AVERAGE": "सूची का औसत मान", - "MATH_ONLIST_TOOLTIP_AVERAGE": "सूची में संख्यात्मक मानों का औसत (अंकगणित माध्य) लौटें।", - "MATH_ONLIST_OPERATOR_MEDIAN": "सूची की माध्यिका", - "MATH_ONLIST_TOOLTIP_MEDIAN": "सूची की माध्यिका संख्या रिटर्न करें।", - "MATH_ONLIST_OPERATOR_MODE": "सूची का मोड", - "MATH_ONLIST_TOOLTIP_MODE": "सूची मे सबसे आम आइटम(s) की सूची रिटर्न करें।", - "MATH_ONLIST_OPERATOR_STD_DEV": "सूची का मानक विचलन", - "MATH_ONLIST_TOOLTIP_STD_DEV": "सूची का मानक विचलन रिटर्न करें।", - "MATH_ONLIST_OPERATOR_RANDOM": "सूची का रैन्डम आइटम", - "MATH_ONLIST_TOOLTIP_RANDOM": "सूची से एक रैन्डम आइटम रिटर्न करें।", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2 का शेषफल", - "MATH_MODULO_TOOLTIP": "दो संख्याओं के भाग का शेषफल रिटर्न करें।", - "MATH_CONSTRAIN_TITLE": "%1 कम %2 उच्च %3 बाधित करें", - "MATH_CONSTRAIN_TOOLTIP": "एक संख्या को निर्दिष्ट सीमा (सम्मिलित) के बीच बाधित करें।", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "%1 से %2 तक रैन्डम पूर्णांक", - "MATH_RANDOM_INT_TOOLTIP": "दो निर्दिष्ट सीमाओं, समावेशी के बीच एक यादृच्छिक पूर्णांक लौटें।", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "रैन्डम अंश", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (समावेशी) और 1.0 (विशिष्ट) के बीच एक यादृच्छिक अंश पर लौटें।", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "एक अक्षर, शब्द, या टेक्स्ट की पंक्ति।", - "TEXT_JOIN_TITLE_CREATEWITH": "इसके साथ टेक्स्ट बनाएँ", - "TEXT_JOIN_TOOLTIP": "किसी भी संख्या के मदों को एक साथ जोड़ कर पाठ का एक टुकड़ा बनाएं।", - "TEXT_CREATE_JOIN_TITLE_JOIN": "जोड़", - "TEXT_CREATE_JOIN_TOOLTIP": "भाग को समनरूप बनाने के लिए जोङें, हटाएं, या पुनः व्यवस्थित करें यदि यह बंद है।", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "सूची मे एक आइटम जोड़ें।", - "TEXT_APPEND_TITLE": "%1 में पाठ %2 को जोड़ें", - "TEXT_APPEND_TOOLTIP": "कुछ टेक्स्ट इस चर '%1' से जोड़ें।", - "TEXT_LENGTH_TITLE": "%1 की लंबाई", - "TEXT_LENGTH_TOOLTIP": "दिए गये टेक्स्ट मे अक्षरों की संख्या रिटर्न करता है (खाली स्थान मिला के)।", - "TEXT_ISEMPTY_TITLE": "%1 खाली है", - "TEXT_ISEMPTY_TOOLTIP": "ट्रू रिटर्न करता है यदि दिया गया टेक्स्ट खाली है।", - "TEXT_INDEXOF_TOOLTIP": "दूसरे पाठ में पहले पाठ की पहली/अंतिम घटना का सूचक देता है। यदि पाठ नहीं मिला है तो %1 रिटर्न होता है।", - "TEXT_INDEXOF_TITLE": "पाठ %1 %2 %3 में", - "TEXT_INDEXOF_OPERATOR_FIRST": "टेक्स्ट पहली बार जहाँ आया है उसे ढूढ़े", - "TEXT_INDEXOF_OPERATOR_LAST": "टेक्स्ट आखरी बार जहाँ आया है उसे ढूढ़े", - "TEXT_CHARAT_TITLE": "पाठ %1 %2 में", - "TEXT_CHARAT_FROM_START": "अक्षर # पाएँ", - "TEXT_CHARAT_FROM_END": "आखिर से अक्षर # पाएँ", - "TEXT_CHARAT_FIRST": "पहला अक्षर पाएँ", - "TEXT_CHARAT_LAST": "आखरी अक्षर पाएँ", - "TEXT_CHARAT_RANDOM": "रैन्डम अक्षर पाएँ", - "TEXT_CHARAT_TOOLTIP": "बताई गयी जगह से अक्षर रिटर्न करता है", - "TEXT_GET_SUBSTRING_TOOLTIP": "टेक्स्ट का बताया गया अंश रिटर्न करता है", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "इस टेक्स्ट मे", - "TEXT_GET_SUBSTRING_START_FROM_START": "अक्षर # से सबस्ट्रिंग पाएँ", - "TEXT_GET_SUBSTRING_START_FROM_END": "आखरी अक्षर # से सबस्ट्रिंग पाएँ", - "TEXT_GET_SUBSTRING_START_FIRST": "पहले अक्षर से सबस्ट्रिंग पाएँ", - "TEXT_GET_SUBSTRING_END_FROM_START": "यहाँ तक अक्षर #", - "TEXT_GET_SUBSTRING_END_FROM_END": "आखिर से यहाँ तक अक्षर #", - "TEXT_GET_SUBSTRING_END_LAST": "यहाँ तक आखरी अक्षर", - "TEXT_CHANGECASE_TOOLTIP": "टेक्स्ट की कॉपी भिन्न केस (अक्षर से संबंधित) मे रिटर्न करें।", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "बड़े अक्षर मे", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "छोटे अक्षर मे", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "टाइटल केस मे", - "TEXT_TRIM_TOOLTIP": "एक या दोनों सिरों से हटाए गए रिक्त स्थान के साथ पाठ की एक प्रति लौटाएं।", - "TEXT_TRIM_OPERATOR_BOTH": "रिक्त स्थान को इस टेक्स्ट के दोनों तरफ से निकालें", - "TEXT_TRIM_OPERATOR_LEFT": "रिक्त स्थान को इस टेक्स्ट के बायें तरफ से निकालें", - "TEXT_TRIM_OPERATOR_RIGHT": "रिक्त स्थान को इस टेक्स्ट के दाईं तरफ से निकालें", - "TEXT_PRINT_TITLE": "प्रिंट करें %1", - "TEXT_PRINT_TOOLTIP": "दिया गया टेक्स्ट प्रिंट करें, संख्या या अन्य मान।", - "TEXT_PROMPT_TYPE_TEXT": "सूचना के साथ टेक्स्ट के लिए प्रॉम्प्ट करें", - "TEXT_PROMPT_TYPE_NUMBER": "सूचना के साथ संख्या के लिए प्रॉम्प्ट करें", - "TEXT_PROMPT_TOOLTIP_NUMBER": "यूज़र से संख्या के लिए प्रॉम्प्ट करें।", - "TEXT_PROMPT_TOOLTIP_TEXT": "यूज़र से कुछ टेक्स्ट के लिए प्रॉम्प्ट करें।", - "TEXT_COUNT_MESSAGE0": "%1 को %2 में गिने", - "TEXT_COUNT_TOOLTIP": "गिने, कितनी बार कुछ पाठ कुछ अन्य पाठ के अंदर समाहित होता है।", - "TEXT_REPLACE_MESSAGE0": "%1 को %2 के साथ %3 में बदलें", - "TEXT_REPLACE_TOOLTIP": "कुछ अन्य पाठ के अंदर कुछ पाठ की सभी जगहों को बदलें।", - "TEXT_REVERSE_MESSAGE0": "%1 को बदल दें", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "पाठ में वर्णों के क्रम को उलट देता है।", - "LISTS_CREATE_EMPTY_TITLE": "खाली सूची बनाएँ", - "LISTS_CREATE_EMPTY_TOOLTIP": "0 लंबाई की, कोई भी डेटा ना रखने वाली एक सूची लौटती है", - "LISTS_CREATE_WITH_TOOLTIP": "कितने भी आइटम वाली एक सूची बनाएँ।", - "LISTS_CREATE_WITH_INPUT_WITH": "इसके सूची बनाएँ", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "सूची", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "इस सूची ब्लॉक को पुन: आकार देने के लिए वर्गों को जोड़ें, निकालें, या पुन: क्रमित करें।", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "सूची मे एक आइटम जोड़ें।", - "LISTS_REPEAT_TOOLTIP": "निर्धारित मान की बार-बार दोहराई गई एक सूची बनाता है।", - "LISTS_REPEAT_TITLE": "वस्तु %1 के साथ %2 बार दोहराई गयी सूची बनाएं", - "LISTS_LENGTH_TITLE": "%1 की लंबाई", - "LISTS_LENGTH_TOOLTIP": "सूची की लंबाई रिटर्न करता है।", - "LISTS_ISEMPTY_TITLE": "%1 खाली है", - "LISTS_ISEMPTY_TOOLTIP": "यदि सूची खाली है तो ट्रू रिटर्न करता है।", - "LISTS_INLIST": "सूची में", - "LISTS_INDEX_OF_FIRST": "आइटम पहली बार जहाँ आया है उसे ढूढ़े", - "LISTS_INDEX_OF_LAST": "आइटम आखरी बार जहाँ आया है उसे ढूढ़े", - "LISTS_INDEX_OF_TOOLTIP": "सूची में आइटम की पहली/अंतिम घटना का सूचक देता है। यदि आइटम नहीं मिला है तो %1 रिटर्न होता है।", - "LISTS_GET_INDEX_GET": "प्राप्त", - "LISTS_GET_INDEX_GET_REMOVE": "प्राप्त करे और हटाए", - "LISTS_GET_INDEX_REMOVE": "निकालें", - "LISTS_GET_INDEX_FROM_END": "अंत से #", - "LISTS_GET_INDEX_FIRST": "पहला", - "LISTS_GET_INDEX_LAST": "आखिरी", - "LISTS_GET_INDEX_RANDOM": "रैन्डम", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 पहली वस्तु है।", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 आखिरी वस्तु है।", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "एक सूची में निर्दिष्ट स्थान पर वस्तु को लौटाता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "सूची का पहला आइटम रिटर्न करता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "सूची का आखरी आइटम रिटर्न करता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "सूची से रैन्डम आइटम रिटर्न करता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "एक सूची में निर्दिष्ट स्थिति में आइटम निकालता है और लौटाता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "सूची का पहला आइटम निकालता है और रिटर्न करता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "सूची का आखरी आइटम निकालता है और रिटर्न करता है।", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "सूची से रैन्डम आइटम निकालता है और रिटर्न करता है।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "एक सूची में निर्दिष्ट स्थान पर आइटम निकाल देता है।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "सूची का पहला आइटम निकालता है।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "सूची का आखरी आइटम निकालता है।", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "सूची से रैन्डम आइटम निकालता है।", - "LISTS_SET_INDEX_SET": "सैट करें", - "LISTS_SET_INDEX_INSERT": "पर डालें", - "LISTS_SET_INDEX_INPUT_TO": "बतौर", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "सूची मे बताए गये स्थान में आइटम सैट करता है।", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "सूची में पहला आइटम सैट करता है।", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "सूची में आखरी आइटम सैट करता है।", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "सूची में रैन्डम आइटम सैट करता है।", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "सूची मे बताए गये स्थान में आइटम इनसर्ट करता है।", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "आइटम को सूची के शुरू में इनसर्ट करता है।", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "आइटम को सूची के अंत में जोड़ता है।", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "आइटम को सूची में रैन्डम्ली इनसर्ट करता है।", - "LISTS_GET_SUBLIST_START_FROM_START": "# से उप-सूची प्राप्त करें", - "LISTS_GET_SUBLIST_START_FROM_END": "अंत से # से उप-सूची प्राप्त करें", - "LISTS_GET_SUBLIST_START_FIRST": "प्रथम से उप-सूची प्राप्त करें", - "LISTS_GET_SUBLIST_END_FROM_START": "# को", - "LISTS_GET_SUBLIST_END_FROM_END": "अंतिम से # को", - "LISTS_GET_SUBLIST_END_LAST": "अंत से", - "LISTS_GET_SUBLIST_TOOLTIP": "सूची के बताए गये भाग की कॉपी बनता है।", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "LISTS_SORT_TITLE": "%1 %2 %3 को छांटे", - "LISTS_SORT_TOOLTIP": "एक सूची की एक प्रति को छांटे।", - "LISTS_SORT_ORDER_ASCENDING": "बढ़ते क्रम", - "LISTS_SORT_ORDER_DESCENDING": "बढ़ते क्रम में", - "LISTS_SORT_TYPE_NUMERIC": "अंकीय", - "LISTS_SORT_TYPE_TEXT": "वर्णक्रमानुसार", - "LISTS_SORT_TYPE_IGNORECASE": "वर्णक्रमानुसार, मामले की अनदेखी करें", - "LISTS_SPLIT_LIST_FROM_TEXT": "पाठ से एक सूची बनाएं", - "LISTS_SPLIT_TEXT_FROM_LIST": "सूची से एक पाठ बनाएं", - "LISTS_SPLIT_WITH_DELIMITER": "सीमांकक के साथ", - "LISTS_SPLIT_TOOLTIP_SPLIT": "ग्रंथों की सूची में पाठ को विभाजित करें, प्रत्येक सीमांकक पर तोड़कर।", - "LISTS_SPLIT_TOOLTIP_JOIN": "ग्रंथों की एक सूची में शामिल करें, जो एक सीमांकक से अलग हो।", - "LISTS_REVERSE_MESSAGE0": "%1 को बदल दें", - "LISTS_REVERSE_TOOLTIP": "एक सूची की एक प्रति को छांटे।", - "VARIABLES_GET_TOOLTIP": "इस चर का मान रिटर्न करता है।", - "VARIABLES_GET_CREATE_SET": "सेट '%1' बनाएँ", - "VARIABLES_SET": "सेट करें %1 को %2", - "VARIABLES_SET_TOOLTIP": "इस चर को इनपुट के बराबर सेट करता है।", - "VARIABLES_SET_CREATE_GET": "'प्राप्त करें %1' बनाएं", - "PROCEDURES_DEFNORETURN_TITLE": "को", - "PROCEDURES_DEFNORETURN_PROCEDURE": "कुछ करें", - "PROCEDURES_BEFORE_PARAMS": ": के साथ", - "PROCEDURES_CALL_BEFORE_PARAMS": ": के साथ", - "PROCEDURES_DEFNORETURN_TOOLTIP": "बिना आउटपुट वाला एक फ़ंक्शन बनाता है।", - "PROCEDURES_DEFNORETURN_COMMENT": "इस फंकशन को समझाएँ...", - "PROCEDURES_DEFRETURN_RETURN": "वापस आएं", - "PROCEDURES_DEFRETURN_TOOLTIP": "आउटपुट वाला एक फ़ंक्शन बनाता है।", - "PROCEDURES_ALLOW_STATEMENTS": "बयानों की अनुमति दें", - "PROCEDURES_DEF_DUPLICATE_WARNING": "सावधान: इस फ़ंक्शन मे डुप्लिकेट पैरामीटर हैं।", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "यूज़र द्वारा वर्णन किया गया फ़ंक्शन '%1' चलाएँ।", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "यूज़र द्वारा वर्णन किया गया फ़ंक्शन '%1' चलाएँ और उसका आउटपुट इस्तेमाल करें।", - "PROCEDURES_MUTATORCONTAINER_TITLE": "इनपुट", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "इस फ़ंक्शन में इनपुट जोड़ें, निकालें, या पुन: क्रमित करें।", - "PROCEDURES_MUTATORARG_TITLE": "इनपुट का नाम:", - "PROCEDURES_MUTATORARG_TOOLTIP": "फंगक्शन को इनपुट प्रदान करें।", - "PROCEDURES_HIGHLIGHT_DEF": "फ़ंक्शन परिभाषा को हाइलाइट करें", - "PROCEDURES_CREATE_DO": "'%1' बनाएँ", - "PROCEDURES_IFRETURN_TOOLTIP": "यदि एक मान ट्रू है तो, दूसरा मान रिटर्न करें।", - "PROCEDURES_IFRETURN_WARNING": "सावधान: ये ब्लॉक फ़ंक्शन परिभाषा के अंदर ही इस्तेमाल किया जा सकता।" -} diff --git a/lib/blockly/msg/json/hrx.json b/lib/blockly/msg/json/hrx.json deleted file mode 100644 index 6380c0e..0000000 --- a/lib/blockly/msg/json/hrx.json +++ /dev/null @@ -1,287 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Paul Beppler" - ] - }, - "VARIABLES_DEFAULT_NAME": "Element", - "DUPLICATE_BLOCK": "Kopieren", - "ADD_COMMENT": "Kommentar hinzufüche", - "REMOVE_COMMENT": "Kommentar entferne", - "EXTERNAL_INPUTS": "External Inputsexterne Ingänge", - "INLINE_INPUTS": "interne Ingänge", - "DELETE_BLOCK": "Block lösche", - "DELETE_X_BLOCKS": "Block %1 lösche", - "DELETE_ALL_BLOCKS": "All %1 Bausten lösche?", - "COLLAPSE_BLOCK": "Block zusammerfalte", - "COLLAPSE_ALL": "Blocke zusammerfalte", - "EXPAND_BLOCK": "Block entfalte", - "EXPAND_ALL": "Blocke expandiere", - "DISABLE_BLOCK": "Block deaktivieren", - "ENABLE_BLOCK": "Block aktivieren", - "HELP": "Hellef", - "CHANGE_VALUE_TITLE": "Neie Variable...", - "RENAME_VARIABLE": "Die neie Variable sei Noome:", - "RENAME_VARIABLE_TITLE": "All \"%1\" Variable umbenenne in:", - "NEW_VARIABLE": "Neie Variable...", - "NEW_VARIABLE_TITLE": "Die neie Variable sei Noome:", - "COLOUR_PICKER_HELPURL": "https://hrx.wikipedia.org/wiki/Farreb", - "COLOUR_PICKER_TOOLTIP": "Wähl en Farreb von der Palett.", - "COLOUR_RANDOM_TITLE": "zufälliche Farwe", - "COLOUR_RANDOM_TOOLTIP": "Wähl en Farreb noh dem Zufallsprinzip.", - "COLOUR_RGB_TITLE": "Färreb mit", - "COLOUR_RGB_RED": "rot", - "COLOUR_RGB_GREEN": "grün", - "COLOUR_RGB_BLUE": "blau", - "COLOUR_RGB_TOOLTIP": "Kreiere ene Farreb mit sellrbst definierte rot, grün und blau Wearte. All Wearte müsse zwischich 0 und 100 liehe.", - "COLOUR_BLEND_TITLE": "misch", - "COLOUR_BLEND_COLOUR1": "Farreb 1", - "COLOUR_BLEND_COLOUR2": "mit Farreb 2", - "COLOUR_BLEND_RATIO": "im Verhältniss", - "COLOUR_BLEND_TOOLTIP": "Vermischt 2 Farwe mit konfigurierbare Farrebverhältniss (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://hrx.wikipedia.org/wiki/For-Schleif", - "CONTROLS_REPEAT_TITLE": "wiederhol %1 mol", - "CONTROLS_REPEAT_INPUT_DO": "mach", - "CONTROLS_REPEAT_TOOLTIP": "En Oonweisung meahrfach ausführe.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "Repetier solang", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "Repetiere bis", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Füahr die Oonweisung solang aus wie die Bedingung woahr (true) ist.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Füahr die Oonweisung solang aus wie die Bedingung falsch (false) ist.", - "CONTROLS_FOR_TOOLTIP": "Zähl die Variable \"%1\" von enem Startweart bis zu enem Zielweart und füahrefür jede Weart en Oonweisung aus.", - "CONTROLS_FOR_TITLE": "Zähl %1 von %2 bis %3 mit %4", - "CONTROLS_FOREACH_TITLE": "Für Weart %1 aus der List %2", - "CONTROLS_FOREACH_TOOLTIP": "Füahr en Oonweisung für jede Weart in der List aus und setzt dabei die Variable \"%1\" uff den aktuelle List Weart.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ausbreche aus der Schleif", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "mit der nächste Iteration fortfoohre aus der Schleifa", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Die umgebne Schleif beenne.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Die Oonweisung abbreche und mit der nächste Schleifiteration fortfoohre.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Warnung: Die block sollt nuar in en Schleif verwennet sin.", - "CONTROLS_IF_TOOLTIP_1": "Wenn en Bedingung woahr (true) ist, dann füahr en Oonweisung aus.", - "CONTROLS_IF_TOOLTIP_2": "Wenn en Bedingung woahr (true) ist, dann füahr die earscht Oonweisung aus. Ansonscht füahr die zwooite Oonweisung aus.", - "CONTROLS_IF_TOOLTIP_3": "Wenn der erschte Bedingung woahr (true) ist, dann füahr die erschte Oonweisung aus. Orrer wenn die zwooite Bedingung woahr (true) ist, dann füahr die zwooite Oonweisung aus.", - "CONTROLS_IF_TOOLTIP_4": "Wenn der erscht Bedingung woahr (true) ist, dann füahr die erschte Oonweisung aus. Orrer wenn die zwooite Bedingung woahr (true) ist, dann füahr die zwooite Oonweisung aus. Falls ken der beide Bedingungen woahr (true) ist, dann füahr die dritte Oonweisung aus.", - "CONTROLS_IF_MSG_IF": "wenn", - "CONTROLS_IF_MSG_ELSEIF": "orrer wenn", - "CONTROLS_IF_MSG_ELSE": "orrer", - "CONTROLS_IF_IF_TOOLTIP": "Hinzufüche, entferne orrer sortiere von Sektione", - "CONTROLS_IF_ELSEIF_TOOLTIP": "En weitre Bedingung hinzufüche.", - "CONTROLS_IF_ELSE_TOOLTIP": "En orrer Bedingung hinzufüche, füahrt en Oonweisung aus falls ken Bedingung zutrifft.", - "LOGIC_COMPARE_HELPURL": "https://hrx.wikipedia.org/wiki/Vergleich_%28Zahlen%29", - "LOGIC_COMPARE_TOOLTIP_EQ": "Ist woahr (true) wenn beide Wearte identisch sind.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Ist woahr (true) wenn beide Wearte unnerschiedlich sind.", - "LOGIC_COMPARE_TOOLTIP_LT": "Ist woahr (true) wenn der earschte Weart klener als der zwooite Weart ist.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Ist woahr (true) wenn der earscht Weart klener als orrer gleich gross wie zwooite Weart ist.", - "LOGIC_COMPARE_TOOLTIP_GT": "Ist woahr (true) wenn der erschte Weart grösser als der zwooite Weart ist.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Ist woahr (true) wenn der erschte Weart grösser als orrer gleich gross wie zwooite Weart ist.", - "LOGIC_OPERATION_TOOLTIP_AND": "Ist woahr (true) wenn beide Wearte woahr (true) sind.", - "LOGIC_OPERATION_AND": "und", - "LOGIC_OPERATION_TOOLTIP_OR": "Ist woahr (true) wenn en von der beide Wearte woahr (true) ist.", - "LOGIC_OPERATION_OR": "orrer", - "LOGIC_NEGATE_TITLE": "net %1", - "LOGIC_NEGATE_TOOLTIP": "Ist woahr (true) wenn der Ingäweweart falsch (false) ist. Ist falsch (false) wenn der Ingäweweart woahr (true) ist.", - "LOGIC_BOOLEAN_TRUE": "woahr", - "LOGIC_BOOLEAN_FALSE": "falsch", - "LOGIC_BOOLEAN_TOOLTIP": "Ist entweder woahr (true) orrer falsch (false)", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Is NULL.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "wenn woahr", - "LOGIC_TERNARY_IF_FALSE": "wenn falsch", - "LOGIC_TERNARY_TOOLTIP": "Üwerprüft en Bedingung \"test\". Wenn die Bedingung woahr ist weerd der \"wenn woahr\" Weart zurückgeb, annerfalls der \"wenn falsch\" Weart", - "MATH_NUMBER_HELPURL": "https://hrx.wikipedia.org/wiki/Zoohl", - "MATH_NUMBER_TOOLTIP": "En Zoohl.", - "MATH_ARITHMETIC_HELPURL": "https://hrx.wikipedia.org/wiki/Grundrechenoort", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Ist die Summe zwooier Wearte.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Ist die Differenz zwooier Wearte.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Ist das Produkt zwooier Wearte.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Ist der Quotient zwooier Wearte.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Ist der earschte Weart potenziert mit dem zoiten Weart.", - "MATH_SINGLE_HELPURL": "https://hrx.wikipedia.org/wiki/Quadratwoorzel", - "MATH_SINGLE_OP_ROOT": "Quadratwoorzel", - "MATH_SINGLE_TOOLTIP_ROOT": "Ist die Qudratwoorzel von en Weart.", - "MATH_SINGLE_OP_ABSOLUTE": "Absolutweart", - "MATH_SINGLE_TOOLTIP_ABS": "Ist der Absolutweart von en Weart.", - "MATH_SINGLE_TOOLTIP_NEG": "Negiert en Weart.", - "MATH_SINGLE_TOOLTIP_LN": "Ist der natüarliche Logarithmus von en Weart.", - "MATH_SINGLE_TOOLTIP_LOG10": "Ist der dekoodische Logarithmus von en Weart.", - "MATH_SINGLE_TOOLTIP_EXP": "Ist Weart von der Exponentialfunktion von en Weart.", - "MATH_SINGLE_TOOLTIP_POW10": "Rechnet 10 hoch Ingäbweart.", - "MATH_TRIG_HELPURL": "https://hrx.wikipedia.org/wiki/Trigonometrie", - "MATH_TRIG_TOOLTIP_SIN": "Ist der Sinus von en Winkel.", - "MATH_TRIG_TOOLTIP_COS": "Ist der Cosinus von en Winkel.", - "MATH_TRIG_TOOLTIP_TAN": "Ist der Tangens von en Winkel.", - "MATH_TRIG_TOOLTIP_ASIN": "Ist der Arcussinus von en Ingäbweart.", - "MATH_TRIG_TOOLTIP_ACOS": "Ist der Arcuscosinus von en Ingabweart.", - "MATH_TRIG_TOOLTIP_ATAN": "Ist der Arcustangens von en Ingäbweart.", - "MATH_CONSTANT_HELPURL": "https://hrx.wikipedia.org/wiki/Mathematische_Konstante", - "MATH_CONSTANT_TOOLTIP": "Mathematische Konstante wie: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) oder ∞ (unendlich).", - "MATH_IS_EVEN": "ist grood", - "MATH_IS_ODD": "ist ungrood", - "MATH_IS_PRIME": "ist en Primenzoohl", - "MATH_IS_WHOLE": "ganze Zoohl", - "MATH_IS_POSITIVE": "ist positiv", - "MATH_IS_NEGATIVE": "ist negativ", - "MATH_IS_DIVISIBLE_BY": "ist telbar/kann getelt sin doorrich", - "MATH_IS_TOOLTIP": "Üwerprüft ob en Zoohl grood, ungrood, en Primenzoohl, ganzzoohlich, positiv, negativ orrer doorrich en zwooite Zoohl telbar ist. Gebt woahr (true) orrer falsch (false) zurück.", - "MATH_CHANGE_HELPURL": "https://hrx.wikipedia.org/wiki/Inkrement_und_Dekrement", - "MATH_CHANGE_TITLE": "mach höcher / erhöhe %1 um %2", - "MATH_CHANGE_TOOLTIP": "Addiert en Weart zur Variable \"%1\" hinzu.", - "MATH_ROUND_HELPURL": "https://hrx.wikipedia.org/wiki/Runden", - "MATH_ROUND_TOOLTIP": "En Zoohl uff orrer ab runde.", - "MATH_ROUND_OPERATOR_ROUND": "runde", - "MATH_ROUND_OPERATOR_ROUNDUP": "uff runde", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ab runde", - "MATH_ONLIST_OPERATOR_SUM": "Summe von en List", - "MATH_ONLIST_TOOLTIP_SUM": "Ist die Summ aller Wearte in en List.", - "MATH_ONLIST_OPERATOR_MIN": "Minimalweart von en List", - "MATH_ONLIST_TOOLTIP_MIN": "Ist der klenste Weart in en List.", - "MATH_ONLIST_OPERATOR_MAX": "Maximalweart en List", - "MATH_ONLIST_TOOLTIP_MAX": "Ist der grösste Weart in en List.", - "MATH_ONLIST_OPERATOR_AVERAGE": "Mittelweart en List", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Ist der Doorrichschnittsweart von aller Wearte in en List.", - "MATH_ONLIST_OPERATOR_MEDIAN": "Median von en List", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Ist der Zentralweart von aller Wearte in en List.", - "MATH_ONLIST_OPERATOR_MODE": "Restweart von en List", - "MATH_ONLIST_TOOLTIP_MODE": "Findt den am häifichste voarkommend Weart in en List. Falls ken Weart öftersch voarkomme als all annre, weard die originale List zurückgeche", - "MATH_ONLIST_OPERATOR_STD_DEV": "Standart/Padrong Abweichung von en List", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Ist die standartiesierte/padronisierte Standartabweichung/Padrongabweichung von aller Wearte in der List", - "MATH_ONLIST_OPERATOR_RANDOM": "Zufallsweart von en List", - "MATH_ONLIST_TOOLTIP_RANDOM": "Geb en Zufallsweart aus der List zurück.", - "MATH_MODULO_HELPURL": "https://hrx.wikipedia.org/wiki/Modulo", - "MATH_MODULO_TITLE": "Rest von %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Der Rest noh en Division.", - "MATH_CONSTRAIN_TITLE": "begrenze %1 von %2 bis %3", - "MATH_CONSTRAIN_TOOLTIP": "Begrenzt den Weartebereich mittels von / bis Wearte. (inklusiv)", - "MATH_RANDOM_INT_HELPURL": "https://hrx.wikipedia.org/wiki/Zufallszahlen", - "MATH_RANDOM_INT_TITLE": "ganzoohlicher Zufallswearte zwischich %1 bis %2", - "MATH_RANDOM_INT_TOOLTIP": "Generier/erzeich en ganzähliche Zufallsweart zwischich zwooi Wearte (inklusiv).", - "MATH_RANDOM_FLOAT_HELPURL": "https://hex.wikipedia.org/wiki/Zufallszoohle", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Zufallszoohl (0.0 -1.0)", - "MATH_RANDOM_FLOAT_TOOLTIP": "Generier/erzeich en Zufallszoohl zwischich 0.0 (inklusiv) und 1.0 (exklusiv).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)https://hrx.wikipedia.org/wiki/Zeichenkette", - "TEXT_TEXT_TOOLTIP": "En Buchstoob, Text orrer Satz.", - "TEXT_JOIN_TITLE_CREATEWITH": "Erstell Text aus", - "TEXT_JOIN_TOOLTIP": "Erstellt en Text doorrich das verbinne von mehre Textelemente.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "verbinne", - "TEXT_CREATE_JOIN_TOOLTIP": "Hinzufüche, entfernne und sortiere von Elemente.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "En Element zum Text hinzufüche.", - "TEXT_APPEND_TITLE": "An %1 Text oonhänge %2", - "TEXT_APPEND_TOOLTIP": "Text an die Variable \"%1\" oonhänge.", - "TEXT_LENGTH_TITLE": "läng %1", - "TEXT_LENGTH_TOOLTIP": "Die Oonzoohl von Zeiche in enem Text. (inkl. Leerzeiche)", - "TEXT_ISEMPTY_TITLE": "%1 ist leer?", - "TEXT_ISEMPTY_TOOLTIP": "Ist woahr (true), wenn der Text leer ist.", - "TEXT_INDEXOF_TOOLTIP": "Findt das earste / letzte Voarkommniss von en Suchbegriffes in enem Text. Gebt die Position von dem Begriff orrer %1 zurück.", - "TEXT_INDEXOF_TITLE": "im Text %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "Such der Begriff sein earstes Voarkommniss", - "TEXT_INDEXOF_OPERATOR_LAST": "Suche der Begriff sein letztes Vorkommniss.", - "TEXT_CHARAT_FROM_START": "hol Buchstoob #", - "TEXT_CHARAT_FROM_END": "hol Buchstoob # von End", - "TEXT_CHARAT_FIRST": "hol earschte Buchstoob", - "TEXT_CHARAT_LAST": "hol letztes Wort", - "TEXT_CHARAT_RANDOM": "hol zufälliches Buchstoob", - "TEXT_CHARAT_TOOLTIP": "Extrahiear en Buchstoob von en spezifizierte Position.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Schickt en bestimmstes Tel von dem Text retuar.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in Text", - "TEXT_GET_SUBSTRING_START_FROM_START": "hol substring Buchstoob #te", - "TEXT_GET_SUBSTRING_START_FROM_END": "hol #te Buchstoob von hinne", - "TEXT_GET_SUBSTRING_START_FIRST": "earschte Buchstoob", - "TEXT_GET_SUBSTRING_END_FROM_START": "bis Buchstoob #te", - "TEXT_GET_SUBSTRING_END_FROM_END": "bis #te Buchstoob von hinne", - "TEXT_GET_SUBSTRING_END_LAST": "bis letzte Buchstoob", - "TEXT_CHANGECASE_TOOLTIP": "Wandelt Schreibweise von Texte um, in Grossbuchstoobe, Klenbuchstoobe orrer den earste Buchstoob von jedes Wort gross und die annre klen.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "umwandle in GROSSBUCHSTOOBE", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "umwandle in klenbuchstoobe", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "umwandle in Wörter", - "TEXT_TRIM_TOOLTIP": "Entfernt Leerzeiche vom Oonfang und / orrer End von en Text.", - "TEXT_TRIM_OPERATOR_BOTH": "entfern Leerzeiche von Oonfang und End Seite", - "TEXT_TRIM_OPERATOR_LEFT": "entferne Leerzeiche von Oonfang Seite", - "TEXT_TRIM_OPERATOR_RIGHT": "entferne Leerzeiche von End Seite von", - "TEXT_PRINT_TITLE": "Ausgäb %1", - "TEXT_PRINT_TOOLTIP": "Geb den Inhalt von en Variable aus.", - "TEXT_PROMPT_TYPE_TEXT": "Frocht noh Text mit Hinweis", - "TEXT_PROMPT_TYPE_NUMBER": "Frächt noh Zoohl mit Hinweis", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Frocht den Benutzer noh en Zoohl.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Frocht den Benutzer noh enem Text.", - "LISTS_CREATE_EMPTY_TITLE": "Generier/erzeich en leear List", - "LISTS_CREATE_EMPTY_TOOLTIP": "Generier/erzeich en leear List ohne Inhalt.", - "LISTS_CREATE_WITH_TOOLTIP": "Generier/erzeich en List mit konfigurierte Elemente.", - "LISTS_CREATE_WITH_INPUT_WITH": "Erzeich List mit", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "List", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Hinzufüche, entferne und sortiere von Elemente.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "En Element zur List hinzufüche.", - "LISTS_REPEAT_TOOLTIP": "Erzeicht en List mit en variable Oonzoohl von Elemente", - "LISTS_REPEAT_TITLE": "Erzich List mit Element %1 wiederhol das %2 mol", - "LISTS_LENGTH_TITLE": "länge %1", - "LISTS_LENGTH_TOOLTIP": "Die Oonzoohl von Elemente in der List.", - "LISTS_ISEMPTY_TITLE": "%1 ist leear?", - "LISTS_ISEMPTY_TOOLTIP": "Ist woahr (true), wenn die List leear ist.", - "LISTS_INLIST": "in der List", - "LISTS_INDEX_OF_FIRST": "Such earstes Voarkommniss", - "LISTS_INDEX_OF_LAST": "Such letztes Voarkommniss", - "LISTS_INDEX_OF_TOOLTIP": "Sucht die Position (index) von en Element in der List Gebt %1 zurück wenn nixs gefunn woard.", - "LISTS_GET_INDEX_GET": "Nehm", - "LISTS_GET_INDEX_GET_REMOVE": "Nehm und entfern", - "LISTS_GET_INDEX_REMOVE": "Entfern", - "LISTS_GET_INDEX_FROM_END": "#te von hinne", - "LISTS_GET_INDEX_FIRST": "earste", - "LISTS_GET_INDEX_LAST": "letzte", - "LISTS_GET_INDEX_RANDOM": "zufälliches", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ist das earschte Element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ist das letzte Element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Extrahiert das Element zu en definierte Stell von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Extrahiert das earste Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Extrahiert das letzte Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Extrahiert en zufälliches Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Extrahiert und entfernt das Element zu en definierte Stell von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Extrahiert und entfernt das earste Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Extrahiert und entfernt das letzte Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Extrahiert und entfernt en zufälliches Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Entfernt das Element zu en definierte Stell von der List.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Entfernt das earste Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Entfernt das letzte Element von der List.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Entfernt en zufälliches Element von der List.", - "LISTS_SET_INDEX_SET": "setz", - "LISTS_SET_INDEX_INSERT": "tue ren setz an", - "LISTS_SET_INDEX_INPUT_TO": "uff", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Setzt das Element zu en definierte Stell in en List.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Sets the first item in a list.Setzt das earschte Element an en list.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Setzt das letzte Element an en List.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Setzt en zufälliches Element an en List.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Tut das Element ren setze an en definierte Stell an en List.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Tut das Element an en Oonfang von en List ren setze.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Oonhängt das Element zu en List sei End.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Tut das Element zufällich an en List ren setze.", - "LISTS_GET_SUBLIST_START_FROM_START": "hol Unnerlist von #", - "LISTS_GET_SUBLIST_START_FROM_END": "hol Unnerliste von # vom End", - "LISTS_GET_SUBLIST_START_FIRST": "hol Unnerliste vom Earste", - "LISTS_GET_SUBLIST_END_FROM_START": "zu #", - "LISTS_GET_SUBLIST_END_FROM_END": "zu # vom End", - "LISTS_GET_SUBLIST_END_LAST": "zum Letzte", - "LISTS_GET_SUBLIST_TOOLTIP": "Generiert en Kopie von en definierte Tel von en List.", - "VARIABLES_GET_TOOLTIP": "Gebt der Variable sein Weart zurück.", - "VARIABLES_GET_CREATE_SET": "Generier/erzeiche \"Schreibe %1\"", - "VARIABLES_SET": "Schreib %1 zu %2", - "VARIABLES_SET_TOOLTIP": "Setzt en Variable sei Weart.", - "VARIABLES_SET_CREATE_GET": "Generier/erzeich \"Lese %1\"", - "PROCEDURES_DEFNORETURN_TITLE": "zu", - "PROCEDURES_DEFNORETURN_PROCEDURE": "Funktionsblock", - "PROCEDURES_BEFORE_PARAMS": "mit:", - "PROCEDURES_CALL_BEFORE_PARAMS": "mit:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "En Funktionsblock ohne Rückgäbweart.", - "PROCEDURES_DEFRETURN_RETURN": "geb zurück", - "PROCEDURES_DEFRETURN_TOOLTIP": "En Funktionsblock mit Rückgäbweart.", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Warnung: die Funktionsblock hot doppelt Parameter.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://hrx.wikipedia.org/wiki/Prozedur_%28Programmierung%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Ruf en Funktionsblock ohne Rückgäweart uff.", - "PROCEDURES_CALLRETURN_HELPURL": "https://hrx.wikipedia.org/wiki/Prozedur_%28Programmierung%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "Ruf en Funktionsblock mit Rückgäbweart uff.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "Parameter", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Variable:", - "PROCEDURES_MUTATORARG_TITLE": "Markiear Funktionsblock", - "PROCEDURES_MUTATORARG_TOOLTIP": "Generier/erzeich \"Uffruf %1\"", - "PROCEDURES_HIGHLIGHT_DEF": "Markiear Funktionsblock", - "PROCEDURES_CREATE_DO": "Generier/erzeich \"Uffruf %1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Wenn der earste Weart woahr (true) ist, Geb den zwooite Weart zurück.", - "PROCEDURES_IFRETURN_WARNING": "Warnung: Der Block därref nuar innich en Funktionsblock genutzt sin." -} diff --git a/lib/blockly/msg/json/hu.json b/lib/blockly/msg/json/hu.json deleted file mode 100644 index 0338772..0000000 --- a/lib/blockly/msg/json/hu.json +++ /dev/null @@ -1,355 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Espertus", - "Takács Viktor László", - "Dj", - "Grin", - "ViDam", - "Csega", - "Fitoschido", - "Lajthabalazs", - "Tacsipacsi", - "Rodrigo", - "Máté", - "BanKris", - "Notramo", - "Urbalazs", - "MeskoBalazs" - ] - }, - "VARIABLES_DEFAULT_NAME": "változó", - "TODAY": "Ma", - "DUPLICATE_BLOCK": "Másolat", - "ADD_COMMENT": "Megjegyzés hozzáadása", - "REMOVE_COMMENT": "Megjegyzés eltávolítása", - "EXTERNAL_INPUTS": "Külső kapcsolatok", - "INLINE_INPUTS": "Belső kapcsolatok", - "DELETE_BLOCK": "Blokk törlése", - "DELETE_X_BLOCKS": "%1 blokk törlése", - "DELETE_ALL_BLOCKS": "Az összes %1 blokk törlése?", - "CLEAN_UP": "Blokkok kiürítése", - "COLLAPSE_BLOCK": "Blokk összecsukása", - "COLLAPSE_ALL": "Blokkok összecsukása", - "EXPAND_BLOCK": "Blokk kinyitása", - "EXPAND_ALL": "Blokkok kinyitása", - "DISABLE_BLOCK": "Blokk letiltása", - "ENABLE_BLOCK": "Blokk engedélyezése", - "HELP": "Súgó", - "UNDO": "Visszavonás", - "REDO": "Újra", - "CHANGE_VALUE_TITLE": "Érték módosítása:", - "RENAME_VARIABLE": "Változó átnevezése…", - "RENAME_VARIABLE_TITLE": "Minden „%1” változó átnevezése erre:", - "NEW_VARIABLE": "Változó létrehozása…", - "NEW_VARIABLE_TITLE": "Az új változó neve:", - "VARIABLE_ALREADY_EXISTS": "A(z) „%1” nevű változó már létezik.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Egy „%1” nevű változó már létezik egy másik típussal: „%2”.", - "DELETE_VARIABLE_CONFIRMATION": "A(z) „%2” változó %1 használatának törlése?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "A(z) „%1” változó nem törölhető, mert része a(z) „%2” függvény definíciójának.", - "DELETE_VARIABLE": "A(z) „%1” változó törlése", - "COLOUR_PICKER_HELPURL": "https://hu.wikipedia.org/wiki/Szín", - "COLOUR_PICKER_TOOLTIP": "Válassz színt a palettáról.", - "COLOUR_RANDOM_TITLE": "véletlen szín", - "COLOUR_RANDOM_TOOLTIP": "Véletlenszerűen kiválasztott szín.", - "COLOUR_RGB_TITLE": "Szín", - "COLOUR_RGB_RED": "vörös", - "COLOUR_RGB_GREEN": "zöld", - "COLOUR_RGB_BLUE": "kék", - "COLOUR_RGB_TOOLTIP": "Szín előállítása a megadott vörös, zöld, és kék értékekkel. Minden értéknek 0 és 100 közé kell esnie.", - "COLOUR_BLEND_TITLE": "színkeverés", - "COLOUR_BLEND_COLOUR1": "szín 1", - "COLOUR_BLEND_COLOUR2": "szín 2", - "COLOUR_BLEND_RATIO": "arány", - "COLOUR_BLEND_TOOLTIP": "Két színt kever össze a megadott arányban (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://hu.wikipedia.org/wiki/Ciklus_(programoz%C3%A1s)#Sz.C3.A1ml.C3.A1l.C3.B3s_.28FOR.29_ciklus", - "CONTROLS_REPEAT_TITLE": "ismételd %1 alkalommal", - "CONTROLS_REPEAT_INPUT_DO": "", - "CONTROLS_REPEAT_TOOLTIP": "Megadott kódrészlet ismételt végrehajtása.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ismételd amíg", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ismételd amíg", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Amíg a feltétel igaz, végrehajtja az utasításokat.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Amíg a feltétel hamis, végrehajtja az utasításokat.", - "CONTROLS_FOR_TOOLTIP": "A(z) '%1' változó felveszi a kezdőérték és a végérték közötti értékeket a meghatározott lépésközzel. Eközben a meghatározott blokkokat hajtja végre.", - "CONTROLS_FOR_TITLE": "számolj %1 értékével %2 és %3 között %4 lépésközzel", - "CONTROLS_FOREACH_TITLE": "minden %1 elemre a %2 listában", - "CONTROLS_FOREACH_TOOLTIP": "A '%1' változó minden lépésben megkapja a lista adott elemének értékét, és végrehajt vele néhány utasítást.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "befejezi az ismétlést", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "folytatja a következővel", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Megszakítja az utasítást tartalmazó ciklust.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Kihagyja a ciklus további részét, és elölről kezdi a következő elemmel.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Figyelem: Ez a blokk csak cikluson belül használható.", - "CONTROLS_IF_TOOLTIP_1": "Ha a kifejezés igaz, akkor végrehajtja az utasításokat.", - "CONTROLS_IF_TOOLTIP_2": "Ha a kifejezés igaz, akkor végrehajtja az első utasításblokkot. Különben a második utasításblokk kerül végrehajtásra.", - "CONTROLS_IF_TOOLTIP_3": "Ha az első kifejezés igaz, akkor végrehajtja az első utasításblokkot. Különben, ha a második kifejezés igaz, akkor végrehajtja a második utasítás blokkot.", - "CONTROLS_IF_TOOLTIP_4": "Ha az első kifejezés igaz, akkor végrehajtjuk az első utasítás blokkot. Ha a második kifejezés igaz, akkor végrehajtjuk a második utasítás blokkot. Amennyiben egyik kifejezés sem igaz, akkor az utolsó utasítás blokk kerül végrehajtásra.", - "CONTROLS_IF_MSG_IF": "ha", - "CONTROLS_IF_MSG_ELSEIF": "különben ha", - "CONTROLS_IF_MSG_ELSE": "különben", - "CONTROLS_IF_IF_TOOLTIP": "A ha blokk testreszabásához bővítsd, töröld vagy rendezd át a részeit.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Feltétel hozzáadása a ha blokkhoz.", - "CONTROLS_IF_ELSE_TOOLTIP": "Végső feltétel hozzáadása a ha blokkhoz.", - "IOS_OK": "OK", - "IOS_CANCEL": "Mégse", - "IOS_ERROR": "Hiba", - "IOS_PROCEDURES_INPUTS": "BEMENETEK", - "IOS_PROCEDURES_ADD_INPUT": "+ Bemenet hozzáadása", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Utasítások engedélyezése", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ennek a függvénynek kettőzött bemenete van.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Változó hozzáadása", - "IOS_VARIABLES_ADD_BUTTON": "Hozzáadás", - "IOS_VARIABLES_RENAME_BUTTON": "Átnevezés", - "IOS_VARIABLES_DELETE_BUTTON": "Törlés", - "IOS_VARIABLES_VARIABLE_NAME": "Változó neve", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Nem használhat üres változónevet.", - "LOGIC_COMPARE_HELPURL": "https://hu.wikipedia.org/wiki/Egyenl%C5%91tlens%C3%A9g", - "LOGIC_COMPARE_TOOLTIP_EQ": "Igaz, ha a kifejezés két oldala egyenlő.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Igaz, ha a kifejezés két oldala nem egyenlő..", - "LOGIC_COMPARE_TOOLTIP_LT": "Igaz, ha a bal oldali kifejezés kisebb, mint a jobb oldali.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Igaz, ha a bal oldali kifejezés kisebb vagy egyenlő, mint a jobb oldali.", - "LOGIC_COMPARE_TOOLTIP_GT": "Igaz, ha a bal oldali kifejezés nagyobb, mint a jobb oldali.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Igaz, ha a bal oldali kifejezés nagyobb vagy egyenlő, mint a jobb oldali.", - "LOGIC_OPERATION_TOOLTIP_AND": "Igaz, ha mindkét kifejezés igaz.", - "LOGIC_OPERATION_AND": "és", - "LOGIC_OPERATION_TOOLTIP_OR": "Igaz, ha legalább az egyik kifejezés igaz.", - "LOGIC_OPERATION_OR": "vagy", - "LOGIC_NEGATE_TITLE": "nem %1", - "LOGIC_NEGATE_TOOLTIP": "Igaz, ha a kifejezés hamis. Hamis, ha a kifejezés igaz.", - "LOGIC_BOOLEAN_TRUE": "igaz", - "LOGIC_BOOLEAN_FALSE": "hamis", - "LOGIC_BOOLEAN_TOOLTIP": "Igaz, vagy hamis érték", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "null érték.", - "LOGIC_TERNARY_CONDITION": "vizsgáld meg:", - "LOGIC_TERNARY_IF_TRUE": "érték, ha igaz:", - "LOGIC_TERNARY_IF_FALSE": "érték, ha hamis:", - "LOGIC_TERNARY_TOOLTIP": "Kiértékeli a megvizsgálandó kifejezést. Ha a kifejezés igaz, visszatér az \"érték, ha igaz\" értékkel, különben az \"érték, ha hamis\" értékkel.", - "MATH_NUMBER_HELPURL": "https://hu.wikipedia.org/wiki/Sz%C3%A1m", - "MATH_NUMBER_TOOLTIP": "Egy szám.", - "MATH_ARITHMETIC_HELPURL": "https://hu.wikipedia.org/wiki/Matematikai_m%C5%B1velet", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Két szám összege.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Két szám különbsége.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Két szám szorzata.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Két szám hányadosa.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Az első számnak a második számmal megegyező hatványa.", - "MATH_SINGLE_HELPURL": "https://hu.wikipedia.org/wiki/Gy%C3%B6kvon%C3%A1s", - "MATH_SINGLE_OP_ROOT": "négyzetgyök", - "MATH_SINGLE_TOOLTIP_ROOT": "A szám négyzetgyöke.", - "MATH_SINGLE_OP_ABSOLUTE": "abszolútérték", - "MATH_SINGLE_TOOLTIP_ABS": "A szám abszolútértéke.", - "MATH_SINGLE_TOOLTIP_NEG": "A szám -1 szerese.", - "MATH_SINGLE_TOOLTIP_LN": "A szám természetes alapú logaritmusa.", - "MATH_SINGLE_TOOLTIP_LOG10": "A szám 10-es alapú logaritmusa.", - "MATH_SINGLE_TOOLTIP_EXP": "Az e megadott számú hatványa.", - "MATH_SINGLE_TOOLTIP_POW10": "A 10 megadott számú hatványa.", - "MATH_TRIG_HELPURL": "https://hu.wikipedia.org/wiki/Sz%C3%B6gf%C3%BCggv%C3%A9nyek", - "MATH_TRIG_TOOLTIP_SIN": "A fokban megadott szög szinusz értéke.", - "MATH_TRIG_TOOLTIP_COS": "A fokban megadott szög koszinusz értéke.", - "MATH_TRIG_TOOLTIP_TAN": "A fokban megadott szög tangens értéke.", - "MATH_TRIG_TOOLTIP_ASIN": "A fokban megadott szög arkusz szinusz értéke.", - "MATH_TRIG_TOOLTIP_ACOS": "A fokban megadott szög arkusz koszinusz értéke.", - "MATH_TRIG_TOOLTIP_ATAN": "A fokban megadott szög arkusz tangens értéke.", - "MATH_CONSTANT_HELPURL": "https://hu.wikipedia.org/wiki/Matematikai_konstans", - "MATH_CONSTANT_TOOLTIP": "Ismert matematikai konstans: π (3.141…), e (2.718…), φ (1.618…), gyök(2) (1.414…), gyök(½) (0.707…), vagy ∞ (végtelen).", - "MATH_IS_EVEN": "páros", - "MATH_IS_ODD": "páratlan", - "MATH_IS_PRIME": "prím", - "MATH_IS_WHOLE": "egész", - "MATH_IS_POSITIVE": "pozitív", - "MATH_IS_NEGATIVE": "negatív", - "MATH_IS_DIVISIBLE_BY": "-nek osztója", - "MATH_IS_TOOLTIP": "Ellenőrzi, hogy a szám páros, páratlan, prím, egész, pozitív vagy negatív-e, illetve osztható-e a másodikkal. Igaz, vagy hamis értéket ad eredményül.", - "MATH_CHANGE_HELPURL": "https://hu.wikipedia.org/wiki/JavaScript#Aritmetikai_oper.C3.A1torok", - "MATH_CHANGE_TITLE": "növeld %1 értékét %2 -vel", - "MATH_CHANGE_TOOLTIP": "A \"%1\" változó értékének növelése egy számmal.", - "MATH_ROUND_HELPURL": "https://hu.wikipedia.org/wiki/Eg%C3%A9szr%C3%A9sz#Kerek.C3.ADt.C3.A9s", - "MATH_ROUND_TOOLTIP": "Egy szám kerekítése felfelé vagy lefelé.", - "MATH_ROUND_OPERATOR_ROUND": "kerekítsd", - "MATH_ROUND_OPERATOR_ROUNDUP": "kerekítsd felfelé", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "kerekítsd lefelé", - "MATH_ONLIST_OPERATOR_SUM": "lista elemeinek összege", - "MATH_ONLIST_TOOLTIP_SUM": "A lista elemeinek összegét adja eredményül.", - "MATH_ONLIST_OPERATOR_MIN": "lista legkisebb eleme", - "MATH_ONLIST_TOOLTIP_MIN": "A lista legkisebb elemét adja vissza.", - "MATH_ONLIST_OPERATOR_MAX": "lista legnagyobb eleme", - "MATH_ONLIST_TOOLTIP_MAX": "A lista legnagyobb elemét adja vissza.", - "MATH_ONLIST_OPERATOR_AVERAGE": "lista elemeinek átlaga", - "MATH_ONLIST_TOOLTIP_AVERAGE": "A lista elemeinek átlagát adja eredményül.", - "MATH_ONLIST_OPERATOR_MEDIAN": "lista mediánja", - "MATH_ONLIST_TOOLTIP_MEDIAN": "A lista elemeinek mediánját adja eredményül.", - "MATH_ONLIST_OPERATOR_MODE": "lista módusza", - "MATH_ONLIST_TOOLTIP_MODE": "A lista elemeinek móduszát adja eredményül.", - "MATH_ONLIST_OPERATOR_STD_DEV": "lista elemeinek szórása", - "MATH_ONLIST_TOOLTIP_STD_DEV": "A lista elemeinek szórását adja eredményül.", - "MATH_ONLIST_OPERATOR_RANDOM": "lista véletlen eleme", - "MATH_ONLIST_TOOLTIP_RANDOM": "A lista egy véletlen elemét adja eredményül.", - "MATH_MODULO_HELPURL": "https://hu.wikipedia.org/wiki/Eg%C3%A9szr%C3%A9sz#Als.C3.B3_eg.C3.A9szr.C3.A9sz", - "MATH_MODULO_TITLE": "%1 ÷ %2 maradéka", - "MATH_MODULO_TOOLTIP": "Az egész osztás maradékát adja eredméynül.", - "MATH_CONSTRAIN_TITLE": "korlátozd %1-t %2 és %3 közé", - "MATH_CONSTRAIN_TOOLTIP": "Egy változó értékének korlátozása a megadott zárt intervallumra.", - "MATH_RANDOM_INT_HELPURL": "https://hu.wikipedia.org/wiki/V%C3%A9letlen", - "MATH_RANDOM_INT_TITLE": "véletlen egész szám %1 között %2", - "MATH_RANDOM_INT_TOOLTIP": "Véletlen egész szám a megadott zárt intervallumon belül.", - "MATH_RANDOM_FLOAT_HELPURL": "https://hu.wikipedia.org/wiki/V%C3%A9letlen", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "véletlen tört", - "MATH_RANDOM_FLOAT_TOOLTIP": "Véletlen tört érték 0.0 és 1.0 között.", - "TEXT_TEXT_HELPURL": "https://hu.wikipedia.org/wiki/String", - "TEXT_TEXT_TOOLTIP": "Egy betű, szó vagy szöveg egy sora.", - "TEXT_JOIN_TITLE_CREATEWITH": "fűzd össze", - "TEXT_JOIN_TOOLTIP": "Tetszőleges számú szövegrészletet fűz össze egybefüggő szöveggé.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "fűzd össze", - "TEXT_CREATE_JOIN_TOOLTIP": "Összefűzéssel, törléssel vagy rendezéssel kapcsolato sblokkok szöveg szerkesztéséhez.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Elem hozzáfűzése a szöveghez.", - "TEXT_APPEND_TITLE": "A %1 szövegéhez fűzd hozzá %2", - "TEXT_APPEND_TOOLTIP": "Szöveget fűz a \"%1\" változó értékéhez.", - "TEXT_LENGTH_TITLE": "%1 hossza", - "TEXT_LENGTH_TOOLTIP": "A megadott szöveg karaktereinek számát adja eredményül (beleértve a szóközöket).", - "TEXT_ISEMPTY_TITLE": "%1 üres", - "TEXT_ISEMPTY_TOOLTIP": "Igaz, ha a vizsgált szöveg hossza 0.", - "TEXT_INDEXOF_TOOLTIP": "A keresett szöveg első vagy utolsó előfordulásával tér vissza. %1 esetén a szövegrészlet nem található.", - "TEXT_INDEXOF_TITLE": "A(z) %1 %2 %3 szövegnek", - "TEXT_INDEXOF_OPERATOR_FIRST": "szövegben az első előfordulásának helye", - "TEXT_INDEXOF_OPERATOR_LAST": "szövegben az utolsó előfordulásának helye", - "TEXT_CHARAT_TITLE": "a szövegben: %1 %2", - "TEXT_CHARAT_FROM_START": "elölről", - "TEXT_CHARAT_FROM_END": "hátulról", - "TEXT_CHARAT_FIRST": "első", - "TEXT_CHARAT_LAST": "utolsó", - "TEXT_CHARAT_RANDOM": "véletlen", - "TEXT_CHARAT_TAIL": "karaktere", - "TEXT_CHARAT_TOOLTIP": "A szöveg egy megadott karakterét adja eredményül.", - "TEXT_GET_SUBSTRING_TOOLTIP": "A megadott szövegrészletet adja eredményül.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "a", - "TEXT_GET_SUBSTRING_START_FROM_START": "szövegben válaszd ki a(z)", - "TEXT_GET_SUBSTRING_START_FROM_END": "szövegben válaszd ki a hátulról a(z)", - "TEXT_GET_SUBSTRING_START_FIRST": "szövegben válaszd ki az első", - "TEXT_GET_SUBSTRING_END_FROM_START": "betűtől a(z)", - "TEXT_GET_SUBSTRING_END_FROM_END": "betűtől a hátulról számított", - "TEXT_GET_SUBSTRING_END_LAST": "betűtől az utolsó", - "TEXT_GET_SUBSTRING_TAIL": "betűig tartó betűsort", - "TEXT_CHANGECASE_TOOLTIP": "Return a copy of the text in a different case.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "NAGYBETŰS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "kisbetűs", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Címként Formázott", - "TEXT_TRIM_TOOLTIP": "Levágja a megadott szöveg végeiről a szóközöket.", - "TEXT_TRIM_OPERATOR_BOTH": "szóközök levágása mindkét végéről", - "TEXT_TRIM_OPERATOR_LEFT": "szóközök levágása az elejéről", - "TEXT_TRIM_OPERATOR_RIGHT": "szóközök levágása a végéről", - "TEXT_PRINT_TITLE": "Üzenet %1", - "TEXT_PRINT_TOOLTIP": "Megejelníti a megadott kaakterláncot üzenetként a képernyőn.", - "TEXT_PROMPT_TYPE_TEXT": "Kérj be szöveget", - "TEXT_PROMPT_TYPE_NUMBER": "Kérj be számot", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Számot kér be a felhasználótól.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Szöveget kér be a felhasználótól.", - "TEXT_COUNT_MESSAGE0": "%1 száma ebben: %2", - "TEXT_COUNT_TOOLTIP": "A szöveg előfordulásainak megszámolása egy másik szövegben.", - "TEXT_REPLACE_MESSAGE0": "%1 cseréje %2-vel %3-ban", - "TEXT_REPLACE_TOOLTIP": "A szöveg összes előfordulásának cseréje egy másik szöveggel.", - "TEXT_REVERSE_MESSAGE0": "%1 megfordítása", - "TEXT_REVERSE_TOOLTIP": "Megfordítja a karakterek sorrendjét a szövegben.", - "LISTS_CREATE_EMPTY_TITLE": "üres lista", - "LISTS_CREATE_EMPTY_TOOLTIP": "Elemeket nem tartalmazó üres listát ad eredményül", - "LISTS_CREATE_WITH_TOOLTIP": "Listát készít a megadott elemekből.", - "LISTS_CREATE_WITH_INPUT_WITH": "Lista készítés, elemek:", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Add, remove, or reorder sections to reconfigure this list block.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Elem hozzáadása listához.", - "LISTS_REPEAT_TOOLTIP": "A megadtott elem felhasználásával n elemű listát készít", - "LISTS_REPEAT_TITLE": "Lista készítése %1 elemet %2 alkalommal hozzáadva", - "LISTS_LENGTH_TITLE": "%1 lista hossza", - "LISTS_LENGTH_TOOLTIP": "A lista elemszámát adja eredményül.", - "LISTS_ISEMPTY_TITLE": "%1 üres lista?", - "LISTS_ISEMPTY_TOOLTIP": "Az eredmény igaz, ha a lista nem tartalmaz elemeket.", - "LISTS_INLIST": "A(z)", - "LISTS_INDEX_OF_FIRST": "listában első előfordulásaː", - "LISTS_INDEX_OF_LAST": "listában utolsó előfordulásaː", - "LISTS_INDEX_OF_TOOLTIP": "A megadott elem első vagy utolsó előfordulásával tér vissza. Ha nem talál ilyen elemet, akkor %1 a visszatérési érték.", - "LISTS_GET_INDEX_GET": "listából értéke", - "LISTS_GET_INDEX_GET_REMOVE": "listából kivétele", - "LISTS_GET_INDEX_REMOVE": "listából törlése", - "LISTS_GET_INDEX_FROM_START": "az elejétől számított", - "LISTS_GET_INDEX_FROM_END": "a végétől számított", - "LISTS_GET_INDEX_FIRST": "az első", - "LISTS_GET_INDEX_LAST": "az utolsó", - "LISTS_GET_INDEX_RANDOM": "bármely", - "LISTS_GET_INDEX_TAIL": "elemnek", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 az első elemet jelenti.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 az utolsó elemet jelenti.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "A lista megadott sorszámú elemét adja eredményül.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "A lista első elemét adja eredményül.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "A lista utolsó elemét adja eredményül.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "A lista véletlenszerűen választott elemét adja eredményül.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "A megadott sorszámú elem kivétele a listából.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Az első elem kivétele a listából.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Az utolsó elem kivétele a listából.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Véletlenszerűen választott elem kivétele a listából.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "A megadott sorszámú elem törlése a listából.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Az első elem törlése a listából.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Az utolsó elem törlése a listából.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Véletlenszerűen választott elem törlése a listából.", - "LISTS_SET_INDEX_SET": "listába állítsd be", - "LISTS_SET_INDEX_INSERT": "listába szúrd be", - "LISTS_SET_INDEX_INPUT_TO": "elemkéntː", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "A megadott sorszámú elem cseréje a listában.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Az első elem cseréje a listában.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Az utolsó elem cseréje a listában.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Véletlenszerűen választott elem cseréje a listában.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Beszúrás a megadott sorszámú elem elé a listában.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Beszúrás a lista elejére.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Beszúrás a lista végére.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Beszúrás véletlenszerűen választott elem elé a listában.", - "LISTS_GET_SUBLIST_START_FROM_START": "részlistája az elejétől számított", - "LISTS_GET_SUBLIST_START_FROM_END": "részlistája a végétől számított", - "LISTS_GET_SUBLIST_START_FIRST": "részlistája az első", - "LISTS_GET_SUBLIST_END_FROM_START": "és az elejétől számított", - "LISTS_GET_SUBLIST_END_FROM_END": "és a végétől számított", - "LISTS_GET_SUBLIST_END_LAST": "és az utolsó", - "LISTS_GET_SUBLIST_TAIL": "elem között", - "LISTS_GET_SUBLIST_TOOLTIP": "A lista adott részéről másolat.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 %2 %3 rendezés", - "LISTS_SORT_TOOLTIP": "Egy lista egy másolatának rendezése.", - "LISTS_SORT_ORDER_ASCENDING": "növekvő", - "LISTS_SORT_ORDER_DESCENDING": "csökkenő", - "LISTS_SORT_TYPE_NUMERIC": "numerikus", - "LISTS_SORT_TYPE_TEXT": "betűrendben", - "LISTS_SORT_TYPE_IGNORECASE": "betűrendben nagybetű figyelmen kívül hagyásával", - "LISTS_SPLIT_LIST_FROM_TEXT": "lista készítése szövegből", - "LISTS_SPLIT_TEXT_FROM_LIST": "sztring készítése listából", - "LISTS_SPLIT_WITH_DELIMITER": "határoló karakter", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Listát készít a határoló karaktereknél törve a szöveget.", - "LISTS_SPLIT_TOOLTIP_JOIN": "A lista elemeit összefűzi szöveggé a határoló karaktereket is felhasználva.", - "LISTS_REVERSE_MESSAGE0": "%1 megfordítása", - "LISTS_REVERSE_TOOLTIP": "Megfordítja a lista másolatát.", - "ORDINAL_NUMBER_SUFFIX": ".", - "VARIABLES_GET_TOOLTIP": "A változó értékét adja eredményül.", - "VARIABLES_GET_CREATE_SET": "Készíts \"%1=\"", - "VARIABLES_SET": "%1 %2", - "VARIABLES_SET_TOOLTIP": "A változónak adhatunk értéket.", - "VARIABLES_SET_CREATE_GET": "Készíts \"%1\"", - "PROCEDURES_DEFNORETURN_TITLE": "Eljárás", - "PROCEDURES_DEFNORETURN_PROCEDURE": "név", - "PROCEDURES_BEFORE_PARAMS": "paraméterlistaː", - "PROCEDURES_CALL_BEFORE_PARAMS": "paraméterlistaː", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Eljárás (nem ad vissza eredményt).", - "PROCEDURES_DEFNORETURN_COMMENT": "Írj erről a funkcióról...", - "PROCEDURES_DEFRETURN_RETURN": "eredménye", - "PROCEDURES_DEFRETURN_TOOLTIP": "Függvény eredménnyel.", - "PROCEDURES_ALLOW_STATEMENTS": "utasítások engedélyezése", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Figyelem: Az eljárásban azonos elnevezésű paramétert adtál meg.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://hu.wikipedia.org/wiki/F%C3%BCggv%C3%A9ny_(programoz%C3%A1s)", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Végrehajtja az eljárást.", - "PROCEDURES_CALLRETURN_HELPURL": "https://hu.wikipedia.org/wiki/F%C3%BCggv%C3%A9ny_(programoz%C3%A1s)", - "PROCEDURES_CALLRETURN_TOOLTIP": "Meghívja a függvényt.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "paraméterek", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Bemenetek hozzáadása, eltávolítása vagy átrendezése ehhez a függvényhez.", - "PROCEDURES_MUTATORARG_TITLE": "változó:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Bemenet hozzáadása a függvényhez.", - "PROCEDURES_HIGHLIGHT_DEF": "Függvénydefiníció kiemelése", - "PROCEDURES_CREATE_DO": "„%1” létrehozása", - "PROCEDURES_IFRETURN_TOOLTIP": "Ha az érték igaz, akkor visszatér a függvény értékével.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Figyelem: Ez a blokk csak függvénydefiníción belül használható." -} diff --git a/lib/blockly/msg/json/hy.json b/lib/blockly/msg/json/hy.json deleted file mode 100644 index e078123..0000000 --- a/lib/blockly/msg/json/hy.json +++ /dev/null @@ -1,336 +0,0 @@ -{ - "@metadata": { - "authors": [ - "A.kolyan", - "Armenoid", - "Kareyac", - "Nona", - "Xelgen" - ] - }, - "VARIABLES_DEFAULT_NAME": "տարր", - "TODAY": "Այսօր", - "DUPLICATE_BLOCK": "Պատճենել", - "ADD_COMMENT": "Ավելացնել մեկնաբանություն", - "REMOVE_COMMENT": "Հեռացնել մեկնաբանությունը", - "DUPLICATE_COMMENT": "Կրկնօրինակել մեկնաբանությունը", - "EXTERNAL_INPUTS": "Արտաքին մուտքեր", - "INLINE_INPUTS": "Գծային մուտք", - "DELETE_BLOCK": "Ջնջել բլոկը", - "DELETE_X_BLOCKS": "Ջնջել %1 բլոկ", - "DELETE_ALL_BLOCKS": "Ջնջե՞լ բոլոր %1 բլոկները:", - "CLEAN_UP": "Մաքրել բլոկները", - "COLLAPSE_BLOCK": "Կրճատել բլոկը", - "COLLAPSE_ALL": "Քանդել բլոկները", - "EXPAND_BLOCK": "Բացել բլոկը", - "EXPAND_ALL": "Բացել բլոկները", - "DISABLE_BLOCK": "Անջատել բլոկը", - "ENABLE_BLOCK": "Միացնել բլոկը", - "HELP": "Օգնություն", - "UNDO": "Հետ շրջել", - "REDO": "Կրկին անել", - "CHANGE_VALUE_TITLE": "Փոխել նշանակություն:", - "RENAME_VARIABLE": "Վերանվանել փոփոխականը...", - "NEW_VARIABLE": "Ստեղծել փոփոխական...", - "NEW_STRING_VARIABLE": "Ստեղծել տեքստային փոփոխական", - "NEW_NUMBER_VARIABLE": "Ստեղծել թվային փոփոխական", - "NEW_COLOUR_VARIABLE": "Ստեղծել գույնի փոփոխական", - "NEW_VARIABLE_TYPE_TITLE": "Փոփոխականի նոր տիպ", - "NEW_VARIABLE_TITLE": "Նոր փոփոխականի անունը՝", - "VARIABLE_ALREADY_EXISTS": "'%1' անունով փոփոխական արդեն գոյություն ունի", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%1' անունով փոփոխական արդեն գոյություն ունի այլ տիպի համար: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Ջնջե՞լ '%2' փոփոխականի %1 կիրառությունները", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Հնարավոր չի ջնջել %1 փոփոխականը, որովհետև այն '%2' ֆունկցիայի հայտարարման մասն է", - "DELETE_VARIABLE": "Հեռացնել '%1' փոփոխականը", - "COLOUR_PICKER_HELPURL": "https://hy.wikipedia.org/wiki/Գույն", - "COLOUR_PICKER_TOOLTIP": "Ընտրիր գույն ներկապնակից:", - "COLOUR_RANDOM_TITLE": "պատահական գույն", - "COLOUR_RANDOM_TOOLTIP": "Ընտրում է գույն պատահականության սկզբունքով:", - "COLOUR_RGB_TITLE": "գույնը", - "COLOUR_RGB_RED": "կարմիր", - "COLOUR_RGB_GREEN": "կանաչ", - "COLOUR_RGB_BLUE": "կապույտ", - "COLOUR_RGB_TOOLTIP": "Ստեղծում է գույն կարմիրի, կանաչի և կապույտի նշված քանակություններով: Բոլոր արժեքները պետք է լինեն 0-ի և 100-ի միջև:", - "COLOUR_BLEND_TITLE": "խառնել", - "COLOUR_BLEND_COLOUR1": "գույն 1", - "COLOUR_BLEND_COLOUR2": "գույն 2", - "COLOUR_BLEND_RATIO": "հարաբերակցություն", - "COLOUR_BLEND_TOOLTIP": "Խառնում է երկու գույները միմյանց հետ տրված հարաբերակցությամբ (0.0 - 1.0):", - "CONTROLS_REPEAT_TITLE": "կրկնել %1 անգամ", - "CONTROLS_REPEAT_INPUT_DO": "կատարել", - "CONTROLS_REPEAT_TOOLTIP": "Կատարում է որոշ հրահանգներ մի քանի անգամ:", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "կրկնել, քանի դեռ", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "կրկնել, քանի դեռ չի", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Քանի դեռ արժեքը ճշմարիտ է, կատարում է հրահանգները:", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Քանի դեռ արժեքը կեղծ է, կատարում է որոշակի հրահանգներ:", - "CONTROLS_FOR_TOOLTIP": "'%1' փոփոխականին վերագրում է արժեքներ, սկսելով նախնական արժեքից, տրված քայլով և կատարում է նշված հրամանները", - "CONTROLS_FOR_TITLE": "հաշվել %1-ը, %2֊ից մինչև %3, քայլը %4", - "CONTROLS_FOREACH_TITLE": "յուրաքանչյուր %1 էլեմենտի համար %2 ցանկից", - "CONTROLS_FOREACH_TOOLTIP": "Ցանկի յուրաքանչյուր անդամի արժեքը վերագրում է '%1' փոփոխականին և կատարում նշված հրամանները։", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "դուրս գալ ցիկլից", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "անցնել կրկնության հաջորդ կատարմանը", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Դադարեցնում է տվյալ կրկնությունը", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Դադարեցնում կրկնության մնացած մասը և անցնում է հաջորդ քայլին։", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Զգուշացում. Այս բլոկը կարող է օգտագործվել միայն ցիկլի ներսում:", - "CONTROLS_IF_TOOLTIP_1": "Եթե պայմանը ճշմարիտ է, կատարում է որոշ հրահանգներ:", - "CONTROLS_IF_TOOLTIP_2": "Եթե պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում կատարում է հրահանգների երկրորդ բլոկը:", - "CONTROLS_IF_TOOLTIP_3": "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը:", - "CONTROLS_IF_TOOLTIP_4": "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը: Եթե պայմաններից ոչ մեկը ճշմարիտ չեն, ապա կատարում է հրահանգների վերջին բլոկը:", - "CONTROLS_IF_MSG_IF": "եթե", - "CONTROLS_IF_MSG_ELSEIF": "հակառակ դեպքում, եթե", - "CONTROLS_IF_MSG_ELSE": "հակառակ դեպքում", - "CONTROLS_IF_IF_TOOLTIP": "Ավելացնել, հեռացնել կամ փոխել հերթականությունը այս \"եթե\" բլոկը վերակարգավորելու համար։", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Ավելացնում է պայման «եթե» բլոկին:", - "CONTROLS_IF_ELSE_TOOLTIP": "Ավելացնել վերջնական ենթաբլոկ (այն կաշխատի, եթե բոլոր պայմանները կեղծ են)", - "IOS_OK": "Լավ", - "IOS_CANCEL": "Չեղարկել", - "IOS_ERROR": "Սխալ", - "IOS_PROCEDURES_INPUTS": "ՆԵՐՄՈՒԾՈՒՄ", - "IOS_PROCEDURES_ADD_INPUT": "+ Ավելացնել մուտքային փոփոխական", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Թույլատրել արտահայտությունները", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Այս ֆունկցիան կրկնօրինակում է մուտքային փոփոխականները:", - "IOS_VARIABLES_ADD_VARIABLE": "+ Ավելացնել փոփոխական", - "IOS_VARIABLES_ADD_BUTTON": "Ավելացնել", - "IOS_VARIABLES_RENAME_BUTTON": "Վերանվանել", - "IOS_VARIABLES_DELETE_BUTTON": "Ջնջել", - "IOS_VARIABLES_VARIABLE_NAME": "Փոփախականի անունը", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Չես կարող օգտագործել փոփոխականի «դատարկ» անուն", - "LOGIC_COMPARE_HELPURL": "https://hy.wikipedia.org/wiki/Անհավասարություն", - "LOGIC_COMPARE_TOOLTIP_EQ": "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ հավասար են միմյանց:", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ հավասար չեն միմյանց:", - "LOGIC_COMPARE_TOOLTIP_LT": "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքերից առաջինը փոքր է երկրորդից:", - "LOGIC_COMPARE_TOOLTIP_LTE": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը փոքր կամ հավասար է երկրորդին:", - "LOGIC_COMPARE_TOOLTIP_GT": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ է երկրորդից:", - "LOGIC_COMPARE_TOOLTIP_GTE": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ կամ հավասար է երկրորդին:", - "LOGIC_OPERATION_TOOLTIP_AND": "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ ճշմարիտ են:", - "LOGIC_OPERATION_AND": "և", - "LOGIC_OPERATION_TOOLTIP_OR": "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքերից գոնե մեկը ճշմարիտ է:", - "LOGIC_OPERATION_OR": "կամ", - "LOGIC_NEGATE_TITLE": "ոչ %1", - "LOGIC_NEGATE_TOOLTIP": "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքը կեղծ է: Վերադարձնում է կեղծ արժեք, եթե մուտքը ճշմարիտ է:", - "LOGIC_BOOLEAN_TRUE": "ճշմարիտ", - "LOGIC_BOOLEAN_FALSE": "կեղծ", - "LOGIC_BOOLEAN_TOOLTIP": "Վերադարձնում է ճշմարիտ կամ կեղծ արժեք:", - "LOGIC_NULL": "ոչինչ", - "LOGIC_NULL_TOOLTIP": "Վերադարձնում է null (ոչինչ)", - "LOGIC_TERNARY_CONDITION": "ստուգում", - "LOGIC_TERNARY_IF_TRUE": "եթե ճշմարիտ է", - "LOGIC_TERNARY_IF_FALSE": "եթե կեղծ է", - "LOGIC_TERNARY_TOOLTIP": "Ստուգում է ընտրության պայմանը։ Եթե այն ճշմարիտ է, վերադարձնում է առաջին արժեքը, հակառակ դեպքում ՝ երկրորդը։", - "MATH_NUMBER_HELPURL": "https://hy.wikipedia.org/wiki/Թիվ", - "MATH_NUMBER_TOOLTIP": "Թիվ", - "MATH_ARITHMETIC_HELPURL": "https://hy.wikipedia.org/wiki/Թվաբանություն", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Վերադարձնում է երկու թվերի գումարը:", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Վերադարձնում է երկու թվերի տարբերությունը:", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Վերադարձնում է երկու թվերի արտադրյալը", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Վերադարձնում է քանորդը", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Վերադարձնում է առաջին թիվի աստիճանը", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "Քառակուսի արմատ", - "MATH_SINGLE_TOOLTIP_ROOT": "Վերադարձնում է թվի քառակուսի աստիճանը", - "MATH_SINGLE_OP_ABSOLUTE": "բացարձակ", - "MATH_SINGLE_TOOLTIP_ABS": "Վերադարձնում է թվի բացարձակ արժեքը:", - "MATH_SINGLE_TOOLTIP_NEG": "Վերադարձնում է ժխտված թիվը:", - "MATH_SINGLE_TOOLTIP_LN": "Վերադարձնում է թվի բնական լոգարիթմը:", - "MATH_SINGLE_TOOLTIP_LOG10": "Վերադարձնում է թվի 10 հիմքով լոգարիթմը:", - "MATH_SINGLE_TOOLTIP_EXP": "Վերադարձնում է թվի աստիճանը։", - "MATH_SINGLE_TOOLTIP_POW10": "Վերադարձնում է 10֊ի նշված աստիճանը։", - "MATH_TRIG_HELPURL": "https://hy.wikipedia.org/wiki/Եռանկյունաչափական_ֆունկցիաներ", - "MATH_TRIG_TOOLTIP_SIN": "Վերադարձնում է անկյան սինուսը աստիճաններով(ոչ ռադիաններով):", - "MATH_TRIG_TOOLTIP_COS": "Վերադարձնում է անկյան կոսինուսը աստիճաններով (ոչ ռադիաններով):", - "MATH_TRIG_TOOLTIP_TAN": "Վերադարձնում է անկյան տանգենսը աստիճաններով (ոչ ռադիաններով):", - "MATH_TRIG_TOOLTIP_ASIN": "Վերադարձնում է թվի արկսինուսը(աստիճաններով):", - "MATH_TRIG_TOOLTIP_ACOS": "Վերադարձնում է թվի արկկոսինուսը:", - "MATH_TRIG_TOOLTIP_ATAN": "Վերադարձնում է թվի արկտանգենսը:", - "MATH_CONSTANT_HELPURL": "https://hy.wikipedia.org/wiki/Մաթեմատիկական_հաստատուն", - "MATH_CONSTANT_TOOLTIP": "Վերադարձնում է տարածված հաստատուններից մեկը՝ π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), կամ ∞ (անվերջություն):", - "MATH_IS_EVEN": "զույգ է", - "MATH_IS_ODD": "կենտ է", - "MATH_IS_PRIME": "պարզ է", - "MATH_IS_WHOLE": "ամբողջ է", - "MATH_IS_POSITIVE": "դրական է", - "MATH_IS_NEGATIVE": "բացասական է", - "MATH_IS_DIVISIBLE_BY": "բաժանվում է", - "MATH_IS_TOOLTIP": "Ստուգում է, թե թիվը զույգ է, կենտ է, պարզ է, ամբողջ է, դրական է, բացասական է կամ թե այն բաժանվում է որոշակի թվի վրա: Վերադարձնում է ճշմարիտ կամ կեղծ:", - "MATH_CHANGE_TITLE": "փոխել %1-ի արժեքը %2֊ով", - "MATH_CHANGE_TOOLTIP": "Ավելացնում է թիվ %1 փոփոխականին:", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Կլորացում", - "MATH_ROUND_TOOLTIP": "Կլորացնում է թիվը վերև կամ ներքև:", - "MATH_ROUND_OPERATOR_ROUND": "կլորացնել", - "MATH_ROUND_OPERATOR_ROUNDUP": "կլորացնել վեր", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "կլորացնել ցած", - "MATH_ONLIST_OPERATOR_SUM": "ցանկի գումարը", - "MATH_ONLIST_TOOLTIP_SUM": "Վերադարձնում է ցանկի բոլոր թվերի գումարը:", - "MATH_ONLIST_OPERATOR_MIN": "ցանկի նվազագույնը", - "MATH_ONLIST_TOOLTIP_MIN": "Վերադարձնում է ցանկի արժեքներից նվազագույնը", - "MATH_ONLIST_OPERATOR_MAX": "ցանկի առավելագույնը", - "MATH_ONLIST_TOOLTIP_MAX": "Վերադարձնում է ցանկի արժեքներից առավելագույնը", - "MATH_ONLIST_OPERATOR_AVERAGE": "ցանկի միջինը", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Վերադարձնում է ցանկում գտնվող արժեքների թվաբանական միջինը", - "MATH_ONLIST_OPERATOR_MEDIAN": "ցանկի միջնարժեք", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Վերադարձնում է ցանկի միջնարժեք:", - "MATH_ONLIST_OPERATOR_MODE": "ցանկի մոդան", - "MATH_ONLIST_TOOLTIP_MODE": "Վերադարձնում է ցանկի առավել հաճախ հանդիպող անդամների ցանկը։", - "MATH_ONLIST_OPERATOR_STD_DEV": "ցանկի ստանդարտ շեղում", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Վերադարձնում է ցանկի ստանդարտ շեղումը:", - "MATH_ONLIST_OPERATOR_RANDOM": "ցանկի պատահական տարր", - "MATH_ONLIST_TOOLTIP_RANDOM": "Վերադարձնում է պատահական տարր ցանկից:", - "MATH_MODULO_TITLE": "%1֊ի և %2֊ի բաժանման մնացորդը", - "MATH_MODULO_TOOLTIP": "Վերադարձնում է երկու թվերի բաժանման մնացորդը:", - "MATH_CONSTRAIN_TITLE": "սահմանափակել %1֊ը %2֊ի և %3֊ի միջև", - "MATH_CONSTRAIN_TOOLTIP": "Սահմանափակել թիվը երկու արժեքներով (ներառյալ)", - "MATH_RANDOM_INT_TITLE": "պատահական ամբողջ թիվ %1 -ից %2 -ը", - "MATH_RANDOM_INT_TOOLTIP": "Վերադարձնում է պատահական ամբողջ թիվ տրված երկու թվերի միջև (ներառյալ):", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Պատահական_թվերի_գեներատոր", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "պատահական կոտորակ", - "MATH_RANDOM_FLOAT_TOOLTIP": "Վերադարձնում է պատահական թիվ 0.0-ից (ներառյալ) 1.0 միջակայքից:", - "MATH_ATAN2_TITLE": "X:%1 Y:%2 ֊ի atan2֊ը", - "MATH_ATAN2_TOOLTIP": "Վերադարձնում է (X, Y) կետի արկտանգենսը աստիճաններով -180-ից մինչև 180:", - "TEXT_TEXT_TOOLTIP": "Տառ, բառ կամ տեքստի տող:", - "TEXT_JOIN_TITLE_CREATEWITH": "ստեղծել տեքստ", - "TEXT_JOIN_TOOLTIP": "Ստեղծում է տեքստի մաս՝ միմյանց կցելով ցանկացած քանակությամբ տարրեր:", - "TEXT_CREATE_JOIN_TITLE_JOIN": "կցել", - "TEXT_CREATE_JOIN_TOOLTIP": "Այս տեքստային բլոկը վերակառուցելու համար ավելացրու, հեռացրու կամ փոխիր բաժինների հերթականությունը", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Ավելացնել էլեմենտ տեքստին:", - "TEXT_APPEND_TITLE": "%1֊ին կցել %2 տեքստը", - "TEXT_APPEND_TOOLTIP": "Կցել տեքստ '%1' փոփոխականին", - "TEXT_LENGTH_TITLE": "%1 -ի երկարությունը", - "TEXT_LENGTH_TOOLTIP": "Վերադարձնում է տրված տեքստի տառերի քանակը (ներառյալ բացատները)", - "TEXT_ISEMPTY_TITLE": "%1 -ը դատարկ է", - "TEXT_ISEMPTY_TOOLTIP": "Վերադարձնում է ճշմարիտ արժեք, եթե տրամադրված տեքստը դատարկ է:", - "TEXT_INDEXOF_TOOLTIP": "Վերադարձնում է առաջին տեքստի հանդիպման առաջին(կամ վերջին) դիրքը երկրորդ տեքստում։ Վերադարձնում %1 եթե տեքստը չի գտնվել։", - "TEXT_INDEXOF_TITLE": "Տեքստում %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "գտնել տեքստի առաջին հանդիպումը", - "TEXT_INDEXOF_OPERATOR_LAST": "գտնել տեքստի վերջին հանդիպումը", - "TEXT_CHARAT_TITLE": "տեքստում %1 %2", - "TEXT_CHARAT_FROM_START": "վերցնել տառ №", - "TEXT_CHARAT_FROM_END": "վերցնել տառ № վերջից", - "TEXT_CHARAT_FIRST": "վերցնել առաջին տառը", - "TEXT_CHARAT_LAST": "վերցնել վերջին տառ", - "TEXT_CHARAT_RANDOM": "վերցնել պատահական տառ", - "TEXT_CHARAT_TOOLTIP": "Վերադարձնում է նշված դիրքի տառը", - "TEXT_GET_SUBSTRING_TOOLTIP": "Վերադարձնում է տեքստի նշված մասը։", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "տեքստում", - "TEXT_GET_SUBSTRING_START_FROM_START": "տալիս է ենթատող սկսելով # տառից", - "TEXT_GET_SUBSTRING_START_FROM_END": "տալիս է ենթատող # տառից սկսած, վերջից", - "TEXT_GET_SUBSTRING_START_FIRST": "տալիս է ենթատող առաջին տառից", - "TEXT_GET_SUBSTRING_END_FROM_START": "մինչև # տառը", - "TEXT_GET_SUBSTRING_END_FROM_END": "մինչև # տառը, վերջից", - "TEXT_GET_SUBSTRING_END_LAST": "մինչև վերջին տառը", - "TEXT_CHANGECASE_TOOLTIP": "Վերադարձնում է տեքստի կրկնօրինակը, ՄԵԾԱՏԱՌԵՐՈՎ կամ փոքրատառերով", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "բերել ՄԵԾԱՏԱՌԵՐԻ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "բերել փոքրատառերի", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "բերել Սկզբնա Մեծատառերի", - "TEXT_TRIM_TOOLTIP": "Վերադարձնում է տեքստի կրկնօրինակը, առանց սկզբի կամ/և վերջի բացատների։", - "TEXT_TRIM_OPERATOR_BOTH": "կտրում է բացատները երկու կողմերից", - "TEXT_TRIM_OPERATOR_LEFT": "կտրում է բացատները ձախ կողմից", - "TEXT_TRIM_OPERATOR_RIGHT": "կտրում է բացատները աջ կողմից", - "TEXT_PRINT_TITLE": "տպել %1", - "TEXT_PRINT_TOOLTIP": "Տպում է նշված տեքստը, թիվը կամ այլ արժեք․", - "TEXT_PROMPT_TYPE_TEXT": "հարցնել տեքստ, հուշումով", - "TEXT_PROMPT_TYPE_NUMBER": "հացնել թիվ, հուշումով", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Հարցնել թիվ օգտատիրոջից։", - "TEXT_PROMPT_TOOLTIP_TEXT": "Հարցնել տեքստ օգտատիրոջից։", - "TEXT_COUNT_MESSAGE0": "հաշվել %1 %2֊ում", - "TEXT_COUNT_TOOLTIP": "Հաշվել, թե քանի անգամ է տեքստը հանդիպում մեկ այլ տեքստի մեջ։", - "TEXT_REPLACE_MESSAGE0": "փոխարինել %1֊ը %2֊ով %3֊ում", - "TEXT_REPLACE_TOOLTIP": "Փոխարինել տեքստի բոլոր գտնված տարբերակները մեկ այլ տեսքով։", - "TEXT_REVERSE_MESSAGE0": "շրջել %1", - "TEXT_REVERSE_TOOLTIP": "Փոխում է տեքստում տառերի հաջորդականությունը։", - "LISTS_CREATE_EMPTY_TITLE": "ստեղծել դատարկ ցանկ", - "LISTS_CREATE_EMPTY_TOOLTIP": "Վերադարձնում է 0 երկարությամբ ցանկ, որը տվյալներ չի պարունակում:", - "LISTS_CREATE_WITH_TOOLTIP": "Ստեղծում է ցանկ ցանկացած քանակությամբ տվյալներով:", - "LISTS_CREATE_WITH_INPUT_WITH": "ստեղծել ցանկ", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "ցանկ", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Այս ցանկ բլոկը վերակառուցելու համար ավելացրու, հեռացրու կամ փոխիր բաժինների հաջորդականությունը։", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Ավելացնել տարր ցանկին:", - "LISTS_REPEAT_TOOLTIP": "Տրված արժեքը նշված քանակով կրկնելու միջոցով, ստեղծում է ցանկ։", - "LISTS_REPEAT_TITLE": "ստեղծել ցանկ, %1 արժեքը կրկնելով %2 անգամ", - "LISTS_LENGTH_TITLE": "%1֊ի երկարությունը", - "LISTS_LENGTH_TOOLTIP": "Վերադարձնում է ցանկի երկարությունը:", - "LISTS_ISEMPTY_TITLE": "%1 դատարկ է", - "LISTS_ISEMPTY_TOOLTIP": "Վերադարձնում է \"ճշմարիտ\" եթե ցանկը դատարկ է։", - "LISTS_INLIST": "ցանկում", - "LISTS_INDEX_OF_FIRST": "գտնել անդամի առաջին հանդիպման դիրքը", - "LISTS_INDEX_OF_LAST": "գտնել անդամի վերջին հանդիպման դիրքը", - "LISTS_INDEX_OF_TOOLTIP": "Վերադարձնում է ցանկում անդամի առաջին/վերջին հանդիպման դիրքը։ Վերադարձնում է %1, եթե անդամը չի գտնվել։", - "LISTS_GET_INDEX_GET": "վերցնել", - "LISTS_GET_INDEX_GET_REMOVE": "վերցնել և հեռացնել", - "LISTS_GET_INDEX_REMOVE": "հեռացնել", - "LISTS_GET_INDEX_FROM_END": "№ վերջից", - "LISTS_GET_INDEX_FIRST": "առաջինը", - "LISTS_GET_INDEX_LAST": "վերջինը", - "LISTS_GET_INDEX_RANDOM": "պատահական", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 առաջին տարրն է:", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 վերջին տարրն է:", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Վերադարձնում է նշված դիրքում գտնվող անդամը ցանկից։", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Վերադարձնում է ցանկի առաջին տարրը:", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Վերադարձնում է ցանկի վերջին տարրը:", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Վերադարձնում է ցանկի պատահական տարր:", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Հեռացնում և վերադարձնում է նշված դիրքում գտնվող անդամը ցանկից։", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Հեռացնում և վերադարձնում է ցանկի առաջին տարրը:", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Հեռացնում և վերադարձնում է ցանկի վերջին տարրը:", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Հեռացնում և վերադարձնում է ցանկի պատահական տարր:", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Ցանկից հեռացնում է նշված դիրքում գտնվող անդամը։", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Հեռացնում է ցանկի առաջին տարրը:", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Հեռացնում է ցանկի վերջին տարրը:", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Հեռացնում է ցանկից պատահական տարր:", - "LISTS_SET_INDEX_SET": "դնել", - "LISTS_SET_INDEX_INSERT": "ներմուծել", - "LISTS_SET_INDEX_INPUT_TO": "որպես", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Տեղադրում է անդամը ցանկի նշված դիրքում։", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Սահմանում է ցանկի առաջին տարրը:", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Սահմանում է ցանկի վերջին տարրը:", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Սահմանում է ցանկից պատահական տարր:", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ներմուծում է անդամը ցանկի նշված դիրքում։", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ներմուծում է անդամը ցանկի սկզբում։", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ավելացնում է անդամ ցանկի վերջում։", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Ներմուծում է անդամը ցանկի պատահական դիրքում։", - "LISTS_GET_SUBLIST_START_FROM_START": "վերցնել ենթացանկ, սկսած #", - "LISTS_GET_SUBLIST_START_FROM_END": "վերցնել ենթացանկ, սկսած # վերջից", - "LISTS_GET_SUBLIST_START_FIRST": "վերցնել ենթա֊ցանկ սկզբից", - "LISTS_GET_SUBLIST_END_FROM_START": "մինչև #", - "LISTS_GET_SUBLIST_END_FROM_END": "մինչև # վերջից", - "LISTS_GET_SUBLIST_END_LAST": "մինչև վերջ", - "LISTS_GET_SUBLIST_TOOLTIP": "Ստեղծում է ցանկի նշված մասի պատճենը։", - "LISTS_SORT_TITLE": "դասավորել %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Դասավորում է ցանկի պատճենը", - "LISTS_SORT_ORDER_ASCENDING": "աճման կարգ", - "LISTS_SORT_ORDER_DESCENDING": "նվազման կարգ", - "LISTS_SORT_TYPE_NUMERIC": "թվային կարգ", - "LISTS_SORT_TYPE_TEXT": "այբբենական կարգ", - "LISTS_SORT_TYPE_IGNORECASE": "այբենական, անտեսել ռեգիստրը", - "LISTS_SPLIT_LIST_FROM_TEXT": "ստեղծել ցանկ տեքստից", - "LISTS_SPLIT_TEXT_FROM_LIST": "ստեղծել տեքստ ցանկից", - "LISTS_SPLIT_WITH_DELIMITER": "բաժանարարով", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Տեքստը վեր է ածվում ցանկի, նշված բաժանարարով։", - "LISTS_SPLIT_TOOLTIP_JOIN": "Ցանկից ստեղծվում է միացյալ տեքստ, ցանկի անդամները միացվում են բաժանարարներով։", - "LISTS_REVERSE_MESSAGE0": "շրջել %1", - "LISTS_REVERSE_TOOLTIP": "Շրջում է ցանկի պատճենը։", - "VARIABLES_GET_TOOLTIP": "Վերադարձնում է այս փոփոխականի արժեքը:", - "VARIABLES_GET_CREATE_SET": "Ստեղծել 'վերագրել %1'", - "VARIABLES_SET": "վերագրել %1֊ին %2 արժեքը", - "VARIABLES_SET_TOOLTIP": "Փոփոխականին վերագրում է ներմուծված արժեքը։", - "VARIABLES_SET_CREATE_GET": "ստեղծել 'ստանալ %1'", - "PROCEDURES_DEFNORETURN_TITLE": "ֆունկցիա", - "PROCEDURES_DEFNORETURN_PROCEDURE": "կատարել որևէ բան", - "PROCEDURES_BEFORE_PARAMS": "պարամետրերի ցանկ՝", - "PROCEDURES_CALL_BEFORE_PARAMS": "պարամետրերի ցանկ՝", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Ստեղծում է ֆունկցիա, որը արժեք չի վերադարձնում:", - "PROCEDURES_DEFNORETURN_COMMENT": "Նկարագրիր այս ֆունկցիան...", - "PROCEDURES_DEFRETURN_RETURN": "վերադարձնել", - "PROCEDURES_DEFRETURN_TOOLTIP": "Ստեղծում է ֆունկցիա, որը վերադարձնում է արժեք:", - "PROCEDURES_ALLOW_STATEMENTS": "թույլատրել արտահայտությունները", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Զգուշացում։ Այս ֆունկցիան ունի կրկնվող պարամտերեր։", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Կատարում է %1 ֆունկցիան", - "PROCEDURES_CALLRETURN_TOOLTIP": "Կատարում է '%1' ֆունկցիան և օգտագործում դրա արդյունքը։", - "PROCEDURES_MUTATORCONTAINER_TITLE": "մուտքեր", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Ավելացնել, հեռացնել կամ վերադասավորել է այս ֆունկցիայի մուտքերը (պարամետրերը)։", - "PROCEDURES_MUTATORARG_TITLE": "մուտքի անուն՝", - "PROCEDURES_MUTATORARG_TOOLTIP": "Ֆունկցիային ավելալցնել մուտք (պարամետր)։", - "PROCEDURES_HIGHLIGHT_DEF": "Ընդգծել ֆունկցիայի հայտարարումը", - "PROCEDURES_CREATE_DO": "Ստեղծել '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Եթե արժեքը ճշմարիտ է, վերադարձնում է երկորդ արժեքը:", - "PROCEDURES_IFRETURN_WARNING": "Զգուշացում. Այս բլոկը կարող է օգտագործվել միայն ֆունկցիայի սահմանման ներսում:", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Մի բան ասա ․․․" -} diff --git a/lib/blockly/msg/json/ia.json b/lib/blockly/msg/json/ia.json deleted file mode 100644 index ae3b534..0000000 --- a/lib/blockly/msg/json/ia.json +++ /dev/null @@ -1,335 +0,0 @@ -{ - "@metadata": { - "authors": [ - "McDutchie", - "Karmwiki", - "Fanjiayi" - ] - }, - "VARIABLES_DEFAULT_NAME": "cosa", - "TODAY": "Hodie", - "DUPLICATE_BLOCK": "Duplicar", - "ADD_COMMENT": "Adder commento", - "REMOVE_COMMENT": "Remover commento", - "DUPLICATE_COMMENT": "Duplicar commento", - "EXTERNAL_INPUTS": "Entrata externe", - "INLINE_INPUTS": "Entrata interne", - "DELETE_BLOCK": "Deler bloco", - "DELETE_X_BLOCKS": "Deler %1 blocos", - "DELETE_ALL_BLOCKS": "Deler tote le %1 blocos?", - "CLEAN_UP": "Rangiar le blocos", - "COLLAPSE_BLOCK": "Plicar bloco", - "COLLAPSE_ALL": "Plicar blocos", - "EXPAND_BLOCK": "Displicar bloco", - "EXPAND_ALL": "Displicar blocos", - "DISABLE_BLOCK": "Disactivar bloco", - "ENABLE_BLOCK": "Activar bloco", - "HELP": "Adjuta", - "UNDO": "Disfacer", - "REDO": "Refacer", - "CHANGE_VALUE_TITLE": "Cambiar valor:", - "RENAME_VARIABLE": "Renominar variabile...", - "RENAME_VARIABLE_TITLE": "Renominar tote le variabiles '%1' a:", - "NEW_VARIABLE": "Crear variabile...", - "NEW_STRING_VARIABLE": "Crear variabile textual...", - "NEW_NUMBER_VARIABLE": "Crear variabile numeric...", - "NEW_COLOUR_VARIABLE": "Crear variabile de color...", - "NEW_VARIABLE_TYPE_TITLE": "Nove typo de variabile:", - "NEW_VARIABLE_TITLE": "Nomine del nove variabile:", - "VARIABLE_ALREADY_EXISTS": "Un variabile con le nomine '%1' jam existe.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Un variabile con le nomine '%1' jam existe pro un altere typo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Deler %1 usos del variabile '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Impossibile deler le variabile '%1' perque illo face parte del definition del function '%2'", - "DELETE_VARIABLE": "Deler le variabile '%1'", - "COLOUR_PICKER_HELPURL": "https://ia.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Elige un color del paletta.", - "COLOUR_RANDOM_TITLE": "color aleatori", - "COLOUR_RANDOM_TOOLTIP": "Eliger un color al hasardo.", - "COLOUR_RGB_TITLE": "colorar con", - "COLOUR_RGB_RED": "rubie", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "blau", - "COLOUR_RGB_TOOLTIP": "Crear un color con le quantitate specificate de rubie, verde e blau. Tote le valores debe esser inter 0 e 100.", - "COLOUR_BLEND_TITLE": "miscer", - "COLOUR_BLEND_COLOUR1": "color 1", - "COLOUR_BLEND_COLOUR2": "color 2", - "COLOUR_BLEND_RATIO": "ration", - "COLOUR_BLEND_TOOLTIP": "Misce duo colores con un ration specificate (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repeter %1 vices", - "CONTROLS_REPEAT_INPUT_DO": "face", - "CONTROLS_REPEAT_TOOLTIP": "Exequer certe instructiones plure vices.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repeter durante que", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repeter usque a", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Durante que un valor es ver, exequer certe instructiones.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Durante que un valor es false, exequer certe instructiones.", - "CONTROLS_FOR_TOOLTIP": "Mitter in le variabile '%1' le valores ab le numero initial usque al numero final, con passos secundo le intervallo specificate, e exequer le blocos specificate.", - "CONTROLS_FOR_TITLE": "contar con %1 de %2 a %3 per %4", - "CONTROLS_FOREACH_TITLE": "pro cata elemento %1 in lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Pro cata elemento in un lista, mitter lo in le variabile '%1' e exequer certe instructiones.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "escappar del bucla", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continuar con le proxime iteration del bucla", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Escappar del bucla continente.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Saltar le resto de iste bucla e continuar con le proxime iteration.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Attention: Iste bloco pote solmente esser usate in un bucla.", - "CONTROLS_IF_TOOLTIP_1": "Si un valor es ver, exequer certe instructiones.", - "CONTROLS_IF_TOOLTIP_2": "Si un valor es ver, exequer le prime bloco de instructiones. Si non, exequer le secunde bloco de instructiones.", - "CONTROLS_IF_TOOLTIP_3": "Si le prime valor es ver, exequer le prime bloco de instructiones. Si non, si le secunde valor es ver, exequer le secunde bloco de instructiones.", - "CONTROLS_IF_TOOLTIP_4": "Si le prime valor es ver, exequer le prime bloco de instructiones. Si non, si le secunde valor es ver, exequer le secunde bloco de instructiones. Si necun del valores es ver, exequer le ultime bloco de instructiones.", - "CONTROLS_IF_MSG_IF": "si", - "CONTROLS_IF_MSG_ELSEIF": "si non si", - "CONTROLS_IF_MSG_ELSE": "si non", - "CONTROLS_IF_IF_TOOLTIP": "Adde, remove o reordina sectiones pro reconfigurar iste bloco \"si\".", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Adder un condition al bloco \"si\".", - "CONTROLS_IF_ELSE_TOOLTIP": "Adder un condition final de reserva al bloco \"si\".", - "IOS_OK": "OK", - "IOS_CANCEL": "Cancellar", - "IOS_ERROR": "Error", - "IOS_PROCEDURES_INPUTS": "ENTRATAS", - "IOS_PROCEDURES_ADD_INPUT": "+ Adder entrata", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permitter declarationes", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Iste function ha entratas duplicate.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Adder variabile", - "IOS_VARIABLES_ADD_BUTTON": "Adder", - "IOS_VARIABLES_RENAME_BUTTON": "Renominar", - "IOS_VARIABLES_DELETE_BUTTON": "Deler", - "IOS_VARIABLES_VARIABLE_NAME": "Nomine del variabile", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Non es possibile usar un nomine de variabile vacue.", - "LOGIC_COMPARE_HELPURL": "https://ia.wikipedia.org/wiki/Inequalitate_(mathematica)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Retornar ver si le duo entratas es equal.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Retornar ver si le duo entratas non es equal.", - "LOGIC_COMPARE_TOOLTIP_LT": "Retornar ver si le prime entrata es minor que le secunde.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Retornar ver si le prime entrata es minor que o equal al secunde.", - "LOGIC_COMPARE_TOOLTIP_GT": "Retornar ver si le prime entrata es major que le secunde.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Retornar ver si le prime entrata es major que o equal al secunde.", - "LOGIC_OPERATION_TOOLTIP_AND": "Retornar ver si ambe entratas es ver.", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_TOOLTIP_OR": "Retornar ver si al minus un del entratas es ver.", - "LOGIC_OPERATION_OR": "o", - "LOGIC_NEGATE_TITLE": "non %1", - "LOGIC_NEGATE_TOOLTIP": "Retornar ver si le entrata es false. Retornar false si le entrata es ver.", - "LOGIC_BOOLEAN_TRUE": "ver", - "LOGIC_BOOLEAN_FALSE": "false", - "LOGIC_BOOLEAN_TOOLTIP": "Retorna o ver o false.", - "LOGIC_NULL": "nulle", - "LOGIC_NULL_TOOLTIP": "Retorna nulle.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "si ver", - "LOGIC_TERNARY_IF_FALSE": "si false", - "LOGIC_TERNARY_TOOLTIP": "Verificar le condition in 'test'. Si le condition es ver, retorna le valor de 'si ver'; si non, retorna le valor de 'si false'.", - "MATH_NUMBER_HELPURL": "https://ia.wikipedia.org/wiki/Numero", - "MATH_NUMBER_TOOLTIP": "Un numero.", - "MATH_ARITHMETIC_HELPURL": "https://ia.wikipedia.org/wiki/Arithmetica", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Retornar le summa del duo numeros.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Retornar le differentia del duo numeros.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Retornar le producto del duo numeros.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Retornar le quotiente del duo numeros.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Retornar le prime numero elevate al potentia del secunde numero.", - "MATH_SINGLE_HELPURL": "https://ia.wikipedia.org/wiki/Radice_quadrate", - "MATH_SINGLE_OP_ROOT": "radice quadrate", - "MATH_SINGLE_TOOLTIP_ROOT": "Retornar le radice quadrate de un numero.", - "MATH_SINGLE_OP_ABSOLUTE": "absolute", - "MATH_SINGLE_TOOLTIP_ABS": "Retornar le valor absolute de un numero.", - "MATH_SINGLE_TOOLTIP_NEG": "Retornar le negation de un numero.", - "MATH_SINGLE_TOOLTIP_LN": "Retornar le logarithmo natural de un numero.", - "MATH_SINGLE_TOOLTIP_LOG10": "Retornar le logarithmo in base 10 del numero.", - "MATH_SINGLE_TOOLTIP_EXP": "Retornar e elevate al potentia del numero.", - "MATH_SINGLE_TOOLTIP_POW10": "Retornar 10 elevate al potentia de un numero.", - "MATH_TRIG_TOOLTIP_SIN": "Retornar le sino de un grado (non radiano).", - "MATH_TRIG_TOOLTIP_COS": "Retornar le cosino de un grado (non radiano).", - "MATH_TRIG_TOOLTIP_TAN": "Retornar le tangente de un grado (non radiano).", - "MATH_TRIG_TOOLTIP_ASIN": "Retornar le arcosino de un numero.", - "MATH_TRIG_TOOLTIP_ACOS": "Retornar le arcocosino de un numero.", - "MATH_TRIG_TOOLTIP_ATAN": "Retornar le arcotangente de un numero.", - "MATH_CONSTANT_HELPURL": "https://ia.wikipedia.org/wiki/Constante_mathematic", - "MATH_CONSTANT_TOOLTIP": "Retornar un del constantes commun: π (3,141…), e (2,718…), φ (1,618…), sqrt(2) (1,414…), sqrt(½) (0,707…) o ∞ (infinite).", - "MATH_IS_EVEN": "es par", - "MATH_IS_ODD": "es impare", - "MATH_IS_PRIME": "es prime", - "MATH_IS_WHOLE": "es integre", - "MATH_IS_POSITIVE": "es positive", - "MATH_IS_NEGATIVE": "es negative", - "MATH_IS_DIVISIBLE_BY": "es divisibile per", - "MATH_IS_TOOLTIP": "Verificar si un numero es par, impare, prime, integre, positive, negative, o divisibile per un certe numero. Retorna ver o false.", - "MATH_CHANGE_TITLE": "cambiar %1 per %2", - "MATH_CHANGE_TOOLTIP": "Adder un numero al variabile '%1'.", - "MATH_ROUND_HELPURL": "https://ia.wikipedia.org/wiki/Rotundamento", - "MATH_ROUND_TOOLTIP": "Arrotundar un numero a supra o a infra.", - "MATH_ROUND_OPERATOR_ROUND": "arrotundar", - "MATH_ROUND_OPERATOR_ROUNDUP": "arrotundar a supra", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arrotundar a infra", - "MATH_ONLIST_OPERATOR_SUM": "summa del lista", - "MATH_ONLIST_TOOLTIP_SUM": "Retornar le summa de tote le numeros in le lista.", - "MATH_ONLIST_OPERATOR_MIN": "minimo del lista", - "MATH_ONLIST_TOOLTIP_MIN": "Retornar le numero le plus parve in le lista.", - "MATH_ONLIST_OPERATOR_MAX": "maximo del lista", - "MATH_ONLIST_TOOLTIP_MAX": "Retornar le numero le plus grande in le lista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "media del lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Retornar le media arithmetic del valores numeric in le lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana del lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Retornar le numero median del lista.", - "MATH_ONLIST_OPERATOR_MODE": "modas del lista", - "MATH_ONLIST_TOOLTIP_MODE": "Retornar un lista del elemento(s) le plus commun in le lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "deviation standard del lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Retornar le deviation standard del lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "elemento aleatori del lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Retornar un elemento aleatori del lista.", - "MATH_MODULO_TITLE": "resto de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Retornar le resto del division del duo numeros.", - "MATH_CONSTRAIN_TITLE": "limitar %1 inter %2 e %3", - "MATH_CONSTRAIN_TOOLTIP": "Limitar un numero a esser inter le limites specificate (incluse).", - "MATH_RANDOM_INT_TITLE": "numero integre aleatori inter %1 e %2", - "MATH_RANDOM_INT_TOOLTIP": "Retornar un numero integre aleatori inter le duo limites specificate, incluse.", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fraction aleatori", - "MATH_RANDOM_FLOAT_TOOLTIP": "Retornar un fraction aleatori inter 0.0 (incluse) e 1.0 (excluse).", - "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Retornar le arco tangente del puncto (X, Y) in grados de -180 a 180.", - "TEXT_TEXT_TOOLTIP": "Un littera, parola o linea de texto.", - "TEXT_JOIN_TITLE_CREATEWITH": "crear texto con", - "TEXT_JOIN_TOOLTIP": "Crear un pecia de texto uniente un certe numero de elementos.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unir", - "TEXT_CREATE_JOIN_TOOLTIP": "Adde, remove o reordina sectiones pro reconfigurar iste bloco de texto.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Adder un elemento al texto.", - "TEXT_APPEND_TITLE": "a %1 adjunger texto %2", - "TEXT_APPEND_TOOLTIP": "Adjunger un texto al variabile '%1'.", - "TEXT_LENGTH_TITLE": "longitude de %1", - "TEXT_LENGTH_TOOLTIP": "Retorna le numero de litteras (incluse spatios) in le texto fornite.", - "TEXT_ISEMPTY_TITLE": "%1 es vacue", - "TEXT_ISEMPTY_TOOLTIP": "Retorna ver si le texto fornite es vacue.", - "TEXT_INDEXOF_TOOLTIP": "Retorna le indice del prime/ultime occurrentia del prime texto in le secunde texto. Retorna %1 si le texto non es trovate.", - "TEXT_INDEXOF_TITLE": "in le texto %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "cercar le prime occurrentia del texto", - "TEXT_INDEXOF_OPERATOR_LAST": "cercar le ultime occurrentia del texto", - "TEXT_CHARAT_TITLE": "in le texto %1 %2", - "TEXT_CHARAT_FROM_START": "prender le littera №", - "TEXT_CHARAT_FROM_END": "prender ab le fin le littera №", - "TEXT_CHARAT_FIRST": "prender le prime littera", - "TEXT_CHARAT_LAST": "prender le ultime littera", - "TEXT_CHARAT_RANDOM": "prender un littera aleatori", - "TEXT_CHARAT_TOOLTIP": "Retorna le littera presente al position specificate.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Retorna le parte specificate del texto.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in le texto", - "TEXT_GET_SUBSTRING_START_FROM_START": "prender subcatena ab le littera №", - "TEXT_GET_SUBSTRING_START_FROM_END": "prender subcatena ab le fin ab le littera №", - "TEXT_GET_SUBSTRING_START_FIRST": "prender subcatena ab le prime littera", - "TEXT_GET_SUBSTRING_END_FROM_START": "usque al littera №", - "TEXT_GET_SUBSTRING_END_FROM_END": "ab le fin usque al littera №", - "TEXT_GET_SUBSTRING_END_LAST": "usque al ultime littera", - "TEXT_CHANGECASE_TOOLTIP": "Retornar un copia del texto con differente majusculas/minusculas.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "in MAJUSCULAS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "in minusculas", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "con Initiales Majuscule", - "TEXT_TRIM_TOOLTIP": "Retornar un copia del texto con spatios eliminate de un extremitate o ambes.", - "TEXT_TRIM_OPERATOR_BOTH": "remover spatios de ambe lateres de", - "TEXT_TRIM_OPERATOR_LEFT": "remover spatios del sinistre latere de", - "TEXT_TRIM_OPERATOR_RIGHT": "remover spatios del dextre latere de", - "TEXT_PRINT_TITLE": "scriber %1", - "TEXT_PRINT_TOOLTIP": "Scriber le texto, numero o altere valor specificate.", - "TEXT_PROMPT_TYPE_TEXT": "peter un texto con le message", - "TEXT_PROMPT_TYPE_NUMBER": "peter un numero con le message", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Peter un numero al usator.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Peter un texto al usator.", - "TEXT_COUNT_MESSAGE0": "contar %1 in %2", - "TEXT_COUNT_TOOLTIP": "Contar quante vices un texto occurre intra un altere texto.", - "TEXT_REPLACE_MESSAGE0": "reimplaciar %1 per %2 in %3", - "TEXT_REPLACE_TOOLTIP": "Reimplaciar tote le occurrentias de un texto intra un altere texto.", - "TEXT_REVERSE_MESSAGE0": "inverter %1", - "TEXT_REVERSE_TOOLTIP": "Inverte le ordine del characteres in le texto.", - "LISTS_CREATE_EMPTY_TITLE": "crear un lista vacue", - "LISTS_CREATE_EMPTY_TOOLTIP": "Retorna un lista, de longitude 0, sin datos.", - "LISTS_CREATE_WITH_TOOLTIP": "Crear un lista con un numero qualcunque de elementos.", - "LISTS_CREATE_WITH_INPUT_WITH": "crear lista con", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Adde, remove o reordina sectiones pro reconfigurar iste bloco de listas.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Adder un elemento al lista.", - "LISTS_REPEAT_TOOLTIP": "Crea un lista que contine le valor fornite, repetite le numero specificate de vices.", - "LISTS_REPEAT_TITLE": "crear lista con elemento %1 repetite %2 vices", - "LISTS_LENGTH_TITLE": "longitude de %1", - "LISTS_LENGTH_TOOLTIP": "Retorna le longitude de un lista.", - "LISTS_ISEMPTY_TITLE": "%1 es vacue", - "LISTS_ISEMPTY_TOOLTIP": "Retorna ver si le lista es vacue.", - "LISTS_INLIST": "in lista", - "LISTS_INDEX_OF_FIRST": "cercar le prime occurrentia del elemento", - "LISTS_INDEX_OF_LAST": "cercar le ultime occurrentia del elemento", - "LISTS_INDEX_OF_TOOLTIP": "Retorna le indice del prime/ultime occurrentia del elemento in le lista. Retorna %1 si le elemento non es trovate.", - "LISTS_GET_INDEX_GET": "prender", - "LISTS_GET_INDEX_GET_REMOVE": "prender e remover", - "LISTS_GET_INDEX_REMOVE": "remover", - "LISTS_GET_INDEX_FROM_END": "№ ab fin", - "LISTS_GET_INDEX_FIRST": "prime", - "LISTS_GET_INDEX_LAST": "ultime", - "LISTS_GET_INDEX_RANDOM": "aleatori", - "LISTS_INDEX_FROM_START_TOOLTIP": "№ %1 es le prime elemento.", - "LISTS_INDEX_FROM_END_TOOLTIP": "№ %1 es le ultime elemento.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Retorna le elemento presente al position specificate in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Retorna le prime elemento in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Retorna le ultime elemento in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Retorna un elemento aleatori in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Remove e retorna le elemento presente al position specificate in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Remove e retorna le prime elemento in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Remove e retorna le ultime elemento in un lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Remove e retorna un elemento aleatori in un lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Remove le elemento presente al position specificate in un lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Remove le prime elemento in un lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Remove le ultime elemento in un lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Remove un elemento aleatori in un lista.", - "LISTS_SET_INDEX_SET": "mitter", - "LISTS_SET_INDEX_INSERT": "inserer in", - "LISTS_SET_INDEX_INPUT_TO": "a", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Defini le valor del elemento al position specificate in un lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Defini le valor del prime elemento in un lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Defini le valor del ultime elemento in un lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Defini le valor de un elemento aleatori in un lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Insere le elemento al position specificate in un lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Insere le elemento al initio de un lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Adjunge le elemento al fin de un lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Insere le elemento a un position aleatori in un lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "prender sublista ab №", - "LISTS_GET_SUBLIST_START_FROM_END": "prender sublista ab le fin ab №", - "LISTS_GET_SUBLIST_START_FIRST": "prender sublista ab initio", - "LISTS_GET_SUBLIST_END_FROM_START": "usque al №", - "LISTS_GET_SUBLIST_END_FROM_END": "usque al № ab fin", - "LISTS_GET_SUBLIST_END_LAST": "usque al ultime", - "LISTS_GET_SUBLIST_TOOLTIP": "Crea un copia del parte specificate de un lista.", - "LISTS_SORT_TITLE": "ordinamento %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ordinar un copia de un lista.", - "LISTS_SORT_ORDER_ASCENDING": "ascendente", - "LISTS_SORT_ORDER_DESCENDING": "descendente", - "LISTS_SORT_TYPE_NUMERIC": "numeric", - "LISTS_SORT_TYPE_TEXT": "alphabetic", - "LISTS_SORT_TYPE_IGNORECASE": "alphabetic, ignorar majuscula/minuscula", - "LISTS_SPLIT_LIST_FROM_TEXT": "crear lista ab texto", - "LISTS_SPLIT_TEXT_FROM_LIST": "crear texto ab lista", - "LISTS_SPLIT_WITH_DELIMITER": "con delimitator", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Divider texto in un lista de textos, separante lo a cata delimitator.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Unir un lista de textos, separate per un delimitator, in un sol texto.", - "LISTS_REVERSE_MESSAGE0": "inverter %1", - "LISTS_REVERSE_TOOLTIP": "Inverter un copia de un lista.", - "VARIABLES_GET_TOOLTIP": "Retorna le valor de iste variabile.", - "VARIABLES_GET_CREATE_SET": "Crea 'mitter %1'", - "VARIABLES_SET": "mitter %1 a %2", - "VARIABLES_SET_TOOLTIP": "Mitte iste variabile al valor del entrata.", - "VARIABLES_SET_CREATE_GET": "Crear 'prender %1'", - "PROCEDURES_DEFNORETURN_TITLE": "pro", - "PROCEDURES_DEFNORETURN_PROCEDURE": "facer qualcosa", - "PROCEDURES_BEFORE_PARAMS": "con:", - "PROCEDURES_CALL_BEFORE_PARAMS": "con:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Crea un function que non retorna un valor.", - "PROCEDURES_DEFNORETURN_COMMENT": "Describe iste function...", - "PROCEDURES_DEFRETURN_RETURN": "retornar", - "PROCEDURES_DEFRETURN_TOOLTIP": "Crea un function que retorna un valor.", - "PROCEDURES_ALLOW_STATEMENTS": "permitter declarationes", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Attention: Iste function ha parametros duplicate.", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Executar le function '%1' definite per le usator.", - "PROCEDURES_CALLRETURN_TOOLTIP": "Executar le function '%1' definite per le usator e usar su resultato.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entratas", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Adder, remover o reordinar le entratas pro iste function.", - "PROCEDURES_MUTATORARG_TITLE": "nomine del entrata:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Adder un entrata al function.", - "PROCEDURES_HIGHLIGHT_DEF": "Accentuar le definition del function", - "PROCEDURES_CREATE_DO": "Crear '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Si un valor es ver, alora retornar un secunde valor.", - "PROCEDURES_IFRETURN_WARNING": "Attention: Iste bloco pote solmente esser usate in le definition de un function.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Dice qualcosa...", - "COLLAPSED_WARNINGS_WARNING": "Blocos plicate contine advertimentos." -} diff --git a/lib/blockly/msg/json/id.json b/lib/blockly/msg/json/id.json deleted file mode 100644 index 87e28d8..0000000 --- a/lib/blockly/msg/json/id.json +++ /dev/null @@ -1,333 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Kenrick95", - "아라", - "Mirws", - "Marwan Mohamad", - "Kasimtan", - "Arifin.wijaya" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "TODAY": "Hari ini", - "DUPLICATE_BLOCK": "Duplikat", - "ADD_COMMENT": "Tambahkan Komentar", - "REMOVE_COMMENT": "Hapus Komentar", - "EXTERNAL_INPUTS": "Input Eksternal", - "INLINE_INPUTS": "Input Inline", - "DELETE_BLOCK": "Hapus Blok", - "DELETE_X_BLOCKS": "Hapus %1 Blok", - "DELETE_ALL_BLOCKS": "Hapus semua %1 blok?", - "CLEAN_UP": "Bersihkan Blok", - "COLLAPSE_BLOCK": "Ciutkan Blok", - "COLLAPSE_ALL": "Ciutkan Blok", - "EXPAND_BLOCK": "Kembangkan Blok", - "EXPAND_ALL": "Kembangkan Blok", - "DISABLE_BLOCK": "Nonaktifkan Blok", - "ENABLE_BLOCK": "Aktifkan Blok", - "HELP": "Bantuan", - "UNDO": "Urungkan", - "REDO": "Lakukan ulang", - "CHANGE_VALUE_TITLE": "Ubah nilai:", - "RENAME_VARIABLE": "Ubah nama variabel...", - "RENAME_VARIABLE_TITLE": "Ubah nama semua variabel '%1' menjadi:", - "NEW_VARIABLE": "Buat variabel...", - "NEW_VARIABLE_TITLE": "Nama variabel baru:", - "VARIABLE_ALREADY_EXISTS": "Sebuah variabel dengan nama '%1' sudah ada.", - "DELETE_VARIABLE_CONFIRMATION": "Hapus %1 yang digunakan pada variabel '%2'?", - "DELETE_VARIABLE": "Hapus variabel '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Pilih warna dari daftar warna.", - "COLOUR_RANDOM_TITLE": "Warna acak", - "COLOUR_RANDOM_TOOLTIP": "Pilih warna secara acak.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "Dengan warna", - "COLOUR_RGB_RED": "merah", - "COLOUR_RGB_GREEN": "hijau", - "COLOUR_RGB_BLUE": "biru", - "COLOUR_RGB_TOOLTIP": "Buatlah warna dengan jumlah yang ditentukan dari merah, hijau dan biru. Semua nilai harus antarai 0 sampai 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "campur", - "COLOUR_BLEND_COLOUR1": "warna 1", - "COLOUR_BLEND_COLOUR2": "warna 2", - "COLOUR_BLEND_RATIO": "rasio", - "COLOUR_BLEND_TOOLTIP": "Campur dua warna secara bersamaan dengan perbandingan (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ulangi %1 kali", - "CONTROLS_REPEAT_INPUT_DO": "kerjakan", - "CONTROLS_REPEAT_TOOLTIP": "Lakukan beberapa perintah beberapa kali.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ulangi jika", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ulangi sampai", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Selagi nilainya benar, maka lakukan beberapa perintah.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Selagi nilainya salah, maka lakukan beberapa perintah.", - "CONTROLS_FOR_TOOLTIP": "Menggunakan variabel \"%1\" dengan mengambil nilai dari batas awal hingga ke batas akhir, dengan interval tertentu, dan mengerjakan block tertentu.", - "CONTROLS_FOR_TITLE": "Cacah dengan %1 dari %2 ke %3 dengan step / penambahan %4", - "CONTROLS_FOREACH_TITLE": "untuk setiap item %1 di dalam list %2", - "CONTROLS_FOREACH_TOOLTIP": "Untuk tiap-tiap item di dalam list, tetapkan variabel '%1' ke dalam item, selanjutnya kerjakan beberapa statement.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "keluar dari perulangan", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "lanjutkan dengan langkah perulangan berikutnya", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Keluar dari perulangan.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Abaikan sisa dari perulangan ini, dan lanjutkan dengan langkah berikutnya.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Peringatan: Blok ini hanya dapat digunakan dalam perulangan.", - "CONTROLS_IF_TOOLTIP_1": "Jika nilainya benar, maka lakukan beberapa perintah.", - "CONTROLS_IF_TOOLTIP_2": "Jika nilainya benar, maka kerjakan perintah blok pertama. Jika tidak, kerjakan perintah blok kedua.", - "CONTROLS_IF_TOOLTIP_3": "Jika nilai pertama benar, maka kerjakan perintah blok pertama. Sebaliknya, jika nilai kedua benar, kerjakan perintah blok kedua.", - "CONTROLS_IF_TOOLTIP_4": "Jika nilai pertama benar, maka kerjakan perintah blok pertama. Sebaliknya, jika nilai kedua benar, kerjakan perintah blok kedua. Jika dua-duanya tidak benar, kerjakan perintah blok terakhir.", - "CONTROLS_IF_MSG_IF": "jika", - "CONTROLS_IF_MSG_ELSEIF": "atau jika", - "CONTROLS_IF_MSG_ELSE": "lainnya", - "CONTROLS_IF_IF_TOOLTIP": "Tambahkan, hapus, atau susun kembali bagian untuk mengkonfigurasi blok IF ini.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Tambahkan prasyarat ke dalam blok IF.", - "CONTROLS_IF_ELSE_TOOLTIP": "Terakhir, tambahkan kondisi tangkap-semua kedalam blok IF.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Kembalikan benar jika kedua input sama satu dengan lainnya.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Kembalikan benar jika kedua input tidak sama satu dengan lainnya.", - "LOGIC_COMPARE_TOOLTIP_LT": "Kembalikan benar jika input pertama lebih kecil dari input kedua.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Kembalikan benar jika input pertama lebih kecil atau sama dengan input kedua .", - "LOGIC_COMPARE_TOOLTIP_GT": "Kembalikan benar jika input pertama lebih besar dari input kedua.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Kembalikan benar jika input pertama lebih besar dari atau sama dengan input kedua.", - "LOGIC_OPERATION_TOOLTIP_AND": "Kembalikan benar jika kedua input adalah benar.", - "LOGIC_OPERATION_AND": "dan", - "LOGIC_OPERATION_TOOLTIP_OR": "Kembalikan benar jika minimal satu input nilainya benar.", - "LOGIC_OPERATION_OR": "atau", - "LOGIC_NEGATE_TITLE": "bukan (not) %1", - "LOGIC_NEGATE_TOOLTIP": "Kembalikan benar jika input salah. Kembalikan salah jika input benar.", - "LOGIC_BOOLEAN_TRUE": "benar", - "LOGIC_BOOLEAN_FALSE": "salah", - "LOGIC_BOOLEAN_TOOLTIP": "Kembalikan benar atau salah.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Kembalikan null.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "jika benar", - "LOGIC_TERNARY_IF_FALSE": "jika salah", - "LOGIC_TERNARY_TOOLTIP": "Periksa kondisi di 'test'. Jika kondisi benar, kembalikan nilai 'if true'; jika sebaliknya kembalikan nilai 'if false'.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Suatu angka.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://id.wikipedia.org/wiki/Aritmetika", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Kembalikan jumlah dari kedua angka.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Kembalikan selisih dari kedua angka.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Kembalikan perkalian dari kedua angka.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Kembalikan hasil bagi dari kedua angka.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Kembalikan angka pertama pangkat angka kedua.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "akar", - "MATH_SINGLE_TOOLTIP_ROOT": "Kembalikan akar dari angka.", - "MATH_SINGLE_OP_ABSOLUTE": "mutlak", - "MATH_SINGLE_TOOLTIP_ABS": "Kembalikan nilai absolut angka.", - "MATH_SINGLE_TOOLTIP_NEG": "Kembalikan penyangkalan terhadap angka.", - "MATH_SINGLE_TOOLTIP_LN": "Kembalikan logaritma natural dari angka.", - "MATH_SINGLE_TOOLTIP_LOG10": "Kembalikan dasar logaritma 10 dari angka.", - "MATH_SINGLE_TOOLTIP_EXP": "Kembalikan 10 pangkat angka.", - "MATH_SINGLE_TOOLTIP_POW10": "Kembalikan 10 pangkat angka.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Kembalikan sinus dari derajat (bukan radian).", - "MATH_TRIG_TOOLTIP_COS": "Kembalikan cosinus dari derajat (bukan radian).", - "MATH_TRIG_TOOLTIP_TAN": "Kembalikan tangen dari derajat (bukan radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Kembalikan asin dari angka.", - "MATH_TRIG_TOOLTIP_ACOS": "Kembalikan acosine dari angka.", - "MATH_TRIG_TOOLTIP_ATAN": "Kembalikan atan dari angka.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Kembalikan salah satu konstanta: π (3,141…), e (2,718…), φ (1,618…), akar(2) (1,414…), akar(½) (0.707…), atau ∞ (tak terhingga).", - "MATH_IS_EVEN": "adalah bilangan genap", - "MATH_IS_ODD": "adalah bilangan ganjil", - "MATH_IS_PRIME": "adalah bilangan pokok", - "MATH_IS_WHOLE": "adalah bilangan bulat", - "MATH_IS_POSITIVE": "adalah bilangan positif", - "MATH_IS_NEGATIVE": "adalah bilangan negatif", - "MATH_IS_DIVISIBLE_BY": "dapat dibagi oleh", - "MATH_IS_TOOLTIP": "Periksa apakah angka adalah bilangan genap, bilangan ganjil, bilangan pokok, bilangan bulat, bilangan positif, bilangan negatif, atau apakan bisa dibagi oleh angka tertentu. Kembalikan benar atau salah.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "ubah %1 oleh %2", - "MATH_CHANGE_TOOLTIP": "Tambahkan angka kedalam variabel '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Bulatkan suatu bilangan naik atau turun.", - "MATH_ROUND_OPERATOR_ROUND": "membulatkan", - "MATH_ROUND_OPERATOR_ROUNDUP": "membulatkan keatas", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "membulatkan kebawah", - "MATH_ONLIST_OPERATOR_SUM": "jumlah dari list", - "MATH_ONLIST_TOOLTIP_SUM": "Kembalikan jumlah dari seluruh bilangan dari list.", - "MATH_ONLIST_OPERATOR_MIN": "minimum dari list", - "MATH_ONLIST_TOOLTIP_MIN": "Kembalikan angka terkecil dari list.", - "MATH_ONLIST_OPERATOR_MAX": "maksimum dari list", - "MATH_ONLIST_TOOLTIP_MAX": "Kembalikan angka terbesar dari list.", - "MATH_ONLIST_OPERATOR_AVERAGE": "rata-rata dari list", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Kembalikan rata-rata (mean aritmetik) dari nilai numerik dari list.", - "MATH_ONLIST_OPERATOR_MEDIAN": "median dari list", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Kembalikan median dari list.", - "MATH_ONLIST_OPERATOR_MODE": "mode-mode dari list", - "MATH_ONLIST_TOOLTIP_MODE": "Kembalikan list berisi item yang paling umum dari dalam list.", - "MATH_ONLIST_OPERATOR_STD_DEV": "deviasi standar dari list", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Kembalikan standard deviasi dari list.", - "MATH_ONLIST_OPERATOR_RANDOM": "item acak dari list", - "MATH_ONLIST_TOOLTIP_RANDOM": "Kembalikan elemen acak dari list.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "sisa dari %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Kembalikan sisa dari pembagian ke dua angka.", - "MATH_CONSTRAIN_TITLE": "Batasi %1 rendah %2 tinggi %3", - "MATH_CONSTRAIN_TOOLTIP": "Batasi angka antara batas yang ditentukan (inklusif).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "acak bulat dari %1 sampai %2", - "MATH_RANDOM_INT_TOOLTIP": "Kembalikan bilangan acak antara dua batas yang ditentukan, inklusif.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "nilai pecahan acak", - "MATH_RANDOM_FLOAT_TOOLTIP": "Kembalikan nilai pecahan acak antara 0.0 (inklusif) dan 1.0 (eksklusif).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Huruf, kata atau baris teks.", - "TEXT_JOIN_TITLE_CREATEWITH": "buat teks dengan", - "TEXT_JOIN_TOOLTIP": "Buat teks dengan cara gabungkan sejumlah item.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "join", - "TEXT_CREATE_JOIN_TOOLTIP": "Tambah, ambil, atau susun ulang teks blok.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Tambahkan suatu item ke dalam teks.", - "TEXT_APPEND_TITLE": "untuk %1 tambahkan teks %2", - "TEXT_APPEND_TOOLTIP": "Tambahkan beberapa teks ke variabel '%1'.", - "TEXT_LENGTH_TITLE": "panjang dari %1", - "TEXT_LENGTH_TOOLTIP": "Kembalikan sejumlah huruf (termasuk spasi) dari teks yang disediakan.", - "TEXT_ISEMPTY_TITLE": "%1 kosong", - "TEXT_ISEMPTY_TOOLTIP": "Kembalikan benar jika teks yang disediakan kosong.", - "TEXT_INDEXOF_TOOLTIP": "Kembalikan indeks pertama dan terakhir dari kejadian pertama/terakhir dari teks pertama dalam teks kedua. Kembalikan %1 jika teks tidak ditemukan.", - "TEXT_INDEXOF_TITLE": "dalam teks %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "temukan kejadian pertama dalam teks", - "TEXT_INDEXOF_OPERATOR_LAST": "temukan kejadian terakhir dalam teks", - "TEXT_CHARAT_FROM_START": "ambil huruf ke #", - "TEXT_CHARAT_FROM_END": "ambil huruf nomor # dari belakang", - "TEXT_CHARAT_FIRST": "ambil huruf pertama", - "TEXT_CHARAT_LAST": "ambil huruf terakhir", - "TEXT_CHARAT_RANDOM": "ambil huruf secara acak", - "TEXT_CHARAT_TOOLTIP": "Kembalikan karakter dari posisi tertentu.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Kembalikan spesifik bagian dari teks.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in teks", - "TEXT_GET_SUBSTRING_START_FROM_START": "ambil bagian teks (substring) dari huruf no #", - "TEXT_GET_SUBSTRING_START_FROM_END": "ambil bagian teks (substring) dari huruf ke # dari terakhir", - "TEXT_GET_SUBSTRING_START_FIRST": "ambil bagian teks (substring) dari huruf pertama", - "TEXT_GET_SUBSTRING_END_FROM_START": "pada huruf #", - "TEXT_GET_SUBSTRING_END_FROM_END": "pada huruf nomer # dari terakhir", - "TEXT_GET_SUBSTRING_END_LAST": "pada huruf terakhir", - "TEXT_CHANGECASE_TOOLTIP": "Kembalikan kopi dari text dengan kapitalisasi yang berbeda.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "menjadi huruf kapital", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "menjadi huruf kecil", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "menjadi huruf pertama kapital", - "TEXT_TRIM_TOOLTIP": "Kembali salinan teks dengan spasi dihapus dari satu atau kedua ujungnya.", - "TEXT_TRIM_OPERATOR_BOTH": "pangkas ruang dari kedua belah sisi", - "TEXT_TRIM_OPERATOR_LEFT": "pangkas ruang dari sisi kiri", - "TEXT_TRIM_OPERATOR_RIGHT": "pangkas ruang dari sisi kanan", - "TEXT_PRINT_TITLE": "cetak %1", - "TEXT_PRINT_TOOLTIP": "Cetak teks yant ditentukan, angka atau ninlai lainnya.", - "TEXT_PROMPT_TYPE_TEXT": "meminta teks dengan pesan", - "TEXT_PROMPT_TYPE_NUMBER": "Meminta angka dengan pesan", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Meminta pengguna untuk memberi sebuah angka.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Meminta pengguna untuk memberi beberapa teks.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "buat list kosong", - "LISTS_CREATE_EMPTY_TOOLTIP": "Kembalikan list, dengan panjang 0, tidak berisi data", - "LISTS_CREATE_WITH_TOOLTIP": "Buat sebuah list dengan sejumlah item.", - "LISTS_CREATE_WITH_INPUT_WITH": "buat list dengan", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "list", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Tambahkan, hapus, atau susun ulang bagian untuk mengkonfigurasi blok list ini.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Tambahkan sebuah item ke list.", - "LISTS_REPEAT_TOOLTIP": "Buat sebuah list yang terdiri dari nilai yang diberikan diulang sebanyak jumlah yang ditentukan.", - "LISTS_REPEAT_TITLE": "buat list dengan item %1 diulang %2 kali", - "LISTS_LENGTH_TITLE": "panjang dari %1", - "LISTS_LENGTH_TOOLTIP": "Kembalikan panjang list.", - "LISTS_ISEMPTY_TITLE": "%1 kosong", - "LISTS_ISEMPTY_TOOLTIP": "Kembalikan benar jika list kosong.", - "LISTS_INLIST": "dalam list", - "LISTS_INDEX_OF_FIRST": "cari kejadian pertama item", - "LISTS_INDEX_OF_LAST": "cari kejadian terakhir item", - "LISTS_INDEX_OF_TOOLTIP": "Kembalikan indeks dari item pertama/terakhir kali muncul dalam list. Kembalikan %1 jika item tidak ditemukan.", - "LISTS_GET_INDEX_GET": "dapatkan", - "LISTS_GET_INDEX_GET_REMOVE": "dapatkan dan hapus", - "LISTS_GET_INDEX_REMOVE": "Hapus", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# dari akhir", - "LISTS_GET_INDEX_FIRST": "pertama", - "LISTS_GET_INDEX_LAST": "terakhir", - "LISTS_GET_INDEX_RANDOM": "acak", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 adalah item pertama.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 adalah item terakhir.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Kembalikan item di posisi tertentu dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Kembalikan item pertama dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Kembalikan item terakhir dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Kembalikan item acak dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Hapus dan kembalikan item di posisi tertentu dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Hapus dan kembalikan item pertama dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Hapus dan kembalikan item terakhir dalam list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Hapus dan kembalikan item acak dalam list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Hapus item di posisi tertentu dalam list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Hapus item pertama dalam list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Hapus item terakhir dalam list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Hapus sebuah item acak dalam list.", - "LISTS_SET_INDEX_SET": "tetapkan", - "LISTS_SET_INDEX_INSERT": "sisipkan di", - "LISTS_SET_INDEX_INPUT_TO": "sebagai", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Tetapkan item ke dalam posisi yang telah ditentukan di dalam list.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Tetapkan item pertama di dalam list.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Menetapkan item terakhir dalam list.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Tetapkan secara acak sebuah item dalam list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Sisipkan item ke dalam posisi yang telah ditentukan di dalam list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Sisipkan item di bagian awal dari list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Tambahkan item ke bagian akhir list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Sisipkan item secara acak ke dalam list.", - "LISTS_GET_SUBLIST_START_FROM_START": "dapatkan sub-list dari #", - "LISTS_GET_SUBLIST_START_FROM_END": "dapatkan sub-list dari nomor # dari akhir", - "LISTS_GET_SUBLIST_START_FIRST": "dapatkan sub-list dari pertama", - "LISTS_GET_SUBLIST_END_FROM_START": "ke #", - "LISTS_GET_SUBLIST_END_FROM_END": "ke # dari akhir", - "LISTS_GET_SUBLIST_END_LAST": "ke yang paling akhir", - "LISTS_GET_SUBLIST_TOOLTIP": "Buat salinan bagian tertentu dari list.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "urutkan %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Urutkan salinan dari daftar", - "LISTS_SORT_ORDER_ASCENDING": "menaik", - "LISTS_SORT_ORDER_DESCENDING": "menurun", - "LISTS_SORT_TYPE_NUMERIC": "sesuai nomor", - "LISTS_SORT_TYPE_TEXT": "sesuai abjad", - "LISTS_SORT_TYPE_IGNORECASE": "sesuai abjad, abaikan kasus", - "LISTS_SPLIT_LIST_FROM_TEXT": "buat list dari teks", - "LISTS_SPLIT_TEXT_FROM_LIST": "buat teks dari list", - "LISTS_SPLIT_WITH_DELIMITER": "dengan pembatas", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Membagi teks ke dalam daftar teks, pisahkan pada setiap pembatas.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Gabung daftar teks menjadi satu teks, yang dipisahkan oleh pembatas.", - "VARIABLES_GET_TOOLTIP": "Kembalikan nilai variabel ini.", - "VARIABLES_GET_CREATE_SET": "Buat 'set %1'", - "VARIABLES_SET": "tetapkan %1 untuk %2", - "VARIABLES_SET_TOOLTIP": "tetapkan variabel ini dengan input yang sama.", - "VARIABLES_SET_CREATE_GET": "Buat 'get %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "untuk", - "PROCEDURES_DEFNORETURN_PROCEDURE": "buat sesuatu", - "PROCEDURES_BEFORE_PARAMS": "dengan:", - "PROCEDURES_CALL_BEFORE_PARAMS": "dengan:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Buat sebuah fungsi tanpa output.", - "PROCEDURES_DEFNORETURN_COMMENT": "Jelaskan fungsi ini...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "kembali", - "PROCEDURES_DEFRETURN_TOOLTIP": "Buat sebuah fungsi dengan satu output.", - "PROCEDURES_ALLOW_STATEMENTS": "memungkinkan pernyataan", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Peringatan: Fungsi ini memiliki parameter duplikat.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Menjalankan fungsi '%1' yang ditetapkan pengguna.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "Menjalankan fungsi '%1' yang ditetapkan pengguna dan menggunakan outputnya.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "input", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Menambah, menghapus, atau menyusun ulang masukan untuk fungsi ini.", - "PROCEDURES_MUTATORARG_TITLE": "masukan Nama:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Tambahkan masukan ke fungsi.", - "PROCEDURES_HIGHLIGHT_DEF": "Sorot definisi fungsi", - "PROCEDURES_CREATE_DO": "Buat '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Jika nilai yang benar, kemudian kembalikan nilai kedua.", - "PROCEDURES_IFRETURN_WARNING": "Peringatan: Blok ini dapat digunakan hanya dalam definisi fungsi." -} diff --git a/lib/blockly/msg/json/ig.json b/lib/blockly/msg/json/ig.json deleted file mode 100644 index 7f4fc2b..0000000 --- a/lib/blockly/msg/json/ig.json +++ /dev/null @@ -1,343 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Mapmeld", - "Ukabia" - ] - }, - "VARIABLES_DEFAULT_NAME": "ihe", - "TODAY": "Taa", - "DUPLICATE_BLOCK": "Ntụgharị", - "ADD_COMMENT": "Tịnye okwu", - "REMOVE_COMMENT": "Wepu okwu", - "DUPLICATE_COMMENT": "Tụgharịa okwu", - "EXTERNAL_INPUTS": "Ntinye Mpụta", - "INLINE_INPUTS": "Ntinye N'ahịrị", - "DELETE_BLOCK": "Kpochapụ Ngọngọ", - "DELETE_X_BLOCKS": "Kpochapụ %1 Ngọngọ", - "DELETE_ALL_BLOCKS": "Mkpọchi %1 ngọngọ niile?", - "CLEAN_UP": "Hichapụ ngọngọ", - "COLLAPSE_BLOCK": "Kwada Ngọngọ", - "COLLAPSE_ALL": "Kwada Ngọngọ", - "EXPAND_BLOCK": "Gbasaa Ngọngọ", - "EXPAND_ALL": "Gbasaa Ngọngọ", - "DISABLE_BLOCK": "Gbanyụọ Ngọngọ", - "ENABLE_BLOCK": "Gbanye Ngọngọ", - "HELP": "Enyemaka", - "UNDO": "Me la àzụ", - "REDO": "Megharịa", - "CHANGE_VALUE_TITLE": "Gbanwee akara:", - "RENAME_VARIABLE": "Nyegharịa agbanwe aha...", - "RENAME_VARIABLE_TITLE": "Nyegharịa agbanwe '%1' nille ga:", - "NEW_VARIABLE": "Mepụta agbanwe...", - "NEW_STRING_VARIABLE": "Mepụta njikọ agbanwe...", - "NEW_NUMBER_VARIABLE": "Mepụta nọmba agbanwe...", - "NEW_COLOUR_VARIABLE": "Mepụta agba agbanwe...", - "NEW_VARIABLE_TYPE_TITLE": "Ụdị agbanwe ọhụụ:", - "NEW_VARIABLE_TITLE": "Aha agbanwe ọhụụ:", - "VARIABLE_ALREADY_EXISTS": "Agbanwe akpọrọ '%1' dị adị.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Agbanwe akpọrọ '%1' dị adị na ụdị ozo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Kpochapụ %1 ojịjị nke agbanwe '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Agaghị ekpochapụlị agbanwe '%1' maka nsonye ya na nkọwa nke ọrụ ahụ '%2'", - "DELETE_VARIABLE": "Kpochapụ agbanwe ‘%1' ahu", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Họrọ agba site na palette.", - "COLOUR_RANDOM_TITLE": "agba ọbụla", - "COLOUR_RANDOM_TOOLTIP": "Họrọ agba na-nke ọbụla.", - "COLOUR_RGB_TITLE": "agba ya na", - "COLOUR_RGB_RED": "uhie", - "COLOUR_RGB_GREEN": "akwụkwọ ndụ", - "COLOUR_RGB_BLUE": "bluu", - "COLOUR_RGB_TOOLTIP": "Mepụta agba nwere ọnụ ọgụgụ kpọmkwem nke agba uhie, akwụkwọ ndụ, na akara niile ga-adịrịrị n'etiti 0 rụọ 100.", - "COLOUR_BLEND_TITLE": "ngwakọta", - "COLOUR_BLEND_COLOUR1": "agba 1", - "COLOUR_BLEND_COLOUR2": "agba 2", - "COLOUR_BLEND_RATIO": "oke", - "COLOUR_BLEND_TOOLTIP": "Na ngwakọta agba abụọ ọnụ na na oke enyere (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "meghachi ụgbọ %1", - "CONTROLS_REPEAT_INPUT_DO": "mee", - "CONTROLS_REPEAT_TOOLTIP": "Mee ụfọdụ okwu ọtụtụ ugboro.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "megharịa mgbe", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "megharịa tụpụ", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Ọ bụ ebe akara bụ ezịọkwụ, megharịa ụfọdụ koodu.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Ọ bụ ebe akara bụ ụgha, megharịa ụfọdụ koodu.", - "CONTROLS_FOR_TOOLTIP": "Nwere ngwakọta '%1' na akara ọbụla sịte na mbịdo ọnụọgụgụ rụọ na ngwụcha ọnụọgụgụ, na-ngụta sịtere na nkeji oge kpọmkwem. megharịa koodu oge ọbụla:", - "CONTROLS_FOR_TITLE": "gụọ na %1 site na %2 rụọ %3 tupu %4", - "CONTROLS_FOREACH_TITLE": "maka ihe ọ bụla %1 n'ime ndepụta %2", - "CONTROLS_FOREACH_TOOLTIP": "Maka ihe ọ bụla n'ime ndepụta, debe agbanwe '%1' na ihe ahụ, wee degharịa ụfọdụ koodu.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "gbapuo na meghachi a", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "malite na nsoghari nke meghachi ozo", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Gba puo na gburugburu nke ọdị n’ime ya.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Wụọ mkpụchị meghachi ndị a fọdụrụ, ma gaa n'ihu na nsoghari nke aka.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Ịdọ aka ná ntị: Enwere ike iji ngọngọ a naanị n'ime meghachi.", - "CONTROLS_IF_TOOLTIP_1": "Ọ bụrụ na akara bụ ezịọkwụ, mezie ụfọdụ okwu.", - "CONTROLS_IF_TOOLTIP_2": "Ọ bụrụ na akara bụ ezịọkwụ, mezie ngọngọ mbụ nke okwu. Ma ọ bụghị ya, mezie ngọngọ nke abụọ nke okwu.", - "CONTROLS_IF_TOOLTIP_3": "Ọ bụrụ na akara mbụ bụ ezịọkwụ, mezie ngọngọ mbụ nke okwu. Ma ọ bụghị ya, ọ bụrụ na akara nke abụọ bụ ezịọkwụ, mee ngọngọ nke abụọ nke okwu.", - "CONTROLS_IF_TOOLTIP_4": "Ọ bụrụ na akara mbụ bụ ezịọkwụ, mezie ngọngọ mbụ nke okwu. Ma ọ bụghị ya, ọ bụrụ na akara nke abụọ bụ ezịọkwụ, mee ngọngọ nke abụọ nke okwu. Ọ bụrụ na onweghị akara bụ ezịọkwụ, mee ngọngọ okwu ikpeazụ.", - "CONTROLS_IF_MSG_IF": "ọ bụrụ", - "CONTROLS_IF_MSG_ELSEIF": "ọzọ ma ọ bụrụ", - "CONTROLS_IF_MSG_ELSE": "ọzọ", - "CONTROLS_IF_IF_TOOLTIP": "Tinye, wepu, ma ọ bụ megharia ngalaba iji haziearịa nke a ma ọ bụrụ na ngọngọ.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Tinye ọnọdụ na ngọngọ ma ọ bụrụ.", - "CONTROLS_IF_ELSE_TOOLTIP": "Tinye ngwucha, ọnọdụ jide-niile na ngọngọ ma ọ bụrụ.", - "IOS_OK": "Ọ DỊ MMA", - "IOS_CANCEL": "Hapụ̀", - "IOS_ERROR": "Njehie", - "IOS_PROCEDURES_INPUTS": "NTINYE", - "IOS_PROCEDURES_ADD_INPUT": "+ Tinye ntinye", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Kwe ka okwu", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ọrụ a nwere ọnụọgụ abụọ.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Tinye agbanwe", - "IOS_VARIABLES_ADD_BUTTON": "Tinye", - "IOS_VARIABLES_RENAME_BUTTON": "Nyegharịa aha", - "IOS_VARIABLES_DELETE_BUTTON": "Kpochapụ", - "IOS_VARIABLES_VARIABLE_NAME": "Aha agbanwe", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ị nweghị ike iji aha agbanwe dị n’efu.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye hatara onwe ha.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye aghataghị onwe ha.", - "LOGIC_COMPARE_TOOLTIP_LT": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị obere karia ntinye nke abụọ.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị obere karia ma ọ bụ hatara ntinye nke abụọ.", - "LOGIC_COMPARE_TOOLTIP_GT": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị ụkwụụ karia ntinye nke abụọ.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye mbu dị ụkwụụ karia ma ọ bụ hatara ntinye nke abụọ.", - "LOGIC_OPERATION_TOOLTIP_AND": "Weghachi ezịọkwụ ma ọ bụrụ na ntinye abụọ a bụ ezịọkwụ.", - "LOGIC_OPERATION_AND": "ma", - "LOGIC_OPERATION_TOOLTIP_OR": "Weghachi ezịọkwụ ma ọ bụrụ na ọdịkarịa ala otu n’ime ntinye a bụ ezịọkwụ.", - "LOGIC_OPERATION_OR": "ma ọ bụrụ", - "LOGIC_NEGATE_TITLE": "ma ọ bụghị %1", - "LOGIC_NEGATE_TOOLTIP": "Weghachitere ezịọkwụ ma ọ bụrụ na ntinye bụ ụgha. Weghachitere ụgha ma ọ bụrụ na ntinye bụ ezịọkwụ.", - "LOGIC_BOOLEAN_TRUE": "ezịọkwụ", - "LOGIC_BOOLEAN_FALSE": "ụgha", - "LOGIC_BOOLEAN_TOOLTIP": "Weghachitere ezịọkwụ ma ọ bụ ụgha.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Weghachitere nkịtị.", - "LOGIC_TERNARY_CONDITION": "ule", - "LOGIC_TERNARY_IF_TRUE": "ọ bụrụ na eziokwu", - "LOGIC_TERNARY_IF_FALSE": "ọ bụrụ ụgha", - "LOGIC_TERNARY_TOOLTIP": "Lelee ọnọdụ na 'ule'. Ọ bụrụ na ọnọdụ ahụ bụ eziokwu, weghachitere akara 'ọ bụrụ na eziokwu’; ma ọ bụghị ya weghachitere akara 'ọ bụrụ ụgha'.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Ọnụọgụgụ.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Weghachite ngụkọ ọnụ ọgụgụ abụọ ahụ.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Weghachite nwepụ ọnụ ọgụgụ abụọ ahụ.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Weghachite mụbaa ọnụ ọgụgụ abụọ ahụ.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Weghachite kwenye ọnụ ọgụgụ abụọ ahụ.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Weghachite nọmba mbu nke emeturu ike nke nọmba nke abụọ.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "Isi ngụkọ", - "MATH_SINGLE_TOOLTIP_ROOT": "Weghachite Isi ngụkọ nke nọmba.", - "MATH_SINGLE_OP_ABSOLUTE": "ozụzụ", - "MATH_SINGLE_TOOLTIP_ABS": "Weghachite akara ozụzụ nke nọmba.", - "MATH_SINGLE_TOOLTIP_NEG": "Weghachite njụ nke nọmba.", - "MATH_SINGLE_TOOLTIP_LN": "Weghachite lọgarịdịm nke di na nọmba.", - "MATH_SINGLE_TOOLTIP_LOG10": "Weghachite isi lọgarịdịm 10 nke nọmba.", - "MATH_SINGLE_TOOLTIP_EXP": "Weghachite na ike nke nọmba.", - "MATH_SINGLE_TOOLTIP_POW10": "Weghachite 10 na ike nke nọmba.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Weghachite saịn nke ogo (ọ bụghị redian).", - "MATH_TRIG_TOOLTIP_COS": "Weghachite kosaịn nke ogo (ọ bụghị redian).", - "MATH_TRIG_TOOLTIP_TAN": "Weghachite tanjentị nke ogo (ọ bụghị redian).", - "MATH_TRIG_TOOLTIP_ASIN": "Weghachite aksaịn nke nọmba.", - "MATH_TRIG_TOOLTIP_ACOS": "Weghachite akosaịn nke nọmba.", - "MATH_TRIG_TOOLTIP_ATAN": "Weghachite aktanjentị nke nọmba.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Weghachite otu n'ime kọnstant ndị nkịtị: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "bụ ịvụn", - "MATH_IS_ODD": "bụ ọd", - "MATH_IS_PRIME": "bụ praim", - "MATH_IS_WHOLE": "zuru ezu", - "MATH_IS_POSITIVE": "bu posịtịf", - "MATH_IS_NEGATIVE": "bụ negetịf", - "MATH_IS_DIVISIBLE_BY": "ga ekenwụ", - "MATH_IS_TOOLTIP": "Tụlee ma nọmba ọ bụ ịvụn, ọd, praim, zuru ezu, posịtịf, negetịf, ma e nwere nọmba ga ekenwu ya. Weghachitere eziokwu ma ọ bụ ụgha.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "gbanwee %1 site na %2", - "MATH_CHANGE_TOOLTIP": "Tinye nọmba na agbanwe '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Gbaago nọmba n'elu ma ọ bụ ala.", - "MATH_ROUND_OPERATOR_ROUND": "gbaarịa", - "MATH_ROUND_OPERATOR_ROUNDUP": "gbaago elu", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "gbatụọ ala", - "MATH_ONLIST_OPERATOR_SUM": "nchịkọta nke ndepụta", - "MATH_ONLIST_TOOLTIP_SUM": "Weghachite nchịkọta nke nọmba niile na ndepụta.", - "MATH_ONLIST_OPERATOR_MIN": "opekempe nke ndepụta", - "MATH_ONLIST_TOOLTIP_MIN": "Weghachite nọmba kacha obere na ndepụta.", - "MATH_ONLIST_OPERATOR_MAX": "ọkacha ukwuu nke ndepụta", - "MATH_ONLIST_TOOLTIP_MAX": "Weghachite nọmba kacha ukwuu na ndepụta.", - "MATH_ONLIST_OPERATOR_AVERAGE": "agbaetiti nke ndepụta", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Weghachite agbaetiti (nchịkọta mpụta) nke akara ọnụọgụ na ndepụta.", - "MATH_ONLIST_OPERATOR_MEDIAN": "etiti nke ndepụta", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Weghachite nọmba agbaetiti na ndepụta.", - "MATH_ONLIST_OPERATOR_MODE": "ụdị ndepụta", - "MATH_ONLIST_TOOLTIP_MODE": "Weghachite ndepụta nke nke ihe kachasị mkpa na ndepụta.", - "MATH_ONLIST_OPERATOR_STD_DEV": "ntughari usoro nke ndepụta", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Weghachite ntughari usoro nke ndepụta.", - "MATH_ONLIST_OPERATOR_RANDOM": "Ihe ọbụla nke ndepụta", - "MATH_ONLIST_TOOLTIP_RANDOM": "Weghachite Ihe ọbụla site na ndepụta.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "ihe fọdụrụ nke %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Weghachite ihe fọdụrụ site na nkewa nọmba abụọ.", - "MATH_CONSTRAIN_TITLE": "gbochịe %1 ala %2 elu %3", - "MATH_CONSTRAIN_TOOLTIP": "Gbochịe ọnụọgụgụ dị n'etiti nọmba dị oke ala na nọmba dị oke elu (gụnyere).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "ọnụọgụgụ ọbụla site na %1 rụọ %2", - "MATH_RANDOM_INT_TOOLTIP": "Weghachite ọnụọgụgụ ọbụla dị n'etiti ihe abụọ a kapịrị ọnụ, agụnyere.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "nkewa ọbụla", - "MATH_RANDOM_FLOAT_TOOLTIP": "Weghachite ọnụọgụgụ ọbụla dị n'etiti 0.0 (gụnyere) na 1.0 (agụnyeghị).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 nke X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Weghachite aktanjentị nke isi (X, Y) na ogo site na -180 rụọ 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Akwụkwọ ozi, okwu, ma ọ bụ akara ederede.", - "TEXT_JOIN_TITLE_CREATEWITH": "mepụta ederede na", - "TEXT_JOIN_TOOLTIP": "Mepụta otu ederede site na ijikọta ọnụ ọgụgụ ihe ọ bụla.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "jikọta", - "TEXT_CREATE_JOIN_TOOLTIP": "Tinye, wepu, ma ọ bụ megharia ngalaba iji haziearia ngọngọ ederede a.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Tinye ihe na ederede.", - "TEXT_APPEND_TITLE": "iji %1 tinye ederede %2", - "TEXT_APPEND_TOOLTIP": "Tinye ederede na mgbanwee '%1'.", - "TEXT_LENGTH_TITLE": "ogologo nke %1", - "TEXT_LENGTH_TOOLTIP": "Weghachitere nọmba nke akwụkwọ ozi (gụnyere oghere) na ederede enyere.", - "TEXT_ISEMPTY_TITLE": "%1 di n’efu", - "TEXT_ISEMPTY_TOOLTIP": "Weghachitere ezịọkwụ ma ọ bụrụ na ederede enyere di n’efu.", - "TEXT_INDEXOF_TOOLTIP": "Weghachitere ntughari nke mbụ / nke ikpeazụ nke ihe dị na ndepụta. Weghachitere %1 ma ọ bụrụ na achọtaghị ihe.", - "TEXT_INDEXOF_TITLE": "chọta na ederede %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "chọta ihe omume mbu nke ederede", - "TEXT_INDEXOF_OPERATOR_LAST": "chọta ihe omume ikpeazụ nke ederede", - "TEXT_CHARAT_TITLE": "chọta na ederede %1 %2", - "TEXT_CHARAT_FROM_START": "nweta akwụkwọ ozi #", - "TEXT_CHARAT_FROM_END": "nweta akwụkwọ ozi # site na njedebe", - "TEXT_CHARAT_FIRST": "nweta akwụkwọ ozi mbu", - "TEXT_CHARAT_LAST": "nweta akwụkwọ ozi ikpeazụ", - "TEXT_CHARAT_RANDOM": "nweta akwụkwọ ozi ọbụla", - "TEXT_CHARAT_TOOLTIP": "Weghachite akwụkwọ ozi ahụ na ọnọdụ a kapịrị ọnụ.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Weghachite akụkụ nke akọwapụtara ederede.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "chọta na ederede", - "TEXT_GET_SUBSTRING_START_FROM_START": "nweta njịkọ-ala na akwụkwọ ozi #", - "TEXT_GET_SUBSTRING_START_FROM_END": "nweta njịkọ-ala na akwụkwọ ozi # site na njedebe", - "TEXT_GET_SUBSTRING_START_FIRST": "nweta njịkọ-ala na akwụkwọ ozi mbu", - "TEXT_GET_SUBSTRING_END_FROM_START": "na akwụkwọ ozi #", - "TEXT_GET_SUBSTRING_END_FROM_END": "na akwụkwọ ozi # site na njedebe", - "TEXT_GET_SUBSTRING_END_LAST": "na leta ikpeazụ", - "TEXT_CHANGECASE_TOOLTIP": "AA <-> aa", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "na AHỊRỊ ELU", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "na ahịrị elu", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "na Aha Ahịrị", - "TEXT_TRIM_TOOLTIP": "Weghachite otu ederede ya na oghere ọzọ wepụrụ site n'otu ma ọ bụ akụkụ mechị abụọ.", - "TEXT_TRIM_OPERATOR_BOTH": "belata oghere dị mkpụmkpụ si n'akụkụ abụọ nke", - "TEXT_TRIM_OPERATOR_LEFT": "belata oghere dị mkpụmkpụ si n'akụkụ aka ịkpa nke", - "TEXT_TRIM_OPERATOR_RIGHT": "belata oghere dị mkpụmkpụ si n'akụkụ aka nrị nke", - "TEXT_PRINT_TITLE": "bipụta %1", - "TEXT_PRINT_TOOLTIP": "Bipụta ederede a kapịrị ọnụ, nọmba ma ọ bụ akara ọzọ.", - "TEXT_PROMPT_TYPE_TEXT": "Mepụta ngwa maka iji ederede na ozi", - "TEXT_PROMPT_TYPE_NUMBER": "Mepụta ngwa maka maka nọmba na ozi", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Mepụta ngwa onye ọrụ maka nọmba.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Mepụta ngwa onye ọrụ maka ederede.", - "TEXT_COUNT_MESSAGE0": "gụọ %1 n’ime %2", - "TEXT_COUNT_TOOLTIP": "Gụọ ugboro ole ụfọdụ ederede na’apụta n’ụfọdụ ederede ọzọ.", - "TEXT_REPLACE_MESSAGE0": "dochie %1 na %2 n’ime %3", - "TEXT_REPLACE_TOOLTIP": "Dochie ihe omuma nke ederede ufodu n'ime ufodu ederede ozo.", - "TEXT_REVERSE_MESSAGE0": "gbanwe %1", - "TEXT_REVERSE_TOOLTIP": "Na-agbanwe iwu nke ndị odide na ederede.", - "LISTS_CREATE_EMPTY_TITLE": "mepụta ndepụta efu", - "LISTS_CREATE_EMPTY_TOOLTIP": "Weghachite ndepụta, nke ogologo 0, nke enweghị ndekọ data", - "LISTS_CREATE_WITH_TOOLTIP": "Mepụta ndepụta na nọmba ọ bụla.", - "LISTS_CREATE_WITH_INPUT_WITH": "mepụta ndepụta", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "ndepụta", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Tinye, wepu, ma ọ bụ megharia ngalaba iji haziearia ngọngọ ederede a.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Tinye ihe na ndepụta.", - "LISTS_REPEAT_TOOLTIP": "Na-emepụta listi ndepụta gụnyere akara a nyere ya ugboro ugboro.", - "LISTS_REPEAT_TITLE": "mepụta ndepụta na ihe %1 emegharịrị ugboro %2", - "LISTS_LENGTH_TITLE": "ogo nke %1", - "LISTS_LENGTH_TOOLTIP": "Weghachite ogo nke ndepụta.", - "LISTS_ISEMPTY_TITLE": "%1 ghe oghe", - "LISTS_ISEMPTY_TOOLTIP": "Weghachite eziokwu ma ọ bụrụ na ndepụta ahụ dị n’efu.", - "LISTS_INLIST": "n’ime ndepụta", - "LISTS_INDEX_OF_FIRST": "chọta ihe mbu nke ihe", - "LISTS_INDEX_OF_LAST": "chọta ihe ikpeazụ nke ihe", - "LISTS_INDEX_OF_TOOLTIP": "Weghachitere ntughari nke mbụ / nke ikpeazụ nke ihe dị na ndepụta. Weghachitere %1 ma ọ bụrụ na achọtaghị ihe.", - "LISTS_GET_INDEX_GET": "nweta", - "LISTS_GET_INDEX_GET_REMOVE": "nweta ma wepu", - "LISTS_GET_INDEX_REMOVE": "wepu", - "LISTS_GET_INDEX_FROM_END": "# site na njedebe", - "LISTS_GET_INDEX_FIRST": "mbu", - "LISTS_GET_INDEX_LAST": "ikpeazụ", - "LISTS_GET_INDEX_RANDOM": "nke ọ bụla", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 bụ ihe mbụ.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 bụ ihe ikpeazụ.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Weghachitere ihe na ọnọdụ a kapịrị ọnụ na ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Weghachitere ihe mbụ n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Weghachitere ihe ikpeazụ n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Weghachitere ihe ọbụla n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Wepu ma weghachite ihe na ọnọdụ a kapịrị ọnụ na ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Wepu ma weghachite ihe mbu na ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Wepu ma weghachite ihe ikpeazụ n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Wepu ma weghachite ihe ọbụla n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Wepu ihe ahụ na ọnọdụ a kapịrị ọnụ na ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Wepu ihe mbụ n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Wepu ihe ikpeazụ n'ime ndepụta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Wepu ihe ọbụla n'ime ndepụta.", - "LISTS_SET_INDEX_SET": "set", - "LISTS_SET_INDEX_INSERT": "tinye na", - "LISTS_SET_INDEX_INPUT_TO": "dị ka", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Debe ihe ahụ na ọnọdụ a kapịrị ọnụ na ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Debe ihe mbụ n'ime ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Debe ihe ikpeazụ n'ime ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Debe ihe ọbụla n'ime ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Na-etinye ihe na ọnọdụ a kapịrị ọnụ na ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Na-etinye ihe ahụ na mmalite nke ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Na-etinye ihe ahụ na ngwụcha nke ndepụta.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Na-etinye ihe ahụ na ebe ọbụla nke ndepụta.", - "LISTS_GET_SUBLIST_START_FROM_START": "nweta akụkụ ndepụta site na #", - "LISTS_GET_SUBLIST_START_FROM_END": "nweta akụkụ ndepụta site na # site na njedebe", - "LISTS_GET_SUBLIST_START_FIRST": "nweta akụkụ ndepụta site na mbịdo", - "LISTS_GET_SUBLIST_END_FROM_START": "rụọ #", - "LISTS_GET_SUBLIST_END_FROM_END": "rụọ # site na njedebe", - "LISTS_GET_SUBLIST_END_LAST": "rụọ na ngwụcha", - "LISTS_GET_SUBLIST_TOOLTIP": "Na-emepụta otu akụkụ a kapịrị ọnụ nke ndepụta.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "hazie %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Tọọ otu akụkụ ndepụta ahụ.", - "LISTS_SORT_ORDER_ASCENDING": "arịgo", - "LISTS_SORT_ORDER_DESCENDING": "agbada", - "LISTS_SORT_TYPE_NUMERIC": "nọmba", - "LISTS_SORT_TYPE_TEXT": "mkpụrụ edemede", - "LISTS_SORT_TYPE_IGNORECASE": "mkpụrụ edemede, leghara ọnọdụ anya", - "LISTS_SPLIT_LIST_FROM_TEXT": "mee ndepụta site na ederede", - "LISTS_SPLIT_TEXT_FROM_LIST": "mee ederede site na ndepụta", - "LISTS_SPLIT_WITH_DELIMITER": "na ihe nkewa", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Kewaa ederede n'ime ndepụta nke ederede, na-agbasa na ihe nkwea ọ bụla.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Jikọọ ndepụta nke ederede gaa na otu ederede, nke oihe nkewa kewara.", - "LISTS_REVERSE_MESSAGE0": "gbanwe %1", - "LISTS_REVERSE_TOOLTIP": "Tụgharịa otu akụkụ ndepụta.", - "VARIABLES_GET_TOOLTIP": "Weghachite akara nke agbanwe a.", - "VARIABLES_GET_CREATE_SET": "Mepụta 'dozie %1'", - "VARIABLES_SET": "dozie %1 ga na %2", - "VARIABLES_SET_TOOLTIP": "Debe mgbanwe a ka ọ ghata ihe ntinye.", - "VARIABLES_SET_CREATE_GET": "Mepụta 'nweta uru %1'", - "PROCEDURES_DEFNORETURN_TITLE": "ga na", - "PROCEDURES_DEFNORETURN_PROCEDURE": "megharịa", - "PROCEDURES_BEFORE_PARAMS": "na:", - "PROCEDURES_CALL_BEFORE_PARAMS": "na:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Na emepụta ọrụ na-enweghị mmepụta.", - "PROCEDURES_DEFNORETURN_COMMENT": "Kọwaa ọrụ a...", - "PROCEDURES_DEFRETURN_RETURN": "weghachite", - "PROCEDURES_DEFRETURN_TOOLTIP": "Na emepụta ọrụ nwere mmepụta.", - "PROCEDURES_ALLOW_STATEMENTS": "kwe ka okwu", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Ịdọ aka ná ntị: Ọrụ a nwere ọnụọgụ abụọ.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Gbaa ọrụ a kọwaa onye-ọrụ '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Gbaa ọrụ a kọwaa onye-ọrụ '%1' ma jiri mmepụta ya.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ntinye", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Tinye, wepu, ma ọ bụ tugharịa ntinye na ọrụ a.", - "PROCEDURES_MUTATORARG_TITLE": "tinye aha:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Tinye ntinye aka na ọrụ ahụ.", - "PROCEDURES_HIGHLIGHT_DEF": "Nkọwapụta njirimara ọrụ", - "PROCEDURES_CREATE_DO": "Mepụta '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Weghachite akara nke agbanwe a.", - "PROCEDURES_IFRETURN_WARNING": "Ịdọ aka ná ntị: Ọrụ a nwere ọnụọgụ abụọ.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Kwuo ihe ọ bụla..." -} diff --git a/lib/blockly/msg/json/is.json b/lib/blockly/msg/json/is.json deleted file mode 100644 index cbcd2ad..0000000 --- a/lib/blockly/msg/json/is.json +++ /dev/null @@ -1,374 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Jonbg", - "아라", - "Gaddi00", - "Sveinki", - "Sveinn í Felli" - ] - }, - "VARIABLES_DEFAULT_NAME": "atriði", - "TODAY": "Í dag", - "DUPLICATE_BLOCK": "Afrita", - "ADD_COMMENT": "Skrifa skýringu", - "REMOVE_COMMENT": "Fjarlægja skýringu", - "DUPLICATE_COMMENT": "Tvítaka athugasemd", - "EXTERNAL_INPUTS": "Ytri inntök", - "INLINE_INPUTS": "Innri inntök", - "DELETE_BLOCK": "Eyða kubbi", - "DELETE_X_BLOCKS": "Eyða %1 kubbum", - "DELETE_ALL_BLOCKS": "Eyða öllum %1 kubbunum?", - "CLEAN_UP": "Hreinsa kubba", - "COLLAPSE_BLOCK": "Loka kubbi", - "COLLAPSE_ALL": "Loka kubbum", - "EXPAND_BLOCK": "Opna kubb", - "EXPAND_ALL": "Opna kubba", - "DISABLE_BLOCK": "Óvirkja kubb", - "ENABLE_BLOCK": "Virkja kubb", - "HELP": "Hjálp", - "UNDO": "Afturkalla", - "REDO": "Endurtaka", - "CHANGE_VALUE_TITLE": "Breyta gildi:", - "RENAME_VARIABLE": "Endurnefna breytu...", - "RENAME_VARIABLE_TITLE": "Endurnefna allar '%1' breyturnar:", - "NEW_VARIABLE": "Búa til breytu...", - "NEW_VARIABLE_TITLE": "Heiti nýrrar breytu:", - "VARIABLE_ALREADY_EXISTS": "Breyta með heitinu '%1' er þegar til staðar.", - "DELETE_VARIABLE": "Eyða '%1' breytunni", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Velja lit úr litakorti.", - "COLOUR_RANDOM_TITLE": "einhver litur", - "COLOUR_RANDOM_TOOLTIP": "Velja einhvern lit af handahófi.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "litur", - "COLOUR_RGB_RED": "rauður", - "COLOUR_RGB_GREEN": "grænt", - "COLOUR_RGB_BLUE": "blátt", - "COLOUR_RGB_TOOLTIP": "Búa til lit úr tilteknu magni af rauðu, grænu og bláu. Allar tölurnar verða að vera á bilinu 0 til 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "blöndun", - "COLOUR_BLEND_COLOUR1": "litur 1", - "COLOUR_BLEND_COLOUR2": "litur 2", - "COLOUR_BLEND_RATIO": "hlutfall", - "COLOUR_BLEND_TOOLTIP": "Blandar tveimur litum í gefnu hlutfalli (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "endurtaka %1 sinnum", - "CONTROLS_REPEAT_INPUT_DO": "gera", - "CONTROLS_REPEAT_TOOLTIP": "Gera eitthvað aftur og aftur.", - "CONTROLS_WHILEUNTIL_HELPURL": "https://github.com/google/blockly/wiki/Loops#repeat", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "endurtaka á meðan", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "endurtaka þar til", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Endurtaka eitthvað á meðan gildi er satt.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Endurtaka eitthvað á meðan gildi er ósatt.", - "CONTROLS_FOR_HELPURL": "https://github.com/google/blockly/wiki/Loops#count-with", - "CONTROLS_FOR_TOOLTIP": "Láta breytuna '%1' taka inn gildi frá fyrstu tölu til síðustu tölu, hlaupandi á tiltekna bilinu og gera tilteknu kubbana.", - "CONTROLS_FOR_TITLE": "telja með %1 frá %2 til %3 um %4", - "CONTROLS_FOREACH_TITLE": "fyrir hvert %1 í lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Fyrir hvert atriði í lista er breyta '%1' stillt á atriðið og skipanir gerðar.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "fara út úr lykkju", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "fara beint í næstu umferð lykkjunnar", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Fara út úr umlykjandi lykkju.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Sleppa afganginum af lykkjunni og fara beint í næstu umferð hennar.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Aðvörun: Þennan kubb má aðeins nota innan lykkju.", - "CONTROLS_IF_HELPURL": "https://github.com/google/blockly/wiki/IfElse", - "CONTROLS_IF_TOOLTIP_1": "Ef gildi er satt skal gera einhverjar skipanir.", - "CONTROLS_IF_TOOLTIP_2": "Ef gildi er satt skal gera skipanir í fyrri kubbnum. Annars skal gera skipanir í seinni kubbnum.", - "CONTROLS_IF_TOOLTIP_3": "Ef fyrra gildið er satt skal gera skipanir í fyrri kubbnum. Annars, ef seinna gildið er satt, þá skal gera skipanir í seinni kubbnum.", - "CONTROLS_IF_TOOLTIP_4": "Ef fyrra gildið er satt skal gera skipanir í fyrri kubbnum. Annars, ef seinna gildið er satt, skal gera skipanir í seinni kubbnum. Ef hvorugt gildið er satt, skal gera skipanir í síðasta kubbnum.", - "CONTROLS_IF_MSG_IF": "ef", - "CONTROLS_IF_MSG_ELSEIF": "annars ef", - "CONTROLS_IF_MSG_ELSE": "annars", - "CONTROLS_IF_IF_TOOLTIP": "Bæta við, fjarlægja eða umraða til að breyta skipan þessa EF kubbs.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Bæta skilyrði við EF kubbinn.", - "CONTROLS_IF_ELSE_TOOLTIP": "Bæta við hluta EF kubbs sem grípur öll tilfelli sem uppfylla ekki hin skilyrðin.", - "IOS_OK": "Í lagi", - "IOS_CANCEL": "Hætta við", - "IOS_ERROR": "Villa", - "IOS_VARIABLES_ADD_VARIABLE": "+ Bæta við breytu", - "IOS_VARIABLES_ADD_BUTTON": "Bæta við", - "IOS_VARIABLES_RENAME_BUTTON": "Endurnefna", - "IOS_VARIABLES_DELETE_BUTTON": "Eyða", - "IOS_VARIABLES_VARIABLE_NAME": "Nafn breytu", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Skila sönnu ef inntökin eru jöfn.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Skila sönnu ef inntökin eru ekki jöfn.", - "LOGIC_COMPARE_TOOLTIP_LT": "Skila sönnu ef fyrra inntakið er minna en seinna inntakið.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Skila sönnu ef fyrra inntakið er minna en eða jafnt og seinna inntakið.", - "LOGIC_COMPARE_TOOLTIP_GT": "Skila sönnu ef fyrra inntakið er stærra en seinna inntakið.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Skila sönnu ef fyrra inntakið er stærra en eða jafnt og seinna inntakið.", - "LOGIC_OPERATION_HELPURL": "https://github.com/google/blockly/wiki/Logic#logical-operations", - "LOGIC_OPERATION_TOOLTIP_AND": "Skila sönnu ef bæði inntökin eru sönn.", - "LOGIC_OPERATION_AND": "og", - "LOGIC_OPERATION_TOOLTIP_OR": "Skila sönnu ef að minnsta kosti eitt inntak er satt.", - "LOGIC_OPERATION_OR": "eða", - "LOGIC_NEGATE_HELPURL": "https://github.com/google/blockly/wiki/Logic#not", - "LOGIC_NEGATE_TITLE": "ekki %1", - "LOGIC_NEGATE_TOOLTIP": "Skilar sönnu ef inntakið er ósatt. Skilar ósönnu ef inntakið er satt.", - "LOGIC_BOOLEAN_HELPURL": "https://github.com/google/blockly/wiki/Logic#values", - "LOGIC_BOOLEAN_TRUE": "satt", - "LOGIC_BOOLEAN_FALSE": "ósatt", - "LOGIC_BOOLEAN_TOOLTIP": "Skilar annað hvort sönnu eða ósönnu.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "tómagildi", - "LOGIC_NULL_TOOLTIP": "Skilar tómagildi.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "prófun", - "LOGIC_TERNARY_IF_TRUE": "ef satt", - "LOGIC_TERNARY_IF_FALSE": "ef ósatt", - "LOGIC_TERNARY_TOOLTIP": "Kanna skilyrðið í 'prófun'. Skilar 'ef satt' gildinu ef skilyrðið er satt, en skilar annars 'ef ósatt' gildinu.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Tala.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Skila summu talnanna tveggja.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Skila mismun talnanna.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Skila margfeldi talnanna.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Skila deilingu talnanna.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Skila fyrri tölunni í veldinu seinni talan.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "kvaðratrót", - "MATH_SINGLE_TOOLTIP_ROOT": "Skila kvaðratrót tölu.", - "MATH_SINGLE_OP_ABSOLUTE": "algildi", - "MATH_SINGLE_TOOLTIP_ABS": "Skila algildi tölu.", - "MATH_SINGLE_TOOLTIP_NEG": "Skila neitun tölu (tölunni með öfugu formerki).", - "MATH_SINGLE_TOOLTIP_LN": "Skila náttúrlegum lógaritma tölu.", - "MATH_SINGLE_TOOLTIP_LOG10": "Skila tugalógaritma tölu.", - "MATH_SINGLE_TOOLTIP_EXP": "Skila e í veldi tölu.", - "MATH_SINGLE_TOOLTIP_POW10": "Skila 10 í veldi tölu.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Skila sínusi horns gefnu í gráðum.", - "MATH_TRIG_TOOLTIP_COS": "Skila kósínusi horns gefnu í gráðum.", - "MATH_TRIG_TOOLTIP_TAN": "Skila tangensi horns gefnu í gráðum.", - "MATH_TRIG_TOOLTIP_ASIN": "Skila arkarsínusi tölu.", - "MATH_TRIG_TOOLTIP_ACOS": "Skila arkarkósínusi tölu.", - "MATH_TRIG_TOOLTIP_ATAN": "Skila arkartangensi tölu.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Skila algengum fasta: π (3.141…), e (2.718…), φ (1.618…), kvrót(2) (1.414…), kvrót(½) (0.707…) eða ∞ (óendanleika).", - "MATH_IS_EVEN": "er\\u00A0jöfn tala", - "MATH_IS_ODD": "er oddatala", - "MATH_IS_PRIME": "er prímtala", - "MATH_IS_WHOLE": "er heiltala", - "MATH_IS_POSITIVE": "er jákvæð", - "MATH_IS_NEGATIVE": "er neikvæð", - "MATH_IS_DIVISIBLE_BY": "er\\u00A0deilanleg með", - "MATH_IS_TOOLTIP": "Kanna hvort tala sé jöfn tala, oddatala, jákvæð, neikvæð eða deilanleg með tiltekinni tölu. Skilar sönnu eða ósönnu.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "breyta %1 um %2", - "MATH_CHANGE_TOOLTIP": "Bæta tölu við breytu '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Námunda tölu upp eða niður.", - "MATH_ROUND_OPERATOR_ROUND": "námunda", - "MATH_ROUND_OPERATOR_ROUNDUP": "námunda upp", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "námunda niður", - "MATH_ONLIST_OPERATOR_SUM": "summa lista", - "MATH_ONLIST_TOOLTIP_SUM": "Skila summu allra talna í listanum.", - "MATH_ONLIST_OPERATOR_MIN": "minnst í lista", - "MATH_ONLIST_TOOLTIP_MIN": "Skila minnstu tölu í listanum.", - "MATH_ONLIST_OPERATOR_MAX": "stærst í lista", - "MATH_ONLIST_TOOLTIP_MAX": "Skila stærstu tölu í listanum.", - "MATH_ONLIST_OPERATOR_AVERAGE": "meðaltal lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Skila meðaltali talna í listanum.", - "MATH_ONLIST_OPERATOR_MEDIAN": "miðgildi lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Skila miðgildi listans.", - "MATH_ONLIST_OPERATOR_MODE": "tíðast í lista", - "MATH_ONLIST_TOOLTIP_MODE": "Skila lista yfir tíðustu gildin í listanum.", - "MATH_ONLIST_OPERATOR_STD_DEV": "staðalfrávik lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Skila staðalfráviki lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "eitthvað úr lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Skila einhverju atriði úr listanum.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "afgangur af %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Skila afgangi deilingar með tölunum.", - "MATH_CONSTRAIN_TITLE": "þröngva %1 lægst %2 hæst %3", - "MATH_CONSTRAIN_TOOLTIP": "Þröngva tölu til að vera innan hinna tilgreindu marka (að báðum meðtöldum).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "slembitala frá %1 til %2", - "MATH_RANDOM_INT_TOOLTIP": "Skila heiltölu sem valin er af handahófi og er innan tilgreindra marka, að báðum meðtöldum.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "slembibrot", - "MATH_RANDOM_FLOAT_TOOLTIP": "Skila broti sem er valið af handahófi úr tölum á bilinu frá og með 0.0 til (en ekki með) 1.0.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Stafur, orð eða textalína.", - "TEXT_JOIN_HELPURL": "https://github.com/google/blockly/wiki/Text#text-creation", - "TEXT_JOIN_TITLE_CREATEWITH": "búa til texta með", - "TEXT_JOIN_TOOLTIP": "Búa til texta með því að tengja saman einhvern fjölda atriða.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "tengja", - "TEXT_CREATE_JOIN_TOOLTIP": "Bæta við, fjarlægja eða umraða hlutum til að breyta skipan þessa textakubbs.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Bæta atriði við textann.", - "TEXT_APPEND_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_APPEND_TITLE": "við %1 bæta texta %2", - "TEXT_APPEND_TOOLTIP": "Bæta texta við breytuna '%1'.", - "TEXT_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_LENGTH_TITLE": "lengd %1", - "TEXT_LENGTH_TOOLTIP": "Skilar fjölda stafa (með bilum) í gefna textanum.", - "TEXT_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Text#checking-for-empty-text", - "TEXT_ISEMPTY_TITLE": "%1 er tómur", - "TEXT_ISEMPTY_TOOLTIP": "Skilar sönnu ef gefni textinn er tómur.", - "TEXT_INDEXOF_HELPURL": "https://github.com/google/blockly/wiki/Text#finding-text", - "TEXT_INDEXOF_TOOLTIP": "Finnur fyrsta/síðasta tilfelli fyrri textans í seinni textanum og skilar sæti hans. Skilar %1 ef textinn finnst ekki.", - "TEXT_INDEXOF_TITLE": "í texta %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "finna fyrsta tilfelli texta", - "TEXT_INDEXOF_OPERATOR_LAST": "finna síðasta tilfelli texta", - "TEXT_CHARAT_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-text", - "TEXT_CHARAT_TITLE": "í texta %1 %2", - "TEXT_CHARAT_FROM_START": "sækja staf #", - "TEXT_CHARAT_FROM_END": "sækja staf # frá enda", - "TEXT_CHARAT_FIRST": "sækja fyrsta staf", - "TEXT_CHARAT_LAST": "sækja síðasta staf", - "TEXT_CHARAT_RANDOM": "sækja einhvern staf", - "TEXT_CHARAT_TOOLTIP": "Skila staf á tilteknum stað.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Skilar tilteknum hluta textans.", - "TEXT_GET_SUBSTRING_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "í texta", - "TEXT_GET_SUBSTRING_START_FROM_START": "sækja textabút frá staf #", - "TEXT_GET_SUBSTRING_START_FROM_END": "sækja textabút frá staf # frá enda", - "TEXT_GET_SUBSTRING_START_FIRST": "sækja textabút frá fyrsta staf", - "TEXT_GET_SUBSTRING_END_FROM_START": "að staf #", - "TEXT_GET_SUBSTRING_END_FROM_END": "að staf # frá enda", - "TEXT_GET_SUBSTRING_END_LAST": "að síðasta staf", - "TEXT_CHANGECASE_HELPURL": "https://github.com/google/blockly/wiki/Text#adjusting-text-case", - "TEXT_CHANGECASE_TOOLTIP": "Skila afriti af textanum með annarri stafastöðu.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "í HÁSTAFI", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "í lágstafi", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "í Upphafstafi", - "TEXT_TRIM_HELPURL": "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces", - "TEXT_TRIM_TOOLTIP": "Skila afriti af textanum þar sem möguleg bil við báða enda hafa verið fjarlægð.", - "TEXT_TRIM_OPERATOR_BOTH": "eyða bilum báðum megin við", - "TEXT_TRIM_OPERATOR_LEFT": "eyða bilum vinstra megin við", - "TEXT_TRIM_OPERATOR_RIGHT": "eyða bilum hægra megin við", - "TEXT_PRINT_HELPURL": "https://github.com/google/blockly/wiki/Text#printing-text", - "TEXT_PRINT_TITLE": "prenta %1", - "TEXT_PRINT_TOOLTIP": "Prenta tiltekinn texta, tölu eða annað gildi.", - "TEXT_PROMPT_HELPURL": "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user", - "TEXT_PROMPT_TYPE_TEXT": "biðja um texta með skilaboðum", - "TEXT_PROMPT_TYPE_NUMBER": "biðja um tölu með skilaboðum", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Biðja notandann um tölu.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Biðja notandann um texta.", - "TEXT_COUNT_MESSAGE0": "fjöldi %1 í %2", - "TEXT_REPLACE_MESSAGE0": "skipta %1 út með %2 í %3", - "TEXT_REVERSE_MESSAGE0": "snúa við %1", - "TEXT_REVERSE_TOOLTIP": "Snýr við röð stafanna í textanum.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "búa til tóman lista", - "LISTS_CREATE_EMPTY_TOOLTIP": "Skilar lista með lengdina 0 án gagna", - "LISTS_CREATE_WITH_TOOLTIP": "Búa til lista með einhverjum fjölda atriða.", - "LISTS_CREATE_WITH_INPUT_WITH": "búa til lista með", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "listi", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Bæta við, fjarlægja eða umraða hlutum til að breyta skipan þessa listakubbs.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Bæta atriði við listann.", - "LISTS_REPEAT_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_REPEAT_TOOLTIP": "Býr til lista sem inniheldur tiltekna gildið endurtekið tiltekið oft.", - "LISTS_REPEAT_TITLE": "búa til lista með atriði %1 endurtekið %2 sinnum", - "LISTS_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Lists#length-of", - "LISTS_LENGTH_TITLE": "lengd %1", - "LISTS_LENGTH_TOOLTIP": "Skilar lengd lista.", - "LISTS_ISEMPTY_TITLE": "%1 er tómur", - "LISTS_ISEMPTY_TOOLTIP": "Skilar sönnu ef listinn er tómur.", - "LISTS_INLIST": "í lista", - "LISTS_INDEX_OF_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", - "LISTS_INDEX_OF_FIRST": "finna fyrsta tilfelli atriðis", - "LISTS_INDEX_OF_LAST": "finna síðasta tilfelli atriðis", - "LISTS_INDEX_OF_TOOLTIP": "Finnur hvar atriðið kemur fyrir fyrst/síðast í listanum og skilar sæti þess. Skilar %1 ef atriðið finnst ekki.", - "LISTS_GET_INDEX_GET": "sækja", - "LISTS_GET_INDEX_GET_REMOVE": "sækja og fjarlægja", - "LISTS_GET_INDEX_REMOVE": "fjarlægja", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# frá enda", - "LISTS_GET_INDEX_FIRST": "fyrsta", - "LISTS_GET_INDEX_LAST": "síðasta", - "LISTS_GET_INDEX_RANDOM": "eitthvert", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 er fyrsta atriðið.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 er síðasta atriðið.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Skilar atriðinu í hinum tiltekna stað í lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Skilar fyrsta atriði í lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Skilar síðasta atriði í lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Skilar einhverju atriði úr lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Fjarlægir og skilar atriðinu á hinum tiltekna stað í lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Fjarlægir og skilar fyrsta atriðinu í lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Fjarlægir og skilar síðasta atriðinu í lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Fjarlægir og skilar einhverju atriði úr lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Fjarlægir atriðið á hinum tiltekna stað í lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Fjarlægir fyrsta atriðið í lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Fjarlægir síðasta atriðið í lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Fjarlægir eitthvert atriði úr lista.", - "LISTS_SET_INDEX_HELPURL": "https://github.com/google/blockly/wiki/Lists#in-list--set", - "LISTS_SET_INDEX_SET": "setja í", - "LISTS_SET_INDEX_INSERT": "bæta við", - "LISTS_SET_INDEX_INPUT_TO": "sem", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Setur atriðið í tiltekna sætið í listanum.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Setur atriðið í fyrsta sæti lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Setur atriðið í síðasta sæti lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Setur atriðið í eitthvert sæti lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Bætir atriðinu í listann á tilteknum stað.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Bætir atriðinu fremst í listann.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Bætir atriðinu aftan við listann.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Bætir atriðinu einhversstaðar við listann.", - "LISTS_GET_SUBLIST_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-a-sublist", - "LISTS_GET_SUBLIST_START_FROM_START": "sækja undirlista frá #", - "LISTS_GET_SUBLIST_START_FROM_END": "sækja undirlista frá # frá enda", - "LISTS_GET_SUBLIST_START_FIRST": "sækja undirlista frá fyrsta", - "LISTS_GET_SUBLIST_END_FROM_START": "til #", - "LISTS_GET_SUBLIST_END_FROM_END": "til # frá enda", - "LISTS_GET_SUBLIST_END_LAST": "til síðasta", - "LISTS_GET_SUBLIST_TOOLTIP": "Býr til afrit af tilteknum hluta lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "raða %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Raða afriti lista.", - "LISTS_SORT_ORDER_ASCENDING": "hækkandi", - "LISTS_SORT_ORDER_DESCENDING": "lækkandi", - "LISTS_SORT_TYPE_NUMERIC": "í númeraröð", - "LISTS_SORT_TYPE_TEXT": "í stafrófsröð", - "LISTS_SORT_TYPE_IGNORECASE": "í stafrófsröð án tillits til stafstöðu", - "LISTS_SPLIT_LIST_FROM_TEXT": "gera lista úr texta", - "LISTS_SPLIT_TEXT_FROM_LIST": "gera texta úr lista", - "LISTS_SPLIT_WITH_DELIMITER": "með skiltákni", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Skiptir texta í lista af textum, með skil við hvert skiltákn.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Sameinar lista af textum í einn texta, með skiltákn á milli.", - "LISTS_REVERSE_MESSAGE0": "snúa við %1", - "LISTS_REVERSE_TOOLTIP": "Snúa við afriti lista.", - "VARIABLES_GET_HELPURL": "https://github.com/google/blockly/wiki/Variables#get", - "VARIABLES_GET_TOOLTIP": "Skilar gildi þessarar breytu.", - "VARIABLES_GET_CREATE_SET": "Búa til 'stilla %1'", - "VARIABLES_SET_HELPURL": "https://github.com/google/blockly/wiki/Variables#set", - "VARIABLES_SET": "stilla %1 á %2", - "VARIABLES_SET_TOOLTIP": "Stillir þessa breytu á innihald inntaksins.", - "VARIABLES_SET_CREATE_GET": "Búa til 'sækja %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "til að", - "PROCEDURES_DEFNORETURN_PROCEDURE": "gera eitthvað", - "PROCEDURES_BEFORE_PARAMS": "með:", - "PROCEDURES_CALL_BEFORE_PARAMS": "með:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Býr til fall sem skilar engu.", - "PROCEDURES_DEFNORETURN_COMMENT": "Lýstu þessari aðgerð/falli...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "skila", - "PROCEDURES_DEFRETURN_TOOLTIP": "Býr til fall sem skilar úttaki.", - "PROCEDURES_ALLOW_STATEMENTS": "leyfa setningar", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Aðvörun: Þetta fall er með tvítekna stika.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Keyra heimatilbúna fallið '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Keyra heimatilbúna fallið '%1' og nota úttak þess.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "inntök", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Bæta við, fjarlægja eða umraða inntökum fyrir þetta fall.", - "PROCEDURES_MUTATORARG_TITLE": "heiti inntaks:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Bæta inntaki við fallið.", - "PROCEDURES_HIGHLIGHT_DEF": "Sýna skilgreiningu falls", - "PROCEDURES_CREATE_DO": "Búa til '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Ef gildi er satt, skal skila öðru gildi.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Aðvörun: Þennan kubb má aðeins nota í skilgreiningu falls.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Segðu eitthvað..." -} diff --git a/lib/blockly/msg/json/it.json b/lib/blockly/msg/json/it.json deleted file mode 100644 index 2fe88f8..0000000 --- a/lib/blockly/msg/json/it.json +++ /dev/null @@ -1,358 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Beta16", - "Espertus", - "Nerimic", - "Gbonanome", - "Gianfranco", - "Federico Mugnaini", - "JackLantern", - "Selven", - "Samuele2002", - "Greis", - "Sarah Bernabei", - "Albe Albe 460" - ] - }, - "VARIABLES_DEFAULT_NAME": "elemento", - "UNNAMED_KEY": "senza nome", - "TODAY": "Oggi", - "DUPLICATE_BLOCK": "Duplica", - "ADD_COMMENT": "Aggiungi commento", - "REMOVE_COMMENT": "Rimuovi commento", - "DUPLICATE_COMMENT": "Duplica commento", - "EXTERNAL_INPUTS": "Ingressi esterni", - "INLINE_INPUTS": "Ingressi in linea", - "DELETE_BLOCK": "Cancella blocco", - "DELETE_X_BLOCKS": "Cancella %1 blocchi", - "DELETE_ALL_BLOCKS": "Cancellare tutti i %1 blocchi?", - "CLEAN_UP": "Pulisci i blocchi", - "COLLAPSE_BLOCK": "Comprimi blocco", - "COLLAPSE_ALL": "Comprimi blocchi", - "EXPAND_BLOCK": "Espandi blocco", - "EXPAND_ALL": "Espandi blocchi", - "DISABLE_BLOCK": "Disattiva blocco", - "ENABLE_BLOCK": "Attiva blocco", - "HELP": "Aiuto", - "UNDO": "Annulla", - "REDO": "Ripeti", - "CHANGE_VALUE_TITLE": "Modifica valore:", - "RENAME_VARIABLE": "Rinomina variabile...", - "RENAME_VARIABLE_TITLE": "Rinomina tutte le variabili '%1' in:", - "NEW_VARIABLE": "Crea variabile...", - "NEW_STRING_VARIABLE": "Crea variabile stringa...", - "NEW_NUMBER_VARIABLE": "Crea variabile numero...", - "NEW_COLOUR_VARIABLE": "Crea variabile colore...", - "NEW_VARIABLE_TYPE_TITLE": "Tipo della nuova variabile:", - "NEW_VARIABLE_TITLE": "Nome della nuova variabile:", - "VARIABLE_ALREADY_EXISTS": "Una variabile denominata '%1' esiste già.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Una variabile nominata '%1' esiste già per un'altro tipo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Cancella %1 usi della variabile '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Non si può cancellare la variabile '%1' perché è parte della definizione della funzione '%2'", - "DELETE_VARIABLE": "Cancella la variabile '%1'", - "COLOUR_PICKER_HELPURL": "https://it.wikipedia.org/wiki/Colore", - "COLOUR_PICKER_TOOLTIP": "Scegli un colore dalla tavolozza.", - "COLOUR_RANDOM_TITLE": "colore casuale", - "COLOUR_RANDOM_TOOLTIP": "Scegli un colore a caso.", - "COLOUR_RGB_TITLE": "colora con", - "COLOUR_RGB_RED": "rosso", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "blu", - "COLOUR_RGB_TOOLTIP": "Crea un colore con la quantità specificata di rosso, verde e blu. Tutti i valori devono essere compresi tra 0 e 100.", - "COLOUR_BLEND_TITLE": "miscela", - "COLOUR_BLEND_COLOUR1": "colore 1", - "COLOUR_BLEND_COLOUR2": "colore 2", - "COLOUR_BLEND_RATIO": "rapporto", - "COLOUR_BLEND_TOOLTIP": "Mescola due colori insieme con un determinato rapporto (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://it.wikipedia.org/wiki/Ciclo_for", - "CONTROLS_REPEAT_TITLE": "ripeti %1 volte", - "CONTROLS_REPEAT_INPUT_DO": "fai", - "CONTROLS_REPEAT_TOOLTIP": "Esegue alcune istruzione diverse volte.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ripeti mentre", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ripeti fino a che", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Finché un valore è vero, esegue alcune istruzioni.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Finché un valore è falso, esegue alcune istruzioni.", - "CONTROLS_FOR_TOOLTIP": "Fa sì che la variabile '%1' prenda tutti i valori a partire dal numero di partenza fino a quello di arrivo, con passo pari all'intervallo specificato, ed esegue il blocco indicato.", - "CONTROLS_FOR_TITLE": "conta con %1 da %2 a %3 per %4", - "CONTROLS_FOREACH_TITLE": "per ogni elemento %1 nella lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Per ogni elemento in una lista, imposta la variabile '%1' pari all'elemento e quindi esegue alcune istruzioni.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "esce dal ciclo", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "prosegui con la successiva iterazione del ciclo", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Esce dal ciclo.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Salta il resto di questo ciclo e prosegue con la successiva iterazione.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Attenzioneː Questo blocco può essere usato solo in un ciclo.", - "CONTROLS_IF_TOOLTIP_1": "Se un valore è vero allora esegue alcune istruzioni.", - "CONTROLS_IF_TOOLTIP_2": "Se un valore è vero allora esegue il primo blocco di istruzioni. Altrimenti esegue il secondo blocco di istruzioni.", - "CONTROLS_IF_TOOLTIP_3": "Se il primo valore è vero allora esegue un primo blocco di istruzioni. Altrimenti, se il secondo valore è vero, esegue un secondo blocco di istruzioni.", - "CONTROLS_IF_TOOLTIP_4": "Se il primo valore è vero allora esegue un primo blocco di istruzioni. Altrimenti, se il secondo valore è vero, esegue un secondo blocco di istruzioni. Se nessuno dei valori è vero esegue l'ultimo blocco di istruzioni.", - "CONTROLS_IF_MSG_IF": "se", - "CONTROLS_IF_MSG_ELSEIF": "altrimenti se", - "CONTROLS_IF_MSG_ELSE": "altrimenti", - "CONTROLS_IF_IF_TOOLTIP": "Aggiungi, elimina o riordina le sezioni per riconfigurare questo blocco se.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Aggiungi una condizione al blocco se.", - "CONTROLS_IF_ELSE_TOOLTIP": "Aggiungi una condizione finale pigliatutto al blocco se.", - "IOS_OK": "OK", - "IOS_CANCEL": "Annulla", - "IOS_ERROR": "Errore", - "IOS_PROCEDURES_INPUTS": "INPUTS", - "IOS_PROCEDURES_ADD_INPUT": "+ Aggiungi input", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Consenti dichiarazioni", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Questa funzione ha entrate duplicate.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Aggiungi variabile", - "IOS_VARIABLES_ADD_BUTTON": "Aggiungi", - "IOS_VARIABLES_RENAME_BUTTON": "Rinomina", - "IOS_VARIABLES_DELETE_BUTTON": "Cancella", - "IOS_VARIABLES_VARIABLE_NAME": "Nome variabile", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Non puoi utilizzare un nome di variabile vuoto.", - "LOGIC_COMPARE_HELPURL": "https://it.wikipedia.org/wiki/Disuguaglianza", - "LOGIC_COMPARE_TOOLTIP_EQ": "Restituisce vero se gli input sono uno uguale all'altro.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Restituisce vero se gli input non sono uno uguale all'altro.", - "LOGIC_COMPARE_TOOLTIP_LT": "Restituisce vero se il primo input è minore del secondo.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Restituisce vero se il primo input è minore o uguale al secondo.", - "LOGIC_COMPARE_TOOLTIP_GT": "Restituisce vero se il primo input è maggiore o uguale al secondo.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Restituisce uguale se il primo input è maggiore o uguale al secondo input.", - "LOGIC_OPERATION_TOOLTIP_AND": "Restituisce vero se entrambi gli input sono veri.", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_TOOLTIP_OR": "Restituisce vero se almeno uno degli input è vero.", - "LOGIC_OPERATION_OR": "o", - "LOGIC_NEGATE_TITLE": "non %1", - "LOGIC_NEGATE_TOOLTIP": "Restituisce vero se l'input è falso. Restituisce falso se l'input è vero.", - "LOGIC_BOOLEAN_TRUE": "vero", - "LOGIC_BOOLEAN_FALSE": "falso", - "LOGIC_BOOLEAN_TOOLTIP": "Restituisce vero o falso.", - "LOGIC_NULL": "nullo", - "LOGIC_NULL_TOOLTIP": "Restituisce valore nullo.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "se vero", - "LOGIC_TERNARY_IF_FALSE": "se falso", - "LOGIC_TERNARY_TOOLTIP": "Verifica la condizione in 'test'. Se questa è vera restituisce il valore 'se vero' altrimenti restituisce il valore 'se falso'.", - "MATH_NUMBER_HELPURL": "https://it.wikipedia.org/wiki/Numero", - "MATH_NUMBER_TOOLTIP": "Un numero.", - "MATH_ARITHMETIC_HELPURL": "https://it.wikipedia.org/wiki/Aritmetica", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Restituisce la somma dei due numeri.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Restituisce la differenza dei due numeri.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Restituisce il prodotto dei due numeri.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Restituisce il quoziente dei due numeri.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Restituisce il primo numero elevato alla potenza del secondo numero.", - "MATH_SINGLE_HELPURL": "https://it.wikipedia.org/wiki/Radice_quadrata", - "MATH_SINGLE_OP_ROOT": "radice quadrata", - "MATH_SINGLE_TOOLTIP_ROOT": "Restituisce la radice quadrata del numero.", - "MATH_SINGLE_OP_ABSOLUTE": "assoluto", - "MATH_SINGLE_TOOLTIP_ABS": "Restituisce il valore assoluto del numero.", - "MATH_SINGLE_TOOLTIP_NEG": "Restituisce l'opposto del numero.", - "MATH_SINGLE_TOOLTIP_LN": "Restituisce il logaritmo naturale del numero.", - "MATH_SINGLE_TOOLTIP_LOG10": "Restituisce il logaritmo in base 10 del numero.", - "MATH_SINGLE_TOOLTIP_EXP": "Restituisce e elevato alla potenza del numero.", - "MATH_SINGLE_TOOLTIP_POW10": "Restituisce 10 elevato alla potenza del numero.", - "MATH_TRIG_HELPURL": "https://it.wikipedia.org/wiki/Funzione_trigonometrica", - "MATH_TRIG_TOOLTIP_SIN": "Restituisce il seno di un angolo espresso in gradi (non radianti).", - "MATH_TRIG_TOOLTIP_COS": "Restituisce il coseno di un angolo espresso in gradi (non radianti).", - "MATH_TRIG_TOOLTIP_TAN": "Restituisce la tangente di un angolo espresso in gradi (non radianti).", - "MATH_TRIG_TOOLTIP_ASIN": "Restituisce l'arco-seno di un numero.", - "MATH_TRIG_TOOLTIP_ACOS": "Restituisce l'arco-coseno di un numero.", - "MATH_TRIG_TOOLTIP_ATAN": "Restituisce l'arco-tangente di un numero.", - "MATH_CONSTANT_HELPURL": "https://it.wikipedia.org/wiki/Costante_matematica", - "MATH_CONSTANT_TOOLTIP": "Restituisce una delle costanti comuniː π (3.141…), e (2.718…), φ (1.618…), radq(2) (1.414…), radq(½) (0.707…) o ∞ (infinito).", - "MATH_IS_EVEN": "è pari", - "MATH_IS_ODD": "è dispari", - "MATH_IS_PRIME": "è primo", - "MATH_IS_WHOLE": "è intero", - "MATH_IS_POSITIVE": "è positivo", - "MATH_IS_NEGATIVE": "è negativo", - "MATH_IS_DIVISIBLE_BY": "è divisibile per", - "MATH_IS_TOOLTIP": "Verifica se un numero è pari, dispari, primo, intero, positivo, negativo o se è divisibile per un certo numero. Restituisce vero o falso.", - "MATH_CHANGE_HELPURL": "https://it.wikipedia.org/wiki/Addizione", - "MATH_CHANGE_TITLE": "cambia %1 di %2", - "MATH_CHANGE_TOOLTIP": "Aggiunge un numero alla variabile '%1'.", - "MATH_ROUND_HELPURL": "https://it.wikipedia.org/wiki/Arrotondamento", - "MATH_ROUND_TOOLTIP": "Arrotonda un numero verso l'alto o verso il basso.", - "MATH_ROUND_OPERATOR_ROUND": "arrotonda", - "MATH_ROUND_OPERATOR_ROUNDUP": "arrotonda verso l'alto", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arrotonda verso il basso", - "MATH_ONLIST_OPERATOR_SUM": "somma la lista", - "MATH_ONLIST_TOOLTIP_SUM": "Restituisce la somma si tutti i numeri nella lista.", - "MATH_ONLIST_OPERATOR_MIN": "minimo della lista", - "MATH_ONLIST_TOOLTIP_MIN": "Restituisce il più piccolo numero della lista.", - "MATH_ONLIST_OPERATOR_MAX": "massimo della lista", - "MATH_ONLIST_TOOLTIP_MAX": "Restituisce il più grande numero della lista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "media della lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Restituisce la media (media aritmetica) dei valori numerici nella lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana della lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Restituisce il valore mediano della lista.", - "MATH_ONLIST_OPERATOR_MODE": "mode della lista", - "MATH_ONLIST_TOOLTIP_MODE": "Restituisce una lista degli elementi più frequenti nella lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "deviazione standard della lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Restituisce la deviazione standard della lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "elemento casuale della lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Restituisce un elemento casuale della lista.", - "MATH_MODULO_HELPURL": "https://it.wikipedia.org/wiki/Resto", - "MATH_MODULO_TITLE": "resto di %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Restituisce il resto della divisione di due numeri.", - "MATH_CONSTRAIN_TITLE": "costringi %1 da %2 a %3", - "MATH_CONSTRAIN_TOOLTIP": "Costringe un numero all'interno dei limiti indicati (compresi).", - "MATH_RANDOM_INT_HELPURL": "https://it.wikipedia.org/wiki/Numeri_pseudo-casuali", - "MATH_RANDOM_INT_TITLE": "intero casuale da %1 a %2", - "MATH_RANDOM_INT_TOOLTIP": "Restituisce un numero intero casuale compreso tra i due limiti indicati (inclusi).", - "MATH_RANDOM_FLOAT_HELPURL": "https://it.wikipedia.org/wiki/Numeri_pseudo-casuali", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "frazione casuale", - "MATH_RANDOM_FLOAT_TOOLTIP": "Restituisce una frazione compresa fra 0.0 (incluso) e 1.0 (escluso).", - "MATH_ATAN2_HELPURL": "https://it.wikipedia.org/wiki/Arcotangente2", - "MATH_ATAN2_TITLE": "atan2 di X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Restituisce l'arcotangente del punto (X, Y) in gradi da -180 a 180.", - "TEXT_TEXT_HELPURL": "https://it.wikipedia.org/wiki/Stringa_(informatica)", - "TEXT_TEXT_TOOLTIP": "Una lettera, una parola o una linea di testo.", - "TEXT_JOIN_TITLE_CREATEWITH": "crea testo con", - "TEXT_JOIN_TOOLTIP": "Crea un blocco di testo unendo un certo numero di elementi.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unisci", - "TEXT_CREATE_JOIN_TOOLTIP": "Aggiungi, rimuovi o riordina le sezioni per riconfigurare questo blocco testo.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Aggiungi un elemento al testo.", - "TEXT_APPEND_TITLE": "a %1 aggiungi il testo %2", - "TEXT_APPEND_TOOLTIP": "Aggiunge del testo alla variabile '%1'.", - "TEXT_LENGTH_TITLE": "lunghezza di %1", - "TEXT_LENGTH_TOOLTIP": "Restituisce il numero di lettere (inclusi gli spazi) nel testo fornito.", - "TEXT_ISEMPTY_TITLE": "%1 è vuoto", - "TEXT_ISEMPTY_TOOLTIP": "Restituisce vero se il testo fornito è vuoto.", - "TEXT_INDEXOF_TOOLTIP": "Restituisce l'indice della prima occorrenza del primo testo all'interno del secondo testo. Restituisce %1 se il testo non viene trovato.", - "TEXT_INDEXOF_TITLE": "nel testo %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "trova la prima occorrenza del testo", - "TEXT_INDEXOF_OPERATOR_LAST": "trova l'ultima occorrenza del testo", - "TEXT_CHARAT_TITLE": "nel testo %1 %2", - "TEXT_CHARAT_FROM_START": "prendi la lettera #", - "TEXT_CHARAT_FROM_END": "prendi la lettera # dalla fine", - "TEXT_CHARAT_FIRST": "prendi la prima lettera", - "TEXT_CHARAT_LAST": "prendi l'ultima lettera", - "TEXT_CHARAT_RANDOM": "prendi lettera casuale", - "TEXT_CHARAT_TOOLTIP": "Restituisce la lettera nella posizione indicata.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Restituisce la porzione di testo indicata.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "nel testo", - "TEXT_GET_SUBSTRING_START_FROM_START": "prendi sotto-stringa dalla lettera #", - "TEXT_GET_SUBSTRING_START_FROM_END": "prendi sotto-stringa dalla lettera # dalla fine", - "TEXT_GET_SUBSTRING_START_FIRST": "prendi sotto-stringa dalla prima lettera", - "TEXT_GET_SUBSTRING_END_FROM_START": "alla lettera #", - "TEXT_GET_SUBSTRING_END_FROM_END": "alla lettera # dalla fine", - "TEXT_GET_SUBSTRING_END_LAST": "all'ultima lettera", - "TEXT_CHANGECASE_TOOLTIP": "Restituisce una copia del testo in un diverso formato maiuscole/minuscole.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "in MAIUSCOLO", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "in minuscolo", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "con Iniziali Maiuscole", - "TEXT_TRIM_TOOLTIP": "Restituisce una copia del testo con gli spazi rimossi ad uno o entrambe le estremità.", - "TEXT_TRIM_OPERATOR_BOTH": "rimuovi spazi da entrambi gli estremi", - "TEXT_TRIM_OPERATOR_LEFT": "rimuovi spazi a sinistra", - "TEXT_TRIM_OPERATOR_RIGHT": "rimuovi spazi a destra", - "TEXT_PRINT_TITLE": "scrivi %1", - "TEXT_PRINT_TOOLTIP": "Scrive il testo, numero o altro valore indicato.", - "TEXT_PROMPT_TYPE_TEXT": "richiedi testo con messaggio", - "TEXT_PROMPT_TYPE_NUMBER": "richiedi numero con messaggio", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Richiedi un numero all'utente.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Richiede del testo da parte dell'utente.", - "TEXT_COUNT_MESSAGE0": "conta %1 in %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Contare quante volte una parte di testo si ripete all'interno di qualche altro testo.", - "TEXT_REPLACE_MESSAGE0": "sostituisci %1 con %2 in %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "sostituisci tutte le occorrenze di un certo testo con qualche altro testo.", - "TEXT_REVERSE_MESSAGE0": "inverti %1", - "TEXT_REVERSE_TOOLTIP": "Inverte l'ordine dei caratteri nel testo.", - "LISTS_CREATE_EMPTY_TITLE": "crea lista vuota", - "LISTS_CREATE_EMPTY_TOOLTIP": "Restituisce una lista, di lunghezza 0, contenente nessun record di dati", - "LISTS_CREATE_WITH_TOOLTIP": "Crea una lista con un certo numero di elementi.", - "LISTS_CREATE_WITH_INPUT_WITH": "crea lista con", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Aggiungi, rimuovi o riordina le sezioni per riconfigurare il blocco lista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Aggiunge un elemento alla lista.", - "LISTS_REPEAT_TOOLTIP": "Crea una lista costituita dal valore indicato ripetuto per il numero di volte specificato.", - "LISTS_REPEAT_TITLE": "crea una lista con l'elemento %1 ripetuto %2 volte", - "LISTS_LENGTH_TITLE": "lunghezza di %1", - "LISTS_LENGTH_TOOLTIP": "Restituisce la lunghezza della lista", - "LISTS_ISEMPTY_TITLE": "%1 è vuota", - "LISTS_ISEMPTY_TOOLTIP": "Restituisce vero se la lista è vuota.", - "LISTS_INLIST": "nella lista", - "LISTS_INDEX_OF_FIRST": "trova la prima occorrenza dell'elemento", - "LISTS_INDEX_OF_LAST": "trova l'ultima occorrenza dell'elemento", - "LISTS_INDEX_OF_TOOLTIP": "Restituisce l'indice della prima/ultima occorrenza dell'elemento nella lista. Restituisce %1 se l'elemento non viene trovato.", - "LISTS_GET_INDEX_GET": "prendi", - "LISTS_GET_INDEX_GET_REMOVE": "prendi e rimuovi", - "LISTS_GET_INDEX_REMOVE": "rimuovi", - "LISTS_GET_INDEX_FROM_END": "# dalla fine", - "LISTS_GET_INDEX_FIRST": "primo", - "LISTS_GET_INDEX_LAST": "ultimo", - "LISTS_GET_INDEX_RANDOM": "casuale", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 corrisponde al primo elemento.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 corrisponde all'ultimo elemento.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Restituisce l'elemento nella posizione indicata della lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Restituisce il primo elemento in una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Restituisce l'ultimo elemento in una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Restituisce un elemento casuale in una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Rimuove e restituisce l'elemento nella posizione indicata in una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Rimuove e restituisce il primo elemento in una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Restituisce e rimuove l'ultimo elemento in una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Restituisce e rimuove un elemento casuale in una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Rimuove l'elemento nella posizione indicata in una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Rimuove il primo elemento in una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Rimuove l'ultimo elemento in una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Rimuove un elemento casuale in una lista.", - "LISTS_SET_INDEX_SET": "imposta", - "LISTS_SET_INDEX_INSERT": "inserisci in", - "LISTS_SET_INDEX_INPUT_TO": "come", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Imposta l'elemento nella posizione indicata di una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Imposta il primo elemento in una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Imposta l'ultimo elemento in una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Imposta un elemento casuale in una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Inserisci un elemento nella posizione indicata in una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Inserisci l'elemento all'inizio della lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Aggiungi un elemento alla fine di una lista", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Inserisce l'elemento casualmente in una lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "prendi sotto-lista da #", - "LISTS_GET_SUBLIST_START_FROM_END": "prendi sotto-lista da # dalla fine", - "LISTS_GET_SUBLIST_START_FIRST": "prendi sotto-lista dall'inizio", - "LISTS_GET_SUBLIST_END_FROM_START": "fino a #", - "LISTS_GET_SUBLIST_END_FROM_END": "da # dalla fine", - "LISTS_GET_SUBLIST_END_LAST": "dagli ultimi", - "LISTS_GET_SUBLIST_TOOLTIP": "Crea una copia della porzione specificata di una lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "ordinamento %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ordina una copia di un elenco.", - "LISTS_SORT_ORDER_ASCENDING": "crescente", - "LISTS_SORT_ORDER_DESCENDING": "decrescente", - "LISTS_SORT_TYPE_NUMERIC": "numerico", - "LISTS_SORT_TYPE_TEXT": "alfabetico", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetico, ignorare differenze maiuscole e minuscole", - "LISTS_SPLIT_LIST_FROM_TEXT": "crea lista da testo", - "LISTS_SPLIT_TEXT_FROM_LIST": "crea testo da lista", - "LISTS_SPLIT_WITH_DELIMITER": "con delimitatore", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Dividi il testo in un elenco di testi, interrompendo ad ogni delimitatore.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Unisci una lista di testi in un unico testo, separato da un delimitatore.", - "LISTS_REVERSE_MESSAGE0": "inverti %1", - "LISTS_REVERSE_TOOLTIP": "Inverti una copia di un elenco.", - "VARIABLES_GET_TOOLTIP": "Restituisce il valore di una variabile.", - "VARIABLES_GET_CREATE_SET": "Crea 'imposta %1'", - "VARIABLES_SET": "imposta %1 a %2", - "VARIABLES_SET_TOOLTIP": "Imposta questa variabile ad essere pari all'input.", - "VARIABLES_SET_CREATE_GET": "Crea 'prendi %1'", - "PROCEDURES_DEFNORETURN_TITLE": "per", - "PROCEDURES_DEFNORETURN_PROCEDURE": "fai qualcosa", - "PROCEDURES_BEFORE_PARAMS": "conː", - "PROCEDURES_CALL_BEFORE_PARAMS": "conː", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Crea una funzione senza output.", - "PROCEDURES_DEFNORETURN_COMMENT": "Descrivi questa funzione...", - "PROCEDURES_DEFRETURN_RETURN": "ritorna", - "PROCEDURES_DEFRETURN_TOOLTIP": "Crea una funzione con un output.", - "PROCEDURES_ALLOW_STATEMENTS": "consenti dichiarazioni", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Attenzioneː Questa funzione ha parametri duplicati.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://it.wikipedia.org/wiki/Funzione (informatica)", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Esegue la funzione definita dall'utente '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://it.wikipedia.org/wiki/Funzione (informatica)", - "PROCEDURES_CALLRETURN_TOOLTIP": "Esegue la funzione definita dall'utente '%1' ed usa il suo output.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "input", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Aggiungi, rimuovi o riordina input alla funzione.", - "PROCEDURES_MUTATORARG_TITLE": "nome inputː", - "PROCEDURES_MUTATORARG_TOOLTIP": "Aggiungi un input alla funzione.", - "PROCEDURES_HIGHLIGHT_DEF": "Evidenzia definizione di funzione", - "PROCEDURES_CREATE_DO": "Crea '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Se un valore è vero allora restituisce un secondo valore.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Attenzioneː Questo blocco può essere usato solo all'interno di una definizione di funzione.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Scrivi qualcosa...", - "COLLAPSED_WARNINGS_WARNING": "I blocchi compressi contengono avvertimenti." -} diff --git a/lib/blockly/msg/json/ja.json b/lib/blockly/msg/json/ja.json deleted file mode 100644 index 9d86ec0..0000000 --- a/lib/blockly/msg/json/ja.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Shirayuki", - "Oda", - "아라", - "Otokoume", - "Sujiniku", - "Sgk", - "TAKAHASHI Shuuji", - "Suiato", - "ネイ", - "Aefgh39622", - "Omotecho", - "Gimite", - "Gulpin" - ] - }, - "VARIABLES_DEFAULT_NAME": "項目", - "TODAY": "今日", - "DUPLICATE_BLOCK": "複製", - "ADD_COMMENT": "コメントを追加", - "REMOVE_COMMENT": "コメントを削除", - "DUPLICATE_COMMENT": "コメントを複製", - "EXTERNAL_INPUTS": "外部入力", - "INLINE_INPUTS": "インライン入力", - "DELETE_BLOCK": "ブロックを削除", - "DELETE_X_BLOCKS": "%1 個のブロックを削除", - "DELETE_ALL_BLOCKS": "%1件のすべてのブロックを削除しますか?", - "CLEAN_UP": "ブロックを整理する", - "COLLAPSE_BLOCK": "ブロックを折りたたむ", - "COLLAPSE_ALL": "ブロックを折りたたむ", - "EXPAND_BLOCK": "ブロックを展開する", - "EXPAND_ALL": "ブロックを展開する", - "DISABLE_BLOCK": "ブロックを無効にする", - "ENABLE_BLOCK": "ブロックを有効にする", - "HELP": "ヘルプ", - "UNDO": "取り消す", - "REDO": "やり直す", - "CHANGE_VALUE_TITLE": "値を変える:", - "RENAME_VARIABLE": "変数の名前を変える…", - "RENAME_VARIABLE_TITLE": "選択した%1の変数すべての名前を変える:", - "NEW_VARIABLE": "変数の作成…", - "NEW_STRING_VARIABLE": "文字列の変数を作る...", - "NEW_NUMBER_VARIABLE": "数の変数を作る...", - "NEW_COLOUR_VARIABLE": "色の変数を作る...", - "NEW_VARIABLE_TYPE_TITLE": "新しい変数の型:", - "NEW_VARIABLE_TITLE": "新しい変数の名前:", - "VARIABLE_ALREADY_EXISTS": "変数名 '%1' は既に存在しています。", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%2' 型の '%1' という名前の変数が既に存在します。", - "DELETE_VARIABLE_CONFIRMATION": "%1か所で使われている変数 '%2' を削除しますか?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "変数 '%1' は関数 '%2' の定義の一部であるため、削除できません", - "DELETE_VARIABLE": "変数 '%1' を削除", - "COLOUR_PICKER_HELPURL": "https://ja.wikipedia.org/wiki/色", - "COLOUR_PICKER_TOOLTIP": "パレットから色を選んでください。", - "COLOUR_RANDOM_TITLE": "ランダムな色", - "COLOUR_RANDOM_TOOLTIP": "ランダムな色を選ぶ。", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "色:", - "COLOUR_RGB_RED": "赤", - "COLOUR_RGB_GREEN": "緑", - "COLOUR_RGB_BLUE": "青", - "COLOUR_RGB_TOOLTIP": "赤、緑、および青の指定された量で色を作成します。すべての値は 0 ~ 100 の間でなければなりません。", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "ブレンド", - "COLOUR_BLEND_COLOUR1": "色 1", - "COLOUR_BLEND_COLOUR2": "色 2", - "COLOUR_BLEND_RATIO": "比率", - "COLOUR_BLEND_TOOLTIP": "2色を与えられた比率(0.0~1.0)で混ぜます。", - "CONTROLS_REPEAT_HELPURL": "https://ja.wikipedia.org/wiki/for文", - "CONTROLS_REPEAT_TITLE": "%1 回繰り返す", - "CONTROLS_REPEAT_INPUT_DO": "実行", - "CONTROLS_REPEAT_TOOLTIP": "いくつかのステートメントを数回実行します。", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "繰り返す:続ける条件", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "繰り返す:終わる条件", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "値がtrueの間、いくつかのステートメントを実行する。", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "値がfalseの間、いくつかのステートメントを実行する。", - "CONTROLS_FOR_TOOLTIP": "変数 '%1' が開始番号から終了番号まで指定した間隔での値をとって、指定したブロックを実行する。", - "CONTROLS_FOR_TITLE": "%1 を %2 から %3 まで %4 ずつカウントする", - "CONTROLS_FOREACH_TITLE": "リスト%2の各項目%1について", - "CONTROLS_FOREACH_TOOLTIP": "リストの各項目について、その項目を変数'%1'として、いくつかのステートメントを実行します。", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ループから抜け出す", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ループの次の反復処理を続行します", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "入っているループから抜け出します。", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "このループの残りの部分をスキップして、ループの繰り返しを続けます。", - "CONTROLS_FLOW_STATEMENTS_WARNING": "注意: このブロックは、ループ内でのみ使用できます。", - "CONTROLS_IF_TOOLTIP_1": "値が true の場合、ステートメントを実行します。", - "CONTROLS_IF_TOOLTIP_2": "値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、ステートメントの 2 番目のブロックを行います。", - "CONTROLS_IF_TOOLTIP_3": "最初の値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、2 番目の値が true の場合、ステートメントの 2 番目のブロックをします。", - "CONTROLS_IF_TOOLTIP_4": "最初の値が true 場合は、ステートメントの最初のブロックを行います。2 番目の値が true の場合は、ステートメントの 2 番目のブロックを行います。それ以外の場合は最後のブロックのステートメントを行います。", - "CONTROLS_IF_MSG_IF": "もし", - "CONTROLS_IF_MSG_ELSEIF": "そうでなくもし", - "CONTROLS_IF_MSG_ELSE": "そうでなければ", - "CONTROLS_IF_IF_TOOLTIP": "追加、削除、またはセクションを順序変更して、ブロックをこれを再構成します。", - "CONTROLS_IF_ELSEIF_TOOLTIP": "「もしも」のブロックに条件を追加します。", - "CONTROLS_IF_ELSE_TOOLTIP": "Ifブロックに、すべてをキャッチする条件を追加。", - "IOS_OK": "OK", - "IOS_CANCEL": "キャンセル", - "IOS_ERROR": "エラー", - "IOS_PROCEDURES_INPUTS": "入力", - "IOS_PROCEDURES_ADD_INPUT": "+ 入力を追加", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "ステートメントを許可", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "この関数には重複する入力があります。", - "IOS_VARIABLES_ADD_VARIABLE": "+ 変数を追加", - "IOS_VARIABLES_ADD_BUTTON": "追加", - "IOS_VARIABLES_RENAME_BUTTON": "名前を変更", - "IOS_VARIABLES_DELETE_BUTTON": "削除", - "IOS_VARIABLES_VARIABLE_NAME": "変数名", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "空の変数名は使用できません。", - "LOGIC_COMPARE_HELPURL": "https://ja.wikipedia.org/wiki/不等式", - "LOGIC_COMPARE_TOOLTIP_EQ": "両方の入力が互いに等しい場合に true を返します。", - "LOGIC_COMPARE_TOOLTIP_NEQ": "両方の入力が互いに等しくない場合に true を返します。", - "LOGIC_COMPARE_TOOLTIP_LT": "最初の入力が 2 番目の入力よりも小さい場合は true を返します。", - "LOGIC_COMPARE_TOOLTIP_LTE": "最初の入力が 2 番目の入力以下の場合に true を返します。", - "LOGIC_COMPARE_TOOLTIP_GT": "最初の入力が 2 番目の入力よりも大きい場合は true を返します。", - "LOGIC_COMPARE_TOOLTIP_GTE": "最初の入力が 2 番目の入力以上の場合に true を返します。", - "LOGIC_OPERATION_TOOLTIP_AND": "両方の入力が true のときに true を返します。", - "LOGIC_OPERATION_AND": "かつ", - "LOGIC_OPERATION_TOOLTIP_OR": "少なくとも 1 つの入力が true のときに true を返します。", - "LOGIC_OPERATION_OR": "または", - "LOGIC_NEGATE_HELPURL": "https://ja.wikipedia.org/wiki/否定", - "LOGIC_NEGATE_TITLE": "%1ではない", - "LOGIC_NEGATE_TOOLTIP": "入力が false の場合は、true を返します。入力が true の場合は false を返します。", - "LOGIC_BOOLEAN_TRUE": "true", - "LOGIC_BOOLEAN_FALSE": "false", - "LOGIC_BOOLEAN_TOOLTIP": "true または false を返します。", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "null を返します。", - "LOGIC_TERNARY_HELPURL": "https://ja.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "テスト", - "LOGIC_TERNARY_IF_TRUE": "true の場合", - "LOGIC_TERNARY_IF_FALSE": "false の場合", - "LOGIC_TERNARY_TOOLTIP": "'テスト' の条件をチェックします。条件が true の場合、'true' の値を返します。それ以外の場合 'false' のを返します。", - "MATH_NUMBER_HELPURL": "https://ja.wikipedia.org/wiki/数", - "MATH_NUMBER_TOOLTIP": "数です。", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://ja.wikipedia.org/wiki/算術", - "MATH_ARITHMETIC_TOOLTIP_ADD": "2 つの数の合計を返します。", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "2 つの数の差を返します。", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "2 つの数の積を返します。", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "2 つの数の商を返します。", - "MATH_ARITHMETIC_TOOLTIP_POWER": "最初の数を2 番目の値で累乗した結果を返します。", - "MATH_SINGLE_HELPURL": "https://ja.wikipedia.org/wiki/平方根", - "MATH_SINGLE_OP_ROOT": "平方根", - "MATH_SINGLE_TOOLTIP_ROOT": "平方根を返す。", - "MATH_SINGLE_OP_ABSOLUTE": "絶対値", - "MATH_SINGLE_TOOLTIP_ABS": "絶対値を返す。", - "MATH_SINGLE_TOOLTIP_NEG": "負の数を返す。", - "MATH_SINGLE_TOOLTIP_LN": "数値の自然対数を返す。", - "MATH_SINGLE_TOOLTIP_LOG10": "底が10の対数を返す。", - "MATH_SINGLE_TOOLTIP_EXP": "ネイピア数eの数値乗を返す。", - "MATH_SINGLE_TOOLTIP_POW10": "10の数値乗を返す。", - "MATH_TRIG_HELPURL": "https://ja.wikipedia.org/wiki/三角関数", - "MATH_TRIG_TOOLTIP_SIN": "(ラジアンではなく)度数の正弦(sin)を返す。", - "MATH_TRIG_TOOLTIP_COS": "(ラジアンではなく)度数の余弦(cosin)を返す。", - "MATH_TRIG_TOOLTIP_TAN": "(ラジアンではなく)度数の正接(tan)を返す。", - "MATH_TRIG_TOOLTIP_ASIN": "アークサイン(arcsin)を返す。", - "MATH_TRIG_TOOLTIP_ACOS": "アークコサイン(arccosin)を返す。", - "MATH_TRIG_TOOLTIP_ATAN": "アークタンジェント(arctan)を返す。", - "MATH_CONSTANT_HELPURL": "https://ja.wikipedia.org/wiki/数学定数", - "MATH_CONSTANT_TOOLTIP": "いずれかの共通の定数のを返す: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (無限).", - "MATH_IS_EVEN": "は偶数", - "MATH_IS_ODD": "は奇数", - "MATH_IS_PRIME": "は素数", - "MATH_IS_WHOLE": "は整数", - "MATH_IS_POSITIVE": "は正", - "MATH_IS_NEGATIVE": "は負", - "MATH_IS_DIVISIBLE_BY": "は以下で割りきれる:", - "MATH_IS_TOOLTIP": "数字が、偶数、奇数、素数、整数、正数、負数、または特定の数で割り切れるかどうかを判定し、true か false を返します。", - "MATH_CHANGE_HELPURL": "https://ja.wikipedia.org/wiki/加法", - "MATH_CHANGE_TITLE": "%1 を %2 増やす", - "MATH_CHANGE_TOOLTIP": "変数'%1'に数をたす。", - "MATH_ROUND_HELPURL": "https://ja.wikipedia.org/wiki/端数処理", - "MATH_ROUND_TOOLTIP": "数値を切り上げるか切り捨てる", - "MATH_ROUND_OPERATOR_ROUND": "四捨五入", - "MATH_ROUND_OPERATOR_ROUNDUP": "切り上げ", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "切り捨て", - "MATH_ONLIST_OPERATOR_SUM": "リストの合計", - "MATH_ONLIST_TOOLTIP_SUM": "リストの数値を足して返す。", - "MATH_ONLIST_OPERATOR_MIN": "リストの最小値", - "MATH_ONLIST_TOOLTIP_MIN": "リストの最小値を返す。", - "MATH_ONLIST_OPERATOR_MAX": "リストの最大値", - "MATH_ONLIST_TOOLTIP_MAX": "リストの最大値を返す。", - "MATH_ONLIST_OPERATOR_AVERAGE": "リストの平均", - "MATH_ONLIST_TOOLTIP_AVERAGE": "リストの数値の平均 (算術平均) を返す。", - "MATH_ONLIST_OPERATOR_MEDIAN": "リストの中央値", - "MATH_ONLIST_TOOLTIP_MEDIAN": "リストの中央値を返す。", - "MATH_ONLIST_OPERATOR_MODE": "リストの最頻値", - "MATH_ONLIST_TOOLTIP_MODE": "リスト中の最頻項目のリストを返す。", - "MATH_ONLIST_OPERATOR_STD_DEV": "リストの標準偏差", - "MATH_ONLIST_TOOLTIP_STD_DEV": "リストの標準偏差を返す。", - "MATH_ONLIST_OPERATOR_RANDOM": "リストからランダムに選ばれた項目", - "MATH_ONLIST_TOOLTIP_RANDOM": "リストからランダムに選ばれた要素を返す。", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1÷%2の余り", - "MATH_MODULO_TOOLTIP": "2つの数値の割り算の余りを返す。", - "MATH_CONSTRAIN_TITLE": "%1 を %2 以上 %3 以下の範囲に制限", - "MATH_CONSTRAIN_TOOLTIP": "指定した上限と下限の間に値を制限する(上限と下限の値を含む)。", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "%1から%2までのランダムな整数", - "MATH_RANDOM_INT_TOOLTIP": "指定された(上下限を含む)範囲のランダムな整数を返します。", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "1未満の正の乱数", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0以上で1.0未満の範囲の乱数を返します。", - "TEXT_TEXT_HELPURL": "https://ja.wikipedia.org/wiki/文字列", - "TEXT_TEXT_TOOLTIP": "文字、単語、または行のテキスト。", - "TEXT_JOIN_TITLE_CREATEWITH": "テキストの作成:", - "TEXT_JOIN_TOOLTIP": "任意の数の項目一部を一緒に接合してテキストを作成。", - "TEXT_CREATE_JOIN_TITLE_JOIN": "結合", - "TEXT_CREATE_JOIN_TOOLTIP": "セクションを追加、削除、または順序変更して、ブロックを再構成。", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "テキストへ項目を追加。", - "TEXT_APPEND_TITLE": "項目 %1 へテキストを追加 %2", - "TEXT_APPEND_TOOLTIP": "変数 '%1' にテキストを追加。", - "TEXT_LENGTH_TITLE": "%1の長さ", - "TEXT_LENGTH_TOOLTIP": "与えられたテキストの(スペースを含む)文字数を返す。", - "TEXT_ISEMPTY_TITLE": "%1が空", - "TEXT_ISEMPTY_TOOLTIP": "与えられたテキストが空の場合は true を返す。", - "TEXT_INDEXOF_TOOLTIP": "二番目のテキストの中で一番目のテキストが最初/最後に出現したインデックスを返す。テキストが見つからない場合は%1を返す。", - "TEXT_INDEXOF_TITLE": "テキスト %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "で以下のテキストの最初の出現箇所を検索:", - "TEXT_INDEXOF_OPERATOR_LAST": "で以下のテキストの最後の出現箇所を検索:", - "TEXT_CHARAT_TITLE": "テキスト %1 %2", - "TEXT_CHARAT_FROM_START": "の、以下の数字番目の文字:", - "TEXT_CHARAT_FROM_END": "の、後ろから以下の数字番目の文字:", - "TEXT_CHARAT_FIRST": "最初の文字を得る", - "TEXT_CHARAT_LAST": "最後の文字を得る", - "TEXT_CHARAT_RANDOM": "ランダムな文字を得る", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "指定された位置に文字を返します。", - "TEXT_GET_SUBSTRING_TOOLTIP": "テキストの指定部分を返します。", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "テキスト", - "TEXT_GET_SUBSTRING_START_FROM_START": "の部分文字列を取得;開始位置:", - "TEXT_GET_SUBSTRING_START_FROM_END": "の部分文字列を取得;開始位置:後ろから", - "TEXT_GET_SUBSTRING_START_FIRST": "の部分文字列を取得;最初から", - "TEXT_GET_SUBSTRING_END_FROM_START": "終了位置:", - "TEXT_GET_SUBSTRING_END_FROM_END": "終了位置:後ろから", - "TEXT_GET_SUBSTRING_END_LAST": "最後のの文字", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_TOOLTIP": "別のケースに、テキストのコピーを返します。", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "大文字に", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "小文字に", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "タイトル ケースに", - "TEXT_TRIM_TOOLTIP": "スペースを 1 つまたは両方の端から削除したのち、テキストのコピーを返します。", - "TEXT_TRIM_OPERATOR_BOTH": "両端のスペースを取り除く", - "TEXT_TRIM_OPERATOR_LEFT": "左端のスペースを取り除く", - "TEXT_TRIM_OPERATOR_RIGHT": "右端のスペースを取り除く", - "TEXT_PRINT_TITLE": "%1 を表示", - "TEXT_PRINT_TOOLTIP": "指定したテキスト、番号または他の値を印刷します。", - "TEXT_PROMPT_TYPE_TEXT": "メッセージでテキスト入力を求める", - "TEXT_PROMPT_TYPE_NUMBER": "メッセージで番号の入力を求める", - "TEXT_PROMPT_TOOLTIP_NUMBER": "ユーザーに数値のインプットを求める。", - "TEXT_PROMPT_TOOLTIP_TEXT": "ユーザーにテキスト入力を求める。", - "TEXT_COUNT_MESSAGE0": "%2に含まれる%1の数を数える", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "とある文が別の文のなかに使われた回数を数える。", - "TEXT_REPLACE_MESSAGE0": "%3に含まれる%1を%2に置換", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "文に含まれるキーワードを置換する。", - "TEXT_REVERSE_MESSAGE0": "%1を逆順に", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "文の文字を逆順にする。", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "空のリストを作成", - "LISTS_CREATE_EMPTY_TOOLTIP": "長さ0でデータ・レコードを含まない空のリストを返す", - "LISTS_CREATE_WITH_TOOLTIP": "項目数が不定のリストを作成。", - "LISTS_CREATE_WITH_INPUT_WITH": "以下を使ってリストを作成:", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "リスト", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "追加、削除、またはセクションの順序変更をして、このリスト・ブロックを再構成する。", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "リストに項目を追加。", - "LISTS_REPEAT_TOOLTIP": "与えられた値を指定された回数繰り返してリストを作成。", - "LISTS_REPEAT_TITLE": "項目%1を%2回繰り返したリストを作成", - "LISTS_LENGTH_TITLE": "%1の長さ", - "LISTS_LENGTH_TOOLTIP": "リストの長さを返します。", - "LISTS_ISEMPTY_TITLE": "%1が空", - "LISTS_ISEMPTY_TOOLTIP": "リストが空の場合は、true を返します。", - "LISTS_INLIST": "リスト", - "LISTS_INDEX_OF_FIRST": "で以下のアイテムの最初の出現箇所を検索:", - "LISTS_INDEX_OF_LAST": "で以下のテキストの最後の出現箇所を検索:", - "LISTS_INDEX_OF_TOOLTIP": "リスト項目の最初/最後に出現するインデックス位置を返します。項目が見つからない場合は %1 を返します。", - "LISTS_GET_INDEX_GET": "取得", - "LISTS_GET_INDEX_GET_REMOVE": "取得して削除", - "LISTS_GET_INDEX_REMOVE": "削除", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "位置:後ろから", - "LISTS_GET_INDEX_FIRST": "最初", - "LISTS_GET_INDEX_LAST": "最後", - "LISTS_GET_INDEX_RANDOM": "ランダム", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 は、最初の項目です。", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 は、最後の項目です。", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "リスト内の指定位置にある項目を返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "リストの最初の項目を返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "リストの最後の項目を返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "ランダム アイテム リストを返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "リスト内の指定位置にある項目を削除し、返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "リスト内の最初の項目を削除し返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "リスト内の最後の項目を削除したあと返します。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "リストのランダムなアイテムを削除し返します。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "リスト内の指定された項目を削除します。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "リスト内の最初の項目を削除します。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "リスト内の最後の項目を削除します。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "リスト内にあるアイテムをランダムに削除します。", - "LISTS_SET_INDEX_SET": "セット", - "LISTS_SET_INDEX_INSERT": "挿入位置:", - "LISTS_SET_INDEX_INPUT_TO": "値:", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "リスト内の指定された位置に項目を設定します。", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "リスト内に最初の項目を設定します。", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "リスト内の最後の項目を設定します。", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "リスト内にランダムなアイテムを設定します。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "リスト内の指定位置に項目を挿入します。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "リストの先頭に項目を挿入します。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "リストの末尾に項目を追加します。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "リストに項目をランダムに挿入します。", - "LISTS_GET_SUBLIST_START_FROM_START": "# からサブディレクトリのリストを取得します。", - "LISTS_GET_SUBLIST_START_FROM_END": "端から #のサブリストを取得します。", - "LISTS_GET_SUBLIST_START_FIRST": "最初からサブリストを取得する。", - "LISTS_GET_SUBLIST_END_FROM_START": "終了位置:", - "LISTS_GET_SUBLIST_END_FROM_END": "終了位置:後ろから", - "LISTS_GET_SUBLIST_END_LAST": "最後まで", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "リストの指定された部分のコピーを作成してくださ。", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 ( %2 ) に %3 を並び替える", - "LISTS_SORT_TOOLTIP": "リストのコピーを並べ替え", - "LISTS_SORT_ORDER_ASCENDING": "昇順", - "LISTS_SORT_ORDER_DESCENDING": "降順", - "LISTS_SORT_TYPE_NUMERIC": "数値順", - "LISTS_SORT_TYPE_TEXT": "アルファベット順", - "LISTS_SORT_TYPE_IGNORECASE": "アルファベット順(大文字・小文字の区別無し)", - "LISTS_SPLIT_LIST_FROM_TEXT": "テキストからリストを作る", - "LISTS_SPLIT_TEXT_FROM_LIST": "リストからテキストを作る", - "LISTS_SPLIT_WITH_DELIMITER": "区切り記号", - "LISTS_SPLIT_TOOLTIP_SPLIT": "テキストを区切り記号で分割したリストにする", - "LISTS_SPLIT_TOOLTIP_JOIN": "テキストのリストを区切り記号で区切られた一つのテキストにする", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "%1を逆順に", - "LISTS_REVERSE_TOOLTIP": "リストのコピーを逆順にする。", - "VARIABLES_GET_TOOLTIP": "この変数の値を返します。", - "VARIABLES_GET_CREATE_SET": "'セット%1を作成します。", - "VARIABLES_SET": "%1 に %2 をセット", - "VARIABLES_SET_TOOLTIP": "この入力を変数と等しくなるように設定します。", - "VARIABLES_SET_CREATE_GET": "'%1 を取得' を作成します。", - "PROCEDURES_DEFNORETURN_HELPURL": "https://ja.wikipedia.org/wiki/サブルーチン", - "PROCEDURES_DEFNORETURN_TITLE": "関数", - "PROCEDURES_DEFNORETURN_PROCEDURE": "何かする", - "PROCEDURES_BEFORE_PARAMS": "引数:", - "PROCEDURES_CALL_BEFORE_PARAMS": "引数:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "出力なしの関数を作成します。", - "PROCEDURES_DEFNORETURN_COMMENT": "この関数の説明…", - "PROCEDURES_DEFRETURN_HELPURL": "https://ja.wikipedia.org/wiki/サブルーチン", - "PROCEDURES_DEFRETURN_RETURN": "返す", - "PROCEDURES_DEFRETURN_TOOLTIP": "一つの出力を持つ関数を作成します。", - "PROCEDURES_ALLOW_STATEMENTS": "ステートメントを許可", - "PROCEDURES_DEF_DUPLICATE_WARNING": "警告: この関数には重複するパラメーターがあります。", - "PROCEDURES_CALLNORETURN_HELPURL": "https://ja.wikipedia.org/wiki/サブルーチン", - "PROCEDURES_CALLNORETURN_TOOLTIP": "ユーザー定義関数 '%1' を実行します。", - "PROCEDURES_CALLRETURN_HELPURL": "https://ja.wikipedia.org/wiki/サブルーチン", - "PROCEDURES_CALLRETURN_TOOLTIP": "ユーザー定義関数 '%1' を実行し、その出力を使用します。", - "PROCEDURES_MUTATORCONTAINER_TITLE": "入力", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "この関数への入力の追加、削除、順番変更。", - "PROCEDURES_MUTATORARG_TITLE": "入力名:", - "PROCEDURES_MUTATORARG_TOOLTIP": "関数への入力の追加。", - "PROCEDURES_HIGHLIGHT_DEF": "関数の内容を強調表示します。", - "PROCEDURES_CREATE_DO": "'%1' を作成", - "PROCEDURES_IFRETURN_TOOLTIP": "1番目の値が true の場合、2番目の値を返します。", - "PROCEDURES_IFRETURN_WARNING": "警告: このブロックは、関数定義内でのみ使用できます。", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "ここへ入力" -} diff --git a/lib/blockly/msg/json/kab.json b/lib/blockly/msg/json/kab.json deleted file mode 100644 index 5224544..0000000 --- a/lib/blockly/msg/json/kab.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Amaziɣ maziɣ", - "Belkacem77", - "Alem", - "YubaWissin" - ] - }, - "VARIABLES_DEFAULT_NAME": "aferdis", - "UNNAMED_KEY": "warisem", - "TODAY": "Ass-a", - "DUPLICATE_BLOCK": "Sleg", - "ADD_COMMENT": "Rnu awennit", - "REMOVE_COMMENT": "Kkes awennit", - "DUPLICATE_COMMENT": "Sleg awennit", - "EXTERNAL_INPUTS": "Inekcam izɣarayen", - "INLINE_INPUTS": "Inekcam srid", - "DELETE_BLOCK": "Kkes iḥder", - "DELETE_X_BLOCKS": "Kkes %1 n yiḥderan", - "DELETE_ALL_BLOCKS": "Kkes akk %1 n yiḥedran?", - "CLEAN_UP": "Sfeḍ iḥedran", - "COLLAPSE_BLOCK": "Fneẓ iḥder", - "COLLAPSE_ALL": "Fneẓ iḥedran", - "EXPAND_BLOCK": "Snefli iḥder", - "EXPAND_ALL": "Snefli iḥedran", - "DISABLE_BLOCK": "Sens iḥder", - "ENABLE_BLOCK": "Sens iḥedran", - "HELP": "Tallelt", - "UNDO": "Err-d", - "REDO": "Uɣal", - "CHANGE_VALUE_TITLE": "Beddel azal:", - "RENAME_VARIABLE": "Beddel isem n umutti...", - "RENAME_VARIABLE_TITLE": "Beddel akk isem n yimuttiyen '%1' ar:", - "NEW_VARIABLE": "Rnu amutti...", - "NEW_STRING_VARIABLE": "Rnu amutti azrir n yisekkilen...", - "NEW_NUMBER_VARIABLE": "Rnu amutti amḍan...", - "NEW_COLOUR_VARIABLE": "Rnu amutti ini...", - "NEW_VARIABLE_TYPE_TITLE": "Anaw amaynut n umutti:", - "NEW_VARIABLE_TITLE": "Isem amaynut n wazal:", - "VARIABLE_ALREADY_EXISTS": "Amutti s yisem '%1' yella yakan.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Amutti s yisem '%1' yella yakan i wanaw-nniḍen: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Kkes %1 n useqdec n umutti '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ur izmir ara ad yekkes amutti '%1' acku yedda di tbadut n twuri '%2'", - "DELETE_VARIABLE": "Kkes amutti '%1'", - "COLOUR_PICKER_HELPURL": "https://kab.wikipedia.org/wiki/Ini", - "COLOUR_PICKER_TOOLTIP": "Fren ini seg ugalis.", - "COLOUR_RANDOM_TITLE": "ini agacuran", - "COLOUR_RANDOM_TOOLTIP": "Fren ini s wudem agacuran.", - "COLOUR_RGB_TITLE": "ini s", - "COLOUR_RGB_RED": "azeggaɣ", - "COLOUR_RGB_GREEN": "azegzaw", - "COLOUR_RGB_BLUE": "anili", - "COLOUR_RGB_TOOLTIP": "Rnu ini s tnecta yettunefk s tesmekta n uzeggaɣ, azegzaw, akked unili. Yessefk akk azalen ad ilin gar 0 akked 100.", - "COLOUR_BLEND_TITLE": "rkwec", - "COLOUR_BLEND_COLOUR1": "ini 1", - "COLOUR_BLEND_COLOUR2": "ini 2", - "COLOUR_BLEND_RATIO": "afmiḍi", - "COLOUR_BLEND_TOOLTIP": "Sexleḍ sin n yiniten d tesmekta (gar 0.0 ar 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "Ales %1 n tikal", - "CONTROLS_REPEAT_INPUT_DO": "eg", - "CONTROLS_REPEAT_TOOLTIP": "Selkem ddeqs n tinaḍin ddeqs n tikal.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ales skud", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ales arama", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Skud azal d idetti, selkem ihi tinadin.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Skud azal d ucciḍ, selkem ihi tinadin.", - "CONTROLS_FOR_TOOLTIP": "Mudd i umutti '%1' azalen seg umḍan n tazwara arama d umḍan n tagara, stmerna n usurif yettunefken, sakin selkem tiaḍin yettunefken.", - "CONTROLS_FOR_TITLE": "siḍen akked %1 seg %2 ar %3 s %4", - "CONTROLS_FOREACH_TITLE": "i yal aferdis %1 di tebdart %2", - "CONTROLS_FOREACH_TOOLTIP": "I yal aferdis n tebdart, mudd azal n uferdis i umutti '%1', sakin selkem tinaḍin.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ffeɣ seg tneddict", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "kemmel s wallus d tneddict d-iteddun", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Ffeɣ si tneddict tamagbart.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Zgel ayen i d-yeqqimen di tneddict-agi, sakin kemmel allus d-iteddun.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Ɣur-k: Iḥder-agi yessefk ad yettwaseqdec di tneddict.", - "CONTROLS_IF_TOOLTIP_1": "ma yella azal d idetti, ihi selkem kra n tinaḍin.", - "CONTROLS_IF_TOOLTIP_2": "Ma yella zal d idetti, selkem iḥder amezwaru. Neɣ ma ulac, selkem iḥder wis sin.", - "CONTROLS_IF_TOOLTIP_3": "Ma yella azal amezwaru d idetti, selkem iḥder amezwaru. Neɣ ma azal wis sin d ucciḍ, selkem iḥ€der wis sin.", - "CONTROLS_IF_TOOLTIP_4": "Ma yella azal amezwaru d idetti, selkem iḥeder amezwaru. Neɣ, ma yella azal wis sin d idetti, selkem iḥder wis sin. Ma yella ula d yisen seg-sen mačči d idetti, selkem iḥder aneggaru.", - "CONTROLS_IF_MSG_IF": "ma", - "CONTROLS_IF_MSG_ELSEIF": "neɣ ma", - "CONTROLS_IF_MSG_ELSE": "neɣ", - "CONTROLS_IF_IF_TOOLTIP": "Rnu, kkes, neq ales ales asmizzwer n tgezmiyin akken ad talseḍ tawila n iḥder-agi ma.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Rni tawtilt i yiḥder ma.", - "CONTROLS_IF_ELSE_TOOLTIP": "Rnu tawtilt taneggarut i yiḥder ma igebren akk tinaḍin.", - "IOS_OK": "IH", - "IOS_CANCEL": "Sefsex", - "IOS_ERROR": "Tuccḍa", - "IOS_PROCEDURES_INPUTS": "INEKCAM", - "IOS_PROCEDURES_ADD_INPUT": "+ Rnu anekcum", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Sireg asmizzwer", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Tawuri-a ɣur-s inekcam imsinen.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Rnu amutti", - "IOS_VARIABLES_ADD_BUTTON": "Rnu", - "IOS_VARIABLES_RENAME_BUTTON": "Snifel isem", - "IOS_VARIABLES_DELETE_BUTTON": "Kkes", - "IOS_VARIABLES_VARIABLE_NAME": "Isem n umutti", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ur tezmireḍ ara ad tesqedceḍ isem n umutti amaynut.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Ad yerr idetti ma yella i sin n inekcam d imegduya.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Ad d-yerr idetti ma yella i sin n inekcam mačči d imegduya.", - "LOGIC_COMPARE_TOOLTIP_LT": "Ad d-yerr idetti ma yella anekcam amezwaru meẓẓi ɣef wis sin.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Ad d-yerr idetti ma yella anekcam amezwaru meẓẓi neɣ yegda wis sin.", - "LOGIC_COMPARE_TOOLTIP_GT": "Ad d-yerr idetti ma yella anekcam amezwaru meqqeṛ ɣef wis sin.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Ad d-yerr idetti ma yella anekcam amezwaru meqqeṛ neɣ yegda wis sin.", - "LOGIC_OPERATION_TOOLTIP_AND": "Ad d-yerr idetti ma yella inekcam d idettiyen.", - "LOGIC_OPERATION_AND": "akked", - "LOGIC_OPERATION_TOOLTIP_OR": "Ad d-yerr idetti ma yella ɣarsum yiwen seg inekcam d idetti.", - "LOGIC_OPERATION_OR": "neɣ", - "LOGIC_NEGATE_TITLE": "mačči %1", - "LOGIC_NEGATE_TOOLTIP": "Ad d-yerr idetti ma yella anekcam d ucciḍ. Ad d-yerr ucciḍ ma yella anekcam d idetti.", - "LOGIC_BOOLEAN_TRUE": "idetti", - "LOGIC_BOOLEAN_FALSE": "ucciḍ", - "LOGIC_BOOLEAN_TOOLTIP": "Ad d-yerr idetti neɣ ucciḍ", - "LOGIC_NULL": "Ilem", - "LOGIC_NULL_TOOLTIP": "Ad d-yerr ilem", - "LOGIC_TERNARY_CONDITION": "sekyed", - "LOGIC_TERNARY_IF_TRUE": "ma d idetti", - "LOGIC_TERNARY_IF_FALSE": "ma ucciḍ", - "LOGIC_TERNARY_TOOLTIP": "Senqed tawtilt deg 'sekyed'. Ma yella d idetti, ad d-yerr azal 'ma idetti', ma ulac ad d-yerr azam 'ma ucciḍ'.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Amḍan.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Ad d-yerr tmerni n sin n imiḍanen.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Ad d-yerr tmernit n sin n imiḍanen.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Ad d-yerr tukksa gar sin n imiḍanen.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Ad d-yerr aful n sin n imḍanen.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Ad d-yerr amḍan amezwaru uzmir wis sin.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "aẓar uzmir 2", - "MATH_SINGLE_TOOLTIP_ROOT": "Ad d-yerr aẓaṛ uzmir sin n umiḍan.", - "MATH_SINGLE_OP_ABSOLUTE": "azal amagdez", - "MATH_SINGLE_TOOLTIP_ABS": "Ad d-yerr azal amagdez n umiḍan.", - "MATH_SINGLE_TOOLTIP_NEG": "Ad d-yerr ugmiḍ n umḍan.", - "MATH_SINGLE_TOOLTIP_LN": "Ad d-yerr alugaritm agamawan n umiḍan.", - "MATH_SINGLE_TOOLTIP_LOG10": "Ad d-yerr alugaritm 10 n umiḍan.", - "MATH_SINGLE_TOOLTIP_EXP": "Ad d-yerr e uzmir amiḍan.", - "MATH_SINGLE_TOOLTIP_POW10": "Ad d-yerr 10 uzmir amiḍan.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Ad d-yerr asinus n teɣmert s tfesna (mačči aṛadyan).", - "MATH_TRIG_TOOLTIP_COS": "Ad d-yerr akusinus n teɣmert s tfesna (mačči aṛadyan).", - "MATH_TRIG_TOOLTIP_TAN": "Ad d-yerr taslayt n teɣmert s tfesna (mačči aṛadyan).", - "MATH_TRIG_TOOLTIP_ASIN": "Ad d-yerr taganzi n usinus n umḍan.", - "MATH_TRIG_TOOLTIP_ACOS": "Ad d-yerr taganzi n ukusinus n umḍan.", - "MATH_TRIG_TOOLTIP_ATAN": "Ad d-yerr taganzi n teslayt n umiḍan.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Ad d-yerr yiwet seg tmezgiyin yettwasnen : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), neɣ ∞ (ifeḍ).", - "MATH_IS_EVEN": "d ayugan", - "MATH_IS_ODD": "d aryugan", - "MATH_IS_PRIME": "d amenzu", - "MATH_IS_WHOLE": "d ummid", - "MATH_IS_POSITIVE": "d ufrar", - "MATH_IS_NEGATIVE": "d uzdir", - "MATH_IS_DIVISIBLE_BY": "d ubṭay ɣef", - "MATH_IS_TOOLTIP": "Senqed ma yella amḍan d ayugan, d aryugan, d amenzu, d ummid, d ufrar, d uzdir, neɣ d ybṭay ɣef kra n umḍan. Ad d-yerr idettu neɣ ucciḍ.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "snifel %1 s %2", - "MATH_CHANGE_TOOLTIP": "Rnu amḍan i umutti '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Saẓ amiḍan d asawen neɣ d akesser.", - "MATH_ROUND_OPERATOR_ROUND": "Saẓ", - "MATH_ROUND_OPERATOR_ROUNDUP": "Saẓ d asawen", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "Saẓ d akesser", - "MATH_ONLIST_OPERATOR_SUM": "Timernit n tebdart", - "MATH_ONLIST_TOOLTIP_SUM": "Ad d-yerr timernit n imḍanen meṛṛa deg tebdart.", - "MATH_ONLIST_OPERATOR_MIN": "adday n tebdart", - "MATH_ONLIST_TOOLTIP_MIN": "Ad d-yerr amḍan ameẓẓyan di tebdart.", - "MATH_ONLIST_OPERATOR_MAX": "afellay n tebdart", - "MATH_ONLIST_TOOLTIP_MAX": "Ad d-yerr amḍan ameqqran di tebdart.", - "MATH_ONLIST_OPERATOR_AVERAGE": "talemmast n tebdart", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Ad d-yerr talemmas( tasnamḍant) n wazalen umḍinen di tebdart.", - "MATH_ONLIST_OPERATOR_MEDIAN": "tanammast n tebdart", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Ad d-yerr amḍan n anammas n tebdart.", - "MATH_ONLIST_OPERATOR_MODE": "Tigwtiwin n tebdart", - "MATH_ONLIST_TOOLTIP_MODE": "Ad d-yerr tabdart n iferdisen i d-yettuɣalen s waṭas di tebdart.", - "MATH_ONLIST_OPERATOR_STD_DEV": "azza n tebdart", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Ad d-yerr azza n tebdart.", - "MATH_ONLIST_OPERATOR_RANDOM": "aferdis agacuran n tebdart", - "MATH_ONLIST_TOOLTIP_RANDOM": "Ad d-yerr aferdis seg tebdart s wudem agacuran.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "tasagert n %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Ad d-yerr tasagert n beṭṭu n sin n imḍanen.", - "MATH_CONSTRAIN_TITLE": "Err tamara i %1 gar %2 akked %3", - "MATH_CONSTRAIN_TOOLTIP": "Err tamara n umiḍan akken ad yili gar snat n tlisa (ddant).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "ummid agacuran gar %1 akked %2", - "MATH_RANDOM_INT_TOOLTIP": "Ad d-yerr ummid agacuran gar snat n tlisa, ddant.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "tirẓi tagacurant", - "MATH_RANDOM_FLOAT_TOOLTIP": "Ad d-yerr tirẓi tagacurant gar 0.0 (yedda) akked 1.0 (ur yeddi ara).", - "MATH_ATAN2_HELPURL": "https://kab.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 seg X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Ad d-yerr arctangent n waggaz (X, Y) s tfesniwin deg -180 ɣer 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Asekkil, awal neɣ izirig n uḍris.", - "TEXT_JOIN_TITLE_CREATEWITH": "rnu aḍṛis s", - "TEXT_JOIN_TOOLTIP": "Ad yernu taceqquft n uḍris s usdukel gar yal amḍan n iferdisen.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "sdukkel", - "TEXT_CREATE_JOIN_TOOLTIP": "Rnu, kkes, neɣ ales asmizzwer n tgezmiyin akken ad talseḍ tawila n iḥder-agi.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Rnu aferdis ar uḍris.", - "TEXT_APPEND_TITLE": "Rnu aḍris %2 ar %1", - "TEXT_APPEND_TOOLTIP": "Rnu aḍris ar umutti '%1'.", - "TEXT_LENGTH_TITLE": "teɣzi n %1", - "TEXT_LENGTH_TOOLTIP": "Ad d-yerr amḍan n isekkilen (ddab ula d imellalen) deg uḍris d-ittunefken.", - "TEXT_ISEMPTY_TITLE": "%1 d ilem", - "TEXT_ISEMPTY_TOOLTIP": "Add d-yerr idetti ma yella aḍris d ilem.", - "TEXT_INDEXOF_TOOLTIP": "Ad d-yerr amatar n tmeḍriwt tamezwarut/taneggarut n uḍris amewaru deg uḍris wis sin. Ad d-yerr %1 ma yella ulac adris.", - "TEXT_INDEXOF_TITLE": "deg uḍris %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "af-d timeḍriwt tamezwarut n uḍris", - "TEXT_INDEXOF_OPERATOR_LAST": "af-d timeḍriwt taneggarut deg uḍris", - "TEXT_CHARAT_TITLE": "deg uḍris %1 %2", - "TEXT_CHARAT_FROM_START": "awi asekkel #", - "TEXT_CHARAT_FROM_END": "awi-d asekkil # si tagara", - "TEXT_CHARAT_FIRST": "awi-d asekkil amezwaru", - "TEXT_CHARAT_LAST": "awi-d asekkil aneggaru", - "TEXT_CHARAT_RANDOM": "awi-d asekkil s wudem agacuran", - "TEXT_CHARAT_TOOLTIP": "Ad d-yerr asekkil deg wuṭṭun yettwammlen.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Ad d-yerr aḥric yettwammlen deg uḍris.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "deg uḍris", - "TEXT_GET_SUBSTRING_START_FROM_START": "awi-d azrir asnawan seg usekkil #", - "TEXT_GET_SUBSTRING_START_FROM_END": "awi-d azrir asnawan seg usekkil # si tagara", - "TEXT_GET_SUBSTRING_START_FIRST": "awi-d azrir asnawan seg usekkil amezwaru", - "TEXT_GET_SUBSTRING_END_FROM_START": "arama d asekkil #", - "TEXT_GET_SUBSTRING_END_FROM_END": "arama d asekkil # si tagara", - "TEXT_GET_SUBSTRING_END_LAST": "arama d asekkil aneggaru", - "TEXT_CHANGECASE_TOOLTIP": "Ad d-yerr anɣel n uḍris s truẓi-nniḍen.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "s USEKKIL AMEQQRAN", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "s usekkil ameẓẓyan", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "s Umeqqran Di Tazwara n Yal Awal.", - "TEXT_TRIM_TOOLTIP": "Ad d-yerr anɣel n uḍris s isekkilen ilmawen yettwakksen seg ixf neɣ i sin.", - "TEXT_TRIM_OPERATOR_BOTH": "Tukksa n isekkilen imellalen seg sin n idisan", - "TEXT_TRIM_OPERATOR_LEFT": "tukksa n isekkilen seg uzelmaḍ", - "TEXT_TRIM_OPERATOR_RIGHT": "tukksa n isekkilen seg uyeffus", - "TEXT_PRINT_TITLE": "ad d-yesken %1", - "TEXT_PRINT_TOOLTIP": "Sken aḍris, amḍan neɣ azal-nniḍen d-ittunefken.", - "TEXT_PROMPT_TYPE_TEXT": "aneftaɣ i uḍris s yizen", - "TEXT_PROMPT_TYPE_NUMBER": "aneftaɣ i umḍan s yizen", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Suter amḍan i useqdac.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Suter aḍris i useqdac.", - "TEXT_COUNT_MESSAGE0": "amḍan %1 ɣef %2", - "TEXT_COUNT_TOOLTIP": "Ad isiḍen amḍan n tmeḍriwt n uḍris deg ayeḍ.", - "TEXT_REPLACE_MESSAGE0": "semselsi %1 s %2 di %3", - "TEXT_REPLACE_TOOLTIP": "As isemselsi akk timeḍriwin n uḍris s wayeḍ.", - "TEXT_REVERSE_MESSAGE0": "tti %1", - "TEXT_REVERSE_TOOLTIP": "Ad yetti asmizzwer n isekkilen deg uḍris.", - "LISTS_CREATE_EMPTY_TITLE": "rnu tabdart tilemt", - "LISTS_CREATE_EMPTY_TOOLTIP": "Ad d-yerr tabdart n teɣzi 0 ur yegbiren ara ikalasen", - "LISTS_CREATE_WITH_TOOLTIP": "Ad yernu tabdart s umḍan n iferdisen.", - "LISTS_CREATE_WITH_INPUT_WITH": "rnu tabdart s", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "tabdart", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Rnu, kkes, neɣ ales asmizzwer n tgezmiyin akken ad talseḍ tawila n iḥder-agi n tebdart.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Ad yernu aferdis ar tebdart.", - "LISTS_REPEAT_TOOLTIP": "Ad yernu tabdart inetmen n wazal yettunefken ddeqs n tikal s umḍan yettwammlen.", - "LISTS_REPEAT_TITLE": "ad yernu tabdart s uferdis %1 s tmeḍriwt %2", - "LISTS_LENGTH_TITLE": "teɣzi n %1", - "LISTS_LENGTH_TOOLTIP": "Ad d-yerr teɣzi n tebdart.", - "LISTS_ISEMPTY_TITLE": "%1 d ilem", - "LISTS_ISEMPTY_TOOLTIP": "Ad d-yerr idetti ma yella tabdart d tilemt.", - "LISTS_INLIST": "di tebdart", - "LISTS_INDEX_OF_FIRST": "aff-d timeḍriwt tamezwarut n uferdis", - "LISTS_INDEX_OF_LAST": "af-d timeḍriwt taneggarut n uferdis", - "LISTS_INDEX_OF_TOOLTIP": "Ad d-yerr amatar n tmeḍriwt tamezwarut/taneggarut n uferdis amewaru deg tebdart. Ad d-yerr %1 ma yella ulac aferdis.", - "LISTS_GET_INDEX_GET": "awi", - "LISTS_GET_INDEX_GET_REMOVE": "awi u kkes", - "LISTS_GET_INDEX_REMOVE": "kkes", - "LISTS_GET_INDEX_FROM_END": "# si tagara", - "LISTS_GET_INDEX_FIRST": "amezwaru", - "LISTS_GET_INDEX_LAST": "aneggaru", - "LISTS_GET_INDEX_RANDOM": "agacuran", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 d aferdis amezwaru.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 d aferdis aneggaru.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Ad d-yerr aferdis n wadig yettwammlen deg tabdart.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Ad d-yerr aferdis amezwaru n tebdart..", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Ad d-yerr aferdis aneggaru di tebdart.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Ad yerr aferdis agacuran di tebdart.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Ad yekkes sakin ad d-yerr aferdis n wadig yettwammlen deg tabdart.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Ad yekkes sakin ad -yerr aferdis amezwaru di tebdart.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Ad yekkes sakin ad -yerr aferdis aneggaru di tebdart.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Ad yekkes sakin ad d-yerr aferdis agacuran di tebdart.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Ad yekkes aferdis n wadig yettwammlen deg tabdart.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Ad yekkes aferdis amezwaru n tebdart..", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Ad yekkes aferdis aneggaru di tebdart.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Ad yekkes aferdis agacuran di tebdart.", - "LISTS_SET_INDEX_SET": "sbadu", - "LISTS_SET_INDEX_INSERT": "ger s", - "LISTS_SET_INDEX_INPUT_TO": "am", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Ad yesbadu aferdis n wadig yettwammlen deg tabdart.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Ad d-yerr aferdis amezwaru di tebdart.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Ad d-yerr aferdis aneggaru di tebdart.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Ad yesbadu aferdis agacuran di tebdart.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ad iger aferdis n wadig yettwammlen deg tabdart.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ad iger aferdis di tazwara n tebdart.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ad yernu aferdis ar tagara n tebdart.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Ad iger aferdis s wudem agacuran deg tebdart.", - "LISTS_GET_SUBLIST_START_FROM_START": "awi-d tabdart tasnawant seg #", - "LISTS_GET_SUBLIST_START_FROM_END": "awi-d tabdart tasnawant seg # si tagara", - "LISTS_GET_SUBLIST_START_FIRST": "awi-d tabdart tasnawant si tazwara", - "LISTS_GET_SUBLIST_END_FROM_START": "ar #", - "LISTS_GET_SUBLIST_END_FROM_END": "ar # si tagara", - "LISTS_GET_SUBLIST_END_LAST": "ar tagara", - "LISTS_GET_SUBLIST_TOOLTIP": "Ad yernu anɣel n uḥric yettwammlen n tebdart.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "smizzwer %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Smizzwer anɣel n tebdart.", - "LISTS_SORT_ORDER_ASCENDING": "igemmen", - "LISTS_SORT_ORDER_DESCENDING": "amnusruy", - "LISTS_SORT_TYPE_NUMERIC": "umḍin", - "LISTS_SORT_TYPE_TEXT": "agemmayan", - "LISTS_SORT_TYPE_IGNORECASE": "agemmayan, anef i truẓi n usekkil", - "LISTS_SPLIT_LIST_FROM_TEXT": "rnu tabdart seg uḍris", - "LISTS_SPLIT_TEXT_FROM_LIST": "rnu aḍris si tebdart", - "LISTS_SPLIT_WITH_DELIMITER": "s unabraz", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Ad yegzem aḍris ɣef ddeqs n tebdarin n yoiḍrisen, s unegzum yal anabraz.", - "LISTS_SPLIT_TOOLTIP_JOIN": "ad yesdukel tabdart n yiḍrisen deg iwen s usnabraz.", - "LISTS_REVERSE_MESSAGE0": "tti %1", - "LISTS_REVERSE_TOOLTIP": "Tti anɣel n tebdart.", - "VARIABLES_GET_TOOLTIP": "Ad d-yerr azal n umutti-agi.", - "VARIABLES_GET_CREATE_SET": "Rnu 'sbadu %1'", - "VARIABLES_SET": "sbadu %1 ar %2", - "VARIABLES_SET_TOOLTIP": "Ad yesbadu amutti-agi akken ad yegdu azal n unekcam.", - "VARIABLES_SET_CREATE_GET": "Rnu 'awi-d %1'", - "PROCEDURES_DEFNORETURN_TITLE": "i", - "PROCEDURES_DEFNORETURN_PROCEDURE": "eg kra", - "PROCEDURES_BEFORE_PARAMS": "s:", - "PROCEDURES_CALL_BEFORE_PARAMS": "s:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Rnu tawuri s war anekcam.", - "PROCEDURES_DEFNORETURN_COMMENT": "Seglem tawuri-agi...", - "PROCEDURES_DEFRETURN_RETURN": "tuɣalin", - "PROCEDURES_DEFRETURN_TOOLTIP": "ad yernu tawuri s tuffɣa.", - "PROCEDURES_ALLOW_STATEMENTS": "Sireg asmizzwer", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Ɣur-k: Tawuri-agi ɣur-s iɣewwaṛen usligen.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Selkem tawuri '%1' yesbadu u seqdac.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Selkem tawuri '%1' yesbadu useqdace sakin seqdec agmuḍ-is.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "inekcam", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Rnu, kkes neɣ ales asmizzwer n inekcam i twuri-agi.", - "PROCEDURES_MUTATORARG_TITLE": "isem n unekcum:", - "PROCEDURES_MUTATORARG_TOOLTIP": "rnu anekcam ar twuri-agi.", - "PROCEDURES_HIGHLIGHT_DEF": "Sebruṛeq tabadut n twuri", - "PROCEDURES_CREATE_DO": "rnu '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "ma yella azal d idetti, ad d-yerr azal-nniḍen wis sin.", - "PROCEDURES_IFRETURN_WARNING": "Ɣur-k: Iḥder-agi yezmer ur yettwaseqdac ara ala di tebadut n twuri-agi.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Ini kra...", - "COLLAPSED_WARNINGS_WARNING": "Iḥedran yettin gebren ilɣa." -} diff --git a/lib/blockly/msg/json/ko.json b/lib/blockly/msg/json/ko.json deleted file mode 100644 index 2444990..0000000 --- a/lib/blockly/msg/json/ko.json +++ /dev/null @@ -1,410 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Hym411", - "아라", - "Priviet", - "Revi", - "SeoJeongHo", - "Alex00728", - "Kurousagi", - "Lemondoge", - "Ykhwong", - "Jerrykim306", - "Onebone", - "JeonHK", - "Liuxinyu970226", - "Peurocs4" - ] - }, - "VARIABLES_DEFAULT_NAME": "항목", - "TODAY": "오늘", - "DUPLICATE_BLOCK": "복제", - "ADD_COMMENT": "주석 추가", - "REMOVE_COMMENT": "주석 제거", - "DUPLICATE_COMMENT": "주석 복제하기", - "EXTERNAL_INPUTS": "외부 입력", - "INLINE_INPUTS": "내부 입력", - "DELETE_BLOCK": "블록 삭제", - "DELETE_X_BLOCKS": "블록 %1개 삭제", - "DELETE_ALL_BLOCKS": "모든 블록 %1개를 삭제하겠습니까?", - "CLEAN_UP": "블록 정리", - "COLLAPSE_BLOCK": "블록 축소", - "COLLAPSE_ALL": "블록 축소", - "EXPAND_BLOCK": "블록 확장", - "EXPAND_ALL": "블록 확장", - "DISABLE_BLOCK": "블록 비활성화", - "ENABLE_BLOCK": "블록 활성화", - "HELP": "도움말", - "UNDO": "실행 취소", - "REDO": "다시 실행", - "CHANGE_VALUE_TITLE": "값 바꾸기:", - "RENAME_VARIABLE": "변수 이름 바꾸기:", - "RENAME_VARIABLE_TITLE": "'%1' 변수 이름을 바꾸기:", - "NEW_VARIABLE": "변수 만들기...", - "NEW_STRING_VARIABLE": "문자열 변수 만들기...", - "NEW_NUMBER_VARIABLE": "숫자 변수 만들기....", - "NEW_COLOUR_VARIABLE": "색 변수 만들기...", - "NEW_VARIABLE_TYPE_TITLE": "새 변수 유형:", - "NEW_VARIABLE_TITLE": "새 변수 이름:", - "VARIABLE_ALREADY_EXISTS": "'%1' 변수는 이미 존재합니다.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%1' 변수는 다른 유형에 대해 이미 존재합니다: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "'%2' 변수에서 %1을(를) 삭제하시겠습니까?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "'%2' 함수 정의의 일부이기 때문에 '%1' 변수를 삭제할 수 없습니다", - "DELETE_VARIABLE": "'%1' 변수를 삭제합니다", - "COLOUR_PICKER_HELPURL": "https://ko.wikipedia.org/wiki/색", - "COLOUR_PICKER_TOOLTIP": "팔레트에서 색을 고릅니다", - "COLOUR_RANDOM_TITLE": "임의 색상", - "COLOUR_RANDOM_TOOLTIP": "무작위로 색을 고릅니다.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "색", - "COLOUR_RGB_RED": "빨강", - "COLOUR_RGB_GREEN": "초록", - "COLOUR_RGB_BLUE": "파랑", - "COLOUR_RGB_TOOLTIP": "빨강,파랑,초록의 값을 이용하여 색을 만드십시오. 모든 값은 0과 100 사이에 있어야 합니다.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "혼합", - "COLOUR_BLEND_COLOUR1": "색 1", - "COLOUR_BLEND_COLOUR2": "색 2", - "COLOUR_BLEND_RATIO": "비율", - "COLOUR_BLEND_TOOLTIP": "두 색을 주어진 비율로 혼합 (0.0 - 1.0)", - "CONTROLS_REPEAT_HELPURL": "https://ko.wikipedia.org/wiki/For_루프", - "CONTROLS_REPEAT_TITLE": "%1회 반복", - "CONTROLS_REPEAT_INPUT_DO": "하기", - "CONTROLS_REPEAT_TOOLTIP": "여러 번 반복해 명령들을 실행합니다.", - "CONTROLS_WHILEUNTIL_HELPURL": "https://ko.wikipedia.org/wiki/While_%EB%A3%A8%ED%94%84", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "동안 반복", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "다음까지 반복", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "값이 참일 때, 몇 가지 선언을 합니다.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "값이 거짓일 때, 몇 가지 선언을 합니다.", - "CONTROLS_FOR_HELPURL": "https://ko.wikipedia.org/wiki/For_%EB%A3%A8%ED%94%84", - "CONTROLS_FOR_TOOLTIP": "변수 \"%1\"은 지정된 간격으로 시작 수에서 끝 수까지를 세어 지정된 블록을 수행해야 합니다.", - "CONTROLS_FOR_TITLE": "으로 계산 %1 %2에서 %4을 이용하여 %3로", - "CONTROLS_FOREACH_HELPURL": "https://ko.wikipedia.org/wiki/For_%EB%A3%A8%ED%94%84#.EC.9E.84.EC.9D.98.EC.9D.98_.EC.A7.91.ED.95.A9", - "CONTROLS_FOREACH_TITLE": "각 항목에 대해 %1 목록으로 %2", - "CONTROLS_FOREACH_TOOLTIP": "리스트 안에 들어있는 각 아이템들을, 순서대로 변수 '%1' 에 한 번씩 저장시키고, 그 때 마다 명령을 실행합니다.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "https://ko.wikipedia.org/wiki/%EC%A0%9C%EC%96%B4_%ED%9D%90%EB%A6%84", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "반복 중단", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "다음 반복", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "현재 반복 실행 블럭을 빠져나갑니다.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "나머지 반복 부분을 더 이상 실행하지 않고, 다음 반복을 수행합니다.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "경고 : 이 블록은 반복 실행 블럭 안에서만 사용됩니다.", - "CONTROLS_IF_HELPURL": "https://ko.wikipedia.org/wiki/%EC%A1%B0%EA%B1%B4%EB%AC%B8", - "CONTROLS_IF_TOOLTIP_1": "조건식의 계산 결과가 참이면, 명령을 실행합니다.", - "CONTROLS_IF_TOOLTIP_2": "조건식의 계산 결과가 참이면, 첫 번째 블럭의 명령을 실행하고, 그렇지 않으면 두 번째 블럭의 명령을 실행합니다.", - "CONTROLS_IF_TOOLTIP_3": "첫 번째 조건식의 계산 결과가 참이면, 첫 번째 블럭의 명령을 실행하고, 두 번째 조건식의 계산 결과가 참이면, 두 번째 블럭의 명령을 실행합니다.", - "CONTROLS_IF_TOOLTIP_4": "첫 번째 조건식의 계산 결과가 참이면, 첫 번째 블럭의 명령을 실행하고, 두 번째 조건식의 계산 결과가 참이면, 두 번째 블럭의 명령을 실행하고, ... , 어떤 조건식의 계산 결과도 참이 아니면, 마지막 블럭의 명령을 실행합니다.", - "CONTROLS_IF_MSG_IF": "만약", - "CONTROLS_IF_MSG_ELSEIF": "다른 경우", - "CONTROLS_IF_MSG_ELSE": "아니라면", - "CONTROLS_IF_IF_TOOLTIP": "섹션을 추가, 제거하거나 순서를 변경하여 이 if 블럭을 재구성합니다.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "\"만약\" 블럭에 조건 검사를 추가합니다.", - "CONTROLS_IF_ELSE_TOOLTIP": "\"만약\" 블럭의 마지막에, 모든 검사 결과가 거짓인 경우 실행할 부분을 추가합니다.", - "IOS_OK": "확인", - "IOS_CANCEL": "취소", - "IOS_ERROR": "오류", - "IOS_PROCEDURES_INPUTS": "입력", - "IOS_PROCEDURES_ADD_INPUT": "+ 입력 추가", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "이 기능은 중복된 입력이 있습니다.", - "IOS_VARIABLES_ADD_VARIABLE": "+ 변수 추가", - "IOS_VARIABLES_ADD_BUTTON": "추가", - "IOS_VARIABLES_RENAME_BUTTON": "이름 바꾸기", - "IOS_VARIABLES_DELETE_BUTTON": "삭제", - "IOS_VARIABLES_VARIABLE_NAME": "변수 이름", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "비어있는 변수 이름을 사용할 수 없습니다.", - "LOGIC_COMPARE_HELPURL": "https://ko.wikipedia.org/wiki/부등식", - "LOGIC_COMPARE_TOOLTIP_EQ": "두 값이 같으면, 참(true) 값을 돌려줍니다.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "두 값이 서로 다르면, 참(true) 값을 돌려줍니다.", - "LOGIC_COMPARE_TOOLTIP_LT": "첫 번째 값이 두 번째 값보다 작으면, 참(true) 값을 돌려줍니다.", - "LOGIC_COMPARE_TOOLTIP_LTE": "첫 번째 값이 두 번째 값보다 작거나 같으면, 참(true) 값을 돌려줍니다.", - "LOGIC_COMPARE_TOOLTIP_GT": "첫 번째 값이 두 번째 값보다 크면, 참(true) 값을 돌려줍니다.", - "LOGIC_COMPARE_TOOLTIP_GTE": "첫 번째 값이 두 번째 값보다 크거나 같으면, 참(true) 값을 돌려줍니다.", - "LOGIC_OPERATION_HELPURL": "https://ko.wikipedia.org/wiki/%EB%B6%88_%EB%85%BC%EB%A6%AC", - "LOGIC_OPERATION_TOOLTIP_AND": "두 값이 모두 참(true) 값이면, 참 값을 돌려줍니다.", - "LOGIC_OPERATION_AND": "그리고", - "LOGIC_OPERATION_TOOLTIP_OR": "적어도 하나의 값이 참일 경우 참을 반환합니다.", - "LOGIC_OPERATION_OR": "또는", - "LOGIC_NEGATE_HELPURL": "https://ko.wikipedia.org/wiki/%EB%B6%80%EC%A0%95", - "LOGIC_NEGATE_TITLE": "%1가 아닙니다", - "LOGIC_NEGATE_TOOLTIP": "입력값이 거짓이라면 참을 반환합니다. 참이라면 거짓을 반환합니다.", - "LOGIC_BOOLEAN_HELPURL": "https://ko.wikipedia.org/wiki/%EC%A7%84%EB%A6%BF%EA%B0%92", - "LOGIC_BOOLEAN_TRUE": "참", - "LOGIC_BOOLEAN_FALSE": "거짓", - "LOGIC_BOOLEAN_TOOLTIP": "참 혹은 거짓 모두 반환합니다.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "빈 값", - "LOGIC_NULL_TOOLTIP": "빈 값을 반환합니다.", - "LOGIC_TERNARY_HELPURL": "https://ko.wikipedia.org/wiki/물음표", - "LOGIC_TERNARY_CONDITION": "테스트", - "LOGIC_TERNARY_IF_TRUE": "만약 참이라면", - "LOGIC_TERNARY_IF_FALSE": "만약 거짓이라면", - "LOGIC_TERNARY_TOOLTIP": "'test'의 조건을 검사합니다. 조건이 참이면 'if true' 값을 반환합니다. 거짓이면 'if false' 값을 반환합니다.", - "MATH_NUMBER_HELPURL": "https://ko.wikipedia.org/wiki/수_(수학)", - "MATH_NUMBER_TOOLTIP": "수", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "x", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://ko.wikipedia.org/wiki/산술", - "MATH_ARITHMETIC_TOOLTIP_ADD": "두 수의 합을 반환합니다.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "두 수간의 차이를 반환합니다.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "두 수의 곱을 반환합니다.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "두 수의 나눈 결과를 반환합니다.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "첫 번째 수를 두 번째 수 만큼, 거듭제곱 한 결과값을 돌려줍니다.", - "MATH_SINGLE_HELPURL": "https://ko.wikipedia.org/wiki/제곱근", - "MATH_SINGLE_OP_ROOT": "제곱근", - "MATH_SINGLE_TOOLTIP_ROOT": "숫자의 제곱근을 반환합니다.", - "MATH_SINGLE_OP_ABSOLUTE": "절대값", - "MATH_SINGLE_TOOLTIP_ABS": "어떤 수의 절대값(absolute)을 계산한 결과를, 정수값으로 돌려줍니다.", - "MATH_SINGLE_TOOLTIP_NEG": "음(-)/양(+), 부호를 반대로 하여 값을 돌려줍니다.", - "MATH_SINGLE_TOOLTIP_LN": "어떤 수의, 자연로그(natural logarithm) 값을 돌려줍니다.(밑 e, 예시 log e x)", - "MATH_SINGLE_TOOLTIP_LOG10": "어떤 수의, 기본로그(logarithm) 값을 돌려줍니다.(밑 10, 예시 log 10 x)", - "MATH_SINGLE_TOOLTIP_EXP": "e의 거듭제곱 값을 반환합니다.", - "MATH_SINGLE_TOOLTIP_POW10": "10의 거듭제곱 값을 반환합니다.", - "MATH_TRIG_HELPURL": "https://ko.wikipedia.org/wiki/삼각함수", - "MATH_TRIG_TOOLTIP_SIN": "각도의 사인을 반환합니다. (라디안 아님)", - "MATH_TRIG_TOOLTIP_COS": "각도의 코사인을 반환합니다. (라디안 아님)", - "MATH_TRIG_TOOLTIP_TAN": "각도의 탄젠트를 반환합니다. (라디안 아님)", - "MATH_TRIG_TOOLTIP_ASIN": "어떤 수에 대한, asin(arcsine) 값을 돌려줍니다.", - "MATH_TRIG_TOOLTIP_ACOS": "어떤 수에 대한, acos(arccosine) 값을 돌려줍니다.", - "MATH_TRIG_TOOLTIP_ATAN": "어떤 수에 대한, atan(arctangent) 값을 돌려줍니다.", - "MATH_CONSTANT_HELPURL": "https://ko.wikipedia.org/wiki/수학_상수", - "MATH_CONSTANT_TOOLTIP": "일반적인 상수 값들 중 하나를 돌려줍니다. : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "가 짝수(even) 이면", - "MATH_IS_ODD": "가 홀수(odd) 이면", - "MATH_IS_PRIME": "가 소수(prime) 이면", - "MATH_IS_WHOLE": "가 정수이면", - "MATH_IS_POSITIVE": "가 양(+)수 이면", - "MATH_IS_NEGATIVE": "가 음(-)수 이면", - "MATH_IS_DIVISIBLE_BY": "가 다음 수로 나누어 떨어지면 :", - "MATH_IS_TOOLTIP": "어떤 수가 짝 수, 홀 수, 소 수, 정 수, 양 수, 음 수, 나누어 떨어지는 수 인지 검사해 결과값을 돌려줍니다. 참(true) 또는 거짓(false) 값을 돌려줌.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "바꾸기 %1 만큼 %2", - "MATH_CHANGE_TOOLTIP": "변수 '%1' 에 저장되어있는 값에, 어떤 수를 더해, 변수에 다시 저장합니다.", - "MATH_ROUND_HELPURL": "https://ko.wikipedia.org/wiki/반올림", - "MATH_ROUND_TOOLTIP": "어떤 수를 반올림/올림/버림한 결과를, 정수값으로 돌려줍니다.", - "MATH_ROUND_OPERATOR_ROUND": "반올림", - "MATH_ROUND_OPERATOR_ROUNDUP": "올림", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "버림", - "MATH_ONLIST_HELPURL": "", - "MATH_ONLIST_OPERATOR_SUM": "합", - "MATH_ONLIST_TOOLTIP_SUM": "리스트에 들어있는 수(값)들을, 모두 합(sum) 한, 총합(sum)을 돌려줍니다.", - "MATH_ONLIST_OPERATOR_MIN": "최소값", - "MATH_ONLIST_TOOLTIP_MIN": "리스트에 들어있는 수(값) 들 중, 가장 작은(min) 수(값)를 돌려줍니다.", - "MATH_ONLIST_OPERATOR_MAX": "최대값", - "MATH_ONLIST_TOOLTIP_MAX": "리스트에 들어있는 수(값) 들 중, 가장 큰(max) 수(값)를 돌려줍니다.", - "MATH_ONLIST_OPERATOR_AVERAGE": "평균값", - "MATH_ONLIST_TOOLTIP_AVERAGE": "리스트에 들어있는 수(값)들에 대해, 산술 평균(arithmetic mean) 한 값을 돌려줍니다.", - "MATH_ONLIST_OPERATOR_MEDIAN": "중간값", - "MATH_ONLIST_TOOLTIP_MEDIAN": "리스트에 들어있는 수(값) 들 중, 중간(median) 수(값)를 돌려줍니다.", - "MATH_ONLIST_OPERATOR_MODE": "가장 여러 개 있는 값", - "MATH_ONLIST_TOOLTIP_MODE": "리스트에 들어있는 아이템들 중에서, 가장 여러 번 들어있는 아이템들을 리스트로 만들어 돌려줍니다. (최빈값, modes)", - "MATH_ONLIST_OPERATOR_STD_DEV": "표준 편차", - "MATH_ONLIST_TOOLTIP_STD_DEV": "이 리스트의 표준 편차를 반환합니다.", - "MATH_ONLIST_OPERATOR_RANDOM": "목록의 임의 항목", - "MATH_ONLIST_TOOLTIP_RANDOM": "목록에서 임의의 아이템을 돌려줍니다.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2의 나머지", - "MATH_MODULO_TOOLTIP": "첫 번째 수를 두 번째 수로 나눈, 나머지 값을 돌려줍니다.", - "MATH_CONSTRAIN_HELPURL": "https://ko.wikipedia.org/wiki/클램핑_(그래픽)", - "MATH_CONSTRAIN_TITLE": "%1의 값을, 최소 %2 최대 %3으로 조정", - "MATH_CONSTRAIN_TOOLTIP": "어떤 수를, 특정 범위의 값이 되도록 강제로 조정합니다.", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "랜덤정수(%1<= n <=%2)", - "MATH_RANDOM_INT_TOOLTIP": "두 주어진 제한된 범위 사이의 임의 정수값을 돌려줍니다.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "임의 분수", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (포함)과 1.0 (배타적) 사이의 임의 분수 값을 돌려줍니다.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "TEXT_TEXT_HELPURL": "https://ko.wikipedia.org/wiki/문자열", - "TEXT_TEXT_TOOLTIP": "문자, 단어, 문장.", - "TEXT_JOIN_HELPURL": "https://github.com/google/blockly/wiki/Text#text-creation", - "TEXT_JOIN_TITLE_CREATEWITH": "텍스트 만들기", - "TEXT_JOIN_TOOLTIP": "여러 개의 아이템들을 연결해(묶어), 새로운 문장을 만듭니다.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "가입", - "TEXT_CREATE_JOIN_TOOLTIP": "섹션을 추가, 제거하거나 순서를 변경하여 이 텍스트 블럭을 재구성합니다.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "텍스트에 항목을 추가합니다.", - "TEXT_APPEND_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_APPEND_TITLE": "다음 %1 내용 덧붙이기 %2", - "TEXT_APPEND_TOOLTIP": "'%1' 변수의 끝에 일부 텍스트를 덧붙입니다.", - "TEXT_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_LENGTH_TITLE": "다음 문장의 문자 개수 %1", - "TEXT_LENGTH_TOOLTIP": "입력된 문장의, 문자 개수를 돌려줍니다.(공백문자 포함)", - "TEXT_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Text#checking-for-empty-text", - "TEXT_ISEMPTY_TITLE": "%1이 비어 있습니다", - "TEXT_ISEMPTY_TOOLTIP": "입력된 문장이, 빈 문장(\"\")이면 참(true) 값을 돌려줍니다.", - "TEXT_INDEXOF_HELPURL": "https://github.com/google/blockly/wiki/Text#finding-text", - "TEXT_INDEXOF_TOOLTIP": "두 번째 텍스트에서 첫 번째 텍스트가 처음 또는 마지막으로 발생한 색인 위치를 반환합니다. 텍스트가 없으면 %1을 반환합니다.", - "TEXT_INDEXOF_TITLE": "문장 %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "에서 다음 문장이 처음으로 나타난 위치 찾기 :", - "TEXT_INDEXOF_OPERATOR_LAST": "에서 다음 문장이 마지막으로 나타난 위치 찾기 :", - "TEXT_CHARAT_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-text", - "TEXT_CHARAT_TITLE": "텍스트 %1 %2에서", - "TEXT_CHARAT_FROM_START": "에서, 앞에서부터 # 번째 위치의 문자 얻기", - "TEXT_CHARAT_FROM_END": "에서, 마지막부터 # 번째 위치의 문자 얻기", - "TEXT_CHARAT_FIRST": "에서, 첫 번째 문자 얻기", - "TEXT_CHARAT_LAST": "에서, 마지막 문자 얻기", - "TEXT_CHARAT_RANDOM": "에서, 랜덤하게 한 문자 얻기", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "특정 번째 위치에서, 문자를 얻어내 돌려줍니다.", - "TEXT_GET_SUBSTRING_TOOLTIP": "문장 중 일부를 얻어내 돌려줍니다.", - "TEXT_GET_SUBSTRING_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "문장", - "TEXT_GET_SUBSTRING_START_FROM_START": "에서, 처음부터 # 번째 문자부터 얻어냄", - "TEXT_GET_SUBSTRING_START_FROM_END": "에서, 마지막에서 # 번째부터 얻어냄", - "TEXT_GET_SUBSTRING_START_FIRST": "에서, 처음부터 얻어냄", - "TEXT_GET_SUBSTRING_END_FROM_START": "# 번째 문자까지", - "TEXT_GET_SUBSTRING_END_FROM_END": "끝에서부터 # 번째 문자까지", - "TEXT_GET_SUBSTRING_END_LAST": "마지막 문자까지", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_HELPURL": "https://github.com/google/blockly/wiki/Text#adjusting-text-case", - "TEXT_CHANGECASE_TOOLTIP": "영문 대소문자 형태를 변경해 돌려줍니다.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "대문자로", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "소문자로", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "첫 문자만 대문자로", - "TEXT_TRIM_HELPURL": "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces", - "TEXT_TRIM_TOOLTIP": "문장의 왼쪽/오른쪽/양쪽에서 스페이스 문자를 제거해 돌려줍니다.", - "TEXT_TRIM_OPERATOR_BOTH": "양쪽의 공백 문자 제거", - "TEXT_TRIM_OPERATOR_LEFT": "왼쪽의 공백 문자 제거", - "TEXT_TRIM_OPERATOR_RIGHT": "오른쪽의 공백 문자 제거", - "TEXT_PRINT_HELPURL": "https://github.com/google/blockly/wiki/Text#printing-text", - "TEXT_PRINT_TITLE": "다음 내용 출력 %1", - "TEXT_PRINT_TOOLTIP": "원하는 문장, 수, 값 등을 출력합니다.", - "TEXT_PROMPT_HELPURL": "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user", - "TEXT_PROMPT_TYPE_TEXT": "메시지를 활용해 문장 입력", - "TEXT_PROMPT_TYPE_NUMBER": "메시지를 활용해 수 입력", - "TEXT_PROMPT_TOOLTIP_NUMBER": "수에 대해 사용자의 입력을 받습니다.", - "TEXT_PROMPT_TOOLTIP_TEXT": "문장에 대해 사용자의 입력을 받습니다.", - "TEXT_COUNT_MESSAGE0": "%2에서 %1 숫자 세기", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "다른 어떤 텍스트에서 어떤 텍스트가 나타난 횟수를 셉니다.", - "TEXT_REPLACE_MESSAGE0": "%3에서 %2을(를) %1(으)로 바꾸기", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "빈 리스트 생성", - "LISTS_CREATE_EMPTY_TOOLTIP": "데이터 레코드가 없는, 길이가 0인 목록을 반환합니다.", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "원하는 수의 항목들로 목록을 생성합니다.", - "LISTS_CREATE_WITH_INPUT_WITH": "리스트 만들기", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "리스트", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "섹션을 추가, 제거하거나 순서를 변경하여 이 리스트 블럭을 재구성합니다.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "아이템을 리스트에 추가합니다.", - "LISTS_REPEAT_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_REPEAT_TOOLTIP": "지정된 값을, 지정된 개수 만큼 넣어, 목록을 생성합니다.", - "LISTS_REPEAT_TITLE": "%1을 %2번 넣어, 리스트 생성", - "LISTS_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Lists#length-of", - "LISTS_LENGTH_TITLE": "%1의 길이", - "LISTS_LENGTH_TOOLTIP": "목록의 길이를 반환합니다.", - "LISTS_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#is-empty", - "LISTS_ISEMPTY_TITLE": "%1이 비어 있습니다", - "LISTS_ISEMPTY_TOOLTIP": "목록이 비었을 때 참을 반환합니다.", - "LISTS_INLIST": "리스트", - "LISTS_INDEX_OF_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", - "LISTS_INDEX_OF_FIRST": "처음으로 나타난 위치", - "LISTS_INDEX_OF_LAST": "마지막으로 나타난 위치", - "LISTS_INDEX_OF_TOOLTIP": "목록에서 항목이 처음 또는 마지막으로 발생한 색인 위치를 반환합니다. 항목이 없으면 %1을 반환합니다.", - "LISTS_GET_INDEX_GET": "가져오기", - "LISTS_GET_INDEX_GET_REMOVE": "잘라 내기", - "LISTS_GET_INDEX_REMOVE": "삭제", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "마지막 번째 위치부터, # 번째", - "LISTS_GET_INDEX_FIRST": "첫 번째", - "LISTS_GET_INDEX_LAST": "마지막", - "LISTS_GET_INDEX_RANDOM": "임의로", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1은 첫 번째 항목입니다.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1은(는) 마지막 항목입니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "목록에서 특정 위치의 항목을 반환합니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "첫 번째 아이템을 찾아 돌려줍니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "마지막 아이템을 찾아 돌려줍니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "리스트의 아이템들 중, 랜덤으로 선택해 돌려줍니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "목록의 특정 위치에 있는 항목을 제거하고 반환합니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "첫 번째 아이템을 찾아내 돌려주고, 그 아이템을 리스트에서 삭제합니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "마지막 아이템을 찾아내 돌려주고, 그 아이템을 리스트에서 삭제합니다.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "목록에서 임의 위치의 아이템을 찾아내 삭제하고 돌려줍니다.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "목록에서 특정 위치의 항목을 삭제합니다.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "리스트에서 첫 번째 아이템을 삭제합니다.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "리스트에서 마지막 아이템을 찾아 삭제합니다.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "리스트에서 랜덤하게 아이템을 삭제합니다.", - "LISTS_SET_INDEX_HELPURL": "https://github.com/google/blockly/wiki/Lists#in-list--set", - "LISTS_SET_INDEX_SET": "에서 설정", - "LISTS_SET_INDEX_INSERT": "에서 원하는 위치에 삽입", - "LISTS_SET_INDEX_INPUT_TO": "에", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "목록의 특정 위치에 있는 항목으로 설정합니다.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "첫 번째 위치의 아이템으로 설정합니다.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "마지막 아이템으로 설정합니다.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "목록에서 임의 위치의 아이템을 설정합니다.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "목록의 특정 위치에 항목을 삽입합니다.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "항목을 목록의 처음 위치에 삽입합니다.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "리스트의 마지막에 아이템을 추가합니다.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "목록에서 임의 위치에 아이템을 삽입합니다.", - "LISTS_GET_SUBLIST_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-a-sublist", - "LISTS_GET_SUBLIST_START_FROM_START": "처음 # 번째 위치부터, 서브 리스트 추출", - "LISTS_GET_SUBLIST_START_FROM_END": "마지막부터 # 번째 위치부터, 서브 리스트 추출", - "LISTS_GET_SUBLIST_START_FIRST": "첫 번째 위치부터, 서브 리스트 추출", - "LISTS_GET_SUBLIST_END_FROM_START": "앞에서부터 # 번째로", - "LISTS_GET_SUBLIST_END_FROM_END": "끝에서부터 # 번째로", - "LISTS_GET_SUBLIST_END_LAST": "마지막으로", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "목록의 특정 부분에 대한 복사본을 만듭니다.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "정렬 %1 %2 %3", - "LISTS_SORT_TOOLTIP": "목록의 사본을 정렬합니다.", - "LISTS_SORT_ORDER_ASCENDING": "오름차순", - "LISTS_SORT_ORDER_DESCENDING": "내림차순", - "LISTS_SORT_TYPE_NUMERIC": "숫자순", - "LISTS_SORT_TYPE_TEXT": "알파벳순", - "LISTS_SORT_TYPE_IGNORECASE": "알파벳순 (대소문자 구분 안 함)", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "텍스트에서 목록 만들기", - "LISTS_SPLIT_TEXT_FROM_LIST": "목록에서 텍스트 만들기", - "LISTS_SPLIT_WITH_DELIMITER": "분리와", - "LISTS_SPLIT_TOOLTIP_SPLIT": "각 속보, 텍스트의 목록들에서 텍스트를 분할합니다.", - "LISTS_SPLIT_TOOLTIP_JOIN": "구분 기호로 구분하여 텍스트 목록을 하나의 텍스트에 병합합니다.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "%1 뒤집기", - "LISTS_REVERSE_TOOLTIP": "리스트의 복사본을 뒤집습니다.", - "ORDINAL_NUMBER_SUFFIX": "", - "VARIABLES_GET_HELPURL": "https://ko.wikipedia.org/wiki/%EB%B3%80%EC%88%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)", - "VARIABLES_GET_TOOLTIP": "변수에 저장 되어있는 값을 돌려줍니다.", - "VARIABLES_GET_CREATE_SET": "'집합 %1' 생성", - "VARIABLES_SET_HELPURL": "https://ko.wikipedia.org/wiki/%EB%B3%80%EC%88%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)", - "VARIABLES_SET": "%1를 %2로 설정", - "VARIABLES_SET_TOOLTIP": "변수의 값을 입력한 값으로 변경해 줍니다.", - "VARIABLES_SET_CREATE_GET": "'%1 값 읽기' 블럭 생성", - "PROCEDURES_DEFNORETURN_HELPURL": "https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98_%28%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%29", - "PROCEDURES_DEFNORETURN_TITLE": "함수", - "PROCEDURES_DEFNORETURN_PROCEDURE": "함수 이름", - "PROCEDURES_BEFORE_PARAMS": "사용:", - "PROCEDURES_CALL_BEFORE_PARAMS": "사용:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "실행 후, 결과 값을 돌려주지 않는 함수를 만듭니다.", - "PROCEDURES_DEFNORETURN_COMMENT": "이 함수를 설명하세요...", - "PROCEDURES_DEFRETURN_HELPURL": "https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98_%28%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%29", - "PROCEDURES_DEFRETURN_RETURN": "다음을 돌려줌", - "PROCEDURES_DEFRETURN_TOOLTIP": "실행 후, 결과 값을 돌려주는 함수를 만듭니다.", - "PROCEDURES_ALLOW_STATEMENTS": "서술 허가", - "PROCEDURES_DEF_DUPLICATE_WARNING": "경고: 이 함수에는, 같은 이름을 사용하는 매개 변수들이 있습니다.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://ko.wikipedia.org/wiki/함수_(프로그래밍)", - "PROCEDURES_CALLNORETURN_TOOLTIP": "미리 정의해 둔 '%1' 함수를 실행합니다.", - "PROCEDURES_CALLRETURN_HELPURL": "https://ko.wikipedia.org/wiki/함수_(프로그래밍)", - "PROCEDURES_CALLRETURN_TOOLTIP": "미리 정의해 둔 '%1' 함수를 실행하고, 함수를 실행한 결과 값을 돌려줍니다.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "매개 변수들", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "이 함수를 추가, 삭제, 혹은 재정렬합니다.", - "PROCEDURES_MUTATORARG_TITLE": "매개 변수:", - "PROCEDURES_MUTATORARG_TOOLTIP": "함수에 값을 더합니다.", - "PROCEDURES_HIGHLIGHT_DEF": "함수 정의 찾기", - "PROCEDURES_CREATE_DO": "'%1' 생성", - "PROCEDURES_IFRETURN_TOOLTIP": "값이 참이라면, 두 번째 값을 반환합니다.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "경고: 이 블럭은, 함수 정의 블럭 안에서만 사용할 수 있습니다.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "말해 보세요..." -} diff --git a/lib/blockly/msg/json/lb.json b/lib/blockly/msg/json/lb.json deleted file mode 100644 index ff12392..0000000 --- a/lib/blockly/msg/json/lb.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Robby", - "Soued031", - "Les Meloures" - ] - }, - "VARIABLES_DEFAULT_NAME": "Element", - "UNNAMED_KEY": "ouni Numm", - "TODAY": "Haut", - "DUPLICATE_BLOCK": "Eng Kopie maachen", - "ADD_COMMENT": "Bemierkung derbäisetzen", - "REMOVE_COMMENT": "Bemierkung ewechhuelen", - "DUPLICATE_COMMENT": "Bemierkung kopéieren", - "DELETE_BLOCK": "Block läschen", - "DELETE_X_BLOCKS": "%1 Bléck läschen", - "CLEAN_UP": "Bléck opraumen", - "COLLAPSE_BLOCK": "Block zesummeklappen", - "COLLAPSE_ALL": "Bléck zesummeklappen", - "EXPAND_BLOCK": "Block opklappen", - "EXPAND_ALL": "Bléck opklappen", - "DISABLE_BLOCK": "Block desaktivéieren", - "ENABLE_BLOCK": "Block aktivéieren", - "HELP": "Hëllef", - "UNDO": "Réckgängeg maachen", - "REDO": "Widderhuelen", - "CHANGE_VALUE_TITLE": "Wäert änneren:", - "RENAME_VARIABLE": "Variabel ëmbenennen...", - "RENAME_VARIABLE_TITLE": "All '%1' Variabelen ëmbenennen op:", - "NEW_VARIABLE": "Variabel uleeën...", - "NEW_VARIABLE_TITLE": "Neie variabelen Numm:", - "COLOUR_PICKER_TOOLTIP": "Sicht eng Faarf an der Palette eraus.", - "COLOUR_RANDOM_TITLE": "zoufälleg Faarf", - "COLOUR_RANDOM_TOOLTIP": "Eng zoufälleg Faarf eraussichen.", - "COLOUR_RGB_TITLE": "fierwe mat", - "COLOUR_RGB_RED": "rout", - "COLOUR_RGB_GREEN": "gréng", - "COLOUR_RGB_BLUE": "blo", - "COLOUR_BLEND_TITLE": "mëschen", - "COLOUR_BLEND_COLOUR1": "Faarf 1", - "COLOUR_BLEND_COLOUR2": "Faarf 2", - "COLOUR_BLEND_RATIO": "ratio", - "CONTROLS_REPEAT_TITLE": "%1-mol widderhuelen", - "CONTROLS_REPEAT_INPUT_DO": "maach", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "Widderhuel soulaang", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "widderhuele bis", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Féiert d'Uweisungen aus, soulaang wéi de Wäert richteg ass", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Féiert d'Uweisungen aus, soulaang wéi de Wäert falsch ass.", - "CONTROLS_FOR_TITLE": "zielt mat %1 vun %2 bis %3 mat %4", - "CONTROLS_FOREACH_TITLE": "fir all Element %1 an der Lëscht %2", - "CONTROLS_IF_MSG_IF": "wann", - "CONTROLS_IF_MSG_ELSE": "soss", - "IOS_OK": "OK", - "IOS_CANCEL": "Ofbriechen", - "IOS_ERROR": "Feeler", - "IOS_VARIABLES_ADD_VARIABLE": "+ Variabel derbäisetzen", - "IOS_VARIABLES_ADD_BUTTON": "Derbäisetzen", - "IOS_VARIABLES_RENAME_BUTTON": "Ëmbenennen", - "IOS_VARIABLES_DELETE_BUTTON": "Läschen", - "IOS_VARIABLES_VARIABLE_NAME": "Numm vun der Variabel", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Dir kënnt keen eidelen Numm fir eng Variabel benotzen.", - "LOGIC_OPERATION_AND": "an", - "LOGIC_OPERATION_OR": "oder", - "LOGIC_NEGATE_TITLE": "net %1", - "LOGIC_BOOLEAN_TRUE": "wouer", - "LOGIC_BOOLEAN_FALSE": "falsch", - "LOGIC_BOOLEAN_TOOLTIP": "Schéckt entweder richteg oder falsch zréck.", - "LOGIC_NULL": "null", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "Test", - "LOGIC_TERNARY_IF_TRUE": "wa wouer", - "LOGIC_TERNARY_IF_FALSE": "wa falsch", - "MATH_NUMBER_TOOLTIP": "Eng Zuel.", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Den Total vun den zwou Zuelen zréckginn.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "D'Produkt vun den zwou Zuelen zréckginn.", - "MATH_SINGLE_HELPURL": "https://lb.wikipedia.org/wiki/Racine carrée", - "MATH_SINGLE_OP_ROOT": "Quadratwuerzel", - "MATH_SINGLE_OP_ABSOLUTE": "absolut", - "MATH_IS_EVEN": "ass gerued", - "MATH_IS_ODD": "ass ongerued", - "MATH_IS_PRIME": "ass eng Primzuel", - "MATH_IS_WHOLE": "ass eng ganz Zuel", - "MATH_IS_POSITIVE": "ass positiv", - "MATH_IS_NEGATIVE": "ass negativ", - "MATH_CHANGE_TITLE": "änneren %1 ëm %2", - "MATH_ROUND_TOOLTIP": "Eng Zuel op- oder ofrënnen.", - "MATH_ROUND_OPERATOR_ROUND": "opronnen", - "MATH_ROUND_OPERATOR_ROUNDUP": "oprënnen", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ofrënnen", - "MATH_ONLIST_OPERATOR_MAX": "Maximum aus der Lëscht", - "MATH_ONLIST_TOOLTIP_MAX": "Schéckt de gréisste Wäert aus enger Lëscht zréck.", - "MATH_ONLIST_OPERATOR_AVERAGE": "Moyenne vun der Lëscht", - "MATH_ONLIST_OPERATOR_RANDOM": "zoufällegt Element vun enger Lëscht", - "MATH_MODULO_TITLE": "Rescht vu(n) %1 ÷ %2", - "MATH_RANDOM_INT_TITLE": "zoufälleg ganz Zuel tëscht %1 a(n) %2", - "TEXT_TEXT_TOOLTIP": "E Buschtaf, e Wuert oder eng Textzeil.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "En Element bei den Text derbäisetzen.", - "TEXT_LENGTH_TITLE": "Längt vu(n) %1", - "TEXT_ISEMPTY_TITLE": "%1 ass eidel", - "TEXT_INDEXOF_TITLE": "am Text %1 %2 %3", - "TEXT_CHARAT_TITLE": "am Text %1 %2", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "am Text", - "TEXT_GET_SUBSTRING_END_FROM_START": "bis bei de Buschtaf #", - "TEXT_GET_SUBSTRING_END_LAST": "bis bei de leschte Buschtaw", - "TEXT_PRINT_TITLE": "%1 drécken", - "TEXT_PROMPT_TOOLTIP_TEXT": "Frot de Benotzer no engem Text.", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_REPLACE_MESSAGE0": "%1 duerch %2 a(n) %3 ersetzen", - "TEXT_REPLACE_TOOLTIP": "All Kéiers wou e bestëmmten Text do ass duerch en aneren Text ersetzen.", - "TEXT_REVERSE_TOOLTIP": "Dréint d'Reiefolleg vun den Zeechen am Text ëm.", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "Lëscht", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "En Element op d'Lëscht derbäisetzen.", - "LISTS_LENGTH_TITLE": "Längt vu(n) %1", - "LISTS_ISEMPTY_TITLE": "%1 ass eidel", - "LISTS_INLIST": "an der Lëscht", - "LISTS_GET_INDEX_REMOVE": "ewechhuelen", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# vun hannen", - "LISTS_GET_INDEX_FIRST": "éischt", - "LISTS_GET_INDEX_LAST": "lescht", - "LISTS_GET_INDEX_RANDOM": "Zoufall", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ass dat éischt Element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ass dat éischt Element.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Schéckt en zoufällegt Element aus enger Lëscht zréck.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Hëlt dat lescht Element aus enger Lëscht eraus.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Hëlt en zoufällegt Element aus enger Lëscht eraus.", - "LISTS_SET_INDEX_INSERT": "asetzen op", - "LISTS_SET_INDEX_INPUT_TO": "als", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Setzt en zoufällegt Element an eng Lëscht.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Setzt d'Element um Enn vun enger Lëscht derbäi.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Setzt d'Element op eng zoufälleg Plaz an d'Lëscht derbäi.", - "LISTS_SORT_TITLE": "%1 %2 %3 zortéieren", - "LISTS_SORT_TYPE_NUMERIC": "numeresch", - "LISTS_SORT_TYPE_TEXT": "alphabetesch", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "%1 ëmdréinen", - "PROCEDURES_DEFNORETURN_PROCEDURE": "eppes maachen", - "PROCEDURES_BEFORE_PARAMS": "mat:", - "PROCEDURES_CALL_BEFORE_PARAMS": "mat:", - "PROCEDURES_DEFNORETURN_COMMENT": "Dës Funktioun beschreiwen...", - "PROCEDURES_DEFRETURN_RETURN": "zréck", - "PROCEDURES_CREATE_DO": "'%1' uleeën", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Sot eppes..." -} diff --git a/lib/blockly/msg/json/lki.json b/lib/blockly/msg/json/lki.json deleted file mode 100644 index e27c575..0000000 --- a/lib/blockly/msg/json/lki.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Hosseinblue", - "Lakzon" - ] - }, - "VARIABLES_DEFAULT_NAME": "آیتم", - "TODAY": "ایمڕۆ", - "DUPLICATE_BLOCK": "کؤپی کردن", - "ADD_COMMENT": "گةپ دائن", - "REMOVE_COMMENT": "پاک کردن گةپةل/قِسةل", - "EXTERNAL_INPUTS": "ورودیةل خروجی", - "INLINE_INPUTS": "ورودیةل نوم جا", - "DELETE_BLOCK": "پاک کردن بلاک", - "DELETE_X_BLOCKS": "حةذف %1 بلاکةل", - "DELETE_ALL_BLOCKS": "حةذف کؤل %1 بلاکةل?", - "CLEAN_UP": "تمیزکردن بلاکةل", - "COLLAPSE_BLOCK": "چؤیچانن/پشکانن بلاک", - "COLLAPSE_ALL": "چؤیچانن/پشکانن بلاکةل", - "EXPAND_BLOCK": "کةلنگآ کردِن بلاک", - "EXPAND_ALL": "کةلنگآ کردِن بلاکةل", - "DISABLE_BLOCK": "إ کار کةتن(غیرفعال‌سازی) بلاک", - "ENABLE_BLOCK": "إ کارآشتن(فعال)بلاک", - "HELP": "کؤمةک", - "CHANGE_VALUE_TITLE": "تةغییر مقدار:", - "RENAME_VARIABLE": "تغییر نام متغیر...", - "RENAME_VARIABLE_TITLE": "تغییر نام همهٔ متغیرهای «%1» به:", - "NEW_VARIABLE": "متغیر تازه...", - "NEW_VARIABLE_TITLE": "نام متغیر تازه:", - "COLOUR_PICKER_HELPURL": "https://lki.wikipedia.org/wiki/ڕەنگ", - "COLOUR_PICKER_TOOLTIP": "رةنگێ إژ تةختة رةنگ انتخاب کةن", - "COLOUR_RANDOM_TITLE": "رةنگ بةختةکی", - "COLOUR_RANDOM_TOOLTIP": ".رةنگئ بةختةکی انتخاب کةن", - "COLOUR_RGB_TITLE": "رةنگ وة", - "COLOUR_RGB_RED": "سۆر", - "COLOUR_RGB_GREEN": "سؤز", - "COLOUR_RGB_BLUE": "کاوو", - "COLOUR_RGB_TOOLTIP": "ساخت یک رنگ با مقدار مشخص‌شده‌ای از سۆر، سؤز و کاوو. همهٔ مقادیر باید بین ۰ تا ۱۰۰ باشند.", - "COLOUR_BLEND_TITLE": "قاتی پاتی", - "COLOUR_BLEND_COLOUR1": "رةنگ 1", - "COLOUR_BLEND_COLOUR2": "رةنگ 2", - "COLOUR_BLEND_RATIO": "نسبت", - "COLOUR_BLEND_TOOLTIP": "دو رنگ را با نسبت مشخص‌شده مخلوط می‌کند (۰٫۰ - ۱٫۰)", - "CONTROLS_REPEAT_HELPURL": "https://lki.wikipedia.org/wiki/حلقه_فور", - "CONTROLS_REPEAT_TITLE": "%بار تکرار 1", - "CONTROLS_REPEAT_INPUT_DO": "انجوم بی", - "CONTROLS_REPEAT_TOOLTIP": "انجام چةن عبارت چندین گِل.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تکرار در حالی که", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تکرار تا وةختێ گإ", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده.", - "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", - "CONTROLS_FOR_TITLE": "با تعداد %1 از %2 به %3 با گام‌های %4", - "CONTROLS_FOREACH_TITLE": "ئةرا هر مورد %1 وۀ نام لیست%2", - "CONTROLS_FOREACH_TOOLTIP": "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "شکانِن حلقه", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ادامه با تکرار بعدی حلقه", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "شکستن حلقهٔ شامل.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "پریدن از بقیهٔ حلقه و ادامه با تکرار بعدی.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "اخطار: این بلوک ممکن است فقط داخل یک حلقه استفاده شود.", - "CONTROLS_IF_TOOLTIP_1": "اگر یک مقدار صحیح است، سپس چند عبارت را انجام بده.", - "CONTROLS_IF_TOOLTIP_2": "اگر یک مقدار صحیح است، اول بلوک اول عبارات را انجام بده. در غیر این صورت بلوک دوم عبارات انجام بده.", - "CONTROLS_IF_TOOLTIP_3": "اگر مقدار اول صحیح بود، از آن بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم صحیح است، بلوک دوم عبارات را انجام بده.", - "CONTROLS_IF_TOOLTIP_4": "اگر مقدار اول درست است، بلوک اول عبارات را انجام بده. در غیر این صورت، اگر مقدار دوم درست باشد بلوک دوم عبارات را انجام بده. اگر هیچ از مقادیر درست نبود، آخرین بلوک عبارات را انجام بده.", - "CONTROLS_IF_MSG_IF": "اگر", - "CONTROLS_IF_MSG_ELSEIF": "اگر آنگاه", - "CONTROLS_IF_MSG_ELSE": "آنگاه", - "CONTROLS_IF_IF_TOOLTIP": "افزودن، حذف یا بازمرتب‌سازی قسمت‌ها برای پیکربندی دوبارهٔ این بلوک اگر.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "افزودن یک شرط به بلوک اگر.", - "CONTROLS_IF_ELSE_TOOLTIP": "اضافه‌کردن نهایی، گرفتن همهٔ شرایط به بلوک اگر.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "بازگشت صحیح اگر هر دو ورودی با یکدیگر برابر باشد.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "برگرداندن صحیح اگر هر دو ورودی با یکدیگر برابر نباشند.", - "LOGIC_COMPARE_TOOLTIP_LT": "بازگرداندن صحیح اگر ورودی اول کوچکتر از ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_LTE": "بازگرداندن صحیح اگر ورودی اول کوچکتر یا مساوی با ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_GT": "بازگرداندن صحیح اگر ورودی اول بزرگتر از ورودی دوم باشد.", - "LOGIC_COMPARE_TOOLTIP_GTE": "بازگرداندن صحیح اگر ورودی اول بزرگتر یا مساوی یا ورودی دوم باشد.", - "LOGIC_OPERATION_TOOLTIP_AND": "بازگرداندن صحیح اگر هر دو ورودی صحیح باشد.", - "LOGIC_OPERATION_AND": "و", - "LOGIC_OPERATION_TOOLTIP_OR": "بازگرداندن صحیح اگر یکی از دو ورودی صحیح باشد.", - "LOGIC_OPERATION_OR": "یا", - "LOGIC_NEGATE_TITLE": "نه %1", - "LOGIC_NEGATE_TOOLTIP": "صجیج باز می‌گرداند اگر ورودی نا صحیح باشند. ناصحیح بازمی‌گرداند اگر ورودی صحیح باشد.", - "LOGIC_BOOLEAN_TRUE": "درست", - "LOGIC_BOOLEAN_FALSE": "نادرست", - "LOGIC_BOOLEAN_TOOLTIP": "بازگرداندن یکی از صحیح یا ناصحیح.", - "LOGIC_NULL": "پةتی/خالی", - "LOGIC_NULL_TOOLTIP": "تهی باز می گرداند", - "LOGIC_TERNARY_CONDITION": "آزمائشت", - "LOGIC_TERNARY_IF_TRUE": "اگر درست", - "LOGIC_TERNARY_IF_FALSE": "اگر نادرست", - "LOGIC_TERNARY_TOOLTIP": "بررسی وضعیت در «آزمایش». اگر وضعیت صحیح باشد، مقدار «اگر صحیح» را بر می‌گرداند در غیر اینصورت مقدار «اگر ناصحیح» را.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "شؤمارە یەک", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "بازگرداندن مقدار جمع دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "بازگرداندن تفاوت دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "بازگرداندن حاصلضرب دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "بازگرداندن باقی‌ماندهٔ دو عدد.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "بازگرداندن اولین عددی که از توان عدد دوم حاصل شده باشد.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "ریشهٔ دوم", - "MATH_SINGLE_TOOLTIP_ROOT": "ریشهٔ دوم یک عدد را باز می‌گرداند.", - "MATH_SINGLE_OP_ABSOLUTE": "مطلق", - "MATH_SINGLE_TOOLTIP_ABS": "قدر مطلق یک عدد را بازمی‌گرداند.", - "MATH_SINGLE_TOOLTIP_NEG": "منفی‌شدهٔ یک عدد را باز می‌گرداند.", - "MATH_SINGLE_TOOLTIP_LN": "لوگاریتم طبیعی یک عدد را باز می‌گرداند.", - "MATH_SINGLE_TOOLTIP_LOG10": "بازگرداندن لگاریتم بر پایهٔ ۱۰ یک عدد.", - "MATH_SINGLE_TOOLTIP_EXP": "بازگرداندن توان e یک عدد.", - "MATH_SINGLE_TOOLTIP_POW10": "بازگرداندن توان ۱۰ یک عدد.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "بازگرداندن سینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_COS": "بازگرداندن کسینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_TAN": "بازگرداندن تانژانت یک درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ASIN": ".(بازگرداندن آرک‌سینوس درجه (نه رادیان", - "MATH_TRIG_TOOLTIP_ACOS": "بازگرداندن آرک‌کسینوس درجه (نه رادیان).", - "MATH_TRIG_TOOLTIP_ATAN": "بازگرداندن آرک‌تانژانت درجه (نه رادیان).", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "یکی از مقادیر مشترک را برمی‌گرداند: π (۳٫۱۴۱…)، e (۲٫۷۱۸...)، φ (۱٫۶۱۸)، sqrt(۲) (۱٫۴۱۴)، sqrt(۱/۲) (۰٫۷۰۷...) و یا ∞ (بی‌نهایت).", - "MATH_IS_EVEN": "زوج است", - "MATH_IS_ODD": "فرد است", - "MATH_IS_PRIME": "عدد اول است", - "MATH_IS_WHOLE": "کامل است", - "MATH_IS_POSITIVE": "مثبت است", - "MATH_IS_NEGATIVE": "منفی است", - "MATH_IS_DIVISIBLE_BY": "تقسیم شده بر", - "MATH_IS_TOOLTIP": "بررسی می‌کند که آیا یک عدد زوج، فرد، اول، کامل، مثبت، منفی یا بخش‌پذیر عدد خاصی باشد را بررسی می‌کند. درست یا نادرست باز می‌گرداند.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "تغییر %1 با %2", - "MATH_CHANGE_TOOLTIP": "افزودن یک عدد به متغیر '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "گردکردن یک عدد به بالا یا پایین.", - "MATH_ROUND_OPERATOR_ROUND": "گردکردن", - "MATH_ROUND_OPERATOR_ROUNDUP": "گرد به بالا", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "گرد به پایین", - "MATH_ONLIST_OPERATOR_SUM": "جمع لیست", - "MATH_ONLIST_TOOLTIP_SUM": "جمع همهٔ عددهای فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_MIN": "گوجةرتةرین لیست", - "MATH_ONLIST_TOOLTIP_MIN": "کوچک‌ترین عدد در فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_MAX": "بزرگ‌ترین فهرست", - "MATH_ONLIST_TOOLTIP_MAX": "بزرگ‌ترین عدد در فهرست را باز می‌گرداند.", - "MATH_ONLIST_OPERATOR_AVERAGE": "میانگین فهرست", - "MATH_ONLIST_TOOLTIP_AVERAGE": "میانگین (میانگین ریاضی) مقادیر عددی فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_MEDIAN": "میانهٔ فهرست", - "MATH_ONLIST_TOOLTIP_MEDIAN": "میانهٔ عدد در فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_MODE": "مد فهرست", - "MATH_ONLIST_TOOLTIP_MODE": "شایع‌ترین قلم(های) در فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_STD_DEV": "انحراف معیار فهرست", - "MATH_ONLIST_TOOLTIP_STD_DEV": "انحراف معیار فهرست را بر می‌گرداند.", - "MATH_ONLIST_OPERATOR_RANDOM": "مورد تصادفی از فهرست", - "MATH_ONLIST_TOOLTIP_RANDOM": "موردی تصادفی از فهرست را بر می‌گرداند.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "باقی‌ماندهٔ %1 + %2", - "MATH_MODULO_TOOLTIP": "باقی‌ماندهٔ تقسیم دو عدد را بر می‌گرداند.", - "MATH_CONSTRAIN_TITLE": "محدودکردن %1 پایین %2 بالا %3", - "MATH_CONSTRAIN_TOOLTIP": "محدودکردن یک عدد بین محدودیت‌های مشخص‌شده (بسته).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "عدد صحیح تصادفی بین %1 تا %2", - "MATH_RANDOM_INT_TOOLTIP": "یک عدد تصادفی بین دو مقدار مشخص‌شده به صورت بسته باز می‌گرداند.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "کسر تصادفی", - "MATH_RANDOM_FLOAT_TOOLTIP": "بازگرداندن کسری تصادفی بین ۰٫۰ (بسته) تا ۱٫۰ (باز).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "یک حرف، کلمه یا خطی از متن.", - "TEXT_JOIN_TITLE_CREATEWITH": "ایجاد متن با", - "TEXT_JOIN_TOOLTIP": "یک تکه‌ای از متن را با چسپاندن همهٔ تعداد از موارد ایجاد می‌کند.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "نام نؤیسی", - "TEXT_CREATE_JOIN_TOOLTIP": "اضافه‌کردن، حذف یا مرتب‌سازی بحش‌ها برای تنظیم مجدد این بلوک متنی.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "افزودن یک مورد به متن.", - "TEXT_APPEND_TITLE": "به %1 چسباندن متن %2", - "TEXT_APPEND_TOOLTIP": "الحاق متنی به متغیر «%1».", - "TEXT_LENGTH_TITLE": "طول %1", - "TEXT_LENGTH_TOOLTIP": "بازگرداندن عددی از حروف (شامل فاصله‌ها) در متن فراهم‌شده.", - "TEXT_ISEMPTY_TITLE": "%1 خالی است", - "TEXT_ISEMPTY_TOOLTIP": "اضافه‌کردن صحیح اگر متن فراهم‌شده خالی است.", - "TEXT_INDEXOF_TOOLTIP": "شاخصی از اولین آخرین رخ‌داد متن اول در متن دوم بر می‌گرداند. اگر متن یافت نشد %1 باز می‌گرداند.", - "TEXT_INDEXOF_TITLE": "در متن %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "اولین رخداد متن را بیاب", - "TEXT_INDEXOF_OPERATOR_LAST": "آخرین رخداد متن را بیاب", - "TEXT_CHARAT_FROM_START": "گرفتن حرف #", - "TEXT_CHARAT_FROM_END": "گرفتن حرف # از آخر", - "TEXT_CHARAT_FIRST": "گرفتن اولین حرف", - "TEXT_CHARAT_LAST": "گرفتن آخرین حرف", - "TEXT_CHARAT_RANDOM": "گرفتن حرف تصادفی", - "TEXT_CHARAT_TOOLTIP": "حرفی در موقعیت مشخص‌شده بر می‌گرداند.", - "TEXT_GET_SUBSTRING_TOOLTIP": "قسمت مشخصی‌شده‌ای از متن را بر می‌گرداند.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "در متن", - "TEXT_GET_SUBSTRING_START_FROM_START": "گرفتن زیرمتن از حرف #", - "TEXT_GET_SUBSTRING_START_FROM_END": "گرفتن زیرمتن از حرف # به انتها", - "TEXT_GET_SUBSTRING_START_FIRST": "گرفتن زیرمتن از اولین حرف", - "TEXT_GET_SUBSTRING_END_FROM_START": "به حرف #", - "TEXT_GET_SUBSTRING_END_FROM_END": "به حرف # از انتها", - "TEXT_GET_SUBSTRING_END_LAST": "به آخرین حرف", - "TEXT_CHANGECASE_TOOLTIP": "بازگرداندن کپی متن در حالتی متفاوت.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "به حروف بزرگ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "به حروف کوچک", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "به حروف بزرگ عنوان", - "TEXT_TRIM_TOOLTIP": "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند.", - "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", - "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_PRINT_TITLE": "چاپ %1", - "TEXT_PRINT_TOOLTIP": "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده.", - "TEXT_PROMPT_TYPE_TEXT": "اعلان برای متن با پیام", - "TEXT_PROMPT_TYPE_NUMBER": "اعلان برای عدد با پیام", - "TEXT_PROMPT_TOOLTIP_NUMBER": "اعلان برای کاربر با یک عدد.", - "TEXT_PROMPT_TOOLTIP_TEXT": "اعلان برای کاربر برای یک متن.", - "LISTS_CREATE_EMPTY_TITLE": "ایجاد فهرست خالی", - "LISTS_CREATE_EMPTY_TOOLTIP": "فهرستی با طول صفر شامل هیچ رکورد داده‌ای بر می‌گرداند.", - "LISTS_CREATE_WITH_TOOLTIP": "فهرستی از هر عددی از موارد می‌سازد.", - "LISTS_CREATE_WITH_INPUT_WITH": "ایجاد فهرست با", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "لیست", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "اضافه‌کردن، حذف‌کردن یا ترتیب‌سازی مجدد بخش‌ها این بلوک فهرستی.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "اضافه‌کردن یک مورد به فهرست.", - "LISTS_REPEAT_TOOLTIP": "فهرستی شامل مقادیر داده‌شدهٔ تکرار شده عدد مشخص‌شده می‌سازد.", - "LISTS_REPEAT_TITLE": "فهرستی با %1 تکرارشده به اندازهٔ %2 می‌سازد", - "LISTS_LENGTH_TITLE": "طول %1", - "LISTS_LENGTH_TOOLTIP": "طول یک فهرست را برمی‌گرداند.", - "LISTS_ISEMPTY_TITLE": "%1 خالی است", - "LISTS_ISEMPTY_TOOLTIP": "اگر فهرست خالی است مقدار صجیج بر می‌گرداند.", - "LISTS_INLIST": "در فهرست", - "LISTS_INDEX_OF_FIRST": "یافتن اولین رخ‌داد مورد", - "LISTS_INDEX_OF_LAST": "یافتن آخرین رخ‌داد مورد", - "LISTS_INDEX_OF_TOOLTIP": "شاخصی از اولین/آخرین رخ‌داد مورد در فهرست را بر می‌گرداند. %1 بر می‌گرداند اگر آیتم موجود نبود.", - "LISTS_GET_INDEX_GET": "گِرتِن", - "LISTS_GET_INDEX_GET_REMOVE": "گِرتِن و حةذف کردن", - "LISTS_GET_INDEX_REMOVE": "حةذف کردن", - "LISTS_GET_INDEX_FROM_END": "# إژ دؤما آخر", - "LISTS_GET_INDEX_FIRST": "إژ أؤةل", - "LISTS_GET_INDEX_LAST": "دؤمائن/آخرین", - "LISTS_GET_INDEX_RANDOM": "بةختةکی", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 اولین مورد است.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 آخرین مورد است.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "موردی در محل مشخص‌شده بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "اولین مورد یک فهرست را بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "آخرین مورد در یک فهرست را بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "یک مورد تصادفی در یک فهرست بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "مورد در محل مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "اولین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "آخرین مورد مشخص‌شده در فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "مورد تصادفی‌ای را در فهرست حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "مورد مشخص‌شده در موقعیت مشخص در یک فهرست را حذف و بر می‌گرداند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "اولین مورد را در یک فهرست حذف می‌کند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "آخرین مورد را در یک فهرست حذف می‌کند.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "یک مورد تصادفی را یک فهرست حذف می‌کند.", - "LISTS_SET_INDEX_SET": "مجموعه", - "LISTS_SET_INDEX_INSERT": "درج در", - "LISTS_SET_INDEX_INPUT_TO": "به عنوان", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "مورد مشخص‌شده در یک فهرست را قرار می‌دهد.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "اولین مورد در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "آخرین مورد در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "یک مورد تصادفی در یک فهرست را تعیین می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "موردی در موقعیت مشخص‌شده در یک فهرست اضافه می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "موردی به ته فهرست اضافه می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "موردی به ته فهرست الحاق می‌کند.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "مورد را به صورت تصادفی در یک فهرست می‌افزاید.", - "LISTS_GET_SUBLIST_START_FROM_START": "گرفتن زیرمجموعه‌ای از #", - "LISTS_GET_SUBLIST_START_FROM_END": "گرفتن زیرمجموعه‌ای از # از انتها", - "LISTS_GET_SUBLIST_START_FIRST": "گرفتن زیرمجموعه‌ای از ابتدا", - "LISTS_GET_SUBLIST_END_FROM_START": "به #", - "LISTS_GET_SUBLIST_END_FROM_END": "به # از انتها", - "LISTS_GET_SUBLIST_END_LAST": "به آخرین", - "LISTS_GET_SUBLIST_TOOLTIP": "کپی از قسمت مشخص‌شدهٔ لیست درست می‌کند.", - "LISTS_SPLIT_LIST_FROM_TEXT": "ساخت لیست إژ متن", - "LISTS_SPLIT_TEXT_FROM_LIST": "ساخت متن إژ لیست", - "LISTS_SPLIT_WITH_DELIMITER": "همراه جداساز", - "VARIABLES_GET_TOOLTIP": "مقدار این متغیر را بر می‌گرداند.", - "VARIABLES_GET_CREATE_SET": "درست‌کردن «تنظیم %1»", - "VARIABLES_SET": "مجموعه %1 به %2", - "VARIABLES_SET_TOOLTIP": "متغیر برابر با خروجی را مشخص می‌کند.", - "VARIABLES_SET_CREATE_GET": "درست‌کردن «گرفتن %1»", - "PROCEDURES_DEFNORETURN_TITLE": "به", - "PROCEDURES_DEFNORETURN_PROCEDURE": "انجام چیزی", - "PROCEDURES_BEFORE_PARAMS": "با:", - "PROCEDURES_CALL_BEFORE_PARAMS": "با:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "تابعی می‌سازد بدون هیچ خروجی.", - "PROCEDURES_DEFRETURN_RETURN": "بازگشت", - "PROCEDURES_DEFRETURN_TOOLTIP": "تابعی با یک خروجی می‌سازد.", - "PROCEDURES_ALLOW_STATEMENTS": "اجازه اظهارات", - "PROCEDURES_DEF_DUPLICATE_WARNING": "اخطار: این تابعی پارامتر تکراری دارد.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "اجرای تابع تعریف‌شده توسط کاربر «%1».", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "اجرای تابع تعریف‌شده توسط کاربر «%1» و استفاده از خروجی آن.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ورودی‌ها", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "افزودن، حذف یا دوباره مرتب‌کردن ورودی این تابع.", - "PROCEDURES_MUTATORARG_TITLE": "نام ورودی:", - "PROCEDURES_MUTATORARG_TOOLTIP": "اضافه کردن ورودی به تابع.", - "PROCEDURES_HIGHLIGHT_DEF": "برجسته‌سازی تعریف تابع", - "PROCEDURES_CREATE_DO": "ساختن «%1»", - "PROCEDURES_IFRETURN_TOOLTIP": "اگر یک مقدار صحیح است، مقدار دوم را برگردان.", - "PROCEDURES_IFRETURN_WARNING": "اخطار: این بلوک احتمالاً فقط داخل یک تابع استفاده می‌شود." -} diff --git a/lib/blockly/msg/json/lo.json b/lib/blockly/msg/json/lo.json deleted file mode 100644 index ec7aabb..0000000 --- a/lib/blockly/msg/json/lo.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Aefgh39622" - ] - }, - "VARIABLES_DEFAULT_NAME": "ລາຍການ", - "TODAY": "ມື້ນີ້", - "DUPLICATE_BLOCK": "ເຮັດສຳເນົາ", - "ADD_COMMENT": "ເພີ່ມຄຳອະທິບາຍ", - "REMOVE_COMMENT": "ເອົາຄຳອະທິບາຍອອກ", - "EXTERNAL_INPUTS": "ອິນພຸດພາຍນອກ", - "INLINE_INPUTS": "ອິນພຸດໃນບັນທັດ", - "DELETE_BLOCK": "ລຶບບລັອກ", - "DELETE_X_BLOCKS": "ລຶບ %1 ບລັອກ", - "DELETE_ALL_BLOCKS": "ລຶບ %1 ບລັອກທັງໝົດຫຼືບໍ່?", - "CLEAN_UP": "ຈັດລຽນບລັອກໃຫ້ເປັນແຖວ", - "COLLAPSE_BLOCK": "ຍຸບບລັອກ", - "COLLAPSE_ALL": "ຍຸບບລັອກ", - "EXPAND_BLOCK": "ຂະຫຍາຍບລັອກ", - "EXPAND_ALL": "ຂະຫຍາຍບລັອກ", - "DISABLE_BLOCK": "ປິດໃຊ້ງານບລັອກ", - "ENABLE_BLOCK": "ເປີດໃຊ້ງານບລັອກ", - "HELP": "ຊ່ວຍເຫຼືອ", - "UNDO": "ກັບຄືນ", - "REDO": "ເຮັດຄືນ", - "CHANGE_VALUE_TITLE": "ປ່ຽນຄ່າ:", - "RENAME_VARIABLE": "ປ່ຽນຊື່ຕົວແປ...", - "RENAME_VARIABLE_TITLE": "ປ່ຽນຊື່ຕົວແປ '%1' ທັງໝົດເປັນ:", - "NEW_VARIABLE_TITLE": "ຊື່ຕົວແປໃໝ່:", - "COLOUR_PICKER_HELPURL": "https://lo.wikipedia.org/wiki/ສີ", - "COLOUR_PICKER_TOOLTIP": "ເລືອກສີຈາກຈານສີ.", - "COLOUR_RANDOM_TITLE": "ສຸ່ມສີ", - "COLOUR_RANDOM_TOOLTIP": "ເລືອກສີແບບສຸ່ມ.", - "COLOUR_RGB_TITLE": "ສີທີ່ປະກອບດ້ວຍ", - "COLOUR_RGB_RED": "ຄ່າສີແດງ", - "COLOUR_RGB_GREEN": "ຄ່າສີຂຽວ", - "COLOUR_RGB_BLUE": "ຄ່າສີນ້ຳເງິນ", - "COLOUR_RGB_TOOLTIP": "ສ້າງສີດ້ວຍການກຳນົດຄ່າສີແດງ, ສີຂຽວ, ແລະສີນ້ຳເງິນ. ຄ່າທັງໝົດຕ້ອງຢູ່ລະຫວ່າງ 0 ເຖິງ 100.", - "COLOUR_BLEND_TITLE": "ປະສົມ", - "COLOUR_BLEND_COLOUR1": "ສີ 1", - "COLOUR_BLEND_COLOUR2": "ສີ 2", - "COLOUR_BLEND_RATIO": "ອັດຕາສ່ວນ", - "COLOUR_BLEND_TOOLTIP": "ປະສົມສອງສີເຂົ້າກັນດ້ວຍອັດຕາສ່ວນ (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ເຮັດຄືນ %1 ຄັ້ງ", - "CONTROLS_REPEAT_INPUT_DO": "ເຮັດ", - "CONTROLS_REPEAT_TOOLTIP": "ເຮັດຄຳສັ່ງບາງຄຳສັ່ງຄືນຫຼາຍໆຄັ້ງ.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ເຮັດຄືນຂະນະທີ່", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ເຮັດຄືນຈົນກະທັ່ງ", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ຂະນະທີ່ຄ່າເປັນຈິງ, ກໍຈະເຮັດຄຳສັ່ງບາງຄຳສັ່ງ.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ຂະນະທີ່ຄ່າເປັນເທັດ, ກໍຈະເຮັດຄຳສັ່ງບາງຄຳສັ່ງ.", - "CONTROLS_FOR_TOOLTIP": "ຕົວແປ '%1' ຈະເລີ່ມຈາກຈຳນວນເລີ່ມຕົ້ນໄປຫາຈຳນວນສຸດທ້າຍ, ນັບຕາມຊ່ວງໄລຍະທີ່ກຳນົດ, ແລະເຮັດຕາມບລັອກທີ່ກຳນົດໄວ້.", - "CONTROLS_FOR_TITLE": "ນັບດ້ວຍ %1 ຈາກ %2 ເຖິງ %3 ປ່ຽນຄ່າທີລະ %4", - "CONTROLS_FOREACH_TITLE": "ຈາກທຸກລາຍການ %1 ໃນລາຍຊື່ %2", - "CONTROLS_FOREACH_TOOLTIP": "ສຳລັບທຸກລາຍການໃນລາຍຊື່, ໃຫ້ຕັ້ງຄ່າຕົວແປ '%1' ເປັນລາຍການ, ແລະເຮັດຕາມຄຳສັ່ງທີ່ກຳນົດໄວ້.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ອອກຈາກການວົນຊ້ຳ", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ເລີ່ມການວົນຊ້ຳຮອບຕໍ່ໄປ", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ອອກຈາກການວົນຊ້ຳທີ່ຢູ່.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "ຂ້າມຜ່ານຄຳສັ່ງທີ່ເຫຼືອຢູ່, ແລະເລີ່ມການວົນຊ້ຳຮອບຕໍ່ໄປ.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "ຄຳເຕືອນ: ບລັອກນີ້ໃຊ້ງານໄດ້ພາຍໃນການວົນຊ້ຳເທົ່ານັ້ນ.", - "CONTROLS_IF_TOOLTIP_1": "ຖ້າເງື່ອນໄຂເປັນຈິງ, ກໍຈະເຮັດຕາມທີ່ກຳນົດ.", - "CONTROLS_IF_MSG_IF": "ຖ້າ", - "CONTROLS_IF_MSG_ELSEIF": "ນອກຈາກນີ້ ຖ້າ", - "CONTROLS_IF_MSG_ELSE": "ນອກຈາກນີ້", - "CONTROLS_IF_IF_TOOLTIP": "ເພີ່ມ, ລຶບ, ຫຼື ຈັດລຽງບລັອກ \"ຖ້າ\" ນີ້ໃໝ່.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "ເພີ່ມເງື່ອນໄຂລົງໃນບລັອກ \"ຖ້າ\".", - "CONTROLS_IF_ELSE_TOOLTIP": "ເພີ່ມສິ່ງສຸດທ້າຍ, ກວດຫາຄວາມເປັນໄປໄດ້ທັງໝົດຂອງບລັອກ \"ຖ້າ\".", - "LOGIC_COMPARE_HELPURL": "https://​​lo.wikipedia.org/wiki/ອະສົມຜົນ", - "LOGIC_COMPARE_TOOLTIP_EQ": "ຄືນຄ່າຈິງຖ້າຄ່າທີ່ີໃສ່ທັງສອງຄ່ານັ້ນເທົ່າກັນ.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "ຄືນຄ່າຈິງຖ້າຄ່າທີ່ີໃສ່ທັງສອງຄ່ານັ້ນບໍ່ເທົ່າກັນ.", - "LOGIC_COMPARE_TOOLTIP_LT": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດນ້ອຍກວ່າຄ່າທີ່ສອງ.", - "LOGIC_COMPARE_TOOLTIP_LTE": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດນ້ອຍກວ່າ ຫຼື ເທົ່າກັບຄ່າທີ່ສອງ.", - "LOGIC_COMPARE_TOOLTIP_GT": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດຫຼາຍກວ່າຄ່າທີ່ສອງ.", - "LOGIC_COMPARE_TOOLTIP_GTE": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດຫຼາຍກວ່າ ຫຼື ເທົ່າກັບຄ່າທີ່ສອງ.", - "LOGIC_OPERATION_TOOLTIP_AND": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທັງສອງເປັນຈິງ.", - "LOGIC_OPERATION_AND": "ແລະ", - "LOGIC_OPERATION_TOOLTIP_OR": "ຄືນຄ່າເປັນຈິງຖ້າມີຄ່າຢ່າງນ້ອຍໜຶ່ງຄ່າທີ່ເປັນຈິງ.", - "LOGIC_OPERATION_OR": "ຫຼື", - "LOGIC_NEGATE_TITLE": "ບໍ່ %1", - "LOGIC_NEGATE_TOOLTIP": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທີ່ໃສ່ເປັນເທັດ. ຄືນຄ່າເປັນເທັດຖ້າຄ່າທີ່ໃສ່ເປັນຈິງ.", - "LOGIC_BOOLEAN_TRUE": "ຈິງ", - "LOGIC_BOOLEAN_FALSE": "ເທັດ", - "LOGIC_BOOLEAN_TOOLTIP": "ຄືນຄ່າເປັນຈິງ ຫຼື ເທັດ.", - "LOGIC_NULL": "ບໍ່ກຳນົດ", - "LOGIC_NULL_TOOLTIP": "ຄືນຄ່າບໍ່ກຳນົດ.", - "LOGIC_TERNARY_CONDITION": "ທົດສອບ", - "LOGIC_TERNARY_IF_TRUE": "ຖ້າ ເປັນຈິງ", - "LOGIC_TERNARY_IF_FALSE": "ຖ້າ ເປັນເທັດ", - "LOGIC_TERNARY_TOOLTIP": "ກວດສອບເງື່ອນໄຂໃນ 'ທົດສອບ'. ຖ້າເງື່ອນໄຂເປັນຈິງ, ຄືນຄ່າ 'ຖ້າ ເປັນຈິງ'; ຖ້າເງື່ອນໄຂເປັນເທັດ, ໃຫ້ຄືນຄ່າ 'ຖ້າ ເປັນເທັດ'.", - "MATH_NUMBER_HELPURL": "https://lo.wikipedia.org/wiki/ຈຳນວນ", - "MATH_NUMBER_TOOLTIP": "ຈຳນວນໜຶ່ງ." -} diff --git a/lib/blockly/msg/json/lrc.json b/lib/blockly/msg/json/lrc.json deleted file mode 100644 index a3b07e2..0000000 --- a/lib/blockly/msg/json/lrc.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Mogoeilor", - "Lorestani" - ] - }, - "VARIABLES_DEFAULT_NAME": "قلٱم", - "TODAY": "اؽمرۊ", - "DUPLICATE_BLOCK": "کپی کردن", - "ADD_COMMENT": "نٱزٱرتو ناْ اْزاف بٱکؽت", - "REMOVE_COMMENT": "هٱزف نٱزٱر", - "DUPLICATE_COMMENT": "نٱزٱر تکراری", - "EXTERNAL_INPUTS": "دادٱیا ڤ دری", - "INLINE_INPUTS": "دادٱیا مؽنجا", - "DELETE_BLOCK": "پاکسا کردن برشت", - "DELETE_X_BLOCKS": "پاکسا کردن%1 د برشتؽا", - "COLLAPSE_BLOCK": "کوچک کردن برشت", - "COLLAPSE_ALL": "کوچک کردن برشتؽا", - "EXPAND_BLOCK": "گٱپ کردن برشت", - "EXPAND_ALL": "گٱپ کردن برشتؽا", - "DISABLE_BLOCK": "ناکشتگر کردن برشت", - "ENABLE_BLOCK": "کنشتگر کردن برشت", - "HELP": "هومياری", - "UNDO": "ٱنجوم نٱداٛئن", - "REDO": "د نۊ ٱنجوم داٛئن", - "CHANGE_VALUE_TITLE": "ٱرزشت آلشت کو:", - "RENAME_VARIABLE": "د نۊ نوم نؽاین آلشتگر...", - "RENAME_VARIABLE_TITLE": "د نو نوم نؽاین %1 د تموم آلشتگریا د:", - "NEW_VARIABLE": "آلشتگر تازٱ...", - "NEW_VARIABLE_TYPE_TITLE": "نوع آلشتگر تازٱ", - "NEW_VARIABLE_TITLE": "نوم آلشتگر تازٱ:", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "یاٛ رٱنڳ د رٱنڳدو اْنتخاو بٱکؽت", - "COLOUR_RANDOM_TITLE": "رٱنڳ بٱختٱکی", - "COLOUR_RANDOM_TOOLTIP": "یاٛ ٱنڳ بٱختٱکی اْنتخاو بٱکؽت", - "COLOUR_RGB_TITLE": "رٱنڳ ڤا", - "COLOUR_RGB_RED": "سۏز", - "COLOUR_RGB_GREEN": "سۉز", - "COLOUR_RGB_BLUE": "آوئی", - "COLOUR_BLEND_TITLE": "شؽڤسٱ", - "COLOUR_BLEND_COLOUR1": "رٱنڳ 1", - "COLOUR_BLEND_COLOUR2": "رٱنڳ 2", - "COLOUR_BLEND_RATIO": "نسڤٱت", - "COLOUR_BLEND_TOOLTIP": "هٱر کوم د رٱنڳؽا ناْ ڤا نسڤٱت داٛئٱ بٱ بٱشؽڤن(0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 تکرار کو چٱن بار", - "CONTROLS_REPEAT_INPUT_DO": "ٱنجوم باٛ", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تا تکرار کو", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تا تکرار کو", - "CONTROLS_FOR_TITLE": "شماردن وا %1 د %2 سی %3 ڤا %4", - "CONTROLS_FOREACH_TITLE": "سی هٱر قلٱم %1 د نومگٱ %2", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "هٱلقٱ ناْ خراو کو", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "هٱلقٱ شومل بیٱ ناْ خراو کو", - "CONTROLS_IF_MSG_IF": "ٱر", - "CONTROLS_IF_MSG_ELSEIF": "هنی ٱر", - "CONTROLS_IF_MSG_ELSE": "هنی", - "LOGIC_OPERATION_AND": "ۉ", - "LOGIC_OPERATION_OR": "یا", - "LOGIC_NEGATE_TITLE": "نٱ %1", - "LOGIC_BOOLEAN_TRUE": "راس ۉ دۏرس", - "LOGIC_BOOLEAN_FALSE": "غلٱت", - "LOGIC_BOOLEAN_TOOLTIP": "هٱم غلٱت ۉ هٱم دۏرس ڤرگٱردن", - "LOGIC_NULL": "خونسا", - "LOGIC_TERNARY_CONDITION": "آزماشت کردن", - "LOGIC_TERNARY_IF_TRUE": "ٱر دۏرس بی", - "LOGIC_TERNARY_IF_FALSE": "ٱر غلٱت بی", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "یاٛ شمارٱ.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "ڤاْ ٱندازٱ دۏ شمارٱ ڤرگٱردن.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "چارسوک ریشٱ", - "MATH_SINGLE_OP_ABSOLUTE": "تموم ۉ کمال", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_IS_EVEN": "همیشٱ هؽسش", - "MATH_IS_ODD": "تٱنڳؽا ٱ", - "MATH_IS_PRIME": "ڤٱ ٱڤلٱ", - "MATH_IS_WHOLE": "همٱشٱ", - "MATH_IS_POSITIVE": "موسبٱتٱ", - "MATH_IS_NEGATIVE": "مٱنفی ٱ", - "MATH_IS_DIVISIBLE_BY": "یٱ ڤا بٱئر بیٱ", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "آلشت بٱکؽت %1 وا %2", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_OPERATOR_ROUND": "گرد کردن", - "MATH_ROUND_OPERATOR_ROUNDUP": "ڤ رۉ گرد کردن", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ڤ هار گرد کردن", - "MATH_ONLIST_OPERATOR_SUM": "جٱم کردن نومگٱ", - "MATH_ONLIST_OPERATOR_MIN": "کٱمترونٱ د نومگٱ", - "MATH_ONLIST_OPERATOR_MAX": "بؽشترونٱ د نومگٱ", - "MATH_ONLIST_OPERATOR_AVERAGE": "مؽنجاگٱ نومگٱ", - "MATH_ONLIST_OPERATOR_MEDIAN": "مؽنجا نومگٱ", - "MATH_ONLIST_OPERATOR_MODE": "بؽشری د نومگٱ", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_JOIN_TITLE_CREATEWITH": "دۏرس کردن مٱتن ڤا", - "TEXT_CREATE_JOIN_TITLE_JOIN": "پاٛڤٱسن", - "TEXT_ISEMPTY_TITLE": "%1 هالٛیٱ", - "TEXT_INDEXOF_TITLE": "د مٱتن %1 %2 %3", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "د مٱتن", - "TEXT_GET_SUBSTRING_END_FROM_START": "سی ڤاج#", - "TEXT_GET_SUBSTRING_END_FROM_END": "سی ڤاج# تا آخر", - "TEXT_GET_SUBSTRING_END_LAST": "سی آخری ڤاج", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "سی هٱرف گٱپ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "سی ڤاج کوچک", - "LISTS_CREATE_EMPTY_TITLE": "یاٛ نومگٱ هالٛی دۏرس بٱکؽت", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "نومگٱ", - "LISTS_ISEMPTY_TITLE": "%1 هالٛیٱ", - "LISTS_INLIST": "د نومگٱ", - "LISTS_GET_INDEX_GET": "گرتن", - "LISTS_GET_INDEX_GET_REMOVE": "گرتن ۉ جا ڤ جا بیئن", - "LISTS_GET_INDEX_REMOVE": "ڤرداشتن", - "LISTS_GET_INDEX_FROM_END": "# تا آخر", - "LISTS_GET_INDEX_FIRST": "ٱڤلی", - "LISTS_GET_INDEX_LAST": "آخر", - "LISTS_GET_INDEX_RANDOM": "بٱختٱکی", - "LISTS_SET_INDEX_INSERT": "بٱنؽ د", - "LISTS_SET_INDEX_INPUT_TO": "چی", - "LISTS_GET_SUBLIST_END_FROM_START": "سی#", - "LISTS_GET_SUBLIST_END_LAST": "سی آخر", - "VARIABLES_SET": "میزوکاری %1 سی %2", - "PROCEDURES_DEFNORETURN_TITLE": "سی", - "PROCEDURES_DEFNORETURN_PROCEDURE": "یاٛ کار ٱنجوم باٛئؽت", - "PROCEDURES_BEFORE_PARAMS": "ڤا:", - "PROCEDURES_CALL_BEFORE_PARAMS": "ڤا:", - "PROCEDURES_DEFRETURN_RETURN": "ڤرگٱردنیئن", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_MUTATORCONTAINER_TITLE": "دادٱیا", - "PROCEDURES_MUTATORARG_TITLE": "نوم دادٱ:", - "PROCEDURES_CREATE_DO": "دۏرس کردن%1" -} diff --git a/lib/blockly/msg/json/lt.json b/lib/blockly/msg/json/lt.json deleted file mode 100644 index 649f516..0000000 --- a/lib/blockly/msg/json/lt.json +++ /dev/null @@ -1,323 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Eitvys200", - "Jurgis", - "Zygimantus", - "Nuodas" - ] - }, - "VARIABLES_DEFAULT_NAME": "elementas", - "TODAY": "Šiandien", - "DUPLICATE_BLOCK": "Kopijuoti", - "ADD_COMMENT": "Palikti komentarą", - "REMOVE_COMMENT": "Pašalinti komentarą", - "DUPLICATE_COMMENT": "Dubliuoti Komentarą", - "EXTERNAL_INPUTS": "Išdėstyti stulpeliu, kai daug parametrų", - "INLINE_INPUTS": "Išdėstyti vienoje eilutėje", - "DELETE_BLOCK": "Ištrinti bloką", - "DELETE_X_BLOCKS": "Ištrinti %1 blokus", - "DELETE_ALL_BLOCKS": "Ištrinti visus %1 blokus?", - "CLEAN_UP": "Išvalyti blokus", - "COLLAPSE_BLOCK": "Suskleisti bloką", - "COLLAPSE_ALL": "Suskleisti blokus", - "EXPAND_BLOCK": "Išskleisti bloką", - "EXPAND_ALL": "Išskleisti blokus", - "DISABLE_BLOCK": "Išjungti bloką", - "ENABLE_BLOCK": "Įjungti bloką", - "HELP": "Pagalba", - "UNDO": "Anuliuoti", - "REDO": "Atkurti", - "CHANGE_VALUE_TITLE": "Keisti reikšmę:", - "RENAME_VARIABLE": "Pervardyti kintamajį...", - "RENAME_VARIABLE_TITLE": "Pervadinti visus '%1' kintamuosius į:", - "NEW_VARIABLE": "Sukurti kintamąjį", - "NEW_NUMBER_VARIABLE": "Sukurti skaičiaus kintamąjį...", - "NEW_COLOUR_VARIABLE": "Sukurti spalvos kintamąjį...", - "NEW_VARIABLE_TYPE_TITLE": "Naujas kintamojo tipas:", - "NEW_VARIABLE_TITLE": "Naujo kintamojo pavadinimas:", - "VARIABLE_ALREADY_EXISTS": "Kintamasis, pavadinimu '%1', jau egzistuoja.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Kintamasis, pavadinimu '%1', jau egzistuoja kaip kitas tipas: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Ištrinti %1 '%2' panaudojimus?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Negalima ištrinti kintamojo '%1', nes jis yra dalis funkcijos '%2'", - "DELETE_VARIABLE": "Ištrinti „%1“ kintamąjį", - "COLOUR_PICKER_HELPURL": "https://lt.wikipedia.org/wiki/Spalva", - "COLOUR_PICKER_TOOLTIP": "Pasirinkti spalvą iš paletės.", - "COLOUR_RANDOM_TITLE": "atsitiktinė spalva", - "COLOUR_RANDOM_TOOLTIP": "Pasirinkti spalvą atsitiktinai.", - "COLOUR_RGB_TITLE": "spalva su", - "COLOUR_RGB_RED": "raudona", - "COLOUR_RGB_GREEN": "žalia", - "COLOUR_RGB_BLUE": "mėlyna", - "COLOUR_RGB_TOOLTIP": "Spalvą galima sudaryti iš raudonos, žalios ir mėlynos dedamųjų. Kiekvienos intensyvumas nuo 0 iki 100.", - "COLOUR_BLEND_TITLE": "sumaišyk", - "COLOUR_BLEND_COLOUR1": "1 spalva", - "COLOUR_BLEND_COLOUR2": "2 spalva", - "COLOUR_BLEND_RATIO": "santykis", - "COLOUR_BLEND_TOOLTIP": "Sumaišo dvi spalvas su pateiktu santykiu (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "pakartokite %1 kartus", - "CONTROLS_REPEAT_INPUT_DO": "daryti", - "CONTROLS_REPEAT_TOOLTIP": "Leidžia atlikti išvardintus veiksmus kelis kartus.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "kartok kol", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "kartok, kol pasieksi", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Kartoja veiksmus, kol sąlyga tenkinama.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Kartoja veiksmus, kol bus pasiekta nurodyta sąlyga.", - "CONTROLS_FOR_TOOLTIP": "Imama kintamoji '%1' reikšmė nuo pradinio skaičiaus iki pabaigos skaičiaus, skaičiuojant nustatytais intervalais ir atliekant nustatytus blokus.", - "CONTROLS_FOR_TITLE": "kartok, kai %1 kinta nuo %2 iki %3 po %4", - "CONTROLS_FOREACH_TITLE": "kartok su kiekvienu %1 iš sąrašo %2", - "CONTROLS_FOREACH_TOOLTIP": "Kartok veiksmus, kol kintamasis \"%1\" paeiliui gauna kiekvieną sąrašo reikšmę.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "nutraukti kartojimą", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "šį kartą praleisti likusius veiksmus ir tęsti kartojimą", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Nutraukia (artimiausią) vykstantį kartojimą.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Praleidžia žemiau išvardintus kartojimo veiksmus (ir tęsia darbą nuo kartojimo pradinio veiksmo).", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Atsargiai: šis blokas gali būt naudojamas tik kartojimo bloko viduje.", - "CONTROLS_IF_TOOLTIP_1": "Jeigu sąlyga tenkinama, tai atlik veiksmus.", - "CONTROLS_IF_TOOLTIP_2": "Jei sąlyga tenkinama, atlikti jai priklausančius veiksmus, o jei ne -- atlikti kitus nurodytus veiksmus.", - "CONTROLS_IF_TOOLTIP_3": "Jei pirma sąlyga tenkinama, atlikti jai priklausančius veiksmus, O jei ne, tikrinti antrą sąlygą -- ir jei ši tenkinama, atlikti jos veiksmus.", - "CONTROLS_IF_TOOLTIP_4": "Jei pirma sąlyga tenkinama, atlikti jai priklausančius veiksmus, O jei ne, tikrinti antrą sąlygą -- ir jei ši tenkinama, atlikti jos veiksmus. Kitais atvejais -- atlikti paskutinio bloko veiksmus.", - "CONTROLS_IF_MSG_IF": "jei", - "CONTROLS_IF_MSG_ELSEIF": "arba jei", - "CONTROLS_IF_MSG_ELSE": "kitu atveju", - "CONTROLS_IF_IF_TOOLTIP": "Galite pridėt/pašalinti/pertvarkyti sąlygų \"šakas\".", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Pridėti sąlygą „jei“ blokui.", - "CONTROLS_IF_ELSE_TOOLTIP": "Pridėti veiksmų vykdymo variantą/\"šaką\", kai netenkinama nė viena sąlyga.", - "IOS_OK": "Gerai", - "IOS_CANCEL": "Atšaukti", - "IOS_ERROR": "Klaida", - "IOS_PROCEDURES_INPUTS": "ĮVESTYS", - "IOS_PROCEDURES_ADD_INPUT": "+ Pridėti Įvestį", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ši funkcija turi pasikartojančias įvestis", - "IOS_VARIABLES_ADD_VARIABLE": "+Pridėti Kintamąjį", - "IOS_VARIABLES_ADD_BUTTON": "Pridėti", - "IOS_VARIABLES_RENAME_BUTTON": "Pervadinti", - "IOS_VARIABLES_DELETE_BUTTON": "Ištrinti", - "IOS_VARIABLES_VARIABLE_NAME": "Kintamojo pavadinimas", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Negalite naudoti tuščio kintamojo pavadinimo.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Tenkinama, jei abu reiškiniai lygūs.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Grįžti tiesa, jeigu abi įvestys ne lygios tarpusavyje.", - "LOGIC_COMPARE_TOOLTIP_LT": "Grįžti tiesa, jei pirma įvestis mažesnė nei antra įvestis.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Grįžti tiesa, jei pirma įvestis mažesnė arba lygi antrajai įvesčiai.", - "LOGIC_COMPARE_TOOLTIP_GT": "Grįžti tiesa, jei pirmoji įvestis didesnė nei antroji įvestis.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Grįžti tiesa, jei pirma įvestis didesnė arba lygi antrajai įvesčiai.", - "LOGIC_OPERATION_TOOLTIP_AND": "Bus teisinga, kai abi sąlygos bus tenkinamos.", - "LOGIC_OPERATION_AND": "ir", - "LOGIC_OPERATION_TOOLTIP_OR": "Grįžti tiesa, jei bent viena įvestis teisinga.", - "LOGIC_OPERATION_OR": "arba", - "LOGIC_NEGATE_TITLE": "ne %1", - "LOGIC_NEGATE_TOOLTIP": "Grįžti tiesa, jei įvestis klaidinga. Grįžti klaidinga, jei įvestis teisinga.", - "LOGIC_BOOLEAN_TRUE": "tiesa", - "LOGIC_BOOLEAN_FALSE": "klaidinga", - "LOGIC_BOOLEAN_TOOLTIP": "Reikšmė gali būti \"teisinga\"/\"Taip\" arba \"klaidinga\"/\"Ne\".", - "LOGIC_NULL": "nieko", - "LOGIC_NULL_TOOLTIP": "Reikšmė nebuvo nurodyta...", - "LOGIC_TERNARY_CONDITION": "sąlyga", - "LOGIC_TERNARY_IF_TRUE": "jei taip", - "LOGIC_TERNARY_IF_FALSE": "jei ne", - "LOGIC_TERNARY_TOOLTIP": "Jeigu sąlygą tenkinama, grąžina pirmą reikšmę, o jei ne - antrąją.", - "MATH_NUMBER_HELPURL": "https://lt.wikipedia.org/wiki/Skaičius", - "MATH_NUMBER_TOOLTIP": "Skaičius.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Grąžina dviejų skaičių sumą.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Grąžina dviejų skaičių skirtumą.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Grąžina dviejų skaičių sandaugą.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Grąžina dviejų skaičių dalmenį.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Grąžina pirmą skaičių pakeltą laipsniu pagal antrą skaičių.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "kvadratinė šaknis", - "MATH_SINGLE_TOOLTIP_ROOT": "Grįžti kvadratinę šaknį iš skaičiaus.", - "MATH_SINGLE_OP_ABSOLUTE": "modulis", - "MATH_SINGLE_TOOLTIP_ABS": "Skaičiaus modulis - reikšmė be ženklo (panaikina minusą).", - "MATH_SINGLE_TOOLTIP_NEG": "Grąžina skaičiui priešingą skaičių.", - "MATH_SINGLE_TOOLTIP_LN": "Grąžinti skaičiaus natūrinį logaritmą.", - "MATH_SINGLE_TOOLTIP_LOG10": "Grįžti 10 pagrindinių logaritmų iš skaičiaus.", - "MATH_SINGLE_TOOLTIP_EXP": "Grąžinti skaičių laipsniu e.", - "MATH_SINGLE_TOOLTIP_POW10": "Grąžinti skaičių laipsniu 10.", - "MATH_TRIG_HELPURL": "https://lt.wikipedia.org/wiki/Trigonometrinės_funkcijos", - "MATH_TRIG_TOOLTIP_SIN": "Grąžinti laipsnio sinusą (ne radiano).", - "MATH_TRIG_TOOLTIP_COS": "Grąžinti laipsnio kosinusą (ne radiano).", - "MATH_TRIG_TOOLTIP_TAN": "Grąžinti laipsnio tangentą (ne radiano).", - "MATH_TRIG_TOOLTIP_ASIN": "Grąžinti skaičiaus arksinusą.", - "MATH_TRIG_TOOLTIP_ACOS": "Grąžinti skaičiaus arkkosinusą.", - "MATH_TRIG_TOOLTIP_ATAN": "Grąžinti skaičiaus arktangentą.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Grįžti viena iš pagrindinių konstantų: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (begalybė).", - "MATH_IS_EVEN": "yra lyginis", - "MATH_IS_ODD": "yra nelyginis", - "MATH_IS_PRIME": "yra pirminis", - "MATH_IS_WHOLE": "yra sveikasis", - "MATH_IS_POSITIVE": "yra teigiamas", - "MATH_IS_NEGATIVE": "yra neigiamas", - "MATH_IS_DIVISIBLE_BY": "yra dalus iš", - "MATH_IS_TOOLTIP": "Patikrina skaičiaus savybę: (ne)lyginis/pirminis/sveikasis/teigiamas/neigiamas/dalus iš x.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "padidink %1 (emptypage) %2", - "MATH_CHANGE_TOOLTIP": "Prideda skaičių prie kintamojo '%1'. Kai skaičius neigiamas - gaunasi atimtis.", - "MATH_ROUND_HELPURL": "https://lt.wikipedia.org/wiki/Apvalinimas", - "MATH_ROUND_TOOLTIP": "Suapvalinti skaičių į žemesnę ar aukštesnę reikšmę.", - "MATH_ROUND_OPERATOR_ROUND": "apvalink", - "MATH_ROUND_OPERATOR_ROUNDUP": "apvalink aukštyn", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "apvalink žemyn", - "MATH_ONLIST_OPERATOR_SUM": "suma", - "MATH_ONLIST_TOOLTIP_SUM": "didžiausia reikšmė", - "MATH_ONLIST_OPERATOR_MIN": "mažiausia reikšmė sąraše", - "MATH_ONLIST_TOOLTIP_MIN": "Grįžti mažiausiu skaičiumi sąraše.", - "MATH_ONLIST_OPERATOR_MAX": "didžiausia reikšmė sąraše", - "MATH_ONLIST_TOOLTIP_MAX": "Grįžti didžiausiu skaičiumi sąraše.", - "MATH_ONLIST_OPERATOR_AVERAGE": "vidurkis", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Grįžti vidurkiu (aritmetinis vidurkis) iš skaitinių reikšmių sąraše.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana sąrašui", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Grąžinti sąrašo medianą.", - "MATH_ONLIST_OPERATOR_MODE": "statistinė moda sąrašui", - "MATH_ONLIST_TOOLTIP_MODE": "Grąžinti sąrašą dažniausių elementų sąraše.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standartinis nuokrypis sąraše", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Grįžti standartine pakraipa iš sąrašo.", - "MATH_ONLIST_OPERATOR_RANDOM": "atsitiktinis elementas iš sąrašo", - "MATH_ONLIST_TOOLTIP_RANDOM": "Grąžinti atsitiktinį elementą iš sąrašo.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "dalybos liekana %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Grįžti likučiu nuo dviejų skaičių dalybos.", - "MATH_CONSTRAIN_TITLE": "apribok %1 tarp %2 ir %3", - "MATH_CONSTRAIN_TOOLTIP": "Apriboti skaičių, kad būtų tarp nustatytų ribų (imtinai).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "atsitiktinis sveikas sk. nuo %1 iki %2", - "MATH_RANDOM_INT_TOOLTIP": "Grįžti atsitiktinį sveikąjį skaičių tarp dviejų nustatytų ribų, imtinai.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "atsitiktinė trupmena", - "MATH_RANDOM_FLOAT_TOOLTIP": "Atsitiktinė trupmena nuo 0 (imtinai) iki 1 (neimtinai).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Tekstas (arba žodis, ar raidė)", - "TEXT_JOIN_TITLE_CREATEWITH": "sukurti tekstą su", - "TEXT_JOIN_TOOLTIP": "Sukurti teksto fragmentą sujungiant bet kokį skaičių fragmentų.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "sujunk", - "TEXT_CREATE_JOIN_TOOLTIP": "Pridėti, pašalinti arba paskirstyti skyrius, kad pertvarkyti šį teksto bloką.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Pridėti teksto elementą.", - "TEXT_APPEND_TITLE": "prie %1 pridėk tekstą %2", - "TEXT_APPEND_TOOLTIP": "Pridėti tekstą prie kintamojo '%1'.", - "TEXT_LENGTH_TITLE": "teksto %1 ilgis", - "TEXT_LENGTH_TOOLTIP": "Suranda teksto simbolių kiekį (įskaitant ir tarpus)", - "TEXT_ISEMPTY_TITLE": "%1 yra tuščias", - "TEXT_ISEMPTY_TOOLTIP": "Grįžti tiesa, jei numatytas tekstas tuščias.", - "TEXT_INDEXOF_TOOLTIP": "Grąžina pirmą/paskutinę pirmo teksto reikšmę antrame tekste. Grąžina %1, jei tekstas nerastas.", - "TEXT_INDEXOF_TITLE": "tekste %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "rask,kur pirmą kartą paminėta", - "TEXT_INDEXOF_OPERATOR_LAST": "rask,kur paskutinį kartą paminėta", - "TEXT_CHARAT_FROM_START": "gauti raidę #", - "TEXT_CHARAT_FROM_END": "raidė nuo galo #", - "TEXT_CHARAT_FIRST": "gauti pirmą raidę", - "TEXT_CHARAT_LAST": "gauti paskutinę raidę", - "TEXT_CHARAT_RANDOM": "gauti atsitiktinę raidę", - "TEXT_CHARAT_TOOLTIP": "Grąžina raidę į tam tikrą poziciją.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Grąžina tam tikrą teksto dalį.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "tekste", - "TEXT_GET_SUBSTRING_START_FROM_START": "dalis nuo raidės #", - "TEXT_GET_SUBSTRING_START_FROM_END": "dalis nuo raidės #", - "TEXT_GET_SUBSTRING_START_FIRST": "dalis nuo pradžios", - "TEXT_GET_SUBSTRING_END_FROM_START": "iki raidės #", - "TEXT_GET_SUBSTRING_END_FROM_END": "iki raidės nuo galo #", - "TEXT_GET_SUBSTRING_END_LAST": "iki pabaigos", - "TEXT_CHANGECASE_TOOLTIP": "Kitu atvėju, grąžina teksto kopiją.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": " DIDŽIOSIOM RAIDĖM", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": " mažosiom raidėm", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": " Pavadinimo Raidėmis", - "TEXT_TRIM_TOOLTIP": "Grąžina teksto kopiją, pašalinus tarpus iš vieno ar abiejų kraštų.", - "TEXT_TRIM_OPERATOR_BOTH": "išvalyk tarpus šonuose", - "TEXT_TRIM_OPERATOR_LEFT": "išvalyk tarpus pradžioje", - "TEXT_TRIM_OPERATOR_RIGHT": "išvalyk tarpus pabaigoje", - "TEXT_PRINT_TITLE": "spausdinti %1", - "TEXT_PRINT_TOOLTIP": "Spausdinti nurodytą tekstą, skaičių ar kitą reikšmę.", - "TEXT_PROMPT_TYPE_TEXT": "paprašyk įvesti tekstą :", - "TEXT_PROMPT_TYPE_NUMBER": "paprašyk įvesti skaičių :", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Prašyti vartotoją įvesti skaičių.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Prašyti vartotoją įvesti tekstą.", - "TEXT_COUNT_MESSAGE0": "skaičius %1 iš %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Suskaičiuoti, kiek kartų šis tekstas kartojasi kitame tekste.", - "TEXT_REPLACE_MESSAGE0": "pakeisti %1 į %2 šiame %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Pašalinti visas teksto dalis kitame tekste.", - "TEXT_REVERSE_MESSAGE0": "atbulai %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REVERSE_TOOLTIP": "Apversti teksto simbolių tvarką.", - "LISTS_CREATE_EMPTY_TITLE": "tuščias sąrašas", - "LISTS_CREATE_EMPTY_TOOLTIP": "Grąžina sąrašą, ilgio 0, neturintį duomenų", - "LISTS_CREATE_WITH_TOOLTIP": "Sukurti sąrašą iš bet kokio skaičiaus elementų.", - "LISTS_CREATE_WITH_INPUT_WITH": "sukurti sąrašą su", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "sąrašas", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Pridėti, pašalinti arba paskirstyti skyrius, kad pertvarkyti šį teksto bloką.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Pridėti elementą į sąrašą.", - "LISTS_REPEAT_TITLE": "sukurk sąrašą, kuriame %1 bus %2 kartus", - "LISTS_LENGTH_TITLE": "ilgis %1", - "LISTS_LENGTH_TOOLTIP": "Grąžina sąrašo ilgį.", - "LISTS_ISEMPTY_TITLE": "%1 yra tuščias", - "LISTS_ISEMPTY_TOOLTIP": "Grąžina „true“, jeigu sąrašas tuščias.", - "LISTS_INLIST": "sąraše", - "LISTS_INDEX_OF_FIRST": "rask pirmą reikšmę", - "LISTS_INDEX_OF_LAST": "rask paskutinę reikšmę", - "LISTS_INDEX_OF_TOOLTIP": "Grąžina pirmos/paskutinės reikšmės eilės nr. sąraše. Grąžina %1, jei reikšmės neranda.", - "LISTS_GET_INDEX_GET": "paimk", - "LISTS_GET_INDEX_GET_REMOVE": "paimk ir ištrink", - "LISTS_GET_INDEX_REMOVE": "pašalinti", - "LISTS_GET_INDEX_FROM_END": "# nuo galo", - "LISTS_GET_INDEX_FIRST": "pirmas", - "LISTS_GET_INDEX_LAST": "paskutinis", - "LISTS_GET_INDEX_RANDOM": "atsitiktinis", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 yra pirmasis objektas.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 yra paskutinis objektas.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Gražina objektą į nurodyta poziciją sąraše.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Grąžina pirmąjį sąrašo elementą.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Grąžina paskutinį elementą iš sąrašo.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Grąžina atsitiktinį elementą iš sąrašo.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Pašalina objektą iš nurodytos vietos sąraše.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Pašalina pirmą objektą sąraše.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Pašalina paskutinį objektą sąraše.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Pašalina atsitiktinį objektą sąraše.", - "LISTS_SET_INDEX_SET": "priskirk elementui", - "LISTS_SET_INDEX_INSERT": "įterpk į vietą", - "LISTS_SET_INDEX_INPUT_TO": "kaip", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Įterpią objektą į nurodytą poziciją sąraše.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Įterpia objektą į sąrašo pradžią.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Įterpia objektą į atsitiktinę sąrašo vietą.", - "LISTS_GET_SUBLIST_START_FROM_START": "sąrašo dalis nuo #", - "LISTS_GET_SUBLIST_START_FROM_END": "sąrašo dalis nuo # nuo galo", - "LISTS_GET_SUBLIST_START_FIRST": "sąrašo dalis nuo pradžios", - "LISTS_GET_SUBLIST_END_FROM_START": "iki #", - "LISTS_GET_SUBLIST_END_FROM_END": "iki # nuo galo", - "LISTS_GET_SUBLIST_END_LAST": "iki galo", - "LISTS_GET_SUBLIST_TOOLTIP": "Sukuria nurodytos sąrašo dalies kopiją.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "rūšiuoti %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Rūšiuoti sąrašo kopiją.", - "LISTS_SORT_ORDER_ASCENDING": "didėjančia tvarka", - "LISTS_SORT_ORDER_DESCENDING": "mažėjančia tvarka", - "LISTS_SORT_TYPE_NUMERIC": "skaitmeninis", - "LISTS_SORT_TYPE_TEXT": "abėcėlės", - "LISTS_SORT_TYPE_IGNORECASE": "abecėlės, ignoruoti raidžių dydį", - "LISTS_SPLIT_WITH_DELIMITER": "su dalikliu", - "VARIABLES_GET_CREATE_SET": "Sukurk \"priskirk %1\"", - "VARIABLES_SET": "priskirk %1 = %2", - "VARIABLES_SET_CREATE_GET": "Sukurti 'kintamasis %1'", - "PROCEDURES_DEFNORETURN_TITLE": "komanda:", - "PROCEDURES_DEFNORETURN_PROCEDURE": "daryk kažką", - "PROCEDURES_BEFORE_PARAMS": "pagal:", - "PROCEDURES_CALL_BEFORE_PARAMS": "su:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Sukuria procedūrą - komandą, kuri nepateikia jokio rezultato (tik atlieka veiksmus).", - "PROCEDURES_DEFNORETURN_COMMENT": "Apibūdinkite šią funkciją...", - "PROCEDURES_DEFRETURN_RETURN": "duok", - "PROCEDURES_DEFRETURN_TOOLTIP": "Sukuria funkciją - komandą, kuri ne tik atlieka veiksmus bet ir pateikia (grąžina/duoda) rezultatą.", - "PROCEDURES_ALLOW_STATEMENTS": "leisti vidinius veiksmus", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Ši komanda turi du vienodus gaunamų duomenų pavadinimus.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Vykdyti sukurtą komandą \"%1\".", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Įvykdyti komandą \"%1\" ir naudoti jos suskaičiuotą (atiduotą) reikšmę.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "gaunami duomenys (parametrai)", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Tvarkyti komandos gaunamus duomenis (parametrus).", - "PROCEDURES_MUTATORARG_TITLE": "parametro pavadinimas:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Pridėti funkcijos parametrą (gaunamų duomenų pavadinimą).", - "PROCEDURES_CREATE_DO": "Sukurti \"%1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Jeigu pirma reikšmė yra teisinga (sąlyga tenkinama), grąžina antrą reikšmę.", - "PROCEDURES_IFRETURN_WARNING": "Perspėjimas: šis blokas gali būti naudojamas tik aprašant funkciją.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Kažką pasakykite..." -} diff --git a/lib/blockly/msg/json/lv.json b/lib/blockly/msg/json/lv.json deleted file mode 100644 index 6585930..0000000 --- a/lib/blockly/msg/json/lv.json +++ /dev/null @@ -1,320 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Elomage", - "Janis", - "Papuass", - "Silraks", - "RFenichel" - ] - }, - "VARIABLES_DEFAULT_NAME": "vienums", - "TODAY": "Šodiena", - "DUPLICATE_BLOCK": "Dublēt", - "ADD_COMMENT": "Pievienot komentāru", - "REMOVE_COMMENT": "Noņemt komentāru", - "EXTERNAL_INPUTS": "Ārējie ievaddati", - "INLINE_INPUTS": "Iekšējie ievaddati", - "DELETE_BLOCK": "Izmest bloku", - "DELETE_X_BLOCKS": "Izmest %1 blokus", - "DELETE_ALL_BLOCKS": "Izdzēst visus %1 blokus?", - "CLEAN_UP": "Sakopt blokus", - "COLLAPSE_BLOCK": "Sakļaut bloku", - "COLLAPSE_ALL": "Sakļaut blokus", - "EXPAND_BLOCK": "Izvērst bloku", - "EXPAND_ALL": "Izvērst blokus", - "DISABLE_BLOCK": "Atspējot bloku", - "ENABLE_BLOCK": "Iespējot bloku", - "HELP": "Palīdzība", - "UNDO": "Atsaukt", - "REDO": "Atcelt atsaukšanu", - "CHANGE_VALUE_TITLE": "Mainīt vērtību:", - "RENAME_VARIABLE": "Pārdēvēt mainīgo...", - "RENAME_VARIABLE_TITLE": "Pārdēvējiet visus '%1' mainīgos:", - "NEW_VARIABLE": "Izveidot mainīgo...", - "NEW_VARIABLE_TITLE": "Jaunā mainīgā vārds:", - "VARIABLE_ALREADY_EXISTS": "Mainīgais '%1' jau eksistē.", - "DELETE_VARIABLE_CONFIRMATION": "Mainīgais \"%2\" tiek izmantots %1 vietās. Dzēst?", - "DELETE_VARIABLE": "Izdzēst mainīgo \"%1\"", - "COLOUR_PICKER_HELPURL": "https://lv.wikipedia.org/wiki/Krāsa", - "COLOUR_PICKER_TOOLTIP": "Izvēlēties krāsu no paletes.", - "COLOUR_RANDOM_TITLE": "nejauša krāsa", - "COLOUR_RANDOM_TOOLTIP": "Izvēlēties krāsu pēc nejaušības principa.", - "COLOUR_RGB_TITLE": "veido krāsu no", - "COLOUR_RGB_RED": "sarkana", - "COLOUR_RGB_GREEN": "zaļa", - "COLOUR_RGB_BLUE": "zila", - "COLOUR_RGB_TOOLTIP": "Izveidot krāsu ar norādīto daudzumu sarkanā, zaļā un zilā toņu. Visas vērtības ir starp 0 un 100.", - "COLOUR_BLEND_TITLE": "sajaukt", - "COLOUR_BLEND_COLOUR1": "1. krāsa", - "COLOUR_BLEND_COLOUR2": "2. krāsa", - "COLOUR_BLEND_RATIO": "attiecība", - "COLOUR_BLEND_TOOLTIP": "Sajauc kopā divas krāsas ar doto attiecību (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://lv.wikipedia.org/wiki/Cikls", - "CONTROLS_REPEAT_TITLE": "atkārtot %1 reizes", - "CONTROLS_REPEAT_INPUT_DO": "izpildi", - "CONTROLS_REPEAT_TOOLTIP": "Izpildīt komandas vairākas reizes.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "atkārtot kamēr", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "atkārtot līdz", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Izpildīt komandas, kamēr vērtība ir patiesa.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Izpildīt komandas, kamēr vērtība ir nepatiesa.", - "CONTROLS_FOR_TOOLTIP": "Ļauj mainīgajam '%1' pieņemt vērtības no sākuma līdz beigu vērtībai, un izpildīt iekļautos blokus katrai no šīm pieņemtajām vērtībām.", - "CONTROLS_FOR_TITLE": "skaitīt %1 no %2 līdz %3 ar soli %4", - "CONTROLS_FOREACH_TITLE": "visiem %1 no saraksta %2", - "CONTROLS_FOREACH_TOOLTIP": "Katram objektam no saraksta piešķirt mainīgajam '%1' šo objektu un izpildīt komandas.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "iet ārā no cikla", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "turpināt ar cikla nākamo iterāciju", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Iet ārā no iekļaujošā cikla", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Nepildīt atlikušo cikla daļu bet sākt nākamo iterāciju.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Brīdinājums: šo bloku drīkst izmantot tikai cikla iekšienē.", - "CONTROLS_IF_TOOLTIP_1": "Ja vērtība ir patiesa, tad izpildīt komandas.", - "CONTROLS_IF_TOOLTIP_2": "Ja vērtība ir patiesa, tad izpildīt pirmo bloku ar komandām. Citādi izpildīt otro bloku ar komandām.", - "CONTROLS_IF_TOOLTIP_3": "Ja pirmā vērtība ir patiesa, tad izpildīt pirmo bloku ar komandām. Citādi, ja otrā vērtība ir patiesa, izpildīt otro bloku ar komandām.", - "CONTROLS_IF_TOOLTIP_4": "Ja pirmā vērtība ir patiesa, tad izpildīt pirmo bloku ar komandām. Citādi, ja otrā vērtība ir patiesa, izpildīt otro bloku ar komandām. Ja neviena no vertībām nav patiesa, tad izpildīt pēdējo bloku ar komandām.", - "CONTROLS_IF_MSG_IF": "ja", - "CONTROLS_IF_MSG_ELSEIF": "citādi, ja", - "CONTROLS_IF_MSG_ELSE": "citādi", - "CONTROLS_IF_IF_TOOLTIP": "Pievienot, noņemt vai mainīt sekciju secību šim \"ja\" blokam.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Pievienot nosacījumu \"ja\" blokam.", - "CONTROLS_IF_ELSE_TOOLTIP": "Pievienot gala nosacījumu \"ja\" blokam.", - "IOS_OK": "Labi", - "IOS_CANCEL": "Atcelt", - "IOS_ERROR": "Kļūda", - "IOS_VARIABLES_ADD_VARIABLE": "+ Pievienot mainīgo", - "IOS_VARIABLES_ADD_BUTTON": "Pievienot", - "IOS_VARIABLES_RENAME_BUTTON": "Pārsaukt", - "IOS_VARIABLES_DELETE_BUTTON": "Dzēst", - "IOS_VARIABLES_VARIABLE_NAME": "Mainīgā nosaukums", - "LOGIC_COMPARE_HELPURL": "https://lv.wikipedia.org/wiki/Nevien%C4%81d%C4%ABba", - "LOGIC_COMPARE_TOOLTIP_EQ": "Patiess, ja abas puses ir vienādas.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Patiess, ja abas puses nav vienādas.", - "LOGIC_COMPARE_TOOLTIP_LT": "Patiess, ja kreisā puse ir mazāka par labo pusi.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Patiess, ja kreisā puse ir mazāka vai vienāda ar labo pusi.", - "LOGIC_COMPARE_TOOLTIP_GT": "Patiess, ja kreisā puse ir lielāka par labo pusi.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Patiess, ja kreisā puse ir lielāka vai vienāda ar labo pusi.", - "LOGIC_OPERATION_TOOLTIP_AND": "Patiess, ja abas puses ir patiesas.", - "LOGIC_OPERATION_AND": "un", - "LOGIC_OPERATION_TOOLTIP_OR": "Patiess, ja vismaz viena puse ir patiesa.", - "LOGIC_OPERATION_OR": "vai", - "LOGIC_NEGATE_TITLE": "ne %1", - "LOGIC_NEGATE_TOOLTIP": "Patiess, ja arguments ir aplams.", - "LOGIC_BOOLEAN_TRUE": "patiess", - "LOGIC_BOOLEAN_FALSE": "aplams", - "LOGIC_BOOLEAN_TOOLTIP": "Atgriež rezultātu \"patiess\" vai \"aplams\".", - "LOGIC_NULL": "nekas", - "LOGIC_NULL_TOOLTIP": "Atgriež neko.", - "LOGIC_TERNARY_CONDITION": "nosacījums", - "LOGIC_TERNARY_IF_TRUE": "ja patiess", - "LOGIC_TERNARY_IF_FALSE": "ja aplams", - "LOGIC_TERNARY_TOOLTIP": "Pārbaudīt nosacījumu. Ja 'nosacījums' ir patiess, atgriež vērtību 'ja patiess', pretējā gadījumā vērtību 'ja aplams'.", - "MATH_NUMBER_HELPURL": "https://lv.wikipedia.org/wiki/Skaitlis", - "MATH_NUMBER_TOOLTIP": "Skaitlis.", - "MATH_ARITHMETIC_HELPURL": "https://lv.wikipedia.org/wiki/Aritm%C4%93tika", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Atgriež divu skaitļu summu.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Atgriež divu skaitļu starpību.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Atgriež divu skaitļu reizinājumu.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Atgriež divu skaitļu dalījumu.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Atgriež pirmo skaitli kāpinātu pakāpē otrais skaitlis.", - "MATH_SINGLE_HELPURL": "https://lv.wikipedia.org/wiki/Kvadr%C4%81tsakne", - "MATH_SINGLE_OP_ROOT": "kvadrātsakne", - "MATH_SINGLE_TOOLTIP_ROOT": "Atgriež skaitļa kvadrātsakni.", - "MATH_SINGLE_OP_ABSOLUTE": "absolūtā vērtība", - "MATH_SINGLE_TOOLTIP_ABS": "Atgriež skaitļa absolūto vērtību.", - "MATH_SINGLE_TOOLTIP_NEG": "Atgriež pretējo skaitli.", - "MATH_SINGLE_TOOLTIP_LN": "Atgriež skaitļa naturālo logaritmu.", - "MATH_SINGLE_TOOLTIP_LOG10": "Atgriež skaitļa logaritmu pie bāzes 10.", - "MATH_SINGLE_TOOLTIP_EXP": "Atgriež e pakāpē dotais skaitlis.", - "MATH_SINGLE_TOOLTIP_POW10": "Atgriež 10 pakāpē dotais skaitlis.", - "MATH_TRIG_HELPURL": "https://lv.wikipedia.org/wiki/Trigonometrisk%C4%81s_funkcijas", - "MATH_TRIG_TOOLTIP_SIN": "Sinuss no grādiem (nevis radiāniem).", - "MATH_TRIG_TOOLTIP_COS": "Kosinuss no grādiem (nevis radiāniem).", - "MATH_TRIG_TOOLTIP_TAN": "Tangenss no grādiem (nevis radiāniem).", - "MATH_TRIG_TOOLTIP_ASIN": "Arksinuss (grādos).", - "MATH_TRIG_TOOLTIP_ACOS": "Arkkosinuss (grādos).", - "MATH_TRIG_TOOLTIP_ATAN": "Arktangenss (grādos).", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Atgriež kādu no matemātikas konstantēm: π (3.141…), e (2.718…), φ (1.618…), √(2) (1.414…), √(½) (0.707…), ∞ (bezgalība).", - "MATH_IS_EVEN": "ir pāra", - "MATH_IS_ODD": "ir nepāra", - "MATH_IS_PRIME": "ir pirmskaitlis", - "MATH_IS_WHOLE": "ir vesels", - "MATH_IS_POSITIVE": "ir pozitīvs", - "MATH_IS_NEGATIVE": "ir negatīvs", - "MATH_IS_DIVISIBLE_BY": "dalās bez atlikuma ar", - "MATH_IS_TOOLTIP": "Pārbauda, vai skaitlis ir pāra, nepāra, vesels, pozitīvs, negatīvs vai dalās ar noteiktu skaitli. Atgriež \"patiess\" vai \"aplams\".", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "izmainīt %1 par %2", - "MATH_CHANGE_TOOLTIP": "Pieskaitīt doto skaitli mainīgajam '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Noapaļot skaitli uz augšu vai uz leju.", - "MATH_ROUND_OPERATOR_ROUND": "noapaļot", - "MATH_ROUND_OPERATOR_ROUNDUP": "apaļot uz augšu", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "apaļot uz leju", - "MATH_ONLIST_OPERATOR_SUM": "summa", - "MATH_ONLIST_TOOLTIP_SUM": "Saskaitīt visus skaitļus no dotā saraksta.", - "MATH_ONLIST_OPERATOR_MIN": "mazākais", - "MATH_ONLIST_TOOLTIP_MIN": "Atgriež mazāko vērtību no saraksta.", - "MATH_ONLIST_OPERATOR_MAX": "lielākais", - "MATH_ONLIST_TOOLTIP_MAX": "Atgriež lielāko vērtību no saraksta.", - "MATH_ONLIST_OPERATOR_AVERAGE": "vidējais", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Atgriež dotā saraksta vidējo aritmētisko vērtību.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediāna", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Atgriež dotā saraksta mediānas vērtību.", - "MATH_ONLIST_OPERATOR_MODE": "moda", - "MATH_ONLIST_TOOLTIP_MODE": "Atgriež dotā saraksta biežāk sastopamās vērtības (modas).", - "MATH_ONLIST_OPERATOR_STD_DEV": "standartnovirze", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Atgriež dotā saraksta standartnovirzi.", - "MATH_ONLIST_OPERATOR_RANDOM": "nejaušs", - "MATH_ONLIST_TOOLTIP_RANDOM": "Atgriež nejauši izvēlētu vērtību no dotā saraksta.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "atlikums no %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Atlikums no divu skaitļu dalījuma.", - "MATH_CONSTRAIN_TITLE": "ierobežot %1 no %2 līdz %3", - "MATH_CONSTRAIN_TOOLTIP": "Ierobežo skaitli no noteiktajās robežās (ieskaitot galapunktus).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "nejaušs vesels skaitlis no %1 līdz %2", - "MATH_RANDOM_INT_TOOLTIP": "Atgriež nejaušu veselu skaitli dotajās robežās (iekļaujot galapunktus)", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "nejaušs skaitlis [0..1)", - "MATH_RANDOM_FLOAT_TOOLTIP": "Atgriež nejaušu reālo skaitli robežās no 0 (iekļaujot) līdz 1 (neiekļaujot).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Burts, vārds vai jebkāda teksta rinda.", - "TEXT_JOIN_TITLE_CREATEWITH": "veidot tekstu no", - "TEXT_JOIN_TOOLTIP": "Izveidot tekstu savienojot dotos argumentus.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "savienot", - "TEXT_CREATE_JOIN_TOOLTIP": "Pievienot, noņemt vai mainīt sekciju secību šim \"teksta\" blokam.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Pievienot tekstam objektu.", - "TEXT_APPEND_TITLE": "tekstam %1 pievienot tekstu %2", - "TEXT_APPEND_TOOLTIP": "Pievienot tekstu mainīgajam '%1'.", - "TEXT_LENGTH_TITLE": "garums tekstam %1", - "TEXT_LENGTH_TOOLTIP": "Atgriež burtu skaitu (ieskaitot atstarpes) dotajā tekstā.", - "TEXT_ISEMPTY_TITLE": "%1 ir tukšs", - "TEXT_ISEMPTY_TOOLTIP": "Patiess, ja teksts ir tukšs.", - "TEXT_INDEXOF_TOOLTIP": "Meklē pirmā teksta rindu otrajā tekstā. Atgriež pozīciju otrajā tekstā, kurā sākas pirmais teksts. Atgriež %1 ja pirmā teksta rinda nav atrasta.", - "TEXT_INDEXOF_TITLE": "tekstā %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "meklēt pirmo vietu, kur sākas teksts", - "TEXT_INDEXOF_OPERATOR_LAST": "meklēt pēdējo vietu, kur sākas teksts", - "TEXT_CHARAT_FROM_START": "paņemt burtu #", - "TEXT_CHARAT_FROM_END": "paņemt no beigām burtu #", - "TEXT_CHARAT_FIRST": "paņemt pirmo burtu", - "TEXT_CHARAT_LAST": "paņemt pēdējo burtu", - "TEXT_CHARAT_RANDOM": "paņemt nejaušu burtu", - "TEXT_CHARAT_TOOLTIP": "Atgriež burtu dotajā pozīcijā.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Atgriež norādīto teksta daļu.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "no teksta", - "TEXT_GET_SUBSTRING_START_FROM_START": "paņemt apakšvirkni sākot no burta nr", - "TEXT_GET_SUBSTRING_START_FROM_END": "paņemt apakšvirkni no beigām sākot ar burta nr", - "TEXT_GET_SUBSTRING_START_FIRST": "paņemt apakšvirkni no sākuma", - "TEXT_GET_SUBSTRING_END_FROM_START": "līdz burtam nr", - "TEXT_GET_SUBSTRING_END_FROM_END": "līdz burtam nr (no beigām)", - "TEXT_GET_SUBSTRING_END_LAST": "līdz pēdējam burtam", - "TEXT_CHANGECASE_TOOLTIP": "Atgriež teksta kopiju ar mainītiem lielajiem/mazajiem burtiem.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "kā LIELIE BURTI", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "kā mazie burti", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "kā Nosaukuma Burti", - "TEXT_TRIM_TOOLTIP": "Atgriež teksta kopiju ar noņemtām atstarpēm vienā vai otrā galā.", - "TEXT_TRIM_OPERATOR_BOTH": "Dzēst atstarpes no abām pusēm", - "TEXT_TRIM_OPERATOR_LEFT": "Dzēst atstarpes no sākuma", - "TEXT_TRIM_OPERATOR_RIGHT": "Dzēst atstarpes no beigām", - "TEXT_PRINT_TITLE": "parādīt %1", - "TEXT_PRINT_TOOLTIP": "Parādīt norādīto tekstu vai skaitli.", - "TEXT_PROMPT_TYPE_TEXT": "palūgt ievadīt tekstu ar ziņu", - "TEXT_PROMPT_TYPE_NUMBER": "palūgt ievadīt skaitli ar ziņu", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Palūgt lietotāju ievadīt skaitli.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Palūgt lietotāju ievadīt tekstu.", - "LISTS_CREATE_EMPTY_TITLE": "izveidot tukšu sarakstu", - "LISTS_CREATE_EMPTY_TOOLTIP": "Izveidot sarakstu bez elementiem tajā.", - "LISTS_CREATE_WITH_TOOLTIP": "Izveidot sarakstu no jebkura skaita vienību.", - "LISTS_CREATE_WITH_INPUT_WITH": "izveidot sarakstu no", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "saraksts", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Pievienot, noņemt vai mainīt sekciju secību šim \"saraksta\" blokam.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Pievienot objektu sarakstam.", - "LISTS_REPEAT_TOOLTIP": "Izveido sarakstu, kas sastāv no dotās vērtības noteiktu reižu skaita.", - "LISTS_REPEAT_TITLE": "saraksts no %1 atkārtots %2 reizes", - "LISTS_LENGTH_TITLE": "%1 garums", - "LISTS_LENGTH_TOOLTIP": "Atgriež elementu skaitu srakstā.", - "LISTS_ISEMPTY_TITLE": "%1 ir tukšs", - "LISTS_ISEMPTY_TOOLTIP": "Patiess, ja saraksts ir tukšs.", - "LISTS_INLIST": "sarakstā", - "LISTS_INDEX_OF_FIRST": "atrast pirmo elementu, kas vienāds ar", - "LISTS_INDEX_OF_LAST": "atrast pēdējo elementu, kas vienāds ar", - "LISTS_INDEX_OF_TOOLTIP": "Atgriež pozīciju sarakstā, kurā atrodas dotais objekts. Atgriež %1 ja objekts neatrodas sarakstā.", - "LISTS_GET_INDEX_GET": "paņemt", - "LISTS_GET_INDEX_GET_REMOVE": "paņemt uz dzēst", - "LISTS_GET_INDEX_REMOVE": "dzēst", - "LISTS_GET_INDEX_FROM_END": "no beigām numur", - "LISTS_GET_INDEX_FIRST": "pirmo", - "LISTS_GET_INDEX_LAST": "pēdējo", - "LISTS_GET_INDEX_RANDOM": "nejauši izvēlētu", - "LISTS_INDEX_FROM_START_TOOLTIP": "Saraksta elementu numerācija sākas no %1", - "LISTS_INDEX_FROM_END_TOOLTIP": "Saraksta elementu numerācija no beigām sākas no %1", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Atgriež norādīto elementu no saraksta.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Atgriež pirmo saraksta elementu.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Atgriež pēdējo saraksta elementu.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Atgriež nejauši izvēlētu saraksta elementu", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Atgriež un izdzēš no saraksta norādīto elementu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Atgriež un izdzēš saraksta pirmo elementu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Atgriež un izdzēš saraksta pēdējo elementu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Atgriež un izdzēš no saraksta nejauši izvēlētu elementu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Izdēš norādīto elementu no saraksta.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Izdēš pirmo saraksta elementu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Izdēš pēdējo saraksta elementu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Izdzēš no saraksta nejauši izvēlētu elementu.", - "LISTS_SET_INDEX_SET": "aizvieto", - "LISTS_SET_INDEX_INSERT": "ievieto", - "LISTS_SET_INDEX_INPUT_TO": "kā", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Aizvieto sarakstā elementu norādītajā pozīcijā.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Aizvieto elementu saraksta sākumā.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Aizvieto elementu saraksta beigās.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Aizvieto sarakstā elementu nejauši izvēlētā pozīcijā.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ievieto sarakstā elementu norādītajā pozīcijā.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ievieto elementu saraksta sākumā.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Pievieno elementu saraksta beigās.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Ievieto sarakstā jaunu elementu nejauši izvēlētā pozīcijā.", - "LISTS_GET_SUBLIST_START_FROM_START": "paņemt apakšsarakstu no pozīcijas", - "LISTS_GET_SUBLIST_START_FROM_END": "paņemt apakšsarakstu no beigām no pozīcijas", - "LISTS_GET_SUBLIST_START_FIRST": "paņemt apakšsarakstu no sākuma", - "LISTS_GET_SUBLIST_END_FROM_START": "līdz pozīcijai", - "LISTS_GET_SUBLIST_END_FROM_END": "līdz pozīcijai no beigām", - "LISTS_GET_SUBLIST_END_LAST": "līdz beigām", - "LISTS_GET_SUBLIST_TOOLTIP": "Nokopēt daļu no dotā saraksta.", - "LISTS_SORT_TITLE": "Sakārtot sarakstu no %3 elementiem %2 secībā %1", - "LISTS_SORT_TOOLTIP": "Saraksta sakārtota kopija.", - "LISTS_SORT_ORDER_ASCENDING": "augošā", - "LISTS_SORT_ORDER_DESCENDING": "dilstošā", - "LISTS_SORT_TYPE_NUMERIC": "skaitliski", - "LISTS_SORT_TYPE_TEXT": "pēc alfabēta", - "LISTS_SORT_TYPE_IGNORECASE": "pēc alfabēta, ignorēt mazos/lielos burtus", - "LISTS_SPLIT_LIST_FROM_TEXT": "vārdu saraksts no teksta", - "LISTS_SPLIT_TEXT_FROM_LIST": "izveidot tekstu no saraksta", - "LISTS_SPLIT_WITH_DELIMITER": "ar atdalītāju", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Sadalīt tekstu vārdos izmantojot atdalītāju.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Apvienot tekstu izmantojot atdalītāju.", - "VARIABLES_GET_TOOLTIP": "Atgriež mainīgā vērtību.", - "VARIABLES_GET_CREATE_SET": "Izveidot piešķiršanu mainīgajam %1", - "VARIABLES_SET": "piešķirt mainīgajam %1 vērtību %2", - "VARIABLES_SET_TOOLTIP": "Piešķirt mainīgajam vērtību.", - "VARIABLES_SET_CREATE_GET": "Izveidot 'ņem %1'", - "PROCEDURES_DEFNORETURN_TITLE": "funkcija", - "PROCEDURES_DEFNORETURN_PROCEDURE": "darīt kaut ko", - "PROCEDURES_BEFORE_PARAMS": "ar:", - "PROCEDURES_CALL_BEFORE_PARAMS": "ar:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Izveido funkciju, kas neatgriež rezultātu.", - "PROCEDURES_DEFNORETURN_COMMENT": "Funkcijas apraksts...", - "PROCEDURES_DEFRETURN_RETURN": "atgriezt", - "PROCEDURES_DEFRETURN_TOOLTIP": "Izveido funkciju, kas atgriež rezultātu.", - "PROCEDURES_ALLOW_STATEMENTS": "atļaut apakškomandas", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Brīdinājums: funkcijai ir vienādi argumenti.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Izpildīt iepriekš definētu funkcju '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "Izpildīt iepriekš definētu funkcju '%1' un izmantot tās rezultātu.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "argumenti", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Pievienot, pārkārtot vai dzēst funkcijas argumentus.", - "PROCEDURES_MUTATORARG_TITLE": "arguments:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Pievienot funkcijai argumentu.", - "PROCEDURES_HIGHLIGHT_DEF": "Izcelt funkcijas definīciju", - "PROCEDURES_CREATE_DO": "Izveidot '%1' izsaukumu", - "PROCEDURES_IFRETURN_TOOLTIP": "Ja pirmā vērtība ir \"patiesa\", tad atgriezt otro vērtību.", - "PROCEDURES_IFRETURN_WARNING": "Brīdinājums: Šo bloku var izmantot tikai funkcijas definīcijā." -} diff --git a/lib/blockly/msg/json/mk.json b/lib/blockly/msg/json/mk.json deleted file mode 100644 index a954feb..0000000 --- a/lib/blockly/msg/json/mk.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Bjankuloski06", - "Vlad5250" - ] - }, - "VARIABLES_DEFAULT_NAME": "елемент", - "UNNAMED_KEY": "без име", - "TODAY": "Денес", - "DUPLICATE_BLOCK": "Ископирај", - "ADD_COMMENT": "Додај коментар:", - "REMOVE_COMMENT": "Отстрани коментар", - "DUPLICATE_COMMENT": "Дуплирај коментар", - "EXTERNAL_INPUTS": "Надворешен внос", - "INLINE_INPUTS": "Внатрешен внос", - "DELETE_BLOCK": "Избриши блок", - "DELETE_X_BLOCKS": "Избриши %1 блока", - "DELETE_ALL_BLOCKS": "Да ги избришам сите %1 блокчиња?", - "CLEAN_UP": "Исчисти блокови", - "COLLAPSE_BLOCK": "Собери блок", - "COLLAPSE_ALL": "Собери блокови", - "EXPAND_BLOCK": "Рашири го блокови", - "EXPAND_ALL": "Рашири блокови", - "DISABLE_BLOCK": "Исклучи блок", - "ENABLE_BLOCK": "Вклучи блок", - "HELP": "Помош", - "UNDO": "Откажи", - "REDO": "Повтори", - "CHANGE_VALUE_TITLE": "Смена на вредност:", - "RENAME_VARIABLE": "Преименувај променлива...", - "RENAME_VARIABLE_TITLE": "Преименувај ги сите променливи „%1“ во:", - "NEW_VARIABLE": "Создај променлива...", - "NEW_VARIABLE_TYPE_TITLE": "Тип на новата променлива:", - "NEW_VARIABLE_TITLE": "Назив на новата променлива:", - "VARIABLE_ALREADY_EXISTS": "Променлива со име '%1' веќе постои.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Променлива со име '%1' веќе постои за друг тип: '%2'.", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Променливата '%1' не може се избрише бидејќи е дел од определението на функцијата '%2'", - "DELETE_VARIABLE": "Избриши ја променливата \"%1\"", - "COLOUR_PICKER_HELPURL": "https://mk.wikipedia.org/wiki/Боја", - "COLOUR_PICKER_TOOLTIP": "Изберете боја од палетата.", - "COLOUR_RANDOM_TITLE": "случајна боја", - "COLOUR_RANDOM_TOOLTIP": "Избери боја на тепка.", - "COLOUR_RGB_TITLE": "боја со", - "COLOUR_RGB_RED": "црвена", - "COLOUR_RGB_GREEN": "зелена", - "COLOUR_RGB_BLUE": "сина", - "COLOUR_RGB_TOOLTIP": "Создајте боја со укажаните износи на црвена, зелена и сина. Сите вредности мора да бидат помеѓу 0 и 100.", - "COLOUR_BLEND_TITLE": "смешај", - "COLOUR_BLEND_COLOUR1": "боја 1", - "COLOUR_BLEND_COLOUR2": "боја 2", - "COLOUR_BLEND_RATIO": "сооднос", - "COLOUR_BLEND_TOOLTIP": "Меша две бои во даден сооднос (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://mk.wikipedia.org/wiki/For-јамка", - "CONTROLS_REPEAT_TITLE": "повтори %1 пати", - "CONTROLS_REPEAT_INPUT_DO": "исполни", - "CONTROLS_REPEAT_TOOLTIP": "Исполнува наредби неколку пати.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "повторувај додека", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "повторувај сè до", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Додека вредноста е вистинита, исполнува наредби.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Додека вредноста е невистинита, исполнува наредби.", - "CONTROLS_FOR_TOOLTIP": "Променливата „%1“ да ги земе вредностите од почетниот до завршниот број, броејќи според укажаниот интервал и ги исполнува укажаните блокови.", - "CONTROLS_FOR_TITLE": "број со %1 од %2 до %3 со %4", - "CONTROLS_FOREACH_TITLE": "за секој елемент %1 на списокот %2", - "CONTROLS_FOREACH_TOOLTIP": "Му ја задава променливата „%1“ на секој елемент на списокот, а потоа исполнува наредби.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "излези од јамката", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "продолжи со следното повторување на јамката", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Излези од содржечката јамка.", - "CONTROLS_IF_MSG_IF": "ако", - "CONTROLS_IF_MSG_ELSEIF": "инаку ако", - "CONTROLS_IF_MSG_ELSE": "инаку", - "CONTROLS_IF_IF_TOOLTIP": "Додава, отстранува или прередува делови за прераспоредување на овој блок „ако“.", - "IOS_OK": "ОК", - "IOS_CANCEL": "Откажи", - "IOS_ERROR": "Грешка", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Дозволи тврдења", - "IOS_VARIABLES_ADD_VARIABLE": "+ Додај променлива", - "IOS_VARIABLES_ADD_BUTTON": "Додај", - "IOS_VARIABLES_RENAME_BUTTON": "Преименувај", - "IOS_VARIABLES_DELETE_BUTTON": "Избриши", - "IOS_VARIABLES_VARIABLE_NAME": "Име на променливата", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Не можете да искористите празно име за променлива.", - "LOGIC_COMPARE_HELPURL": "https://mk.wikipedia.org/wiki/Неравенство", - "LOGIC_COMPARE_TOOLTIP_EQ": "Дава вистина ако обата вноса се еднакви.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Дава вистина ако обата вноса не се еднакви.", - "LOGIC_COMPARE_TOOLTIP_LT": "Дава вистина ако првиот внос е помал од вториот.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Дава вистина ако првиот внос е помал или еднаков на вториот.", - "LOGIC_COMPARE_TOOLTIP_GT": "Дава вистина ако првиот внос е поголем од вториот.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Дава вистина ако првиот внос е поголем или еднаков на вториот.", - "LOGIC_OPERATION_TOOLTIP_AND": "Дава вистина ако обата вноса се вистинити.", - "LOGIC_OPERATION_AND": "и", - "LOGIC_OPERATION_TOOLTIP_OR": "Дава вистина ако барем еден од вносовите е вистинит.", - "LOGIC_OPERATION_OR": "или", - "LOGIC_NEGATE_TITLE": "не %1", - "LOGIC_NEGATE_TOOLTIP": "Дава вистина ако вносот е невистинит. Дава невистина ако вносот е вистинит.", - "LOGIC_BOOLEAN_TRUE": "вистина", - "LOGIC_BOOLEAN_FALSE": "невистина", - "LOGIC_BOOLEAN_TOOLTIP": "Дава или вистина или невистина.", - "LOGIC_NULL": "ништо", - "LOGIC_NULL_TOOLTIP": "Дава ништо.", - "LOGIC_TERNARY_CONDITION": "испробај", - "LOGIC_TERNARY_IF_TRUE": "ако е вистинито", - "LOGIC_TERNARY_IF_FALSE": "ако е невистинито", - "MATH_NUMBER_HELPURL": "https://mk.wikipedia.org/wiki/Број", - "MATH_NUMBER_TOOLTIP": "Број.", - "MATH_ARITHMETIC_HELPURL": "https://mk.wikipedia.org/wiki/Аритметика", - "MATH_SINGLE_OP_ROOT": "корен квадратен", - "MATH_SINGLE_TOOLTIP_ROOT": "Дава корен квадратен од број.", - "MATH_SINGLE_OP_ABSOLUTE": "апсолутна", - "MATH_SINGLE_TOOLTIP_ABS": "Ја дава апсолутната вредност на број.", - "MATH_TRIG_HELPURL": "https://mk.wikipediа.org/wiki/Тригонометриски_функции", - "MATH_CONSTANT_HELPURL": "https://mk.wikipedia.org/wiki/Математичка_константа", - "MATH_CONSTANT_TOOLTIP": "Дава една од вообичаените константи: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), или ∞ (бесконечност).", - "MATH_IS_EVEN": "е парен", - "MATH_IS_ODD": "е непарен", - "MATH_IS_PRIME": "е прост", - "MATH_IS_WHOLE": "е цел", - "MATH_IS_POSITIVE": "е позитивен", - "MATH_IS_NEGATIVE": "е негативен", - "MATH_IS_DIVISIBLE_BY": "е делив со", - "MATH_IS_TOOLTIP": "Проверува дали бројот е парен, непарен, прост, цел, позитивен, негативен или делив со некој број. Дава вистина или невистина.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter?uselang=mk", - "MATH_CHANGE_TITLE": "повиши %1 за %2", - "MATH_CHANGE_TOOLTIP": "Ѝ додава број на променливата „%1“.", - "MATH_ROUND_HELPURL": "https://mk.wikipedia.org/wiki/Заокружување", - "MATH_ROUND_TOOLTIP": "Го заокружува бројот на поголем или помал.", - "MATH_ROUND_OPERATOR_ROUND": "заокружи", - "MATH_ROUND_OPERATOR_ROUNDUP": "заокружи на поголемо", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "заокружи на помало", - "MATH_ONLIST_OPERATOR_SUM": "збир од списокот", - "MATH_ONLIST_TOOLTIP_SUM": "Дава збир од сите броеви на списокот.", - "MATH_ONLIST_OPERATOR_MIN": "најмал на списокот", - "MATH_ONLIST_TOOLTIP_MIN": "Го дава најмалиот број на списокот.", - "MATH_ONLIST_OPERATOR_MAX": "најголем на списокот", - "MATH_ONLIST_TOOLTIP_MAX": "Го дава најголемиот број на списокот.", - "MATH_ONLIST_OPERATOR_AVERAGE": "просек на списокот", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Дава просек (аритметичка средина) од броевите на списокот.", - "MATH_ONLIST_OPERATOR_MEDIAN": "медијана на списокот", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Дава медијана од броевите на списокот.", - "MATH_ONLIST_OPERATOR_MODE": "модул на списокот", - "MATH_ONLIST_TOOLTIP_MODE": "Дава список на најзастапен(и) елемент(и) на списокот.", - "LISTS_CREATE_WITH_INPUT_WITH": "создај список со", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "список", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Додај, отстрани или пререди ги деловите за прераспоредување на овој блок „список“.", - "LISTS_LENGTH_TITLE": "должина на %1", - "LISTS_ISEMPTY_TITLE": "%1 е празен", - "LISTS_INLIST": "во списокот", - "LISTS_GET_INDEX_REMOVE": "отстрани", - "LISTS_GET_INDEX_FIRST": "прв", - "LISTS_GET_INDEX_LAST": "последен", - "LISTS_GET_INDEX_RANDOM": "случаен", - "LISTS_SET_INDEX_SET": "задај", - "LISTS_SORT_TITLE": "подреди %1 %2 %3", - "VARIABLES_GET_CREATE_SET": "Создај „задавање на %1“", - "VARIABLES_SET": "задај %1 на %2", - "PROCEDURES_DEFNORETURN_TITLE": "за да", - "PROCEDURES_DEFNORETURN_PROCEDURE": "направиш", - "PROCEDURES_BEFORE_PARAMS": "со:", - "PROCEDURES_CALL_BEFORE_PARAMS": "со:", - "PROCEDURES_DEFNORETURN_COMMENT": "Опишете ја оваа функција...", - "PROCEDURES_DEFRETURN_RETURN": "назад", - "PROCEDURES_ALLOW_STATEMENTS": "дозволи тврдења", - "PROCEDURES_CALLNORETURN_HELPURL": "https://mk.wikipedia.org/wiki/Потпрограма", - "PROCEDURES_CREATE_DO": "Создај го '%1'" -} diff --git a/lib/blockly/msg/json/mnw.json b/lib/blockly/msg/json/mnw.json deleted file mode 100644 index 6988a70..0000000 --- a/lib/blockly/msg/json/mnw.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Aue Nai", - "Htawmonzel" - ] - }, - "VARIABLES_DEFAULT_NAME": "ဒကုတ်", - "TODAY": "တ္ၚဲဏအ်", - "DUPLICATE_BLOCK": "ချာဲ", - "ADD_COMMENT": "စုတ် လညာတ်", - "REMOVE_COMMENT": "ပဲါပ္တိတ် လညာတ်", - "DUPLICATE_COMMENT": "ချာဲ လညာတ်", - "EXTERNAL_INPUTS": "မစုတ် ဗွဲမ္ၚး", - "INLINE_INPUTS": "မစုတ် ဗွဲအပ္ဍဲ", - "DELETE_BLOCK": "ဇိုတ်ပလီု ဗလံက်", - "DELETE_X_BLOCKS": "ဇိုတ်ပလီု %1 ဗလံက်ဂမၠိုင်", - "DELETE_ALL_BLOCKS": "ဇိုတ်ပလီု %1 ဗလံက် သီုဖအိုတ်ဟာ?", - "CLEAN_UP": "ဖအး ဗလံက်", - "COLLAPSE_BLOCK": "ဖဍိုန်ဖ္ဍောတ် ဗလံက်", - "COLLAPSE_ALL": "ဖဍိုန်ဖ္ဍောတ် ဗလံက်ဂမၠိုင်", - "EXPAND_BLOCK": "ဗဇာပတိုန် ဗလံက်", - "EXPAND_ALL": "ဗဇာပတိုန် ဗလံက်ဂမၠိုင်", - "DISABLE_BLOCK": "ပဟွံသၟဟ်အစောံ ဗလံက်", - "ENABLE_BLOCK": "ပသၟဟ်အစောံ ဗလံက်", - "HELP": "ရီု", - "UNDO": "ဟွံပ", - "REDO": "ကလေင်ပ", - "CHANGE_VALUE_TITLE": "သၠာဲ ဍာ်ဒကေဝ်", - "RENAME_VARIABLE": "ကလေင်ကဵုယၟု မပြံင်လှာဲ...", - "RENAME_VARIABLE_TITLE": "'%1' သီုဖအိုတ်ဂှ် ကဵုယၟုတၟိ ပြံင်လှာဲထောအ်:", - "NEW_VARIABLE": "အဃောမပြံင်လှာဲဒၟံင်...", - "NEW_STRING_VARIABLE": "အဃောမပြံင်လှာဲကၠောန်ဒၟံင် လၟေင်...", - "NEW_NUMBER_VARIABLE": "အဃောမပြံင်လှာဲ ကၠောန်ဒၟံင် လၟိဟ်ဂၞန်...", - "NEW_COLOUR_VARIABLE": "အဃောမပြံင်လှာဲ ကၠောန်ဒၟံင် အသာ်...", - "NEW_VARIABLE_TYPE_TITLE": "ဗီုပြင် မပြံင်လှာဲလဝ် တၟိ -", - "NEW_VARIABLE_TITLE": "ယၟု မပြံင်လှာဲလဝ် တၟိ -", - "VARIABLE_ALREADY_EXISTS": "ယၟုမပြံင်လှာဲ '%1' ဂှ် နွံဒၟံင်တုဲရ၊၊", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "ယၟုမပြံင်လှာဲ '%1' ဂှ် နွံဒၟံင်တုဲရ နကဵုဗီုပြင်တၞဟ် - '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "ဇိုတ်ပလီု %1 တုဲ ရပ်စပ် '%2' နဒဒှ်မပြံင်လှာဲဟာ?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "မပြံင်လှာဲ '%1' ဂှ် ဇိုတ်ပလီု ဟွံဂွံ၊ ဟိုတ်နူ ဍေဟ်ဂှ် ဆက်စပ်ဒၟံင် ကုဝှင်ရှေန် '%2'", - "DELETE_VARIABLE": "ဇိုတ်ပလီု အပြံင်အလှာဲ '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "ရုဲကေတ် အသာ် မွဲ နူကဵု ဖလာတ်", - "COLOUR_RANDOM_TITLE": "ဇျောမ်ကေတ် အသာ်", - "COLOUR_RANDOM_TOOLTIP": "ရုဲစှ်ကေတ် အသာ် မွဲ ပ္ဍဲ ဇဟောမ်", - "COLOUR_RGB_TITLE": "နကဵု အသာ်", - "COLOUR_RGB_RED": "ဗကေတ်", - "COLOUR_RGB_GREEN": "သာ်ၚေက်", - "COLOUR_RGB_BLUE": "သာ်ဍီု", - "COLOUR_RGB_TOOLTIP": "ခၞံကၠောန်ကေတ် အသာ်တၟေင် အကြာ ဗကေတ်၊ သာ်ၚေက်၊ သာ်ဍီု၊၊ ဍာ်ဒကေဝ် သီုဖအိုတ် သ္ဒးဒှ် အကြာ ၀ ကဵု ၁၀၀၊၊", - "COLOUR_BLEND_TITLE": "ပနှဴ", - "COLOUR_BLEND_COLOUR1": "အသာ် ၁", - "COLOUR_BLEND_COLOUR2": "အသာ် ၂", - "COLOUR_BLEND_RATIO": "ဗၞတ်ဗ္ၜတ်", - "COLOUR_BLEND_TOOLTIP": "ပနှဴ အသာ် ၜါ နကဵု ဗၞတ်ဗ္ၜတ် (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ထပ်ဂလိုင်ပတိုန် %1 နာဍဳ", - "CONTROLS_REPEAT_INPUT_DO": "ပ", - "CONTROLS_REPEAT_TOOLTIP": "ကၠောန်ပတိတ် လလောင်တြး မဂၠိုင် ကုအလန်၊၊", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ထပ်ဂလိုင်ပတိုန် အခိင်", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ထပ်ဂလိုင်ပတိုန် စဵုကဵု", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ဍာ်ဒကေတ် ဍေဟ် ဒး၊ တုဲ ကၠောန်ပ လိက်ဂရင်ဗတီ၊၊", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ဍာ်ဒကေဝ် ဍေဟ် ဗၠေတ်၊ တုဲ ကၠောန်ပ လိက်ဂရင်ဗတီ၊၊", - "CONTROLS_FOR_TOOLTIP": "ကလိဂွံ ပရေင်အပြံင်အလှာဲ '%1'ဏအ် ကေတ် ဍာ်ဒကေဝ် နူကဵု လၟိဟ်ဂၞန်စ စဵုကဵု လၟိဟ်ဂၞန်အိုတ်၊ မရိုဟ်လၟိဟ် နကဵုဗၞတ်ဗ္ၜတ် ဗွဲတၟေင် တုဲ ကၠောန်ပ ဗလံက် ဗွဲတၟေင်၊၊", - "CONTROLS_FOR_TITLE": "ရိုဟ်လၟိဟ် %1 နူ %2 စဵုကဵု %3 နကဵု %4", - "CONTROLS_FOREACH_TITLE": "သွက်ဇၟာပ် ဒကုတ် %1 ပ္ဍဲ စရင် %2", - "CONTROLS_FOREACH_TOOLTIP": "သွက်ဇၟာပ် ဒကုတ် ပ္ဍဲစရင်မွဲ မစုတ်လဝ် ပရေင်ပြံင်လှာဲ %1 သွက် ဒကုတ်၊ တုဲမ္ဂး ကၠောန်ပ တင်ဂရင်ဗ္တီ၊၊", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ကၟာတ်ထောအ် loop", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ဆက်ကၠောန် နကဵု ပရေင်ချဳဒရာင်ဗွဲအပ္ဍဲ loop", - "CONTROLS_IF_MSG_IF": "ယဝ်ရ", - "CONTROLS_IF_MSG_ELSEIF": "ယဝ်နွံမံၚ်ဏီ", - "CONTROLS_IF_MSG_ELSE": "မုနွံ", - "CONTROLS_IF_IF_TOOLTIP": "ထပ်, ပတိတ်, ဟွံသေၚ် ကလေၚ်ဖျေံလၟေၚ် ရုဲစှ် သွက်ဂွံကလေၚ်ထမံက်ဣဏံ ယဝ်ရကၟာတ်မ္ဂး", - "IOS_OK": "OK", - "IOS_CANCEL": "တးပဲါ", - "IOS_ERROR": "ဗၠေတ်", - "IOS_PROCEDURES_INPUTS": "INPUTS", - "IOS_PROCEDURES_ADD_INPUT": "+ စုတ် Input", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "ကဵုအခေါင် လိက်လလောင်တရးဂမၠိုင်", - "IOS_VARIABLES_ADD_VARIABLE": "+ ထပ် ကိုန်ချဳ", - "IOS_VARIABLES_ADD_BUTTON": "စုတ်", - "IOS_VARIABLES_RENAME_BUTTON": "ကဵုယၟုတၟိ", - "IOS_VARIABLES_DELETE_BUTTON": "ပလီု", - "IOS_VARIABLES_VARIABLE_NAME": "ယၟု ကိုန်ချဳ", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "မၞးသုၚ်စောဲကေတ် ယၟုကိုန်ချဳမမုဟွံမွဲ", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/ဟွံညဳသၟဟ်_(သၚ်္ချာဂမၠိုၚ်)", - "LOGIC_OPERATION_AND": "ကေုာံ", - "LOGIC_OPERATION_OR": "ဟွံသေင်မ္ဂး", - "LOGIC_NEGATE_TITLE": "ဟွံသေၚ် %1", - "LOGIC_NEGATE_TOOLTIP": "ကလေၚ်မဍာံတေံ ယဝ်ရတၚ်စုတ်ဏံဗၠေတ်မ္ဂး. ကလေၚ်မဗၠောတ်တေံ ယဝ်ရတၚ်စုတ်ဏံဒးမ္ဂး", - "LOGIC_BOOLEAN_TRUE": "ဍာံ", - "LOGIC_BOOLEAN_FALSE": "ဗၠေတ်", - "LOGIC_BOOLEAN_TOOLTIP": "ကလေၚ် ဍာံလေဝ်ဟွံသေၚ် ဗၠောတ်လေဝ်ဟွံသေၚ်", - "LOGIC_NULL": "ကၠိခန်", - "LOGIC_NULL_TOOLTIP": "ကလေၚ်ဟွံလုပ်အဝေါၚ်", - "LOGIC_TERNARY_CONDITION": "စမ်ၜတ်", - "LOGIC_TERNARY_IF_TRUE": "ယဝ်ဍာံ", - "LOGIC_TERNARY_IF_FALSE": "ယဝ်ဗၠေတ်", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "မဂၞန်မွဲ", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ABSOLUTE": "ဍာံဍာံ" -} diff --git a/lib/blockly/msg/json/ms.json b/lib/blockly/msg/json/ms.json deleted file mode 100644 index b10332d..0000000 --- a/lib/blockly/msg/json/ms.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Anakmalaysia", - "Espertus" - ] - }, - "VARIABLES_DEFAULT_NAME": "Perkara", - "TODAY": "Hari ini", - "DUPLICATE_BLOCK": "Pendua", - "ADD_COMMENT": "Berikan Komen", - "REMOVE_COMMENT": "Padamkan Komen", - "EXTERNAL_INPUTS": "Input Luaran", - "INLINE_INPUTS": "Input Sebaris", - "DELETE_BLOCK": "Hapuskan Blok", - "DELETE_X_BLOCKS": "Hapuskan %1 Blok", - "DELETE_ALL_BLOCKS": "Hapuskan kesemua %1 blok?", - "CLEAN_UP": "Kemaskan Blok", - "COLLAPSE_BLOCK": "Lipat Blok", - "COLLAPSE_ALL": "Lipat Blok²", - "EXPAND_BLOCK": "Buka Blok", - "EXPAND_ALL": "Buka Blok²", - "DISABLE_BLOCK": "Matikan Blok", - "ENABLE_BLOCK": "Hidupkan Blok", - "HELP": "Bantuan", - "CHANGE_VALUE_TITLE": "Ubah nilai:", - "RENAME_VARIABLE": "Tukar nama pembolehubah...", - "RENAME_VARIABLE_TITLE": "Tukar nama semua pembolehubah '%1' kepada:", - "NEW_VARIABLE": "Pembolehubah baru...", - "NEW_VARIABLE_TITLE": "Nama pembolehubah baru:", - "COLOUR_PICKER_HELPURL": "https://ms.wikipedia.org/wiki/Warna", - "COLOUR_PICKER_TOOLTIP": "Pilih satu warna daripada palet.", - "COLOUR_RANDOM_TITLE": "warna rawak", - "COLOUR_RANDOM_TOOLTIP": "Pilih satu warna secara rawak.", - "COLOUR_RGB_TITLE": "warnakan", - "COLOUR_RGB_RED": "merah", - "COLOUR_RGB_GREEN": "hijau", - "COLOUR_RGB_BLUE": "biru", - "COLOUR_RGB_TOOLTIP": "Peroleh satu warna dengan menentukan amaun campuran merah, hijau dan biru. Kesemua nilai haruslah antara 0 hingga 100.", - "COLOUR_BLEND_TITLE": "adun", - "COLOUR_BLEND_COLOUR1": "warna 1", - "COLOUR_BLEND_COLOUR2": "warna 2", - "COLOUR_BLEND_RATIO": "nisbah", - "COLOUR_BLEND_TOOLTIP": "Campurkan dua warna sekali pada nisbah yang ditentukan (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ulang %1 kali", - "CONTROLS_REPEAT_INPUT_DO": "lakukan", - "CONTROLS_REPEAT_TOOLTIP": "Lakukan perintah berulang kali.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ulangi apabila", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ulangi sehingga", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Lakukan beberapa perintah apabila nilainya benar (true).", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Lakukan beberapa perintah apabila nilainya palsu (false).", - "CONTROLS_FOR_TOOLTIP": "Gunakan pembolehubah '%1' pada nilai-nilai dari nombor pangkal hingga nombor hujung, mengira mengikut selang yang ditentukan, dan lakukan blok-blok yang tertentu.", - "CONTROLS_FOR_TITLE": "kira dengan %1 dari %2 hingga %3 selang %4", - "CONTROLS_FOREACH_TITLE": "untuk setiap perkara %1 dalam senarai %2", - "CONTROLS_FOREACH_TOOLTIP": "Untuk setiap perkara dalam senarai, tetapkan pembolehubah '%1' pada perkara, kemudian lakukan beberapa perintah.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "hentikan gelung", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "teruskan dengan lelaran gelung seterusnya", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Keluar dari gelung pengandung.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Langkau seluruh gelung yang tinggal dan bersambung dengan lelaran seterusnya.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Amaran: Blok ini hanya boleh digunakan dalam satu gelung.", - "CONTROLS_IF_TOOLTIP_1": "Jika nilai yang benar, lakukan beberapa penyata.", - "CONTROLS_IF_TOOLTIP_2": "Jika suatu nilai benar, lakukan penyata blok pertama. Jika tidak, bina penyata blok kedua.", - "CONTROLS_IF_TOOLTIP_3": "Jika nilai yang pertama adalah benar, lakukan penyata pertama blok. Sebaliknya, jika nilai kedua adalah benar, lakukan penyata blok kedua.", - "CONTROLS_IF_TOOLTIP_4": "Jika nilai yang pertama adalah benar, lakukan penyata blok pertama. Sebaliknya, jika nilai kedua adalah benar, lakukan penyata blok kedua. Jika tiada nilai adalah benar, lakukan penyata blok terakhir.", - "CONTROLS_IF_MSG_IF": "jika", - "CONTROLS_IF_MSG_ELSEIF": "lain jika", - "CONTROLS_IF_MSG_ELSE": "lain", - "CONTROLS_IF_IF_TOOLTIP": "Tambah, alih keluar, atau susun semula bahagian-bahagian untuk menyusun semula blok jika.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Tambah satu syarat kepada blok jika.", - "CONTROLS_IF_ELSE_TOOLTIP": "Tambah yang terakhir, alihkan semua keadaan ke blok jika.", - "LOGIC_COMPARE_HELPURL": "https://id.wikipedia.org/wiki/Pertidaksamaan", - "LOGIC_COMPARE_TOOLTIP_EQ": "Kembali benar jika kedua-dua input benar antara satu sama lain.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Taip balik benar jika kedua-dua input tidak sama.", - "LOGIC_COMPARE_TOOLTIP_LT": "Kembali benar jika input pertama adalah lebih kecil daripada input kedua.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Kembali benar jika input pertama adalah lebih kecil daripada atau sama dengan input kedua.", - "LOGIC_COMPARE_TOOLTIP_GT": "Kembali benar jika input pertama adalah lebih besar daripada input kedua.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Kembali benar jika input pertama adalah lebih besar daripada atau sama dengan input kedua.", - "LOGIC_OPERATION_TOOLTIP_AND": "Return true if both inputs are true.", - "LOGIC_OPERATION_AND": "dan", - "LOGIC_OPERATION_TOOLTIP_OR": "Return true if at least one of the inputs is true.", - "LOGIC_OPERATION_OR": "atau", - "LOGIC_NEGATE_TITLE": "bukan %1", - "LOGIC_NEGATE_TOOLTIP": "'Benar' akan dibalas jika inputnya salah. 'Salah' akan dibalas jika inputnya benar.", - "LOGIC_BOOLEAN_TRUE": "benar", - "LOGIC_BOOLEAN_FALSE": "palsu", - "LOGIC_BOOLEAN_TOOLTIP": "Kembalikan samada benar atau palsu.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Returns null.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "Jika benar", - "LOGIC_TERNARY_IF_FALSE": "Jika palsu", - "LOGIC_TERNARY_TOOLTIP": "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value.", - "MATH_NUMBER_HELPURL": "https://ms.wikipedia.org/wiki/Nombor", - "MATH_NUMBER_TOOLTIP": "Suatu nombor.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://ms.wikipedia.org/wiki/Aritmetik", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Kembalikan jumlah kedua-dua bilangan.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Taip balik hasil tolak dua nombor tersebut.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Taip balik hasil darab dua nombor tersebut.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Taip balik hasil bahagi dua nombor tersebut.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Return the first number raised to the power of the second number.", - "MATH_SINGLE_HELPURL": "https://ms.wikipedia.org/wiki/Punca_kuasa_dua", - "MATH_SINGLE_OP_ROOT": "Punca kuasa dua", - "MATH_SINGLE_TOOLTIP_ROOT": "Kembalikan punca kuasa nombor.", - "MATH_SINGLE_OP_ABSOLUTE": "mutlak", - "MATH_SINGLE_TOOLTIP_ABS": "Kembalikan nilai mutlak suatu nombor.", - "MATH_SINGLE_TOOLTIP_NEG": "Kembalikan nombor yang songsang.", - "MATH_SINGLE_TOOLTIP_LN": "Kembali dalam logaritma nombor asli.", - "MATH_SINGLE_TOOLTIP_LOG10": "Kembali logarithm 10 asas nombor.", - "MATH_SINGLE_TOOLTIP_EXP": "Kembalikan e kepada kuasa nombor.", - "MATH_SINGLE_TOOLTIP_POW10": "Kembalikan 10 kepada kuasa nombor.", - "MATH_TRIG_HELPURL": "https://ms.wikipedia.org/wiki/Fungsi_trigonometri", - "MATH_TRIG_TOOLTIP_SIN": "Kembalikan darjah sine (bukan radian).", - "MATH_TRIG_TOOLTIP_COS": "Kembalikan darjah kosinus (bukan radian).", - "MATH_TRIG_TOOLTIP_TAN": "Kembalikan darjah tangen (bukan radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Kembalikan arcsince beberapa nombor.", - "MATH_TRIG_TOOLTIP_ACOS": "Kembali arccosine beberapa nombor.", - "MATH_TRIG_TOOLTIP_ATAN": "Kembalikan beberapa nombor arctangent.", - "MATH_CONSTANT_HELPURL": "https://ms.wikipedia.org/wiki/Pemalar_matematik", - "MATH_CONSTANT_TOOLTIP": "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "Adalah genap", - "MATH_IS_ODD": "aneh", - "MATH_IS_PRIME": "is prime", - "MATH_IS_WHOLE": "is whole", - "MATH_IS_POSITIVE": "adalah positif", - "MATH_IS_NEGATIVE": "negatif", - "MATH_IS_DIVISIBLE_BY": "Boleh dibahagikan dengan", - "MATH_IS_TOOLTIP": "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.", - "MATH_CHANGE_HELPURL": "https://id.wikipedia.org/wiki/Perjumlahan", - "MATH_CHANGE_TITLE": "perubahan %1 oleh %2", - "MATH_CHANGE_TOOLTIP": "Tambah nombor kepada pembolehubah '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Bulat nombor yang naik atau turun.", - "MATH_ROUND_OPERATOR_ROUND": "pusingan", - "MATH_ROUND_OPERATOR_ROUNDUP": "pusingan ke atas", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "Pusingan ke bawah", - "MATH_ONLIST_OPERATOR_SUM": "Jumlah senarai", - "MATH_ONLIST_TOOLTIP_SUM": "Kembalikan jumlah semua nombor dalam senarai.", - "MATH_ONLIST_OPERATOR_MIN": "min dalam senarai", - "MATH_ONLIST_TOOLTIP_MIN": "Kembalikan nombor terkecil dalam senarai.", - "MATH_ONLIST_OPERATOR_MAX": "Max senarai", - "MATH_ONLIST_TOOLTIP_MAX": "Pulangkan jumlah terbesar dalam senarai.", - "MATH_ONLIST_OPERATOR_AVERAGE": "purata daripada senarai", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Kembalikan purata (min aritmetik) nilai-nilai angka di dalam senarai.", - "MATH_ONLIST_OPERATOR_MEDIAN": "Median senarai", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Kembalikan nombor median dalam senarai.", - "MATH_ONLIST_OPERATOR_MODE": "jenis senarai", - "MATH_ONLIST_TOOLTIP_MODE": "Kembali senarai item yang paling biasa dalam senarai.", - "MATH_ONLIST_OPERATOR_STD_DEV": "sisihan piawai bagi senarai", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Kembali dengan sisihan piawai daripada senarai.", - "MATH_ONLIST_OPERATOR_RANDOM": "Item rawak daripada senarai", - "MATH_ONLIST_TOOLTIP_RANDOM": "Kembalikan elemen rawak daripada senarai.", - "MATH_MODULO_HELPURL": "https://id.wikipedia.org/wiki/Operasi_modulus", - "MATH_MODULO_TITLE": "remainder of %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Taip balik baki yang didapat daripada pembahagian dua nombor tersebut.", - "MATH_CONSTRAIN_TITLE": "constrain %1 low %2 high %3", - "MATH_CONSTRAIN_TOOLTIP": "Constrain a number to be between the specified limits (inclusive).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "integer rawak dari %1ke %2", - "MATH_RANDOM_INT_TOOLTIP": "Kembalikan integer rawak diantara dua had yang ditentukan, inklusif.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "pecahan rawak", - "MATH_RANDOM_FLOAT_TOOLTIP": "Kembali sebahagian kecil rawak antara 0.0 (inklusif) dan 1.0 (eksklusif).", - "TEXT_TEXT_HELPURL": "https://ms.wikipedia.org/wiki/Rentetan", - "TEXT_TEXT_TOOLTIP": "Huruf, perkataan, atau baris teks.", - "TEXT_JOIN_TITLE_CREATEWITH": "hasilkan teks dengan", - "TEXT_JOIN_TOOLTIP": "Hasilkan sebahagian teks dengan menghubungkan apa jua nombor item.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "Sertai", - "TEXT_CREATE_JOIN_TOOLTIP": "Add, remove, or reorder sections to reconfigure this text block.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Add an item to the text.", - "TEXT_APPEND_TOOLTIP": "Append some text to variable '%1'.", - "TEXT_LENGTH_TITLE": "panjang %1", - "TEXT_LENGTH_TOOLTIP": "Kembalikan jumlah huruf (termasuk ruang) dalam teks yang disediakan.", - "TEXT_ISEMPTY_TITLE": "%1 adalah kosong", - "TEXT_ISEMPTY_TOOLTIP": "Kembalikan benar jika teks yang disediakan adalah kosong.", - "TEXT_INDEXOF_TOOLTIP": "Kembalikan Indeks kejadian pertama/terakhir dari teks pertama ke dalam teks kedua. Kembalikan %1 Jika teks tidak ditemui.", - "TEXT_INDEXOF_TITLE": "dalam teks %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "mencari kejadian pertama teks", - "TEXT_INDEXOF_OPERATOR_LAST": "mencari kejadian terakhir teks", - "TEXT_CHARAT_FROM_START": "get letter #", - "TEXT_CHARAT_FROM_END": "get letter # from end", - "TEXT_CHARAT_FIRST": "get first letter", - "TEXT_CHARAT_LAST": "Dapatkan abjad terakhir", - "TEXT_CHARAT_RANDOM": "Dapatkan abjad rawak", - "TEXT_CHARAT_TOOLTIP": "Returns the letter at the specified position.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Returns a specified portion of the text.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "dalam teks", - "TEXT_GET_SUBSTRING_START_FROM_START": "get substring from letter #", - "TEXT_GET_SUBSTRING_START_FROM_END": "get substring from letter # from end", - "TEXT_GET_SUBSTRING_START_FIRST": "get substring from first letter", - "TEXT_GET_SUBSTRING_END_FROM_START": "to letter #", - "TEXT_GET_SUBSTRING_END_FROM_END": "to letter # from end", - "TEXT_GET_SUBSTRING_END_LAST": "untuk huruf terakhir", - "TEXT_CHANGECASE_TOOLTIP": "Return a copy of the text in a different case.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "Kepada HURUF BESAR", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "Kepada huruf kecil", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "to Title Case", - "TEXT_TRIM_TOOLTIP": "Kembali salinan teks dengan ruang yang dikeluarkan daripada satu atau hujung kedua belah.", - "TEXT_TRIM_OPERATOR_BOTH": "mengurangkan kawasan dari kedua-dua belah", - "TEXT_TRIM_OPERATOR_LEFT": "mengurangkan ruang dari sebelah kiri", - "TEXT_TRIM_OPERATOR_RIGHT": "mengurangkan kawasan dari sisi kanan", - "TEXT_PRINT_TITLE": "cetak %1", - "TEXT_PRINT_TOOLTIP": "Cetak teks yang ditentukan, nombor atau nilai lain.", - "TEXT_PROMPT_TYPE_TEXT": "Prom untuk teks dengan mesej", - "TEXT_PROMPT_TYPE_NUMBER": "Prom untuk nombor dengan mesej", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Peringatan kepada pengguna untuk nombor.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Peringatkan pengguna untuk sebahagian teks.", - "LISTS_CREATE_EMPTY_TITLE": "Wujudkan senarai kosong", - "LISTS_CREATE_EMPTY_TOOLTIP": "Kembalikan senarai panjang 0, yang tidak mengandungi rekod data", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Wujudkan senarai dengan apa jua nombor item.", - "LISTS_CREATE_WITH_INPUT_WITH": "wujudkan senarai dengan", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "senarai", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Tambah, alih keluar, atau susun semula bahagian-bahagian untuk menyusun semula senarai blok.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Tambah item ke dalam senarai.", - "LISTS_REPEAT_TOOLTIP": "Wujudkan senarai yang terdiri daripada nilai berulang mengikut nombor yang ditentukan.", - "LISTS_REPEAT_TITLE": "wujudkan senarai dengan item %1 diulangi %2 kali", - "LISTS_LENGTH_TITLE": "panjang %1", - "LISTS_LENGTH_TOOLTIP": "Kembalikan panjang senarai", - "LISTS_ISEMPTY_TITLE": "%1 adalah kosong", - "LISTS_ISEMPTY_TOOLTIP": "Kembalikan benar jika senarai kosong.", - "LISTS_INLIST": "dalam senarai", - "LISTS_INDEX_OF_FIRST": "cari pertama item kejadian", - "LISTS_INDEX_OF_LAST": "cari kejadian akhir item", - "LISTS_INDEX_OF_TOOLTIP": "Menyatakan indeks kejadian pertama/terakhir item berkenaan dalam senarai. Menyatakan %1 jika item berkenaan tidak ditemui.", - "LISTS_GET_INDEX_GET": "dapatkan", - "LISTS_GET_INDEX_GET_REMOVE": "dapat dan alihkan", - "LISTS_GET_INDEX_REMOVE": "alihkan", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# dari akhir", - "LISTS_GET_INDEX_FIRST": "pertama", - "LISTS_GET_INDEX_LAST": "terakhir", - "LISTS_GET_INDEX_RANDOM": "rawak", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ialah item pertama.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ialah item terakhir.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Kembalikan item dalam kedudukan yang ditetapkan dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Kembalikan item pertama dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Kembalikan item pertama dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Kembalikan item rawak dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Alihkan dan kembalikan item mengikut spesifikasi posisi dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Alihkan dan kembalikan item pertama dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Alihkan dan kembalikan item terakhir dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Alihkan dan kembalikan item rawak dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Alihkan item pada posisi mengikut spesifikasi dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Alihkan item pertama dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Alihkan item terakhir dalam senarai.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Alihkan item rawak dalam senarai.", - "LISTS_SET_INDEX_SET": "set", - "LISTS_SET_INDEX_INSERT": "masukkan pada", - "LISTS_SET_INDEX_INPUT_TO": "sebagai", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Masukkan item pada posisi yang ditentukan dalam senarai.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Set item pertama dalam senarai.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Set item terakhir dalam senarai.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Set item rawak dalam senarai.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Masukkan item pada posisi yand ditentukan dalam senarai.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Selit item pada permulaan senarai.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Tambahkan item dalam senarai akhir.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Selit item secara rawak di dalam senarai.", - "LISTS_GET_SUBLIST_START_FROM_START": "dapatkan sub-senarai daripada #", - "LISTS_GET_SUBLIST_START_FROM_END": "dapatkan sub-senarai daripada # daripada terakhir", - "LISTS_GET_SUBLIST_START_FIRST": "dapatkan sub-senarai daripada pertama", - "LISTS_GET_SUBLIST_END_FROM_START": "ke #", - "LISTS_GET_SUBLIST_END_FROM_END": "ke # dari akhir", - "LISTS_GET_SUBLIST_END_LAST": "ke akhir", - "LISTS_GET_SUBLIST_TOOLTIP": "Wujudkan salinan bahagian yang ditentukan dari senarai.", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "buat senarai dgn teks", - "LISTS_SPLIT_TEXT_FROM_LIST": "buat teks drpd senarai", - "LISTS_SPLIT_WITH_DELIMITER": "dengan delimiter", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Pecahkan teks kepada senarai teks, berpecah di setiap delimiter.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Cantumkan senarai teks menjadi satu teks, dipecahkan oleh delimiter.", - "VARIABLES_GET_TOOLTIP": "Kembalikan nilai pemboleh ubah ini.", - "VARIABLES_GET_CREATE_SET": "Hasilkan 'set %1'", - "VARIABLES_SET": "set %1 ke %2", - "VARIABLES_SET_TOOLTIP": "Set pembolehubah ini supaya sama dengan input.", - "VARIABLES_SET_CREATE_GET": "Hasilkan 'set %1'", - "PROCEDURES_DEFNORETURN_TITLE": "Untuk", - "PROCEDURES_DEFNORETURN_PROCEDURE": "Buat sesuatu", - "PROCEDURES_BEFORE_PARAMS": "dengan:", - "PROCEDURES_CALL_BEFORE_PARAMS": "dengan:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Menghasilkan suatu fungsi tanpa output.", - "PROCEDURES_DEFNORETURN_COMMENT": "Terangkan fungsi ini...", - "PROCEDURES_DEFRETURN_RETURN": "kembali", - "PROCEDURES_DEFRETURN_TOOLTIP": "Mencipta satu fungsi dengan pengeluaran.", - "PROCEDURES_ALLOW_STATEMENTS": "bolehkan kenyataan", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Amaran: Fungsi ini mempunyai parameter yang berganda.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://ms.wikipedia.org/wiki/Fungsi", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Run the user-defined function '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://ms.wikipedia.org/wiki/Fungsi", - "PROCEDURES_CALLRETURN_TOOLTIP": "Run the user-defined function '%1' and use its output.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "Input-input", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Tambah, alih keluar atau susun semula input pada fungsi ini.", - "PROCEDURES_MUTATORARG_TITLE": "Nama input:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Tambah satu input pada fungsi.", - "PROCEDURES_HIGHLIGHT_DEF": "Serlahkan definisi fungsi", - "PROCEDURES_CREATE_DO": "Hasilkan '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "If a value is true, then return a second value.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Amaran: Blok ini hanya boleh digunakan dalam fungsi definisi." -} diff --git a/lib/blockly/msg/json/nb.json b/lib/blockly/msg/json/nb.json deleted file mode 100644 index ca5f305..0000000 --- a/lib/blockly/msg/json/nb.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Cocu", - "Kingu", - "아라", - "SuperPotato", - "Jon Harald Søby" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "TODAY": "I dag", - "DUPLICATE_BLOCK": "duplikat", - "ADD_COMMENT": "Legg til kommentar", - "REMOVE_COMMENT": "Fjern kommentar", - "DUPLICATE_COMMENT": "Dupliser kommentar", - "EXTERNAL_INPUTS": "Eksterne kilder", - "INLINE_INPUTS": "Interne kilder", - "DELETE_BLOCK": "Slett blokk", - "DELETE_X_BLOCKS": "Slett %1 blokker", - "DELETE_ALL_BLOCKS": "Slett alle %1 blokker?", - "CLEAN_UP": "Rydd opp Blocks", - "COLLAPSE_BLOCK": "Skjul blokk", - "COLLAPSE_ALL": "Skjul blokker", - "EXPAND_BLOCK": "Utvid blokk", - "EXPAND_ALL": "Utvid blokker", - "DISABLE_BLOCK": "Deaktiver blokk", - "ENABLE_BLOCK": "Aktiver blokk", - "HELP": "Hjelp", - "UNDO": "Angre", - "REDO": "Gjør om", - "CHANGE_VALUE_TITLE": "Bytt verdi:", - "RENAME_VARIABLE": "Gi nytt navn til variabel…", - "RENAME_VARIABLE_TITLE": "Endre navnet til alle '%1' variabler til:", - "NEW_VARIABLE": "Opprett variabel…", - "NEW_STRING_VARIABLE": "Oppretter strengvariabel …", - "NEW_NUMBER_VARIABLE": "Oppretter tallvariabel …", - "NEW_COLOUR_VARIABLE": "Oppretter fargevariabel …", - "NEW_VARIABLE_TYPE_TITLE": "Ny variabeltype:", - "NEW_VARIABLE_TITLE": "Nytt variabelnavn:", - "VARIABLE_ALREADY_EXISTS": "En variabel med navn «%1» finnes allerede.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "En variabel med navn «%1» finnes allerede for en annen type: «%2».", - "DELETE_VARIABLE_CONFIRMATION": "Slett %1 bruk av variabelen «%2»?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Kan ikke slette variabelen «%1» fordi den er del av definisjonen for funksjonen «%2»", - "DELETE_VARIABLE": "Slett variabelen «%1»", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Velg en farge fra paletten.", - "COLOUR_RANDOM_TITLE": "tilfeldig farge", - "COLOUR_RANDOM_TOOLTIP": "Velg en tilfeldig farge.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "farge med", - "COLOUR_RGB_RED": "rød", - "COLOUR_RGB_GREEN": "grønn", - "COLOUR_RGB_BLUE": "blå", - "COLOUR_RGB_TOOLTIP": "Lag en farge med angitt verdi av rød, grønn og blå. Alle verdier må være mellom 0 og 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "blande", - "COLOUR_BLEND_COLOUR1": "farge 1", - "COLOUR_BLEND_COLOUR2": "farge 2", - "COLOUR_BLEND_RATIO": "forhold", - "COLOUR_BLEND_TOOLTIP": "Blander to farger sammen med et gitt forhold (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "gjenta %1 ganger", - "CONTROLS_REPEAT_INPUT_DO": "gjør", - "CONTROLS_REPEAT_TOOLTIP": "Gjenta noen instruksjoner flere ganger.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "gjenta mens", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "gjenta til", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Så lenge et utsagn stemmer, utfør noen instruksjoner.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Så lenge et utsagn ikke stemmer, gjør noen instruksjoner.", - "CONTROLS_FOR_TOOLTIP": "Ha variabel \"%1\" ta verdiene fra start nummer til slutt nummer, telle med spesifisert intervall og lag de spesifiserte blokkene.", - "CONTROLS_FOR_TITLE": "tell med %1 fra %2 til %3 med %4", - "CONTROLS_FOREACH_TITLE": "for hvert element %1 i listen %2", - "CONTROLS_FOREACH_TOOLTIP": "For hvert element i en liste, angi variabelen '%1' til elementet, og deretter lag noen setninger.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "bryt ut av løkken", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "fortsett med neste gjentakelse av løkken", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Bryt ut av den gjeldende løkken.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Hopp over resten av denne løkken og fortsett med neste gjentakelse.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Advarsel: Denne blokken kan kun brukes innenfor en løkke.", - "CONTROLS_IF_TOOLTIP_1": "Hvis dette er sant, så gjør følgende.", - "CONTROLS_IF_TOOLTIP_2": "Hvis dette er sant, så utfør den første blokken av instruksjoner. Hvis ikke, utfør den andre blokken.", - "CONTROLS_IF_TOOLTIP_3": "Hvis det første stemmer, så utfør den første blokken av instruksjoner. Ellers, hvis det andre stemmer, utfør den andre blokken av instruksjoner.", - "CONTROLS_IF_TOOLTIP_4": "Hvis den første verdien er sann, så utfør den første blokken med setninger. Ellers, hvis den andre verdien er sann, så utfør den andre blokken med setninger. Hvis ingen av verdiene er sanne, så utfør den siste blokken med setninger.", - "CONTROLS_IF_MSG_IF": "hvis", - "CONTROLS_IF_MSG_ELSEIF": "ellers hvis", - "CONTROLS_IF_MSG_ELSE": "ellers", - "CONTROLS_IF_IF_TOOLTIP": "Legg til, fjern eller flytt seksjoner i denne hvis-blokken.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Legg til en betingelse til hvis blokken.", - "CONTROLS_IF_ELSE_TOOLTIP": "Legg til hva som skal skje hvis de andre ikke slår til.", - "IOS_OK": "OK", - "IOS_CANCEL": "Avbryt", - "IOS_ERROR": "Feil", - "IOS_PROCEDURES_INPUTS": "PARAMETERE", - "IOS_PROCEDURES_ADD_INPUT": "+ Legg til parameter", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Tillat kommandoer", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Denne funksjonen har duplikatparametere.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Legg til variabel", - "IOS_VARIABLES_ADD_BUTTON": "Legg til", - "IOS_VARIABLES_RENAME_BUTTON": "Endre navn", - "IOS_VARIABLES_DELETE_BUTTON": "Slett", - "IOS_VARIABLES_VARIABLE_NAME": "Variabelnavn", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Du kan ikke bruke et tomt variabelnavn.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Returnerer sann hvis begge inputene er like hverandre.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Returnerer sant hvis begge argumentene er ulike hverandre.", - "LOGIC_COMPARE_TOOLTIP_LT": "Returnerer sant hvis det første argumentet er mindre enn det andre argumentet.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Returnerer sant hvis det første argumentet er mindre enn eller likt det andre argumentet.", - "LOGIC_COMPARE_TOOLTIP_GT": "Returnerer sant hvis det første argumentet er større enn den andre argumentet.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Returnerer sant hvis det første argumentet er større enn eller likt det andre argumentet.", - "LOGIC_OPERATION_TOOLTIP_AND": "Returnerer sant hvis begge argumentene er sanne.", - "LOGIC_OPERATION_AND": "og", - "LOGIC_OPERATION_TOOLTIP_OR": "Returnerer sant hvis minst ett av argumentene er sant.", - "LOGIC_OPERATION_OR": "eller", - "LOGIC_NEGATE_TITLE": "ikke %1", - "LOGIC_NEGATE_TOOLTIP": "Returnerer sant hvis argumentet er usant. Returnerer usant hvis argumentet er sant.", - "LOGIC_BOOLEAN_TRUE": "sann", - "LOGIC_BOOLEAN_FALSE": "usann", - "LOGIC_BOOLEAN_TOOLTIP": "Returnerer enten sann eller usann.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Returnerer null.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "hvis sant", - "LOGIC_TERNARY_IF_FALSE": "hvis usant", - "LOGIC_TERNARY_TOOLTIP": "Sjekk betingelsen i 'test'. Hvis betingelsen er sann, da returneres 'hvis sant' verdien. Hvis ikke returneres 'hvis usant' verdien.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Et tall.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "x", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://no.wikipedia.org/wiki/Aritmetikk", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Returnerer summen av to tall.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Returner differansen mellom to tall.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Returner produktet av to tall.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Returner kvotienten av to tall.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Returner det første tallet opphøyd i den andre tallet.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "kvadratrot", - "MATH_SINGLE_TOOLTIP_ROOT": "Returner kvadratroten av et tall.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluttverdi", - "MATH_SINGLE_TOOLTIP_ABS": "Returner absoluttverdien av et tall.", - "MATH_SINGLE_TOOLTIP_NEG": "Returner det negative tallet.", - "MATH_SINGLE_TOOLTIP_LN": "Returner den naturlige logaritmen til et tall.", - "MATH_SINGLE_TOOLTIP_LOG10": "Returner base-10 logaritmen til et tall.", - "MATH_SINGLE_TOOLTIP_EXP": "Returner e opphøyd i et tall.", - "MATH_SINGLE_TOOLTIP_POW10": "Returner 10 opphøyd i et tall.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Returner sinus av en vinkel (ikke radian).", - "MATH_TRIG_TOOLTIP_COS": "Returner cosinus av en vinkel (ikke radian).", - "MATH_TRIG_TOOLTIP_TAN": "Returner tangenten av en vinkel (ikke radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Returner arcsinus til et tall.", - "MATH_TRIG_TOOLTIP_ACOS": "Returner arccosinus til et tall.", - "MATH_TRIG_TOOLTIP_ATAN": "Returner arctangens til et tall.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Returner en av felleskonstantene π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), eller ∞ (uendelig).", - "MATH_IS_EVEN": "er et partall", - "MATH_IS_ODD": "er et oddetall", - "MATH_IS_PRIME": "er et primtall", - "MATH_IS_WHOLE": "er et heltall", - "MATH_IS_POSITIVE": "er positivt", - "MATH_IS_NEGATIVE": "er negativer negativt", - "MATH_IS_DIVISIBLE_BY": "er delelig med", - "MATH_IS_TOOLTIP": "Sjekk om et tall er et partall, oddetall, primtall, heltall, positivt, negativt, eller om det er delelig med et annet tall. Returnerer sant eller usant.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "endre %1 ved %2", - "MATH_CHANGE_TOOLTIP": "Addere et tall til variabelen '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Avrund et tall ned eller opp.", - "MATH_ROUND_OPERATOR_ROUND": "avrunding", - "MATH_ROUND_OPERATOR_ROUNDUP": "rund opp", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "rund ned", - "MATH_ONLIST_OPERATOR_SUM": "summen av listen", - "MATH_ONLIST_TOOLTIP_SUM": "Returner summen av alle tallene i listen.", - "MATH_ONLIST_OPERATOR_MIN": "minimum av listen", - "MATH_ONLIST_TOOLTIP_MIN": "Returner det minste tallet i listen.", - "MATH_ONLIST_OPERATOR_MAX": "maksimum av liste", - "MATH_ONLIST_TOOLTIP_MAX": "Returner det største tallet i listen.", - "MATH_ONLIST_OPERATOR_AVERAGE": "gjennomsnittet av listen", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Returner det aritmetiske gjennomsnittet av tallene i listen.", - "MATH_ONLIST_OPERATOR_MEDIAN": "medianen til listen", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Returner listens median.", - "MATH_ONLIST_OPERATOR_MODE": "Listens typetall", - "MATH_ONLIST_TOOLTIP_MODE": "Returner en liste av de vanligste elementene i listen.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standardavviket til listen", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Returner listens standardavvik.", - "MATH_ONLIST_OPERATOR_RANDOM": "tilfeldig element i listen", - "MATH_ONLIST_TOOLTIP_RANDOM": "Returner et tilfeldig element fra listen.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "resten av %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Returner resten fra delingen av to tall.", - "MATH_CONSTRAIN_TITLE": "begrense %1 lav %2 høy %3", - "MATH_CONSTRAIN_TOOLTIP": "Begrens et tall til å være mellom de angitte grenseverdiene (inklusiv).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "Et tilfeldig heltall mellom %1 og %2", - "MATH_RANDOM_INT_TOOLTIP": "Returner et tilfeldig tall mellom de to spesifiserte grensene, inkludert de to.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "tilfeldig flyttall", - "MATH_RANDOM_FLOAT_TOOLTIP": "Returner et tilfeldig flyttall mellom 0.0 (inkludert) og 1.0 (ikke inkludert).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 av X:%1 Y:%2", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "En bokstav, ett ord eller en linje med tekst.", - "TEXT_JOIN_TITLE_CREATEWITH": "lag tekst med", - "TEXT_JOIN_TOOLTIP": "Opprett en tekst ved å sette sammen et antall elementer.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "føy sammen", - "TEXT_CREATE_JOIN_TOOLTIP": "Legg til, fjern eller forandre rekkefølgen for å forandre på denne tekstblokken.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Legg til et element til teksten.", - "TEXT_APPEND_TITLE": "til %1, legg til teksten %2", - "TEXT_APPEND_TOOLTIP": "Tilføy tekst til variabelen '%1'.", - "TEXT_LENGTH_TITLE": "lengden av %1", - "TEXT_LENGTH_TOOLTIP": "Returnerer antall bokstaver (inkludert mellomrom) i den angitte teksten.", - "TEXT_ISEMPTY_TITLE": "%1 er tom", - "TEXT_ISEMPTY_TOOLTIP": "Returnerer sann hvis den angitte teksten er tom.", - "TEXT_INDEXOF_TOOLTIP": "Returnerer posisjonen for første/siste forekomsten av den første tekst i den andre teksten. Returnerer %1 hvis teksten ikke blir funnet.", - "TEXT_INDEXOF_TITLE": "i teksten %1, %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "finn første forekomst av tekst", - "TEXT_INDEXOF_OPERATOR_LAST": "finn siste forekomst av tekst", - "TEXT_CHARAT_TITLE": "i teksten %1, %2", - "TEXT_CHARAT_FROM_START": "hent bokstav #", - "TEXT_CHARAT_FROM_END": "hent bokstav # fra slutten", - "TEXT_CHARAT_FIRST": "hent første bokstav", - "TEXT_CHARAT_LAST": "hent den siste bokstaven", - "TEXT_CHARAT_RANDOM": "hent en tilfeldig bokstav", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "Returnerer bokstaven på angitt plassering.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Returnerer den angitte delen av teksten.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "i tekst", - "TEXT_GET_SUBSTRING_START_FROM_START": "hent delstreng fra bokstav #", - "TEXT_GET_SUBSTRING_START_FROM_END": "hent delstreng fra bokstav # fra slutten", - "TEXT_GET_SUBSTRING_START_FIRST": "hent delstreng fra første bokstav", - "TEXT_GET_SUBSTRING_END_FROM_START": "til bokstav #", - "TEXT_GET_SUBSTRING_END_FROM_END": "til bokstav # fra slutten", - "TEXT_GET_SUBSTRING_END_LAST": "til siste bokstav", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_TOOLTIP": "Returnerer en kopi av teksten der store og små bokstaver er byttet om.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "til STORE BOKSTAVER", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "til små bokstaver", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "til store forbokstaver", - "TEXT_TRIM_TOOLTIP": "Returner en kopi av teksten med mellomrom fjernet fra en eller begge sidene.", - "TEXT_TRIM_OPERATOR_BOTH": "fjern mellomrom fra begge sider av", - "TEXT_TRIM_OPERATOR_LEFT": "fjern mellomrom fra venstre side av", - "TEXT_TRIM_OPERATOR_RIGHT": "fjern mellomrom fra høyre side av", - "TEXT_PRINT_TITLE": "skriv ut %1", - "TEXT_PRINT_TOOLTIP": "Skriv ut angitt tekst, tall eller annet innhold.", - "TEXT_PROMPT_TYPE_TEXT": "spør om tekst med en melding", - "TEXT_PROMPT_TYPE_NUMBER": "spør om et tall med en melding", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Be brukeren om et tall.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Spør brukeren om tekst.", - "TEXT_COUNT_MESSAGE0": "tell %1 i %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Tell hvor mange ganger noe tekst dukker opp i annen tekst.", - "TEXT_REPLACE_MESSAGE0": "erstatt %1 med %2 i %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Erstatter alle forekomster av noe tekst i en annen tekst.", - "TEXT_REVERSE_MESSAGE0": "reverser %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Reverserer rekkefølgen på tegnene i teksten.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "opprett en tom liste", - "LISTS_CREATE_EMPTY_TOOLTIP": "Returnerer en tom liste, altså med lengde 0", - "LISTS_CREATE_WITH_TOOLTIP": "Lag en liste med et vilkårlig antall elementer.", - "LISTS_CREATE_WITH_INPUT_WITH": "lag en liste med", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "liste", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Legg til, fjern eller endre rekkefølgen for å endre på denne delen av listen.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Tilføy et element til listen.", - "LISTS_REPEAT_TOOLTIP": "Lager en liste hvor den gitte verdien gjentas et antall ganger.", - "LISTS_REPEAT_TITLE": "Lag en liste hvor elementet %1 forekommer %2 ganger", - "LISTS_LENGTH_TITLE": "lengden på %1", - "LISTS_LENGTH_TOOLTIP": "Returnerer lengden til en liste.", - "LISTS_ISEMPTY_TITLE": "%1 er tom", - "LISTS_ISEMPTY_TOOLTIP": "Returnerer sann hvis listen er tom.", - "LISTS_INLIST": "i listen", - "LISTS_INDEX_OF_FIRST": "finn første forekomst av elementet", - "LISTS_INDEX_OF_LAST": "finn siste forekomst av elementet", - "LISTS_INDEX_OF_TOOLTIP": "Returnerer indeksen av den første/siste forekomsten av elementet i lista. Returnerer %1 hvis ikke funnet.", - "LISTS_GET_INDEX_GET": "hent", - "LISTS_GET_INDEX_GET_REMOVE": "hent og fjern", - "LISTS_GET_INDEX_REMOVE": "fjern", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# fra slutten", - "LISTS_GET_INDEX_FIRST": "først", - "LISTS_GET_INDEX_LAST": "siste", - "LISTS_GET_INDEX_RANDOM": "tilfeldig", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 er det første elementet.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 er det siste elementet.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Returner elementet på den angitte posisjonen i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Returnerer det første elementet i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Returnerer det siste elementet i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Returnerer et tilfeldig element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Fjerner og returnerer elementet ved en gitt posisjon i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Fjerner og returnerer det første elementet i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Fjerner og returnerer det siste elementet i en liste.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Fjerner og returnerer et tilfeldig element i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Fjerner et element ved en gitt posisjon i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Fjerner det første elementet i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Fjerner det siste elementet i en liste.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Fjerner et tilfeldig element i en liste.", - "LISTS_SET_INDEX_SET": "sett", - "LISTS_SET_INDEX_INSERT": "sett inn ved", - "LISTS_SET_INDEX_INPUT_TO": "som", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Setter inn elementet ved den angitte posisjonen i en liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Angir det første elementet i en liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Angir det siste elementet i en liste.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Angir et tilfeldig element i en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Setter inn elementet ved den angitte posisjonen i en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Setter inn elementet i starten av en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Tilføy elementet til slutten av en liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Setter inn elementet ved en tilfeldig posisjon i en liste.", - "LISTS_GET_SUBLIST_START_FROM_START": "Hent del-listen fra #", - "LISTS_GET_SUBLIST_START_FROM_END": "Hent de siste # elementene", - "LISTS_GET_SUBLIST_START_FIRST": "Hent en del av listen", - "LISTS_GET_SUBLIST_END_FROM_START": "til #", - "LISTS_GET_SUBLIST_END_FROM_END": "til # fra slutten", - "LISTS_GET_SUBLIST_END_LAST": "til siste", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "Kopiérer en ønsket del av en liste.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sorter %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sorter en kopi av en liste.", - "LISTS_SORT_ORDER_ASCENDING": "stigende", - "LISTS_SORT_ORDER_DESCENDING": "synkende", - "LISTS_SORT_TYPE_NUMERIC": "numerisk", - "LISTS_SORT_TYPE_TEXT": "alfabetisk", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetisk, ignorert store/små bokstaver", - "LISTS_SPLIT_LIST_FROM_TEXT": "lag liste av tekst", - "LISTS_SPLIT_TEXT_FROM_LIST": "lag tekst av liste", - "LISTS_SPLIT_WITH_DELIMITER": "med avgrenser", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Splitt teksten til en liste med tekster, brutt ved hver avgrenser.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Føy sammen en liste tekster til én tekst, avskilt av en avgrenser.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "reverser %1", - "LISTS_REVERSE_TOOLTIP": "Reverser en kopi av ei liste.", - "VARIABLES_GET_TOOLTIP": "Returnerer verdien av denne variabelen.", - "VARIABLES_GET_CREATE_SET": "Opprett 'sett %1'", - "VARIABLES_SET": "sett %1 til %2", - "VARIABLES_SET_TOOLTIP": "Setter verdien av denne variablen lik parameteren.", - "VARIABLES_SET_CREATE_GET": "Opprett 'hent %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "til", - "PROCEDURES_DEFNORETURN_PROCEDURE": "gjør noe", - "PROCEDURES_BEFORE_PARAMS": "med:", - "PROCEDURES_CALL_BEFORE_PARAMS": "med:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Opprett en funksjon som ikke har noe resultat.", - "PROCEDURES_DEFNORETURN_COMMENT": "Beskriv denne funksjonen…", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "returner", - "PROCEDURES_DEFRETURN_TOOLTIP": "Oppretter en funksjon som har et resultat.", - "PROCEDURES_ALLOW_STATEMENTS": "tillat uttalelser", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Advarsel: Denne funksjonen har duplikate parametere.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Kjør den brukerdefinerte funksjonen '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Kjør den brukerdefinerte funksjonen'%1' og bruk resultatet av den.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "parametere", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Legg til, fjern eller endre rekkefølgen på input til denne funksjonen.", - "PROCEDURES_MUTATORARG_TITLE": "Navn på parameter:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Legg til en input til funksjonen.", - "PROCEDURES_HIGHLIGHT_DEF": "Marker funksjonsdefinisjonen", - "PROCEDURES_CREATE_DO": "Opprett '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Hvis en verdi er sann, returner da en annen verdi.", - "PROCEDURES_IFRETURN_WARNING": "Advarsel: Denne blokken kan bare benyttes innenfor en funksjonsdefinisjon.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Si noe …" -} diff --git a/lib/blockly/msg/json/nl.json b/lib/blockly/msg/json/nl.json deleted file mode 100644 index bbab4c6..0000000 --- a/lib/blockly/msg/json/nl.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Siebrand", - "McDutchie", - "Ribert", - "MedShot", - "아라", - "JaapDeKleine", - "Sjoerddebruin", - "Lemondoge", - "Jeleniccz", - "Festina90", - "Optilete", - "Patio", - "KlaasZ4usV", - "Marcelhospers", - "Elroy" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "UNNAMED_KEY": "zonder naam", - "TODAY": "Vandaag", - "DUPLICATE_BLOCK": "Duplicaat", - "ADD_COMMENT": "Opmerking toevoegen", - "REMOVE_COMMENT": "Opmerking verwijderen", - "DUPLICATE_COMMENT": "Opmerking dupliceren", - "EXTERNAL_INPUTS": "Externe invoer", - "INLINE_INPUTS": "Inline invoer", - "DELETE_BLOCK": "Blok verwijderen", - "DELETE_X_BLOCKS": "%1 blokken verwijderen", - "DELETE_ALL_BLOCKS": "Alle %1 blokken verwijderen?", - "CLEAN_UP": "Blokken opschonen", - "COLLAPSE_BLOCK": "Blok samenvouwen", - "COLLAPSE_ALL": "Blokken samenvouwen", - "EXPAND_BLOCK": "Blok uitvouwen", - "EXPAND_ALL": "Blokken uitvouwen", - "DISABLE_BLOCK": "Blok uitschakelen", - "ENABLE_BLOCK": "Blok inschakelen", - "HELP": "Hulp", - "UNDO": "Ongedaan maken", - "REDO": "Opnieuw", - "CHANGE_VALUE_TITLE": "Waarde wijzigen:", - "RENAME_VARIABLE": "Variabele hernoemen...", - "RENAME_VARIABLE_TITLE": "Alle variabelen \"%1\" hernoemen naar:", - "NEW_VARIABLE": "Variabele maken...", - "NEW_STRING_VARIABLE": "Creëer tekstvariabele", - "NEW_NUMBER_VARIABLE": "Creëer numeriek variabele", - "NEW_COLOUR_VARIABLE": "Creëer kleurvariabele", - "NEW_VARIABLE_TYPE_TITLE": "Nieuw soort variabele", - "NEW_VARIABLE_TITLE": "Nieuwe variabelenaam:", - "VARIABLE_ALREADY_EXISTS": "Er bestaat al een variabele met de naam \"%1\".", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Een variabele met de naam '%1' bestaat al voor een ander soort variabele: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "%1 gebruiken van de variabele \"%2\" verwijderen?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "De variabele \"%1\" kan niet verwijderd worden omdat die onderdeel uitmaakt van de definitie van de functie \"%2\"", - "DELETE_VARIABLE": "Verwijder de variabele \"%1\"", - "COLOUR_PICKER_HELPURL": "https://nl.wikipedia.org/wiki/Kleur", - "COLOUR_PICKER_TOOLTIP": "Kies een kleur in het palet.", - "COLOUR_RANDOM_TITLE": "willekeurige kleur", - "COLOUR_RANDOM_TOOLTIP": "Kies een willekeurige kleur.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "kleuren met", - "COLOUR_RGB_RED": "rood", - "COLOUR_RGB_GREEN": "groen", - "COLOUR_RGB_BLUE": "blauw", - "COLOUR_RGB_TOOLTIP": "Maak een kleur met de opgegeven hoeveelheid rood, groen en blauw. Alle waarden moeten tussen 0 en 100 liggen.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "mengen", - "COLOUR_BLEND_COLOUR1": "kleur 1", - "COLOUR_BLEND_COLOUR2": "kleur 2", - "COLOUR_BLEND_RATIO": "verhouding", - "COLOUR_BLEND_TOOLTIP": "Mengt twee kleuren samen met een bepaalde verhouding (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://nl.wikipedia.org/wiki/Repetitie_(informatica)#For_en_Foreach", - "CONTROLS_REPEAT_TITLE": "%1 keer herhalen", - "CONTROLS_REPEAT_INPUT_DO": "voer uit", - "CONTROLS_REPEAT_TOOLTIP": "Voer een aantal opdrachten meerdere keren uit.", - "CONTROLS_WHILEUNTIL_HELPURL": "https://github.com/google/blockly/wiki/Loops#repeat", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "herhalen zolang", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "herhalen totdat", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Terwijl een waarde waar is de volgende opdrachten uitvoeren.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Terwijl een waarde onwaar is de volgende opdrachten uitvoeren.", - "CONTROLS_FOR_HELPURL": "https://github.com/google/blockly/wiki/Loops#count-with", - "CONTROLS_FOR_TOOLTIP": "Laat de variabele \"%1\" de waarden aannemen van het beginnummer tot het laatste nummer, tellende met het opgegeven interval, en met uitvoering van de opgegeven blokken.", - "CONTROLS_FOR_TITLE": "rekenen met %1 van %2 tot %3 in stappen van %4", - "CONTROLS_FOREACH_TITLE": "voor ieder item %1 in lijst %2", - "CONTROLS_FOREACH_TOOLTIP": "Voor ieder item in een lijst, stel de variabele \"%1\" in op het item en voer daarna opdrachten uit.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "uit lus breken", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "doorgaan met de volgende iteratie van de lus", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "uit de bovenliggende lus breken", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "De rest van deze lus overslaan en doorgaan met de volgende herhaling.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Waarschuwing: dit blok mag alleen gebruikt worden in een lus.", - "CONTROLS_IF_HELPURL": "https://github.com/google/blockly/wiki/IfElse", - "CONTROLS_IF_TOOLTIP_1": "Als een waarde waar is, voer dan opdrachten uit.", - "CONTROLS_IF_TOOLTIP_2": "Als een waarde waar is, voert dan het eerste blok met opdrachten uit. Voer andere het tweede blok met opdrachten uit.", - "CONTROLS_IF_TOOLTIP_3": "Als de eerste waarde waar is, voer dan het eerste blok met opdrachten uit. Voer anders, als de tweede waarde waar is, het tweede blok met opdrachten uit.", - "CONTROLS_IF_TOOLTIP_4": "Als de eerste waarde \"waar\" is, voer dan het eerste blok uit. Voer anders wanneer de tweede waarde \"waar\" is, het tweede blok uit. Als geen van beide waarden waar zijn, voer dan het laatste blok uit.", - "CONTROLS_IF_MSG_IF": "als", - "CONTROLS_IF_MSG_ELSEIF": "anders als", - "CONTROLS_IF_MSG_ELSE": "anders", - "CONTROLS_IF_IF_TOOLTIP": "Voeg stukken toe, verwijder of wijzig de volgorde om dit \"als\"-blok te wijzigen.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Voeg een voorwaarde toe aan het als-blok.", - "CONTROLS_IF_ELSE_TOOLTIP": "Voeg een laatste, vang-alles conditie toe aan het als-statement.", - "IOS_OK": "OK", - "IOS_CANCEL": "Annuleren", - "IOS_ERROR": "Fout", - "IOS_PROCEDURES_INPUTS": "INVOER", - "IOS_PROCEDURES_ADD_INPUT": "+ Invoer toevoegen", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Statements toestaan", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Deze functie heeft dubbele invoeren.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Variabele toevoegen", - "IOS_VARIABLES_ADD_BUTTON": "Toevoegen", - "IOS_VARIABLES_RENAME_BUTTON": "Hernoemen", - "IOS_VARIABLES_DELETE_BUTTON": "Verwijderen", - "IOS_VARIABLES_VARIABLE_NAME": "Variabelenaam", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "U kunt geen lege variabelenaam gebruiken.", - "LOGIC_COMPARE_HELPURL": "https://nl.wikipedia.org/wiki/Ongelijkheid_(wiskunde)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Geeft \"waar\", als beide waarden gelijk aan elkaar zijn.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Geeft \"waar\" terug als de waarden niet gelijk zijn aan elkaar.", - "LOGIC_COMPARE_TOOLTIP_LT": "Geeft \"waar\" als de eerste invoer kleiner is dan de tweede invoer.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Geeft \"waar\" terug als de eerste invoer kleiner of gelijk is aan de tweede invoer.", - "LOGIC_COMPARE_TOOLTIP_GT": "Geeft \"waar\" terug als de eerste invoer meer is dan de tweede invoer.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Geeft \"waar\" terug als de eerste invoer groter is of gelijk aan de tweede invoer.", - "LOGIC_OPERATION_HELPURL": "https://github.com/google/blockly/wiki/Logic#logical-operations", - "LOGIC_OPERATION_TOOLTIP_AND": "Geeft waar als beide waarden waar zijn.", - "LOGIC_OPERATION_AND": "en", - "LOGIC_OPERATION_TOOLTIP_OR": "Geeft \"waar\" terug als in ieder geval één van de waarden waar is.", - "LOGIC_OPERATION_OR": "of", - "LOGIC_NEGATE_HELPURL": "https://github.com/google/blockly/wiki/Logic#not", - "LOGIC_NEGATE_TITLE": "niet %1", - "LOGIC_NEGATE_TOOLTIP": "Geeft \"waar\" terug als de invoer \"onwaar\" is. Geeft \"onwaar\" als de invoer \"waar\" is.", - "LOGIC_BOOLEAN_HELPURL": "https://github.com/google/blockly/wiki/Logic#values", - "LOGIC_BOOLEAN_TRUE": "waar", - "LOGIC_BOOLEAN_FALSE": "onwaar", - "LOGIC_BOOLEAN_TOOLTIP": "Geeft \"waar\" of \"onwaar\" terug.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "niets", - "LOGIC_NULL_TOOLTIP": "Geeft niets terug.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "als waar", - "LOGIC_TERNARY_IF_FALSE": "als onwaar", - "LOGIC_TERNARY_TOOLTIP": "Test de voorwaarde in \"test\". Als de voorwaarde \"waar\" is, geef de waarde van \"als waar\" terug; geef anders de waarde van \"als onwaar\" terug.", - "MATH_NUMBER_HELPURL": "https://nl.wikipedia.org/wiki/Getal_%28wiskunde%29", - "MATH_NUMBER_TOOLTIP": "Een getal.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "arctan", - "MATH_ARITHMETIC_HELPURL": "https://nl.wikipedia.org/wiki/Rekenen", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Geeft de som van 2 getallen.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Geeft het verschil van de twee getallen.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Geeft het product terug van de twee getallen.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Geeft de gedeelde waarde van twee getallen.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Geeft het eerste getal tot de macht van het tweede getal.", - "MATH_SINGLE_HELPURL": "https://nl.wikipedia.org/wiki/Vierkantswortel", - "MATH_SINGLE_OP_ROOT": "wortel", - "MATH_SINGLE_TOOLTIP_ROOT": "Geeft de wortel van een getal.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluut", - "MATH_SINGLE_TOOLTIP_ABS": "Geeft de absolute waarde van een getal.", - "MATH_SINGLE_TOOLTIP_NEG": "Geeft de negatief van een getal.", - "MATH_SINGLE_TOOLTIP_LN": "Geeft het natuurlijk logaritme van een getal.", - "MATH_SINGLE_TOOLTIP_LOG10": "Geeft het logaritme basis 10 van een getal.", - "MATH_SINGLE_TOOLTIP_EXP": "Geeft e tot de macht van een getal.", - "MATH_SINGLE_TOOLTIP_POW10": "Geeft 10 tot de macht van een getal.", - "MATH_TRIG_HELPURL": "https://nl.wikipedia.org/wiki/Goniometrische_functie", - "MATH_TRIG_TOOLTIP_SIN": "Geeft de sinus van een graad (geen radialen).", - "MATH_TRIG_TOOLTIP_COS": "Geeft de cosinus van een graad (geen radialen).", - "MATH_TRIG_TOOLTIP_TAN": "Geeft de tangens van een graad (geen radialen).", - "MATH_TRIG_TOOLTIP_ASIN": "Geeft de arcsinus van een getal.", - "MATH_TRIG_TOOLTIP_ACOS": "Geeft de arccosinus van een getal.", - "MATH_TRIG_TOOLTIP_ATAN": "Geeft de arctangens van een getal.", - "MATH_CONSTANT_HELPURL": "https://nl.wikipedia.org/wiki/Wiskundige_constante", - "MATH_CONSTANT_TOOLTIP": "Geeft een van de vaak voorkomende constante waardes: π (3.141…), e (2.718…), φ (1.618…), √2 (1.414…), √½ (0.707…), of ∞ (oneindig).", - "MATH_IS_EVEN": "is even", - "MATH_IS_ODD": "is oneven", - "MATH_IS_PRIME": "is priemgetal", - "MATH_IS_WHOLE": "is geheel getal", - "MATH_IS_POSITIVE": "is positief", - "MATH_IS_NEGATIVE": "is negatief", - "MATH_IS_DIVISIBLE_BY": "is deelbaar door", - "MATH_IS_TOOLTIP": "Test of een getal even, oneven, een priemgetal, geheel, positief of negatief is, of deelbaar is door een bepaald getal. Geeft \"waar\" of \"onwaar\".", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "%1 wijzigen met %2", - "MATH_CHANGE_TOOLTIP": "Voegt een getal toe aan variabele \"%1\".", - "MATH_ROUND_HELPURL": "https://nl.wikipedia.org/wiki/Afronden", - "MATH_ROUND_TOOLTIP": "Rondt een getal af omhoog of naar beneden.", - "MATH_ROUND_OPERATOR_ROUND": "afronden", - "MATH_ROUND_OPERATOR_ROUNDUP": "omhoog afronden", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "naar beneden afronden", - "MATH_ONLIST_OPERATOR_SUM": "som van lijst", - "MATH_ONLIST_TOOLTIP_SUM": "Geeft de som van alle getallen in de lijst.", - "MATH_ONLIST_OPERATOR_MIN": "laagste uit lijst", - "MATH_ONLIST_TOOLTIP_MIN": "Geeft het kleinste getal uit een lijst.", - "MATH_ONLIST_OPERATOR_MAX": "hoogste uit lijst", - "MATH_ONLIST_TOOLTIP_MAX": "Geeft het grootste getal in een lijst.", - "MATH_ONLIST_OPERATOR_AVERAGE": "gemiddelde van lijst", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Geeft het gemiddelde terug van de numerieke waardes in een lijst.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediaan van lijst", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Geeft de mediaan in de lijst.", - "MATH_ONLIST_OPERATOR_MODE": "modi van lijst", - "MATH_ONLIST_TOOLTIP_MODE": "Geeft een lijst van de meest voorkomende onderdelen in de lijst.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standaarddeviatie van lijst", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Geeft de standaardafwijking van de lijst.", - "MATH_ONLIST_OPERATOR_RANDOM": "willekeurige item van lijst", - "MATH_ONLIST_TOOLTIP_RANDOM": "Geeft een willekeurig item uit de lijst terug.", - "MATH_MODULO_HELPURL": "https://nl.wikipedia.org/wiki/Modulair_rekenen", - "MATH_MODULO_TITLE": "restgetal van %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Geeft het restgetal van het resultaat van de deling van de twee getallen.", - "MATH_CONSTRAIN_TITLE": "beperk %1 van minimaal %2 tot maximaal %3", - "MATH_CONSTRAIN_TOOLTIP": "Beperk een getal tussen de twee opgegeven limieten (inclusief).", - "MATH_RANDOM_INT_HELPURL": "https://nl.wikipedia.org/wiki/Toevalsgenerator", - "MATH_RANDOM_INT_TITLE": "willekeurig geheel getal van %1 tot %2", - "MATH_RANDOM_INT_TOOLTIP": "Geeft een willekeurig getal tussen de 2 opgegeven limieten in, inclusief.", - "MATH_RANDOM_FLOAT_HELPURL": "https://nl.wikipedia.org/wiki/Toevalsgenerator", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "willekeurige fractie", - "MATH_RANDOM_FLOAT_TOOLTIP": "Geeft een willekeurige fractie tussen 0.0 (inclusief) en 1.0 (exclusief).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 van X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Geef de boogtangens van punt (X, Y) terug in graden tussen -180 naar 180.", - "TEXT_TEXT_HELPURL": "https://nl.wikipedia.org/wiki/String_%28informatica%29", - "TEXT_TEXT_TOOLTIP": "Een letter, woord of een regel tekst.", - "TEXT_JOIN_HELPURL": "https://github.com/google/blockly/wiki/Text#text-creation", - "TEXT_JOIN_TITLE_CREATEWITH": "maak tekst met", - "TEXT_JOIN_TOOLTIP": "Maakt een stuk tekst door één of meer items samen te voegen.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "samenvoegen", - "TEXT_CREATE_JOIN_TOOLTIP": "Toevoegen, verwijderen of volgorde wijzigen van secties om dit tekstblok opnieuw in te stellen.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Voegt een item aan de tekst toe.", - "TEXT_APPEND_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_APPEND_TITLE": "voor%1 voeg tekst toe van %2", - "TEXT_APPEND_TOOLTIP": "Voeg tekst toe aan de variabele \"%1\".", - "TEXT_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_LENGTH_TITLE": "lengte van %1", - "TEXT_LENGTH_TOOLTIP": "Geeft het aantal tekens terug (inclusief spaties) in de opgegeven tekst.", - "TEXT_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Text#checking-for-empty-text", - "TEXT_ISEMPTY_TITLE": "%1 is leeg", - "TEXT_ISEMPTY_TOOLTIP": "Geeft \"waar\" terug, als de opgegeven tekst leeg is.", - "TEXT_INDEXOF_HELPURL": "https://github.com/google/blockly/wiki/Text#finding-text", - "TEXT_INDEXOF_TOOLTIP": "Geeft de index terug van het eerste of laatste voorkomen van de eerste tekst in de tweede tekst. Geeft %1 terug als de tekst niet gevonden is.", - "TEXT_INDEXOF_TITLE": "in tekst %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "zoek eerste voorkomen van tekst", - "TEXT_INDEXOF_OPERATOR_LAST": "zoek het laatste voorkomen van tekst", - "TEXT_CHARAT_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-text", - "TEXT_CHARAT_TITLE": "in tekst %1 %2", - "TEXT_CHARAT_FROM_START": "haal letter # op", - "TEXT_CHARAT_FROM_END": "haal letter # op vanaf einde", - "TEXT_CHARAT_FIRST": "haal eerste letter op", - "TEXT_CHARAT_LAST": "haal laatste letter op", - "TEXT_CHARAT_RANDOM": "haal willekeurige letter op", - "TEXT_CHARAT_TOOLTIP": "Geeft de letter op de opgegeven positie terug.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Geeft het opgegeven onderdeel van de tekst terug.", - "TEXT_GET_SUBSTRING_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in tekst", - "TEXT_GET_SUBSTRING_START_FROM_START": "haal subtekst op vanaf letter #", - "TEXT_GET_SUBSTRING_START_FROM_END": "haal subtekst op vanaf letter # vanaf einde", - "TEXT_GET_SUBSTRING_START_FIRST": "haal subtekst op van eerste letter", - "TEXT_GET_SUBSTRING_END_FROM_START": "naar letter #", - "TEXT_GET_SUBSTRING_END_FROM_END": "van letter # tot einde", - "TEXT_GET_SUBSTRING_END_LAST": "naar laatste letter", - "TEXT_CHANGECASE_HELPURL": "https://github.com/google/blockly/wiki/Text#adjusting-text-case", - "TEXT_CHANGECASE_TOOLTIP": "Geef een kopie van de tekst met veranderde hoofdletters terug.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "naar HOOFDLETTERS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "naar kleine letters", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "naar Hoofdletter Per Woord", - "TEXT_TRIM_HELPURL": "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces", - "TEXT_TRIM_TOOLTIP": "Geeft een kopie van de tekst met verwijderde spaties van één of beide kanten.", - "TEXT_TRIM_OPERATOR_BOTH": "spaties van beide kanten afhalen van", - "TEXT_TRIM_OPERATOR_LEFT": "spaties van de linkerkant verwijderen van", - "TEXT_TRIM_OPERATOR_RIGHT": "spaties van de rechterkant verwijderen van", - "TEXT_PRINT_HELPURL": "https://github.com/google/blockly/wiki/Text#printing-text", - "TEXT_PRINT_TITLE": "tekst weergeven: %1", - "TEXT_PRINT_TOOLTIP": "Drukt de opgegeven tekst, getal of een andere waarde af.", - "TEXT_PROMPT_HELPURL": "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user", - "TEXT_PROMPT_TYPE_TEXT": "vraagt om invoer met bericht", - "TEXT_PROMPT_TYPE_NUMBER": "vraagt de gebruiker om een getal met de tekst", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Vraagt de gebruiker om een getal in te voeren.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Vraagt de gebruiker om invoer.", - "TEXT_COUNT_MESSAGE0": "%1 in %2 tellen", - "TEXT_COUNT_TOOLTIP": "Tel hoe vaak bepaalde tekst voorkomt in andere tekst.", - "TEXT_REPLACE_MESSAGE0": "vervang %1 door %2 in %3", - "TEXT_REPLACE_TOOLTIP": "Vervang alle voorkomens van tekst in een andere tekst.", - "TEXT_REVERSE_MESSAGE0": "%1 omkeren", - "TEXT_REVERSE_TOOLTIP": "Keert de volgorde van de tekens in de tekst om.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "maak een lege lijst", - "LISTS_CREATE_EMPTY_TOOLTIP": "Geeft een lijst terug met lengte 0, zonder items", - "LISTS_CREATE_WITH_TOOLTIP": "Maak een lijst met een willekeurig aantal items.", - "LISTS_CREATE_WITH_INPUT_WITH": "maak een lijst met", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lijst", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Voeg stukken toe, verwijder ze of wijzig de volgorde om dit lijstblok aan te passen.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Voeg iets toe aan de lijst.", - "LISTS_REPEAT_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_REPEAT_TOOLTIP": "Maakt een lijst die bestaat uit de opgegeven waarde, het opgegeven aantal keer herhaald.", - "LISTS_REPEAT_TITLE": "Maak lijst met item %1, %2 keer herhaald", - "LISTS_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Lists#length-of", - "LISTS_LENGTH_TITLE": "lengte van %1", - "LISTS_LENGTH_TOOLTIP": "Geeft de lengte van een lijst terug.", - "LISTS_ISEMPTY_TITLE": "%1 is leeg", - "LISTS_ISEMPTY_TOOLTIP": "Geeft waar terug als de lijst leeg is.", - "LISTS_INLIST": "in lijst", - "LISTS_INDEX_OF_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", - "LISTS_INDEX_OF_FIRST": "zoek eerste voorkomen van item", - "LISTS_INDEX_OF_LAST": "zoek laatste voorkomen van item", - "LISTS_INDEX_OF_TOOLTIP": "Geeft de index terug van het eerste of laatste voorkomen van een item in de lijst. Geeft %1 terug als het item niet is gevonden.", - "LISTS_GET_INDEX_GET": "haal op", - "LISTS_GET_INDEX_GET_REMOVE": "haal op en verwijder", - "LISTS_GET_INDEX_REMOVE": "verwijder", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# van einde", - "LISTS_GET_INDEX_FIRST": "eerste", - "LISTS_GET_INDEX_LAST": "laatste", - "LISTS_GET_INDEX_RANDOM": "willekeurig", - "LISTS_INDEX_FROM_START_TOOLTIP": "Item %1 is het eerste item.", - "LISTS_INDEX_FROM_END_TOOLTIP": "Item %1 is het laatste item.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Geeft het item op de opgegeven positie in een lijst.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Geeft het eerste item in een lijst terug.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Geeft het laatste item in een lijst terug.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Geeft een willekeurig item uit een lijst.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Geeft het item op de opgegeven positie in een lijst terug en verwijdert het.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Geeft het laatste item in een lijst terug en verwijdert het.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Geeft het laatste item uit een lijst terug en verwijdert het.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Geeft een willekeurig item in een lijst terug en verwijdert het.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Verwijdert het item op de opgegeven positie in een lijst.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Verwijdert het eerste item in een lijst.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Verwijdert het laatste item uit een lijst.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Verwijdert een willekeurig item uit een lijst.", - "LISTS_SET_INDEX_HELPURL": "https://github.com/google/blockly/wiki/Lists#in-list--set", - "LISTS_SET_INDEX_SET": "stel in", - "LISTS_SET_INDEX_INSERT": "tussenvoegen op", - "LISTS_SET_INDEX_INPUT_TO": "als", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Zet het item op de opgegeven positie in de lijst.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Stelt het eerste item in een lijst in.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Stelt het laatste item van een lijst in.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Stelt een willekeurig item uit de lijst in.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Voegt het item op een opgegeven positie in een lijst in.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Voegt het item toe aan het begin van de lijst.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Voeg het item aan het einde van een lijst toe.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Voegt het item op een willekeurige positie in de lijst in.", - "LISTS_GET_SUBLIST_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-a-sublist", - "LISTS_GET_SUBLIST_START_FROM_START": "haal sublijst op vanaf positie", - "LISTS_GET_SUBLIST_START_FROM_END": "haal sublijst op van positie vanaf einde", - "LISTS_GET_SUBLIST_START_FIRST": "haal sublijst op vanaf eerste", - "LISTS_GET_SUBLIST_END_FROM_START": "naar item", - "LISTS_GET_SUBLIST_END_FROM_END": "naar # vanaf einde", - "LISTS_GET_SUBLIST_END_LAST": "naar laatste", - "LISTS_GET_SUBLIST_TOOLTIP": "Maakt een kopie van het opgegeven deel van de lijst.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sorteer %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sorteer een kopie van een lijst.", - "LISTS_SORT_ORDER_ASCENDING": "oplopend", - "LISTS_SORT_ORDER_DESCENDING": "aflopend", - "LISTS_SORT_TYPE_NUMERIC": "numeriek", - "LISTS_SORT_TYPE_TEXT": "alfabetisch", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetisch, negeer hoofd-/kleine letters", - "LISTS_SPLIT_LIST_FROM_TEXT": "lijst maken van tekst", - "LISTS_SPLIT_TEXT_FROM_LIST": "tekst maken van lijst", - "LISTS_SPLIT_WITH_DELIMITER": "met scheidingsteken", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Tekst splitsen in een lijst van teksten op basis van een scheidingsteken.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Lijst van tekstdelen samenvoegen in één stuk tekst, waarbij de tekstdelen gescheiden zijn door een scheidingsteken.", - "LISTS_REVERSE_MESSAGE0": "%1 omkeren", - "LISTS_REVERSE_TOOLTIP": "Keert een kopie van een lijst om.", - "VARIABLES_GET_HELPURL": "https://github.com/google/blockly/wiki/Variables#get", - "VARIABLES_GET_TOOLTIP": "Geeft de waarde van deze variabele.", - "VARIABLES_GET_CREATE_SET": "Maak \"verander %1\"", - "VARIABLES_SET_HELPURL": "https://github.com/google/blockly/wiki/Variables#set", - "VARIABLES_SET": "stel %1 in op %2", - "VARIABLES_SET_TOOLTIP": "Verandert de waarde van de variabele naar de waarde van de invoer.", - "VARIABLES_SET_CREATE_GET": "Maak 'opvragen van %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://nl.wikipedia.org/wiki/Subprogramma", - "PROCEDURES_DEFNORETURN_TITLE": "om", - "PROCEDURES_DEFNORETURN_PROCEDURE": "doe iets", - "PROCEDURES_BEFORE_PARAMS": "met:", - "PROCEDURES_CALL_BEFORE_PARAMS": "met:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Maakt een functie zonder uitvoer.", - "PROCEDURES_DEFNORETURN_COMMENT": "Deze functie beschrijven...", - "PROCEDURES_DEFRETURN_HELPURL": "https://nl.wikipedia.org/wiki/Subprogramma", - "PROCEDURES_DEFRETURN_RETURN": "uitvoeren", - "PROCEDURES_DEFRETURN_TOOLTIP": "Maakt een functie met een uitvoer.", - "PROCEDURES_ALLOW_STATEMENTS": "statements toestaan", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Waarschuwing: deze functie heeft parameters met dezelfde naam.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://nl.wikipedia.org/wiki/Subprogramma", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Voer de door de gebruiker gedefinieerde functie \"%1\" uit.", - "PROCEDURES_CALLRETURN_HELPURL": "https://nl.wikipedia.org/wiki/Subprogramma", - "PROCEDURES_CALLRETURN_TOOLTIP": "Voer de door de gebruiker gedefinieerde functie \"%1\" uit en gebruik de uitvoer.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ingangen", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Invoer van deze functie toevoegen, verwijderen of herordenen.", - "PROCEDURES_MUTATORARG_TITLE": "invoernaam:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Een invoer aan de functie toevoegen.", - "PROCEDURES_HIGHLIGHT_DEF": "Accentueer functiedefinitie", - "PROCEDURES_CREATE_DO": "Maak \"%1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Als de eerste waarde \"waar\" is, geef dan de tweede waarde terug.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Waarschuwing: dit blok mag alleen gebruikt worden binnen de definitie van een functie.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Zeg iets...", - "COLLAPSED_WARNINGS_WARNING": "Samengevouwen blokken bevatten waarschuwingen." -} diff --git a/lib/blockly/msg/json/oc.json b/lib/blockly/msg/json/oc.json deleted file mode 100644 index 758ae13..0000000 --- a/lib/blockly/msg/json/oc.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Cedric31" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "TODAY": "Uèi", - "DUPLICATE_BLOCK": "Duplicar", - "ADD_COMMENT": "Apondre un comentari", - "REMOVE_COMMENT": "Suprimir un comentari", - "EXTERNAL_INPUTS": "Entradas extèrnas", - "INLINE_INPUTS": "Entradas en linha", - "DELETE_BLOCK": "Suprimir lo blòt", - "DELETE_X_BLOCKS": "Suprimir %1 blòts", - "DELETE_ALL_BLOCKS": "Suprimir totes los %1 blòts ?", - "CLEAN_UP": "Netejar los blòts", - "COLLAPSE_BLOCK": "Redusir lo blòt", - "COLLAPSE_ALL": "Redusir los blòts", - "EXPAND_BLOCK": "Desvolopar lo blòt", - "EXPAND_ALL": "Desvolopar los blòts", - "DISABLE_BLOCK": "Desactivar lo blòt", - "ENABLE_BLOCK": "Activar lo blòt", - "HELP": "Ajuda", - "UNDO": "Anullar", - "REDO": "Refar", - "CHANGE_VALUE_TITLE": "Modificar la valor :", - "RENAME_VARIABLE": "Renomenar la variabla…", - "RENAME_VARIABLE_TITLE": "Renomenar totas las variablas « %1 » a :", - "NEW_VARIABLE": "Crear una variabla...", - "NEW_STRING_VARIABLE": "Crear una variabla cadena…", - "NEW_NUMBER_VARIABLE": "Crear una variabla nombre…", - "NEW_COLOUR_VARIABLE": "Crear una variabla color…", - "NEW_VARIABLE_TYPE_TITLE": "Novèl tipe de variabla :", - "NEW_VARIABLE_TITLE": "Nom de la novèla variabla :", - "VARIABLE_ALREADY_EXISTS": "Existís ja una variabla nomenada \"%1\".", - "DELETE_VARIABLE": "Suprimir la variabla '%1'", - "COLOUR_PICKER_HELPURL": "https://oc.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Causir una color dins la paleta.", - "COLOUR_RANDOM_TITLE": "color aleatòria", - "COLOUR_RANDOM_TOOLTIP": "Causir una color a l'azard.", - "COLOUR_RGB_TITLE": "coloriar amb", - "COLOUR_RGB_RED": "roge", - "COLOUR_RGB_GREEN": "verd", - "COLOUR_RGB_BLUE": "blau", - "COLOUR_BLEND_TITLE": "mesclar", - "COLOUR_BLEND_COLOUR1": "color 1", - "COLOUR_BLEND_COLOUR2": "color 2", - "COLOUR_BLEND_RATIO": "ratio", - "CONTROLS_REPEAT_HELPURL": "https://oc.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repetir %1 còps", - "CONTROLS_REPEAT_INPUT_DO": "far", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetir tant que", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repetir fins a", - "CONTROLS_FOR_TITLE": "comptar amb %1 de %2 a %3 per %4", - "CONTROLS_FOREACH_TITLE": "per cada element %1 dins la lista %2", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "quitar la bocla", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "passar a l’iteracion de bocla seguenta", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Sortir de la bocla englobanta.", - "CONTROLS_IF_MSG_IF": "se", - "CONTROLS_IF_MSG_ELSEIF": "siquenon se", - "CONTROLS_IF_MSG_ELSE": "siquenon", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Apondre una condicion al blòt 'se'.", - "IOS_OK": "D'acòrdi", - "IOS_CANCEL": "Anullar", - "IOS_ERROR": "Error", - "IOS_PROCEDURES_INPUTS": "ENTRADAS", - "IOS_PROCEDURES_ADD_INPUT": "+ Apondre una entrada", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Òrdres autorizats", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Aquesta foncion a d'entradas duplicadas.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Apondre una variabla", - "IOS_VARIABLES_ADD_BUTTON": "Apondre", - "IOS_VARIABLES_RENAME_BUTTON": "Renomenar", - "IOS_VARIABLES_DELETE_BUTTON": "Suprimir", - "IOS_VARIABLES_VARIABLE_NAME": "Nom de la variabla", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Podètz pas utilizar un nom de variabla void.", - "LOGIC_COMPARE_HELPURL": "https://fr.wikipedia.org/wiki/Inegalite_(mathematiques)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Renviar verai se las doas entradas son egalas.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Renviar verai se las doas entradas son diferentas.", - "LOGIC_OPERATION_TOOLTIP_AND": "Renviar verai se las doas entradas son vertadièras.", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_OR": "o", - "LOGIC_NEGATE_TITLE": "pas %1", - "LOGIC_BOOLEAN_TRUE": "verai", - "LOGIC_BOOLEAN_FALSE": "fals", - "LOGIC_BOOLEAN_TOOLTIP": "Renvia siá verai siá fals.", - "LOGIC_NULL": "nul", - "LOGIC_NULL_TOOLTIP": "Renvia nul.", - "LOGIC_TERNARY_CONDITION": "tèst", - "LOGIC_TERNARY_IF_TRUE": "se verai", - "LOGIC_TERNARY_IF_FALSE": "se fals", - "MATH_NUMBER_HELPURL": "https://oc.wikipedia.org/wiki/Nombre", - "MATH_NUMBER_TOOLTIP": "Un nombre.", - "MATH_ARITHMETIC_HELPURL": "https://oc.wikipedia.org/wiki/Aritmetica", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Renvia la soma dels dos nombres.", - "MATH_SINGLE_HELPURL": "https://fr.wikipedia.org/wiki/Racine_carree", - "MATH_SINGLE_OP_ROOT": "raiç carrada", - "MATH_SINGLE_TOOLTIP_ROOT": "Renvia la raiç carrada d’un nombre.", - "MATH_SINGLE_OP_ABSOLUTE": "absolut", - "MATH_SINGLE_TOOLTIP_ABS": "Renvia la valor absoluda d’un nombre.", - "MATH_SINGLE_TOOLTIP_NEG": "Renvia l’opausat d’un nombre", - "MATH_SINGLE_TOOLTIP_LN": "Renvia lo logaritme natural d’un nombre.", - "MATH_SINGLE_TOOLTIP_LOG10": "Renvia lo logaritme decimal d’un nombre.", - "MATH_SINGLE_TOOLTIP_EXP": "Renvia a la poténcia d’un nombre.", - "MATH_SINGLE_TOOLTIP_POW10": "Renvia 10 a la poténcia d’un nombre.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Renvia lo sinus d’un angle en grases (pas en radians).", - "MATH_TRIG_TOOLTIP_COS": "Renvia lo cosinus d’un angle en grases (pas en radians).", - "MATH_TRIG_TOOLTIP_TAN": "Renvia la tangenta d’un angle en grases (pas en radians).", - "MATH_TRIG_TOOLTIP_ASIN": "Renvia l’arcsinus d’un nombre.", - "MATH_TRIG_TOOLTIP_ACOS": "Renvia l’arccosinus d’un nombre.", - "MATH_TRIG_TOOLTIP_ATAN": "Renvia l’arctangenta d’un nombre.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_IS_EVEN": "es par", - "MATH_IS_ODD": "es impar", - "MATH_IS_PRIME": "es primièr", - "MATH_IS_WHOLE": "es entièr", - "MATH_IS_POSITIVE": "es positiu", - "MATH_IS_NEGATIVE": "es negatiu", - "MATH_IS_DIVISIBLE_BY": "es devesible per", - "MATH_CHANGE_TITLE": "incrementar %1 per %2", - "MATH_ROUND_OPERATOR_ROUND": "arredondir", - "MATH_ROUND_OPERATOR_ROUNDUP": "arredondir al superior", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arredondir a l’inferior", - "MATH_ONLIST_OPERATOR_SUM": "soma de la lista", - "MATH_ONLIST_OPERATOR_MIN": "minimum de la lista", - "MATH_ONLIST_OPERATOR_MAX": "maximum de la lista", - "MATH_ONLIST_OPERATOR_AVERAGE": "mejana de la lista", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana de la lista", - "MATH_ONLIST_OPERATOR_MODE": "majoritaris de la lista", - "MATH_ONLIST_OPERATOR_STD_DEV": "escart-tipe de la lista", - "MATH_ONLIST_OPERATOR_RANDOM": "element aleatòri de lista", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "residú de %1 ÷ %2", - "MATH_CONSTRAIN_TITLE": "constrénher %1 entre %2 e %3", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fraccion aleatòria", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Una letra, un mot o una linha de tèxte.", - "TEXT_JOIN_TITLE_CREATEWITH": "crear un tèxte amb", - "TEXT_CREATE_JOIN_TITLE_JOIN": "jónher", - "TEXT_APPEND_TITLE": "a %1 apondre lo tèxte %2", - "TEXT_LENGTH_TITLE": "longor de %1", - "TEXT_ISEMPTY_TITLE": "%1 es void", - "TEXT_INDEXOF_TITLE": "dins lo tèxte %1 %2 %3", - "TEXT_CHARAT_TITLE": "dins lo tèxte %1 %2", - "TEXT_CHARAT_FROM_START": "obténer la letra #", - "TEXT_CHARAT_FROM_END": "obténer la letra # dempuèi la fin", - "TEXT_CHARAT_FIRST": "obténer la primièra letra", - "TEXT_CHARAT_LAST": "obténer la darrièra letra", - "TEXT_CHARAT_RANDOM": "obténer una letra a l'azard", - "TEXT_CHARAT_TOOLTIP": "Renvia la letra a la posicion indicada.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "dins lo tèxte", - "TEXT_GET_SUBSTRING_END_FROM_START": "fins a la letra #", - "TEXT_GET_SUBSTRING_END_LAST": "fins a la darrièra letra", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "en MAJUSCULAS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "en minusculas", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "en Majuscula Al Començament De Cada Mot", - "TEXT_TRIM_OPERATOR_BOTH": "suprimir los espacis dels dos costats", - "TEXT_PRINT_TITLE": "afichar %1", - "TEXT_COUNT_MESSAGE0": "nombre %1 sus %2", - "TEXT_REVERSE_MESSAGE0": "inversar %1", - "LISTS_CREATE_EMPTY_TITLE": "crear una lista voida", - "LISTS_CREATE_WITH_INPUT_WITH": "crear una lista amb", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Apondre un element a la lista.", - "LISTS_LENGTH_TITLE": "longitud de %1", - "LISTS_ISEMPTY_TITLE": "%1 es voida", - "LISTS_INLIST": "dins la lista", - "LISTS_GET_INDEX_GET": "obténer", - "LISTS_GET_INDEX_GET_REMOVE": "obténer e suprimir", - "LISTS_GET_INDEX_REMOVE": "suprimit", - "LISTS_GET_INDEX_FROM_END": "# dempuèi la fin", - "LISTS_GET_INDEX_FIRST": "primièr", - "LISTS_GET_INDEX_LAST": "darrièr", - "LISTS_GET_INDEX_RANDOM": "aleatòri", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 es lo primièr element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 es lo darrièr element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Renvia l'element de la posicion especificada dins la lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Renvia lo primièr element dins una lista.", - "LISTS_SET_INDEX_SET": "metre", - "LISTS_SET_INDEX_INSERT": "inserir en", - "LISTS_SET_INDEX_INPUT_TO": "coma", - "LISTS_GET_SUBLIST_END_FROM_START": "fins a #", - "LISTS_GET_SUBLIST_END_FROM_END": "fins a # dempuèi la fin", - "LISTS_GET_SUBLIST_END_LAST": "fins a la fin", - "LISTS_SORT_TITLE": "triar %1 %2 %3", - "LISTS_SORT_ORDER_ASCENDING": "creissent", - "LISTS_SORT_ORDER_DESCENDING": "descreissent", - "LISTS_SORT_TYPE_NUMERIC": "numeric", - "LISTS_SORT_TYPE_TEXT": "alfabetic", - "LISTS_SPLIT_WITH_DELIMITER": "amb lo separador", - "LISTS_REVERSE_MESSAGE0": "inversar %1", - "LISTS_REVERSE_TOOLTIP": "Inversar la còpia d’una lista.", - "VARIABLES_GET_CREATE_SET": "Crear 'fixar %1'", - "VARIABLES_SET": "fixar %1 a %2", - "VARIABLES_SET_CREATE_GET": "Crear 'obténer %1'", - "PROCEDURES_DEFNORETURN_TITLE": "a", - "PROCEDURES_DEFNORETURN_PROCEDURE": "far quicòm", - "PROCEDURES_BEFORE_PARAMS": "amb :", - "PROCEDURES_CALL_BEFORE_PARAMS": "amb :", - "PROCEDURES_DEFRETURN_RETURN": "retorn", - "PROCEDURES_ALLOW_STATEMENTS": "autorizar los òrdres", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entradas", - "PROCEDURES_MUTATORARG_TITLE": "nom de l’entrada :", - "PROCEDURES_CREATE_DO": "Crear '%1'" -} diff --git a/lib/blockly/msg/json/pl.json b/lib/blockly/msg/json/pl.json deleted file mode 100644 index 9791bfa..0000000 --- a/lib/blockly/msg/json/pl.json +++ /dev/null @@ -1,386 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Cotidianis", - "Faren", - "Vengir", - "Pbz", - "Pio387", - "아라", - "Mateon1", - "Expert3222", - "Cirasean", - "Fringoo", - "Chrumps", - "Woytecr", - "Liuxinyu970226", - "Krottyianock", - "Mazab IZW", - "Teeed", - "InternerowyGołąb", - "Wojtas", - "Stojex", - "Rail" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "UNNAMED_KEY": "bez nazwy", - "TODAY": "Dzisiaj", - "DUPLICATE_BLOCK": "Powiel", - "ADD_COMMENT": "Dodaj Komentarz", - "REMOVE_COMMENT": "Usuń komentarz", - "DUPLICATE_COMMENT": "Zduplikowany komentarz", - "EXTERNAL_INPUTS": "Zewnętrzne Wejścia", - "INLINE_INPUTS": "Wbudowane Wejścia", - "DELETE_BLOCK": "Usuń Klocek", - "DELETE_X_BLOCKS": "Usuń %1 Bloki(ów)", - "DELETE_ALL_BLOCKS": "Usunąć wszystkie klocki z %1?", - "CLEAN_UP": "Uporządkuj Bloki", - "COLLAPSE_BLOCK": "Zwiń Klocek", - "COLLAPSE_ALL": "Zwiń Bloki", - "EXPAND_BLOCK": "Rozwiń Klocek", - "EXPAND_ALL": "Rozwiń Bloki", - "DISABLE_BLOCK": "Wyłącz Klocek", - "ENABLE_BLOCK": "Włącz Blok", - "HELP": "Pomoc", - "UNDO": "Cofnij", - "REDO": "Ponów", - "CHANGE_VALUE_TITLE": "Zmień wartość:", - "RENAME_VARIABLE": "Zmień nazwę zmiennej...", - "RENAME_VARIABLE_TITLE": "Zmień nazwy wszystkich '%1' zmiennych na:", - "NEW_VARIABLE": "Utwórz zmienną...", - "NEW_STRING_VARIABLE": "Utwórz zmienną typu string", - "NEW_NUMBER_VARIABLE": "Utwórz zmienną typu number", - "NEW_COLOUR_VARIABLE": "Utwórz zmienną colour", - "NEW_VARIABLE_TYPE_TITLE": "Nowy typ zmiennej:", - "NEW_VARIABLE_TITLE": "Nowa nazwa zmiennej:", - "VARIABLE_ALREADY_EXISTS": "Zmienna o nazwie '%1' już istnieje.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Zmienna o nazwie '%1' już istnieje i jest typu '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Usunąć %1 wystąpień zmiennej '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Nie można usunąć zmiennej '%1', ponieważ jest częścią definicji funkcji '%2'", - "DELETE_VARIABLE": "Usuń zmienną '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Wybierz kolor z palety.", - "COLOUR_RANDOM_TITLE": "losowy kolor", - "COLOUR_RANDOM_TOOLTIP": "Wybierz kolor w sposób losowy.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "kolor z", - "COLOUR_RGB_RED": "czerwony", - "COLOUR_RGB_GREEN": "zielony", - "COLOUR_RGB_BLUE": "niebieski", - "COLOUR_RGB_TOOLTIP": "Utwórz kolor składający sie z podanej ilości czerwieni, zieleni i błękitu. Zakres wartości: 0 do 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "wymieszaj", - "COLOUR_BLEND_COLOUR1": "kolor 1", - "COLOUR_BLEND_COLOUR2": "kolor 2", - "COLOUR_BLEND_RATIO": "proporcja", - "COLOUR_BLEND_TOOLTIP": "Miesza dwa kolory w danej proporcji (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "powtórz %1 razy", - "CONTROLS_REPEAT_INPUT_DO": "wykonaj", - "CONTROLS_REPEAT_TOOLTIP": "Wykonaj niektóre instrukcje kilka razy.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "powtarzaj dopóki", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "powtarzaj aż do", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Dopóki wyrażenie jest prawdziwe, wykonaj zadane czynności.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Dopóki wyrażenie jest nieprawdziwe, wykonaj zadane czynności.", - "CONTROLS_FOR_TOOLTIP": "Zmiennej '%1' przypisuje wartości z podanego zakresu z podanym interwałem i wykonuje zadane bloki.", - "CONTROLS_FOR_TITLE": "licz z %1 od %2 do %3 co %4 (wartość kroku)", - "CONTROLS_FOREACH_TITLE": "dla każdego elementu %1 listy %2", - "CONTROLS_FOREACH_TOOLTIP": "Przypisz zmiennej '%1' kolejno wartość każdego elementu listy, a następnie wykonaj kilka instrukcji.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "przerwij pętlę", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "przejdź do kolejnej iteracji pętli", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Przerwij działanie pętli.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Pomiń resztę pętli i kontynuuj w kolejnej iteracji.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Uwaga: Ten klocek może być użyty tylko wewnątrz pętli.", - "CONTROLS_IF_TOOLTIP_1": "Jeśli warunek jest spełniony, wykonaj zadane czynności.", - "CONTROLS_IF_TOOLTIP_2": "Jeśli warunek jest spełniony, wykonaj pierwszy blok instrukcji. W przeciwnym razie, wykonaj drugi blok instrukcji.", - "CONTROLS_IF_TOOLTIP_3": "Jeśli pierwszy warunek jest spełniony, wykonaj pierwszy blok instrukcji. W przeciwnym razie, jeśli drugi warunek jest spełniony, wykonaj drugi blok instrukcji.", - "CONTROLS_IF_TOOLTIP_4": "Jeśli pierwszy warunek jest spełniony, wykonaj pierwszy blok czynności. W przeciwnym razie jeśli drugi warunek jest spełniony, wykonaj drugi blok czynności. Jeżeli żaden z warunków nie zostanie spełniony, wykonaj ostatni blok czynności.", - "CONTROLS_IF_MSG_IF": "jeśli", - "CONTROLS_IF_MSG_ELSEIF": "w przeciwnym razie, jeśli", - "CONTROLS_IF_MSG_ELSE": "w przeciwnym razie", - "CONTROLS_IF_IF_TOOLTIP": "Dodaj, usuń lub zmień kolejność czynności, żeby zmodyfikować ten klocek „jeśli”.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Dodaj warunek do klocka „jeśli”.", - "CONTROLS_IF_ELSE_TOOLTIP": "Dodaj ostatni zawsze prawdziwy warunek do klocka „jeśli”.", - "IOS_OK": "OK", - "IOS_CANCEL": "Anuluj", - "IOS_ERROR": "Błąd", - "IOS_PROCEDURES_INPUTS": "WEJŚCIA", - "IOS_PROCEDURES_ADD_INPUT": "+ Dodaj Wejście", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Zezwalaj na czynności.", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ta funkcja ma zduplikowane wejścia.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Dodaj Zmienną", - "IOS_VARIABLES_ADD_BUTTON": "Dodaj", - "IOS_VARIABLES_RENAME_BUTTON": "Zmień nazwę", - "IOS_VARIABLES_DELETE_BUTTON": "Usuń", - "IOS_VARIABLES_VARIABLE_NAME": "Nazwa zmiennej", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Nie możesz utworzyć funkcji bez nazwy.", - "LOGIC_COMPARE_HELPURL": "https://pl.wikipedia.org/wiki/Nierówność", - "LOGIC_COMPARE_TOOLTIP_EQ": "Zwraca \"prawda\", jeśli wejścia są identyczne.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Zwraca \"prawda\", jeśli wejścia nie są identyczne.", - "LOGIC_COMPARE_TOOLTIP_LT": "Zwraca \"prawda\" jeśli pierwsze wejście jest mniejsze od drugiego.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Zwraca \"prawda\", jeśli pierwsze wejście jest mniejsze lub równe drugiemu.", - "LOGIC_COMPARE_TOOLTIP_GT": "Zwraca \"prawda\" jeśli pierwsze wejście jest większe od drugiego.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Zwraca \"prawda\", jeśli pierwsze wejście jest większe lub równe drugiemu.", - "LOGIC_OPERATION_TOOLTIP_AND": "Zwraca \"prawda\" jeśli na obydwóch wejściach jest \"prawda\".", - "LOGIC_OPERATION_AND": "i", - "LOGIC_OPERATION_TOOLTIP_OR": "Zwraca \"prawda\" jeśli co najmniej na jednyk wejściu jest \"prawda\".", - "LOGIC_OPERATION_OR": "lub", - "LOGIC_NEGATE_TITLE": "nie %1", - "LOGIC_NEGATE_TOOLTIP": "Zwraca \"prawda\", jeśli wejściu jest \"fałsz\". Zwraca \"fałsz\", jeśli na wejściu jest \"prawda\".", - "LOGIC_BOOLEAN_TRUE": "prawda", - "LOGIC_BOOLEAN_FALSE": "fałsz", - "LOGIC_BOOLEAN_TOOLTIP": "Zwraca 'prawda' lub 'fałsz'.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "nic", - "LOGIC_NULL_TOOLTIP": "Zwraca nic.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "jeśli prawda", - "LOGIC_TERNARY_IF_FALSE": "jeśli fałsz", - "LOGIC_TERNARY_TOOLTIP": "Sprawdź warunek w „test”. Jeśli warunek jest prawdziwy, to zwróci „jeśli prawda”; jeśli nie jest prawdziwy to zwróci „jeśli fałsz”.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Liczba.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "/", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tg", - "MATH_TRIG_ASIN": "arcsin", - "MATH_TRIG_ACOS": "arccos", - "MATH_TRIG_ATAN": "arctg", - "MATH_ARITHMETIC_HELPURL": "https://pl.wikipedia.org/wiki/Arytmetyka", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Zwróć sumę dwóch liczb.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Zwróć różnicę dwóch liczb.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Zwróć iloczyn dwóch liczb.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Zwróć iloraz dwóch liczb.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Zwróć pierwszą liczbę podniesioną do potęgi o wykładniku drugiej liczby.", - "MATH_SINGLE_HELPURL": "https://pl.wikipedia.org/wiki/Pierwiastek_kwadratowy", - "MATH_SINGLE_OP_ROOT": "pierwiastek kwadratowy", - "MATH_SINGLE_TOOLTIP_ROOT": "Zwróć pierwiastek kwadratowy danej liczby.", - "MATH_SINGLE_OP_ABSOLUTE": "wartość bezwzględna", - "MATH_SINGLE_TOOLTIP_ABS": "Zwróć wartość bezwzględną danej liczby.", - "MATH_SINGLE_TOOLTIP_NEG": "Zwróć negację danej liczby.", - "MATH_SINGLE_TOOLTIP_LN": "Zwróć logarytm naturalny danej liczby.", - "MATH_SINGLE_TOOLTIP_LOG10": "Zwraca logarytm dziesiętny danej liczby.", - "MATH_SINGLE_TOOLTIP_EXP": "Zwróć e do potęgi danej liczby.", - "MATH_SINGLE_TOOLTIP_POW10": "Zwróć 10 do potęgi danej liczby.", - "MATH_TRIG_HELPURL": "https://pl.wikipedia.org/wiki/Funkcje_trygonometryczne", - "MATH_TRIG_TOOLTIP_SIN": "Zwróć wartość sinusa o stopniu (nie w radianach).", - "MATH_TRIG_TOOLTIP_COS": "Zwróć wartość cosinusa o stopniu (nie w radianach).", - "MATH_TRIG_TOOLTIP_TAN": "Zwróć tangens o stopniu (nie w radianach).", - "MATH_TRIG_TOOLTIP_ASIN": "Zwróć arcus sinus danej liczby.", - "MATH_TRIG_TOOLTIP_ACOS": "Zwróć arcus cosinus danej liczby.", - "MATH_TRIG_TOOLTIP_ATAN": "Zwróć arcus tangens danej liczby.", - "MATH_CONSTANT_HELPURL": "https://pl.wikipedia.org/wiki/Stała_(matematyka)", - "MATH_CONSTANT_TOOLTIP": "Zwróć jedną wspólną stałą: π (3.141), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) lub ∞ (nieskończoność).", - "MATH_IS_EVEN": "jest parzysta", - "MATH_IS_ODD": "jest nieparzysta", - "MATH_IS_PRIME": "jest liczbą pierwszą", - "MATH_IS_WHOLE": "jest liczbą całkowitą", - "MATH_IS_POSITIVE": "jest dodatnia", - "MATH_IS_NEGATIVE": "jest ujemna", - "MATH_IS_DIVISIBLE_BY": "jest podzielna przez", - "MATH_IS_TOOLTIP": "Sprawdź, czy liczba jest parzysta, nieparzysta, pierwsza, całkowita, dodatnia, ujemna, lub czy jest podzielna przez podaną liczbę. Zwraca wartość \"prawda\" lub \"fałsz\".", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "zmień %1 o %2", - "MATH_CHANGE_TOOLTIP": "Dodaj liczbę do zmiennej '%1'.", - "MATH_ROUND_HELPURL": "https://pl.wikipedia.org/wiki/Zaokrąglanie", - "MATH_ROUND_TOOLTIP": "Zaokrąglij w górę lub w dół.", - "MATH_ROUND_OPERATOR_ROUND": "zaokrąglij", - "MATH_ROUND_OPERATOR_ROUNDUP": "zaokrąglij w górę", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "zaokrąglij w dół", - "MATH_ONLIST_HELPURL": "", - "MATH_ONLIST_OPERATOR_SUM": "suma elementów listy", - "MATH_ONLIST_TOOLTIP_SUM": "Zwróć sumę wszystkich liczb z listy.", - "MATH_ONLIST_OPERATOR_MIN": "minimalna wartość z listy", - "MATH_ONLIST_TOOLTIP_MIN": "Zwróć najmniejszą liczbę w liście.", - "MATH_ONLIST_OPERATOR_MAX": "maksymalna wartość z listy", - "MATH_ONLIST_TOOLTIP_MAX": "Zwróć największą liczbę w liście.", - "MATH_ONLIST_OPERATOR_AVERAGE": "średnia elementów listy", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Zwróć średnią (średnią arytmetyczną) wartości liczbowych z listy.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana listy", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Zwróć medianę listy.", - "MATH_ONLIST_OPERATOR_MODE": "dominanty listy", - "MATH_ONLIST_TOOLTIP_MODE": "Zwróć listę najczęściej występujących elementów w liście.", - "MATH_ONLIST_OPERATOR_STD_DEV": "odchylenie standardowe listy", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Zwróć odchylenie standardowe listy.", - "MATH_ONLIST_OPERATOR_RANDOM": "losowy element z listy", - "MATH_ONLIST_TOOLTIP_RANDOM": "Zwróć losowy element z listy.", - "MATH_MODULO_HELPURL": "https://pl.wikipedia.org/wiki/Modulo", - "MATH_MODULO_TITLE": "reszta z dzielenia %1 przez %2", - "MATH_MODULO_TOOLTIP": "Zwróć resztę z dzielenia dwóch liczb przez siebie.", - "MATH_CONSTRAIN_TITLE": "ogranicz %1 z dołu %2 z góry %3", - "MATH_CONSTRAIN_TOOLTIP": "Ogranicz liczbę, aby była w określonych granicach (włącznie).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "losowa liczba całkowita od %1 do %2", - "MATH_RANDOM_INT_TOOLTIP": "Zwróć losową liczbę całkowitą w ramach dwóch wyznaczonych granic, włącznie.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "losowy ułamek", - "MATH_RANDOM_FLOAT_TOOLTIP": "Zwróć losowy ułamek między 0.0 (włącznie), a 1.0 (wyłącznie).", - "TEXT_TEXT_HELPURL": "https://pl.wikipedia.org/wiki/Tekstowy_typ_danych", - "TEXT_TEXT_TOOLTIP": "Litera, wyraz lub linia tekstu.", - "TEXT_JOIN_TITLE_CREATEWITH": "utwórz tekst z", - "TEXT_JOIN_TOOLTIP": "Tworzy fragment tekstu, łącząc ze sobą dowolną liczbę tekstów.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "połącz", - "TEXT_CREATE_JOIN_TOOLTIP": "Dodaj, usuń lub zmień kolejność sekcji, aby zmodyfikować klocek tekstowy.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Dodaj element do tekstu.", - "TEXT_APPEND_TITLE": "dodaj tekst %2 do %1", - "TEXT_APPEND_TOOLTIP": "Dołącz tekst do zmiennej '%1'.", - "TEXT_LENGTH_TITLE": "długość %1", - "TEXT_LENGTH_TOOLTIP": "Zwraca liczbę liter (łącznie ze spacjami) w podanym tekście.", - "TEXT_ISEMPTY_TITLE": "%1 jest pusty", - "TEXT_ISEMPTY_TOOLTIP": "Zwraca prawda (true), jeśli podany tekst jest pusty.", - "TEXT_INDEXOF_TOOLTIP": "Zwraca indeks pierwszego/ostatniego wystąpienia pierwszego tekstu w drugim tekście. Zwraca wartość %1, jeśli tekst nie został znaleziony.", - "TEXT_INDEXOF_TITLE": "w tekście %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "znajdź pierwsze wystąpienie tekstu", - "TEXT_INDEXOF_OPERATOR_LAST": "znajdź ostatnie wystąpienie tekstu", - "TEXT_CHARAT_TITLE": "w tekście %1 %2", - "TEXT_CHARAT_FROM_START": "pobierz literę #", - "TEXT_CHARAT_FROM_END": "pobierz literę # od końca", - "TEXT_CHARAT_FIRST": "pobierz pierwszą literę", - "TEXT_CHARAT_LAST": "pobierz ostatnią literę", - "TEXT_CHARAT_RANDOM": "pobierz losową literę", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "Zwraca literę z określonej pozycji.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Zwraca określoną część tekstu.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "w tekście", - "TEXT_GET_SUBSTRING_START_FROM_START": "pobierz podciąg od # litery", - "TEXT_GET_SUBSTRING_START_FROM_END": "pobierz podciąg od # litery od końca", - "TEXT_GET_SUBSTRING_START_FIRST": "pobierz podciąg od pierwszej litery", - "TEXT_GET_SUBSTRING_END_FROM_START": "do # litery", - "TEXT_GET_SUBSTRING_END_FROM_END": "do # litery od końca", - "TEXT_GET_SUBSTRING_END_LAST": "do ostatniej litery", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_TOOLTIP": "Zwraca kopię tekstu z odwruconą wielkością liter.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "na WIELKIE LITERY", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "na małe litery", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "na Pierwsza Duża", - "TEXT_TRIM_TOOLTIP": "Zwraca kopię tekstu z usuniętymi spacjami z jednego lub z obu końców tekstu.", - "TEXT_TRIM_OPERATOR_BOTH": "usuń spacje po obu stronach", - "TEXT_TRIM_OPERATOR_LEFT": "usuń spacje z lewej strony", - "TEXT_TRIM_OPERATOR_RIGHT": "usuń spacje z prawej strony", - "TEXT_PRINT_TITLE": "wydrukuj %1", - "TEXT_PRINT_TOOLTIP": "Wyświetl określony tekst, liczbę lub inną wartość.", - "TEXT_PROMPT_TYPE_TEXT": "poproś o tekst z tą wiadomością", - "TEXT_PROMPT_TYPE_NUMBER": "poproś o liczbę z tą wiadomością", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Zapytaj użytkownika o liczbę.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Zapytaj użytkownika o jakiś tekst.", - "TEXT_COUNT_MESSAGE0": "policz %1 w %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Liczy ile razy dany tekst występuje w innym tekście.", - "TEXT_REPLACE_MESSAGE0": "zamień %1 na %2 w %3", - "TEXT_REPLACE_TOOLTIP": "Zastąp wszystkie wystąpienia danego tekstu innym.", - "TEXT_REVERSE_MESSAGE0": "odwróć %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Odwraca kolejność znaków w tekście.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "utwórz pustą listę", - "LISTS_CREATE_EMPTY_TOOLTIP": "Zwraca listę o długości 0, nie zawierającą danych", - "LISTS_CREATE_WITH_TOOLTIP": "Utwórz listę z dowolną ilością elementów.", - "LISTS_CREATE_WITH_INPUT_WITH": "utwórz listę z", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Dodaj, usuń lub zmień kolejność sekcji aby przekonfigurować blok tej listy.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Dodaj element do listy.", - "LISTS_REPEAT_TOOLTIP": "Tworzy listę zawierającą podaną wartość powtórzoną żądaną ilość razy.", - "LISTS_REPEAT_TITLE": "utwórz listę powtarzając %1 %2 razy.", - "LISTS_LENGTH_TITLE": "długość %1", - "LISTS_LENGTH_TOOLTIP": "Zwraca długość listy.", - "LISTS_ISEMPTY_TITLE": "%1 jest pusta", - "LISTS_ISEMPTY_TOOLTIP": "Zwraca \"prawda\" jeśli lista jest pusta.", - "LISTS_INLIST": "na liście", - "LISTS_INDEX_OF_FIRST": "znajdź pierwsze wystąpienie elementu", - "LISTS_INDEX_OF_LAST": "znajdź ostatanie wystąpienie elementu", - "LISTS_INDEX_OF_TOOLTIP": "Zwraca indeks pierwszego/ostatniego wystąpienia elementu z listy. Zwraca %1, jeśli nie zostanie znaleziony.", - "LISTS_GET_INDEX_GET": "pobierz", - "LISTS_GET_INDEX_GET_REMOVE": "zabierz", - "LISTS_GET_INDEX_REMOVE": "usuń", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# od końca", - "LISTS_GET_INDEX_FIRST": "pierwszy", - "LISTS_GET_INDEX_LAST": "ostatni", - "LISTS_GET_INDEX_RANDOM": "losowy", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 to pierwszy element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 to ostatni element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Zwraca element z konkretnej pozycji na liście.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Zwraca pierwszy element z listy.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Zwraca ostatni element z listy.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Zwraca losowy element z listy.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Usuwa i zwraca element z określonej pozycji na liście.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Usuwa i zwraca pierwszy element z listy.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Usuwa i zwraca ostatni element z listy.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Usuwa i zwraca losowy element z listy.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Usuwa element z określonej pozycji na liście.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Usuwa pierwszy element z listy.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Usuwa ostatni element z listy.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Usuwa losowy element z listy.", - "LISTS_SET_INDEX_SET": "ustaw", - "LISTS_SET_INDEX_INSERT": "wstaw w", - "LISTS_SET_INDEX_INPUT_TO": "jako", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Ustawia element w określonym miejscu na liście.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Ustawia pierwszy element na liście.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Ustawia ostatni element na liście.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Ustawia losowy element na liście.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Wstawia element na żądanej pozycji listy.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Wstawia element na początku listy.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Dodaj element na koniec listy.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Wstawia element w losowym miejscu na liście.", - "LISTS_GET_SUBLIST_START_FROM_START": "utwórz listę podrzędną z #", - "LISTS_GET_SUBLIST_START_FROM_END": "utwórz listę podrzędną z # od końca", - "LISTS_GET_SUBLIST_START_FIRST": "utwórz listę podrzędną od pierwszego", - "LISTS_GET_SUBLIST_END_FROM_START": "do #", - "LISTS_GET_SUBLIST_END_FROM_END": "do # od końca", - "LISTS_GET_SUBLIST_END_LAST": "do ostatniego", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "Tworzy kopię żądanej części listy.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sortuj %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sortuj kopię listy.", - "LISTS_SORT_ORDER_ASCENDING": "rosnąco", - "LISTS_SORT_ORDER_DESCENDING": "malejąco", - "LISTS_SORT_TYPE_NUMERIC": "numerycznie", - "LISTS_SORT_TYPE_TEXT": "alfabetycznie", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetycznie, ignoruj wielkość liter", - "LISTS_SPLIT_LIST_FROM_TEXT": "utwórz listę z tekstu", - "LISTS_SPLIT_TEXT_FROM_LIST": "utwórz tekst z listy", - "LISTS_SPLIT_WITH_DELIMITER": "z separatorem", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Rozdziela tekst zgodnie z separatorem tworząc listę z powstałych elementów.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Łączy listę tekstów w jeden tekst, rozdzielany separatorem.", - "LISTS_REVERSE_MESSAGE0": "odwróć %1", - "LISTS_REVERSE_TOOLTIP": "Odwraca kolejność danych w kopii listy.", - "ORDINAL_NUMBER_SUFFIX": "", - "VARIABLES_GET_TOOLTIP": "Zwraca wartość tej zmiennej.", - "VARIABLES_GET_CREATE_SET": "Utwórz klocek 'ustaw %1'", - "VARIABLES_SET": "przypisz %1 wartość %2", - "VARIABLES_SET_TOOLTIP": "Wartości zmiennej i wejście będą identyczne.", - "VARIABLES_SET_CREATE_GET": "Utwórz klocek 'pobierz %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "do", - "PROCEDURES_DEFNORETURN_PROCEDURE": "zrób coś", - "PROCEDURES_BEFORE_PARAMS": "z:", - "PROCEDURES_CALL_BEFORE_PARAMS": "z:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Tworzy funkcję nie posiadającą wyjścia.", - "PROCEDURES_DEFNORETURN_COMMENT": "Opisz tę funkcję...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "zwróć", - "PROCEDURES_DEFRETURN_TOOLTIP": "Tworzy funkcję posiadającą wyjście.", - "PROCEDURES_ALLOW_STATEMENTS": "zezwól na czynności", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Uwaga: Ta funkcja ma powtórzone parametry.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://pl.wikipedia.org/wiki/Podprogram", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Uruchom zdefiniowaną przez użytkownika funkcję '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://pl.wikipedia.org/wiki/Podprogram", - "PROCEDURES_CALLRETURN_TOOLTIP": "Uruchom zdefiniowaną przez użytkownika funkcję '%1' i użyj jej wyjścia.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "wejścia", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Dodaj, usuń lub zmień kolejność wejść tej funkcji.", - "PROCEDURES_MUTATORARG_TITLE": "nazwa wejścia:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Dodaj wejście do funkcji.", - "PROCEDURES_HIGHLIGHT_DEF": "Podświetl definicję funkcji", - "PROCEDURES_CREATE_DO": "Utwórz '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Jeśli warunek jest spełniony zwróć drugą wartość.", - "PROCEDURES_IFRETURN_WARNING": "Uwaga: Ten klocek może być używany tylko w definicji funkcji.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Powiedz coś..." -} diff --git a/lib/blockly/msg/json/pms.json b/lib/blockly/msg/json/pms.json deleted file mode 100644 index ef19621..0000000 --- a/lib/blockly/msg/json/pms.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Borichèt" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "UNNAMED_KEY": "anònim", - "TODAY": "Ancheuj", - "DUPLICATE_BLOCK": "Dupliché", - "ADD_COMMENT": "Gionté un coment", - "REMOVE_COMMENT": "Scancelé un coment", - "DUPLICATE_COMMENT": "Dupliché ël coment", - "EXTERNAL_INPUTS": "Imission esterne", - "INLINE_INPUTS": "Imission an linia", - "DELETE_BLOCK": "Scancelé ël blòch", - "DELETE_X_BLOCKS": "Scancelé %1 blòch", - "DELETE_ALL_BLOCKS": "Scancelé tuti ij %1 blòch?", - "CLEAN_UP": "Dëscancelé ij blòch", - "COLLAPSE_BLOCK": "Arduve ël blòch", - "COLLAPSE_ALL": "Arduve ij blòch", - "EXPAND_BLOCK": "Dësvlupé ël blòch", - "EXPAND_ALL": "Dësvlupé ij blòch", - "DISABLE_BLOCK": "Disativé ël blòch", - "ENABLE_BLOCK": "Ativé ël blòch", - "HELP": "Agiut", - "UNDO": "Anulé", - "REDO": "Fé torna", - "CHANGE_VALUE_TITLE": "Modifiché ël valor:", - "RENAME_VARIABLE": "Arnomé la variàbil...", - "RENAME_VARIABLE_TITLE": "Arnomé tute le variàbij '%1' 'me:", - "NEW_VARIABLE": "Creé na variàbil...", - "NEW_STRING_VARIABLE": "Creé na variàbil dë stringa...", - "NEW_NUMBER_VARIABLE": "Creé na variàbil numérica...", - "NEW_COLOUR_VARIABLE": "Creé na variàbil ëd color...", - "NEW_VARIABLE_TYPE_TITLE": "Neuva sòrt ëd variàbil:", - "NEW_VARIABLE_TITLE": "Nòm ëd la neuva variàbil:", - "VARIABLE_ALREADY_EXISTS": "Na variàbil con ël nòm '%1' a esist già.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Na variàbil ciamà '%1' a esist già për n'àutra sòrt: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Eliminé %1 utilisassion ëd la variàbil '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "As peul nen eliminesse la variàbil '%1' përchè a l'é part ëd la definission dla fonsion '%2'", - "DELETE_VARIABLE": "Eliminé la variàbil '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Serne un color ant la taulòssa.", - "COLOUR_RANDOM_TITLE": "color a asar", - "COLOUR_RANDOM_TOOLTIP": "Serne un color a asar.", - "COLOUR_RGB_TITLE": "coloré con", - "COLOUR_RGB_RED": "ross", - "COLOUR_RGB_GREEN": "verd", - "COLOUR_RGB_BLUE": "bleu", - "COLOUR_RGB_TOOLTIP": "Creé un color con la quantità spessificà ëd ross, verd e bleu. Tuti ij valor a devo esse antra 0 e 100.", - "COLOUR_BLEND_TITLE": "mës-cé", - "COLOUR_BLEND_COLOUR1": "color 1", - "COLOUR_BLEND_COLOUR2": "color 2", - "COLOUR_BLEND_RATIO": "rapòrt", - "COLOUR_BLEND_TOOLTIP": "A mës-cia doi color ansema con un rapòrt dàit (0,0 - 1,0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "arpete %1 vire", - "CONTROLS_REPEAT_INPUT_DO": "fé", - "CONTROLS_REPEAT_TOOLTIP": "Eseguì chèiche anstrussion vàire vire.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "arpete antramentre che", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "arpete fin-a a", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Cand un valor a l'é ver, eseguì chèiche anstrussion.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Cand un valor a l'é fàuss, eseguì chèiche anstrussion.", - "CONTROLS_FOR_TOOLTIP": "Fé an manera che la variàbil \"%1\" a pija ij valor dal nùmer inissial fin-a al nùmer final, an contand për l'antërval ëspessificà, e eseguì ij bloch ëspessificà.", - "CONTROLS_FOR_TITLE": "conté con %1 da %2 a %3 për %4", - "CONTROLS_FOREACH_TITLE": "për minca n'element %1 ant la lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Për minca element an na lista, dé ël valor ëd l'element a la variàbil '%1', peui eseguì chèiche anstrussion.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "seurte da la liassa", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continué con l'iterassion sucessiva dla liassa", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Seurte da la liassa anglobanta.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Sauté ël rest ëd sa liassa, e continué con l'iterassion apress.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Atension: Ës blòch a peul mach esse dovrà andrinta a na liassa.", - "CONTROLS_IF_TOOLTIP_1": "Si un valor a l'é ver, antlora eseguì chèiche anstrussion.", - "CONTROLS_IF_TOOLTIP_2": "Si un valor a l'é ver, antlora eseguì ël prim blòch d'anstrussion. Dësnò, eseguì ël second blòch d'anstrussion.", - "CONTROLS_IF_TOOLTIP_3": "Si ël prim valor a l'é ver, antlora fé andé ël prim blòch d'anstrussion. Dësnò, si ël second valor a l'é ver, fé andé ël second blòch d'anstrussion.", - "CONTROLS_IF_TOOLTIP_4": "Si ël prim valor a l'é ver, antlora fé andé ël prim blòch d'anstrussion. Dësnò, si ël second valor a l'é ver, fé andé ël second blòcj d'anstrussion. Si gnun dij valor a l'é ver, fé andé l'ùltim blòch d'anstrussion.", - "CONTROLS_IF_MSG_IF": "si", - "CONTROLS_IF_MSG_ELSEIF": "dësnò si", - "CONTROLS_IF_MSG_ELSE": "dësnò", - "CONTROLS_IF_IF_TOOLTIP": "Gionté, gavé o riordiné le session për cinfiguré torna ës blòch si.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Gionté na condission al blòch si.", - "CONTROLS_IF_ELSE_TOOLTIP": "Gionté na condission final ch'a cheuj tut al blòch si.", - "IOS_OK": "Va bin", - "IOS_CANCEL": "Anulé", - "IOS_ERROR": "Eror", - "IOS_PROCEDURES_INPUTS": "IMISSION", - "IOS_PROCEDURES_ADD_INPUT": "+ Gionté n'imission", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Përmëtte le diciairassion", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Costa imission a dj'imission duplicà.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Gionté na variàbil", - "IOS_VARIABLES_ADD_BUTTON": "Gionté", - "IOS_VARIABLES_RENAME_BUTTON": "Arnominé", - "IOS_VARIABLES_DELETE_BUTTON": "Eliminé", - "IOS_VARIABLES_VARIABLE_NAME": "Nòm ëd la variàbil", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "A peul nen dovré un nòm ëd variàbil veuid.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Rësponde ver si le doe imission a son uguaj.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Rësponde ver si le doe imission a son nen uguaj.", - "LOGIC_COMPARE_TOOLTIP_LT": "Rësponde ver si la prima imission a l'é pi cita dla sconda.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Rësponde ver si la prima imission a l'é pi cita o ugual a la sconda.", - "LOGIC_COMPARE_TOOLTIP_GT": "Rësponde ver si la prima imission a l'é pi granda che la sconda.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Rësponde ver si la prima imission a l'é pi granda o ugual a la sconda.", - "LOGIC_OPERATION_TOOLTIP_AND": "Rësponde ver se tute doe j'imission a son vere.", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_TOOLTIP_OR": "Rësponde ver se almanch un-a d'imission a l'é vera.", - "LOGIC_OPERATION_OR": "o", - "LOGIC_NEGATE_TITLE": "nen %1", - "LOGIC_NEGATE_TOOLTIP": "A rëspond ver se l'imission a l'é fàussa. A rëspond fàuss se l'imission a l'é vera.", - "LOGIC_BOOLEAN_TRUE": "ver", - "LOGIC_BOOLEAN_FALSE": "fàuss", - "LOGIC_BOOLEAN_TOOLTIP": "A rëspond ver o fàuss.", - "LOGIC_NULL": "gnente", - "LOGIC_NULL_TOOLTIP": "A rëspond gnente.", - "LOGIC_TERNARY_CONDITION": "preuva", - "LOGIC_TERNARY_IF_TRUE": "se ver", - "LOGIC_TERNARY_IF_FALSE": "se fàuss", - "LOGIC_TERNARY_TOOLTIP": "Controlé la condission an 'preuva'. Se la condission a l'é vera, a rëspond con ël valor 'se ver'; dësnò a rëspond con ël valor 'se fàuss'.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Un nùmer.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "A smon la soma ëd doi nùmer.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "A smon la diferensa dij doi nùmer.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "A smon ël prodot dij doi nùmer.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "A smon ël cossient dij doi nùmer.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "A smon ël prim nùmer alvà a la potensa dël second.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "rèis quadra", - "MATH_SINGLE_TOOLTIP_ROOT": "A smon la rèis quadra d'un nùmer.", - "MATH_SINGLE_OP_ABSOLUTE": "assolù", - "MATH_SINGLE_TOOLTIP_ABS": "A smon ël valor assolù d'un nùmer.", - "MATH_SINGLE_TOOLTIP_NEG": "A smon l'opòst d'un nùmer.", - "MATH_SINGLE_TOOLTIP_LN": "A smon ël logaritm natural d'un nùmer.", - "MATH_SINGLE_TOOLTIP_LOG10": "A smon ël logaritm an base 10 d'un nùmer.", - "MATH_SINGLE_TOOLTIP_EXP": "A smon e a la potensa d'un nùmer.", - "MATH_SINGLE_TOOLTIP_POW10": "A smon 10 a la potensa d'un nùmer.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "A smon ël sen ëd n'àngol an gré (pa an radiant).", - "MATH_TRIG_TOOLTIP_COS": "A smon ël cosen ëd n'àngol an gré (pa an radiant).", - "MATH_TRIG_TOOLTIP_TAN": "A smon la tangenta ëd n'àngol an gré (pa an radiant).", - "MATH_TRIG_TOOLTIP_ASIN": "A smon l'arch-sen d'un nùmer.", - "MATH_TRIG_TOOLTIP_ACOS": "A smon l'arch-cosen d'un nùmer.", - "MATH_TRIG_TOOLTIP_ATAN": "A smon l'arch-tangenta d'un nùmer.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "A smon un-a dle costante comun-e π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) o ∞ (infinì).", - "MATH_IS_EVEN": "a l'é cobi", - "MATH_IS_ODD": "a l'é dëscobi", - "MATH_IS_PRIME": "a l'é prim", - "MATH_IS_WHOLE": "a l'é antregh", - "MATH_IS_POSITIVE": "a l'é positiv", - "MATH_IS_NEGATIVE": "a l'é negativ", - "MATH_IS_DIVISIBLE_BY": "a l'é divisìbil për", - "MATH_IS_TOOLTIP": "A contròla si un nùmer a l'é cobi, dëscobi, prim, antreghm positiv, negativ, o s'a l'é divisìbil për un nùmer dàit. A rëspond ver o fàuss.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "ancrementé %1 për %2", - "MATH_CHANGE_TOOLTIP": "Gionté un nùmer a la variàbil '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "A arionda un nùmer për difet o ecess.", - "MATH_ROUND_OPERATOR_ROUND": "ariondé", - "MATH_ROUND_OPERATOR_ROUNDUP": "ariondé për ecess", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ariondé për difet", - "MATH_ONLIST_OPERATOR_SUM": "soma dla lista", - "MATH_ONLIST_TOOLTIP_SUM": "A smon la soma ëd tuti ij nùmer ant la lista.", - "MATH_ONLIST_OPERATOR_MIN": "mìnim ëd la lista", - "MATH_ONLIST_TOOLTIP_MIN": "A smon ël pi cit nùmer ëd la lista.", - "MATH_ONLIST_OPERATOR_MAX": "màssim ëd la lista", - "MATH_ONLIST_TOOLTIP_MAX": "A smon ël pi gròss nùmer ëd la lista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "media dla lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "A smon la media (aritmética) dij valor numérich ant la lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mesan-a dla lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "A smon ël nùmer mesan ëd la lista.", - "MATH_ONLIST_OPERATOR_MODE": "mòde dla lista", - "MATH_ONLIST_TOOLTIP_MODE": "A smon na lista dj'element pi frequent ëd la lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "deviassion ëstàndard ëd la lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "A smon la deviassion ëstàndard ëd la lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "element a l'ancàpit ëd la lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "A smon n'element a l'ancàpit da la lista.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "resta ëd %1:%2", - "MATH_MODULO_TOOLTIP": "A smon la resta ëd la division dij doi nùmer.", - "MATH_CONSTRAIN_TITLE": "limité %1 antra %2 e %3", - "MATH_CONSTRAIN_TOOLTIP": "Limité un nùmer a esse antra le limitassion ëspessificà (comprèise).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "antregh aleatòri antra %1 e %2", - "MATH_RANDOM_INT_TOOLTIP": "A smon n'antregh aleatòri antra ij doi lìmit ëspessificà, comprèis.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "frassion aleatòria", - "MATH_RANDOM_FLOAT_TOOLTIP": "A smon na frassion aleatòria antra 0,0 (comprèis) e 1,0 (esclus).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 ëd X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "A rëspond con l'arch-tangent dël pont (X, Y) an gre da -180 a 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Na litra, na paròla o na linia ëd test.", - "TEXT_JOIN_TITLE_CREATEWITH": "creé ël test con", - "TEXT_JOIN_TOOLTIP": "Creé un tòch ëd test an gionzend un nùmer qualsëssìa d'element.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "gionze", - "TEXT_CREATE_JOIN_TOOLTIP": "Gionté, gavé o riordiné le session për configuré torna ës blòch ëd test.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Gionté n'element al test.", - "TEXT_APPEND_TITLE": "a %1 taché ël test %2", - "TEXT_APPEND_TOOLTIP": "Taché dël test a la variàbil '%1'.", - "TEXT_LENGTH_TITLE": "longheur ëd %1", - "TEXT_LENGTH_TOOLTIP": "A smon ël nùmer ëd litre (spassi comprèis) ant ël test fornì.", - "TEXT_ISEMPTY_TITLE": "%1 a l'é veuid", - "TEXT_ISEMPTY_TOOLTIP": "A smon ver se ël test fornì a l'é veuid.", - "TEXT_INDEXOF_TOOLTIP": "A smon l'ìndes dla prima/ùltima ocorensa dël prim test ant ël second test. A smon %1 se ël test a l'é nen trovà.", - "TEXT_INDEXOF_TITLE": "ant ël test %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "trové la prima ocorensa dël test", - "TEXT_INDEXOF_OPERATOR_LAST": "trové l'ùltima ocorensa dël test", - "TEXT_CHARAT_TITLE": "ant ël test %1 %2", - "TEXT_CHARAT_FROM_START": "oten-e la litra #", - "TEXT_CHARAT_FROM_END": "oten-e la litra # da la fin", - "TEXT_CHARAT_FIRST": "oten-e la prima litra", - "TEXT_CHARAT_LAST": "oten-e l'ùltima litra", - "TEXT_CHARAT_RANDOM": "oten-e na litra a l'ancàpit", - "TEXT_CHARAT_TOOLTIP": "A smon la litra ant la posission ëspessificà.", - "TEXT_GET_SUBSTRING_TOOLTIP": "A smon un tòch ëspessificà dël test.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ant ël test", - "TEXT_GET_SUBSTRING_START_FROM_START": "oten-e la sota-stringa da la litra #", - "TEXT_GET_SUBSTRING_START_FROM_END": "oten-e la sota-stringa da la litra # da la fin", - "TEXT_GET_SUBSTRING_START_FIRST": "oten-e la sota-stringa da la prima litra", - "TEXT_GET_SUBSTRING_END_FROM_START": "fin-a a la litra #", - "TEXT_GET_SUBSTRING_END_FROM_END": "fin-a a la litra # da la fin", - "TEXT_GET_SUBSTRING_END_LAST": "fin-a a l'ùltima litra", - "TEXT_CHANGECASE_TOOLTIP": "A smon na còpia dël test ant un caràter diferent.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "an MAJÙSCOL", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "an minùscul", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "an Majùscol A L'Ancamin Ëd Minca Paròla", - "TEXT_TRIM_TOOLTIP": "A smon na còpia dël test con jë spassi gavà da n'estremità o da tute doe.", - "TEXT_TRIM_OPERATOR_BOTH": "gavé jë spassi da le doe bande ëd", - "TEXT_TRIM_OPERATOR_LEFT": "gavé jë spassi da la banda snistra ëd", - "TEXT_TRIM_OPERATOR_RIGHT": "gavé jë spassi da la banda drita ëd", - "TEXT_PRINT_TITLE": "smon-e %1", - "TEXT_PRINT_TOOLTIP": "Smon-e ël test, ël nùmer o n'àutr valor ëspessificà.", - "TEXT_PROMPT_TYPE_TEXT": "anvit për un test con un mëssagi", - "TEXT_PROMPT_TYPE_NUMBER": "anvit për un nùmer con un mëssagi", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Ciamé un nùmer a l'utent.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Ciamé un test a l'utent.", - "TEXT_COUNT_MESSAGE0": "nùmer %1 su %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Conté vàire vire un test dàit a compariss an n'àutr test.", - "TEXT_REPLACE_MESSAGE0": "rampiassé %1 con %2 an %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Rampiassé tute j'ocorense d'un test con n'àutr.", - "TEXT_REVERSE_MESSAGE0": "Anversé %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Anversé l'òrdin dij caràter ant ël test.", - "LISTS_CREATE_EMPTY_TITLE": "creé na lista veuida", - "LISTS_CREATE_EMPTY_TOOLTIP": "Smon-e na lista, ëd longheur 0, ch'a conten gnun-a argistrassion", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Creé na lista con un nùmer qualsëssìa d'element.", - "LISTS_CREATE_WITH_INPUT_WITH": "creé na lista con", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Gionté, gavé o riordiné le session për configuré torna cost blòch ëd lista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Gionté n'element a la lista.", - "LISTS_REPEAT_TOOLTIP": "A crea na lista ch'a consist dël valor dàit arpetù ël nùmer ëspessificà ëd vire.", - "LISTS_REPEAT_TITLE": "creé na lista con l'element %1 arpetù %2 vire", - "LISTS_LENGTH_TITLE": "longheur ëd %1", - "LISTS_LENGTH_TOOLTIP": "A smon la longheur ¨d na lista.", - "LISTS_ISEMPTY_TITLE": "%1 a l'é veuid", - "LISTS_ISEMPTY_TOOLTIP": "A smon ver se la lista a l'é veuida.", - "LISTS_INLIST": "ant la lista", - "LISTS_INDEX_OF_FIRST": "trové la prima ocorensa dl'element", - "LISTS_INDEX_OF_LAST": "trové l'ùltima ocorensa dl'element", - "LISTS_INDEX_OF_TOOLTIP": "A smon l'ìndes ëd la prima/ùltima ocorensa dl'element ant la lista. A smon %1 se l'element a l'é nen trovà.", - "LISTS_GET_INDEX_GET": "oten-e", - "LISTS_GET_INDEX_GET_REMOVE": "oten-e e eliminé", - "LISTS_GET_INDEX_REMOVE": "eliminé", - "LISTS_GET_INDEX_FROM_END": "# da la fin", - "LISTS_GET_INDEX_FIRST": "prim", - "LISTS_GET_INDEX_LAST": "ùltim", - "LISTS_GET_INDEX_RANDOM": "a l'ancàpit", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 a l'é ël prim element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 a l'é l'ùltim element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "A smon l'element a la posission ëspessificà an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "A smon ël prim element an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "A smon l'ùltim element an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "A smon n'element a l'ancàpit an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "A gava e a smon l'element a la posission ëspessificà an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "A gava e a smon ël prim element an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "A gava e a smon l'ùltim element an na lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "A gava e a smon n'element a l'ancàpit an na lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "A gava l'element a la posission ëspessificà an na lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "A gava ël prim element an na lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "A gava l'ùltim element an na lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "A gava n'element a l'ancàpit da na lista.", - "LISTS_SET_INDEX_SET": "buté", - "LISTS_SET_INDEX_INSERT": "anserì an", - "LISTS_SET_INDEX_INPUT_TO": "tanme", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "A fissa l'element a la posission ëspessificà an na lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "A fissa ël prim element an na lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "A fissa l'ùltim element an na lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "A fissa n'element a l'ancàpit an na lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "A anseriss l'element a la posission ëspessificà an na lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "A anseriss l'element al prinsipi ëd na lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Gionté l'element a la fin ëd na lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "A anseriss l'element a l'ancàpit an na lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "oten-e la sot-lista da #", - "LISTS_GET_SUBLIST_START_FROM_END": "oten-e la sot-lista da # da la fin", - "LISTS_GET_SUBLIST_START_FIRST": "oten-e la sot-lista dal prim", - "LISTS_GET_SUBLIST_END_FROM_START": "fin-a a #", - "LISTS_GET_SUBLIST_END_FROM_END": "fin-a a # da la fin", - "LISTS_GET_SUBLIST_END_LAST": "fin-a a l'ùltim", - "LISTS_GET_SUBLIST_TOOLTIP": "A crea na còpia dël tòch ëspessificà ëd na lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "ordiné %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ordiné na còpia ëd na lista.", - "LISTS_SORT_ORDER_ASCENDING": "chërsent", - "LISTS_SORT_ORDER_DESCENDING": "calant", - "LISTS_SORT_TYPE_NUMERIC": "numérich", - "LISTS_SORT_TYPE_TEXT": "alfabétich", - "LISTS_SORT_TYPE_IGNORECASE": "alfabétich, ignorand ël caràter minùscol o majùscol", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "fé na lista da 'n test", - "LISTS_SPLIT_TEXT_FROM_LIST": "fé 'n test da na lista", - "LISTS_SPLIT_WITH_DELIMITER": "con ël separator", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Divide un test an na lista ëd test, tajand a minca 'n separator.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Gionze na lista ëd test ant un test sol, separandje con un separator.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "anversé %1", - "LISTS_REVERSE_TOOLTIP": "Anversé na còpia ëd na lista", - "VARIABLES_GET_TOOLTIP": "A smon ël valor ëd sa variàbil.", - "VARIABLES_GET_CREATE_SET": "Creé 'fissé %1'", - "VARIABLES_SET": "fissé %1 a %2", - "VARIABLES_SET_TOOLTIP": "Fissé costa variàbil ugual al valor d'imission.", - "VARIABLES_SET_CREATE_GET": "Creé 'oten-e %1'", - "PROCEDURES_DEFNORETURN_TITLE": "a", - "PROCEDURES_DEFNORETURN_PROCEDURE": "fé cheicòs", - "PROCEDURES_BEFORE_PARAMS": "con:", - "PROCEDURES_CALL_BEFORE_PARAMS": "con:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "A crea na fonsion sensa surtìa.", - "PROCEDURES_DEFNORETURN_COMMENT": "Descrive sa fonsion...", - "PROCEDURES_DEFRETURN_RETURN": "artorn", - "PROCEDURES_DEFRETURN_TOOLTIP": "A crea na fonsion con na surtìa.", - "PROCEDURES_ALLOW_STATEMENTS": "përmëtte le diciairassion", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Atension: Costa fonsion a l'ha dij paràmeter duplicà.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Eseguì la fonsion '%1' definìa da l'utent.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Eseguì la fonsion '%1' definìa da l'utent e dovré sò arzultà.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "imission", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Gionté, gavé o riordiné j'imission ëd sa fonsion.", - "PROCEDURES_MUTATORARG_TITLE": "nòm ëd l'imission:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Gionté n'imission a la fonsion.", - "PROCEDURES_HIGHLIGHT_DEF": "Sot-ligné la definission dla fonsion", - "PROCEDURES_CREATE_DO": "Creé '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Se un valor a l'é ver, antlora smon-e un second valor.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Atension: Ës blòch a podria esse dovrà mach an na definission ëd fonsion.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Dì cheicòs...", - "COLLAPSED_WARNINGS_WARNING": "Ij blòch sarà a conten-o dj'avertense." -} diff --git a/lib/blockly/msg/json/pt-br.json b/lib/blockly/msg/json/pt-br.json deleted file mode 100644 index b4fd5e7..0000000 --- a/lib/blockly/msg/json/pt-br.json +++ /dev/null @@ -1,371 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Espertus", - "Prilopes", - "Mordecaista", - "Amgauna", - "TheGabrielZaum", - "Cainamarques", - "Tuliouel", - "Rodrigo codignoli", - "Webysther", - "Fasouzafreitas", - "Almondega", - "Rogerio Melfi", - "Caçador de Palavras", - "Luk3", - "Cristofer Alves", - "EVinente", - "Lowvy", - "Trigonometria87", - "BarbaraAckles", - "Mauricio", - "Felipe L. Ewald", - "Eduardo Addad de Oliveira" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "UNNAMED_KEY": "Sem título", - "TODAY": "Hoje", - "DUPLICATE_BLOCK": "Duplicar", - "ADD_COMMENT": "Adicionar comentário", - "REMOVE_COMMENT": "Remover comentário", - "DUPLICATE_COMMENT": "Duplicar comentário", - "EXTERNAL_INPUTS": "Entradas externas", - "INLINE_INPUTS": "Entradas incorporadas", - "DELETE_BLOCK": "Deletar bloco", - "DELETE_X_BLOCKS": "Deletar %1 blocos", - "DELETE_ALL_BLOCKS": "Deletar todos os blocos %1?", - "CLEAN_UP": "Limpar blocos", - "COLLAPSE_BLOCK": "Colapsar Bloco", - "COLLAPSE_ALL": "Colapsar Blocos", - "EXPAND_BLOCK": "Expandir bloco", - "EXPAND_ALL": "Expandir blocos", - "DISABLE_BLOCK": "Desabilitar bloco", - "ENABLE_BLOCK": "Habilitar bloco", - "HELP": "Ajuda", - "UNDO": "Desfazer", - "REDO": "Refazer", - "CHANGE_VALUE_TITLE": "Mudar valor:", - "RENAME_VARIABLE": "Renomear variável...", - "RENAME_VARIABLE_TITLE": "Renomear todas as variáveis '%1' para:", - "NEW_VARIABLE": "Criar variável...", - "NEW_STRING_VARIABLE": "Criar variável de segmentos de texto...", - "NEW_NUMBER_VARIABLE": "Criar variável numérica...", - "NEW_COLOUR_VARIABLE": "Criar variável colorida...", - "NEW_VARIABLE_TYPE_TITLE": "Tipo da nova variável:", - "NEW_VARIABLE_TITLE": "Nome da nova variável:", - "VARIABLE_ALREADY_EXISTS": "A variável chamada '%1' já existe.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Já existe uma variável chamada '%1' para outra do tipo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Deletar %1 usos da variável '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Não se pode deletar a variável '%1' porque é parte da definição da função '%2'", - "DELETE_VARIABLE": "Deletar a variável '%1'", - "COLOUR_PICKER_HELPURL": "https://pt.wikipedia.org/wiki/Cor", - "COLOUR_PICKER_TOOLTIP": "Escolher uma cor da palheta de cores.", - "COLOUR_RANDOM_TITLE": "cor aleatória", - "COLOUR_RANDOM_TOOLTIP": "Escolher cor de forma aleatória.", - "COLOUR_RGB_TITLE": "colorir com", - "COLOUR_RGB_RED": "vermelho", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "azul", - "COLOUR_RGB_TOOLTIP": "Criar uma cor com a quantidade especificada de vermelho, verde e azul. Todos os valores devem estar entre 0 e 100.", - "COLOUR_BLEND_TITLE": "misturar", - "COLOUR_BLEND_COLOUR1": "cor 1", - "COLOUR_BLEND_COLOUR2": "cor 2", - "COLOUR_BLEND_RATIO": "proporção", - "COLOUR_BLEND_TOOLTIP": "Mistura duas cores em uma dada proporção (0,0 - 1,0).", - "CONTROLS_REPEAT_HELPURL": "https://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle", - "CONTROLS_REPEAT_TITLE": "repita %1 vezes", - "CONTROLS_REPEAT_INPUT_DO": "faça", - "CONTROLS_REPEAT_TOOLTIP": "Faça algumas instruções várias vezes.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repita enquanto", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repita até", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Enquanto um valor for verdadeiro, então faça algumas instruções.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Enquanto um valor for falso, então faça algumas instruções.", - "CONTROLS_FOR_TOOLTIP": "Faça com que a variável '%1' assuma os valores do número inicial ao número final, contando de acordo com o intervalo especificado e execute os blocos especificados.", - "CONTROLS_FOR_TITLE": "contar com %1 de %2 até %3 por %4", - "CONTROLS_FOREACH_TITLE": "para cada item %1 na lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Para cada item em uma lista, atribua o item à variável '%1' e então realize algumas instruções.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "encerra o laço", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continua com a próxima iteração do laço", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Encerra o laço.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Ignora o resto deste laço, e continua com a próxima iteração.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Atenção: Este bloco só pode ser usado dentro de um laço.", - "CONTROLS_IF_TOOLTIP_1": "Se um valor for verdadeiro, então realize algumas instruções.", - "CONTROLS_IF_TOOLTIP_2": "Se um valor for verdadeiro, então realize o primeiro bloco de instruções. Senão, realize o segundo bloco de instruções.", - "CONTROLS_IF_TOOLTIP_3": "Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções.", - "CONTROLS_IF_TOOLTIP_4": "Se o primeiro valor for verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções. Se nenhum dos blocos for verdadeiro, realize o último bloco de instruções.", - "CONTROLS_IF_MSG_IF": "se", - "CONTROLS_IF_MSG_ELSEIF": "senão se", - "CONTROLS_IF_MSG_ELSE": "senão", - "CONTROLS_IF_IF_TOOLTIP": "Acrescente, remova ou reordene seções para reconfigurar este bloco.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Acrescente uma condição para o bloco se.", - "CONTROLS_IF_ELSE_TOOLTIP": "Acrescente uma condição final para o bloco se.", - "IOS_OK": "Ok", - "IOS_CANCEL": "blockly:IOS Cancelar/pt-br", - "IOS_ERROR": "Erro", - "IOS_PROCEDURES_INPUTS": "ENTRADAS", - "IOS_PROCEDURES_ADD_INPUT": "+ Adicionar Entrada", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permitir declarações", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Essa função tem entradas duplicadas.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Adicionar Variável", - "IOS_VARIABLES_ADD_BUTTON": "Adicionar", - "IOS_VARIABLES_RENAME_BUTTON": "Blockly:Renomear varioas botoens/pt-br", - "IOS_VARIABLES_DELETE_BUTTON": "Deletar", - "IOS_VARIABLES_VARIABLE_NAME": "Nome variavel", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Você não pode usar um nome de variável vazio.", - "LOGIC_COMPARE_HELPURL": "https://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o", - "LOGIC_COMPARE_TOOLTIP_EQ": "Retorna verdadeiro se ambas as entradas forem iguais.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Retorna verdadeiro se ambas as entradas forem diferentes.", - "LOGIC_COMPARE_TOOLTIP_LT": "Retorna verdadeiro se a primeira entrada for menor que a segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Retorna verdadeiro se a primeira entrada for menor ou igual à segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_GT": "Retorna verdadeiro se a primeira entrada for maior que a segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Retorna verdadeiro se a primeira entrada for maior ou igual à segunda entrada.", - "LOGIC_OPERATION_TOOLTIP_AND": "Retorna verdadeiro se ambas as entradas forem verdadeiras.", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_TOOLTIP_OR": "Retorna verdadeiro se uma das estradas for verdadeira.", - "LOGIC_OPERATION_OR": "ou", - "LOGIC_NEGATE_TITLE": "não %1", - "LOGIC_NEGATE_TOOLTIP": "Retorna verdadeiro se a entrada for falsa. Retorna falsa se a entrada for verdadeira.", - "LOGIC_BOOLEAN_TRUE": "verdadeiro", - "LOGIC_BOOLEAN_FALSE": "falso", - "LOGIC_BOOLEAN_TOOLTIP": "Retorna verdadeiro ou falso.", - "LOGIC_NULL": "nulo", - "LOGIC_NULL_TOOLTIP": "Retorna nulo.", - "LOGIC_TERNARY_CONDITION": "teste", - "LOGIC_TERNARY_IF_TRUE": "se verdadeiro", - "LOGIC_TERNARY_IF_FALSE": "se falso", - "LOGIC_TERNARY_TOOLTIP": "Avalia a condição em \"teste\". Se a condição for verdadeira retorna o valor \"se verdadeiro\", senão retorna o valor \"se falso\".", - "MATH_NUMBER_HELPURL": "https://pt.wikipedia.org/wiki/N%C3%BAmero", - "MATH_NUMBER_TOOLTIP": "Um número.", - "MATH_ARITHMETIC_HELPURL": "https://pt.wikipedia.org/wiki/Aritm%C3%A9tica", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Retorna a soma dos dois números.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Retorna a diferença entre os dois números.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Retorna o produto dos dois números.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Retorna o quociente da divisão dos dois números.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Retorna o primeiro número elevado à potência do segundo número.", - "MATH_SINGLE_HELPURL": "https://pt.wikipedia.org/wiki/Raiz_quadrada", - "MATH_SINGLE_OP_ROOT": "raiz quadrada", - "MATH_SINGLE_TOOLTIP_ROOT": "Retorna a raiz quadrada de um número.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluto", - "MATH_SINGLE_TOOLTIP_ABS": "Retorna o valor absoluto de um número.", - "MATH_SINGLE_TOOLTIP_NEG": "Retorna o oposto de um número.", - "MATH_SINGLE_TOOLTIP_LN": "Retorna o logaritmo natural de um número.", - "MATH_SINGLE_TOOLTIP_LOG10": "Retorna o logaritmo em base 10 de um número.", - "MATH_SINGLE_TOOLTIP_EXP": "Retorna o número e elevado à potência de um número.", - "MATH_SINGLE_TOOLTIP_POW10": "Retorna 10 elevado à potência de um número.", - "MATH_TRIG_HELPURL": "https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica", - "MATH_TRIG_TOOLTIP_SIN": "Retorna o seno de um grau (não radiano).", - "MATH_TRIG_TOOLTIP_COS": "Retorna o cosseno de um grau (não radiano).", - "MATH_TRIG_TOOLTIP_TAN": "Retorna a tangente de um grau (não radiano).", - "MATH_TRIG_TOOLTIP_ASIN": "Retorna o arco seno de um número.", - "MATH_TRIG_TOOLTIP_ACOS": "Retorna o arco cosseno de um número.", - "MATH_TRIG_TOOLTIP_ATAN": "Retorna o arco tangente de um número.", - "MATH_CONSTANT_HELPURL": "https://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas", - "MATH_CONSTANT_TOOLTIP": "Retorna uma das constantes comuns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito).", - "MATH_IS_EVEN": "é par", - "MATH_IS_ODD": "é ímpar", - "MATH_IS_PRIME": "é primo", - "MATH_IS_WHOLE": "é inteiro", - "MATH_IS_POSITIVE": "é positivo", - "MATH_IS_NEGATIVE": "é negativo", - "MATH_IS_DIVISIBLE_BY": "é divisível por", - "MATH_IS_TOOLTIP": "Verifica se um número é par, ímpar, inteiro, positivo, negativo, ou se é divisível por outro número. Retorna verdadeiro ou falso.", - "MATH_CHANGE_HELPURL": "https://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o", - "MATH_CHANGE_TITLE": "alterar %1 por %2", - "MATH_CHANGE_TOOLTIP": "Soma um número à variável \"%1\".", - "MATH_ROUND_HELPURL": "https://pt.wikipedia.org/wiki/Arredondamento", - "MATH_ROUND_TOOLTIP": "Arredonda um número para cima ou para baixo.", - "MATH_ROUND_OPERATOR_ROUND": "arredonda", - "MATH_ROUND_OPERATOR_ROUNDUP": "arredonda para cima", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arredonda para baixo", - "MATH_ONLIST_OPERATOR_SUM": "soma de uma lista", - "MATH_ONLIST_TOOLTIP_SUM": "Retorna a soma de todos os números na lista.", - "MATH_ONLIST_OPERATOR_MIN": "menor da lista", - "MATH_ONLIST_TOOLTIP_MIN": "Retorna o menor número da lista.", - "MATH_ONLIST_OPERATOR_MAX": "maior da lista", - "MATH_ONLIST_TOOLTIP_MAX": "Retorna o maior número da lista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "média da lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Retorna a média aritmética dos números da lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana da lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Retorna a mediana dos números da lista.", - "MATH_ONLIST_OPERATOR_MODE": "moda da lista", - "MATH_ONLIST_TOOLTIP_MODE": "Retorna uma lista do(s) item(ns) mais comum(ns) da lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "desvio padrão da lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Retorna o desvio padrão dos números da lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "item aleatório da lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Retorna um elemento aleatório da lista.", - "MATH_MODULO_HELPURL": "https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo", - "MATH_MODULO_TITLE": "resto da divisão de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Retorna o resto da divisão de dois números.", - "MATH_CONSTRAIN_TITLE": "restringe %1 inferior %2 superior %3", - "MATH_CONSTRAIN_TOOLTIP": "Restringe um número entre os limites especificados (inclusivo).", - "MATH_RANDOM_INT_HELPURL": "https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios", - "MATH_RANDOM_INT_TITLE": "inteiro aleatório entre %1 e %2", - "MATH_RANDOM_INT_TOOLTIP": "Retorna um número inteiro entre os dois limites informados, inclusivo.", - "MATH_RANDOM_FLOAT_HELPURL": "https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fração aleatória", - "MATH_RANDOM_FLOAT_TOOLTIP": "Retorna uma fração aleatória entre 0.0 (inclusivo) e 1.0 (exclusivo).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Retorne o arco tangente do ponto (X, Y) em graus de -180 a 180.", - "TEXT_TEXT_HELPURL": "https://pt.wikipedia.org/wiki/Cadeia_de_caracteres", - "TEXT_TEXT_TOOLTIP": "Uma letra, palavra ou linha de texto.", - "TEXT_JOIN_TITLE_CREATEWITH": "criar texto com", - "TEXT_JOIN_TOOLTIP": "Criar um pedaço de texto juntando qualquer número de itens.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unir", - "TEXT_CREATE_JOIN_TOOLTIP": "Acrescenta, remove ou reordena seções para reconfigurar este bloco de texto.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Acrescentar um item ao texto.", - "TEXT_APPEND_TITLE": "para %1 anexar texto %2", - "TEXT_APPEND_TOOLTIP": "Acrescentar um pedaço de texto à variável \"%1\".", - "TEXT_LENGTH_TITLE": "tamanho de %1", - "TEXT_LENGTH_TOOLTIP": "Retorna o número de letras (incluindo espaços) no texto fornecido.", - "TEXT_ISEMPTY_TITLE": "%1 é vazio", - "TEXT_ISEMPTY_TOOLTIP": "Retorna verdadeiro se o texto fornecido for vazio.", - "TEXT_INDEXOF_TOOLTIP": "Retorna a posição da primeira/última ocorrência do primeiro texto no segundo texto. Retorna %1 se o texto não for encontrado.", - "TEXT_INDEXOF_TITLE": "no texto %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "encontre a primeira ocorrência do item", - "TEXT_INDEXOF_OPERATOR_LAST": "encontre a última ocorrência do texto", - "TEXT_CHARAT_TITLE": "no texto %1 %2", - "TEXT_CHARAT_FROM_START": "obter letra nº", - "TEXT_CHARAT_FROM_END": "obter letra # a partir do final", - "TEXT_CHARAT_FIRST": "obter primeira letra", - "TEXT_CHARAT_LAST": "obter última letra", - "TEXT_CHARAT_RANDOM": "obter letra aleatória", - "TEXT_CHARAT_TOOLTIP": "Retorna a letra na posição especificada.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Retorna o trecho de texto especificado.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "no texto", - "TEXT_GET_SUBSTRING_START_FROM_START": "obter trecho de letra nº", - "TEXT_GET_SUBSTRING_START_FROM_END": "obter trecho de letra nº a partir do final", - "TEXT_GET_SUBSTRING_START_FIRST": "obter trecho de primeira letra", - "TEXT_GET_SUBSTRING_END_FROM_START": "até letra nº", - "TEXT_GET_SUBSTRING_END_FROM_END": "até letra nº a partir do final", - "TEXT_GET_SUBSTRING_END_LAST": "até última letra", - "TEXT_CHANGECASE_TOOLTIP": "Retorna uma cópia do texto em um formato diferente.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "para MAIÚSCULAS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "para minúsculas", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "para Nomes Próprios", - "TEXT_TRIM_TOOLTIP": "Retorna uma cópia do texto com os espaços removidos de uma ou ambas extremidades.", - "TEXT_TRIM_OPERATOR_BOTH": "remover espaços de ambos os lados de", - "TEXT_TRIM_OPERATOR_LEFT": "remover espaços à esquerda de", - "TEXT_TRIM_OPERATOR_RIGHT": "remover espaços à direita de", - "TEXT_PRINT_TITLE": "imprime %1", - "TEXT_PRINT_TOOLTIP": "Imprime o texto, número ou valor especificado.", - "TEXT_PROMPT_TYPE_TEXT": "Pede um texto com uma mensagem", - "TEXT_PROMPT_TYPE_NUMBER": "Pede um número com uma mensagem", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Pede ao usuário um número.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Pede ao usuário um texto.", - "TEXT_COUNT_MESSAGE0": "Contar %1 em %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Calcule quantas vezes algum texto aparece centro de algum outro texto.", - "TEXT_REPLACE_MESSAGE0": "substituir %1 por %2 em %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Texto#substituindo-substrings", - "TEXT_REPLACE_TOOLTIP": "Substitua todas as ocorrências de algum texto dentro de algum outro texto.", - "TEXT_REVERSE_MESSAGE0": "inverter %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Texto#invertendo-texto", - "TEXT_REVERSE_TOOLTIP": "Inverter a ordem dos caracteres no texto.", - "LISTS_CREATE_EMPTY_TITLE": "criar lista vazia", - "LISTS_CREATE_EMPTY_TOOLTIP": "Retorna uma lista, de tamanho 0, contendo nenhum registro", - "LISTS_CREATE_WITH_TOOLTIP": "Cria uma lista com a quantidade de itens informada.", - "LISTS_CREATE_WITH_INPUT_WITH": "criar lista com", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Acrescenta, remove ou reordena seções para reconfigurar este bloco de lista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Acrescenta um item à lista.", - "LISTS_REPEAT_TOOLTIP": "Cria uma lista consistindo no valor informado repetido o número de vezes especificado.", - "LISTS_REPEAT_TITLE": "criar lista com item %1 repetido %2 vezes", - "LISTS_LENGTH_TITLE": "tamanho de %1", - "LISTS_LENGTH_TOOLTIP": "Retorna o tamanho de uma lista.", - "LISTS_ISEMPTY_TITLE": "%1 é vazia", - "LISTS_ISEMPTY_TOOLTIP": "Retorna ao verdadeiro se a lista estiver vazia.", - "LISTS_INLIST": "na lista", - "LISTS_INDEX_OF_FIRST": "encontre a primeira ocorrência do item", - "LISTS_INDEX_OF_LAST": "encontre a última ocorrência do item", - "LISTS_INDEX_OF_TOOLTIP": "Retorna o índice da primeira/última ocorrência do item na lista. Retorna %1 se o item não for encontrado.", - "LISTS_GET_INDEX_GET": "obter", - "LISTS_GET_INDEX_GET_REMOVE": "obter e remover", - "LISTS_GET_INDEX_REMOVE": "remover", - "LISTS_GET_INDEX_FROM_START": "nº", - "LISTS_GET_INDEX_FROM_END": "nº a partir do final", - "LISTS_GET_INDEX_FIRST": "primeiro", - "LISTS_GET_INDEX_LAST": "último", - "LISTS_GET_INDEX_RANDOM": "aleatório", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 é o primeiro item.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 é o último item.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Retorna o item da lista na posição especificada.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Retorna o primeiro item em uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Retorna o último item em uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Retorna um item aleatório de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Remove e retorna o item na posição especificada em uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Remove e retorna o primeiro item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Remove e retorna o último item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Remove e retorna um item aleatório de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Remove o item na posição especificada em uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Remove o primeiro item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Remove o último item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Remove um item aleatório de uma lista.", - "LISTS_SET_INDEX_SET": "definir", - "LISTS_SET_INDEX_INSERT": "inserir em", - "LISTS_SET_INDEX_INPUT_TO": "como", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Define o item da posição especificada de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Define o primeiro item de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Define o último item de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Define um item aleatório de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Insere o item na posição especificada em uma lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Insere o item no início de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Insere o item no final de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Insere o item em uma posição qualquer de uma lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "obtém sublista de nº", - "LISTS_GET_SUBLIST_START_FROM_END": "obtém sublista de nº a partir do final", - "LISTS_GET_SUBLIST_START_FIRST": "obtém sublista a partir do primeiro", - "LISTS_GET_SUBLIST_END_FROM_START": "até nº", - "LISTS_GET_SUBLIST_END_FROM_END": "até nº a partir do final", - "LISTS_GET_SUBLIST_END_LAST": "até último", - "LISTS_GET_SUBLIST_TOOLTIP": "Cria uma cópia da porção especificada de uma lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "ordenar %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ordenar uma cópia de uma lista.", - "LISTS_SORT_ORDER_ASCENDING": "ascendente", - "LISTS_SORT_ORDER_DESCENDING": "descendente", - "LISTS_SORT_TYPE_NUMERIC": "numérico", - "LISTS_SORT_TYPE_TEXT": "alfabético", - "LISTS_SORT_TYPE_IGNORECASE": "alfabético, ignorar maiúscula/minúscula", - "LISTS_SPLIT_LIST_FROM_TEXT": "Fazer uma lista a partir do texto", - "LISTS_SPLIT_TEXT_FROM_LIST": "fazer um texto a partir da lista", - "LISTS_SPLIT_WITH_DELIMITER": "com delimitador", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Dividir o texto em uma lista de textos, separando-o em cada delimitador.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Juntar uma lista de textos em um único texto, separado por um delimitador.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Listas#invertendo-uma-lista", - "LISTS_REVERSE_MESSAGE0": "inverter %1", - "LISTS_REVERSE_TOOLTIP": "Inverter uma cópia da lista.", - "VARIABLES_GET_TOOLTIP": "Retorna o valor desta variável.", - "VARIABLES_GET_CREATE_SET": "Criar \"definir %1\"", - "VARIABLES_SET": "definir %1 para %2", - "VARIABLES_SET_TOOLTIP": "Define esta variável para o valor da entrada.", - "VARIABLES_SET_CREATE_GET": "Criar \"obter %1\"", - "PROCEDURES_DEFNORETURN_TITLE": "para", - "PROCEDURES_DEFNORETURN_PROCEDURE": "faça algo", - "PROCEDURES_BEFORE_PARAMS": "com:", - "PROCEDURES_CALL_BEFORE_PARAMS": "com:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Cria uma função que não tem retorno.", - "PROCEDURES_DEFNORETURN_COMMENT": "Descreva esta função...", - "PROCEDURES_DEFRETURN_RETURN": "retorna", - "PROCEDURES_DEFRETURN_TOOLTIP": "Cria uma função que possui um valor de retorno.", - "PROCEDURES_ALLOW_STATEMENTS": "permitir declarações", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Atenção: Esta função tem parâmetros duplicados.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://pt.wikipedia.org/wiki/Sub-rotina", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Executa a função definida pelo usuário \"%1\".", - "PROCEDURES_CALLRETURN_HELPURL": "https://pt.wikipedia.org/wiki/Sub-rotina", - "PROCEDURES_CALLRETURN_TOOLTIP": "Executa a função definida pelo usuário \"%1\" e usa seu retorno.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entradas", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Adiciona, remove, ou reordena as entradas para esta função.", - "PROCEDURES_MUTATORARG_TITLE": "nome da entrada:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Adiciona uma entrada para esta função", - "PROCEDURES_HIGHLIGHT_DEF": "Destacar definição da função", - "PROCEDURES_CREATE_DO": "Criar \"%1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Se um valor é verdadeiro, então retorna um valor.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Atenção: Este bloco só pode ser utilizado dentro da definição de uma função.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Diz algo...", - "COLLAPSED_WARNINGS_WARNING": "Bloqueios recolhidos contêm avisos." -} diff --git a/lib/blockly/msg/json/pt.json b/lib/blockly/msg/json/pt.json deleted file mode 100644 index 6dcf155..0000000 --- a/lib/blockly/msg/json/pt.json +++ /dev/null @@ -1,381 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Imperadeiro98", - "Waldir", - "Vitorvicentevalente", - "아라", - "Nicola Nascimento", - "Önni", - "Diniscoelho", - "Fúlvio", - "Mansil", - "Mauricio", - "Vicng", - "MokaAkashiyaPT", - "Athena in Wonderland", - "McDutchie", - "Hamilton Abreu", - "Waldyrious" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "TODAY": "Hoje", - "DUPLICATE_BLOCK": "Duplicar", - "ADD_COMMENT": "Adicionar Comentário", - "REMOVE_COMMENT": "Remover Comentário", - "DUPLICATE_COMMENT": "Duplicar comentário", - "EXTERNAL_INPUTS": "Entradas Externas", - "INLINE_INPUTS": "Entradas Em Linhas", - "DELETE_BLOCK": "Eliminar Bloco", - "DELETE_X_BLOCKS": "Eliminar %1 Blocos", - "DELETE_ALL_BLOCKS": "Eliminar todos os %1 blocos?", - "CLEAN_UP": "Limpar Blocos", - "COLLAPSE_BLOCK": "Ocultar Bloco", - "COLLAPSE_ALL": "Ocultar Blocos", - "EXPAND_BLOCK": "Expandir Bloco", - "EXPAND_ALL": "Expandir Blocos", - "DISABLE_BLOCK": "Desativar Bloco", - "ENABLE_BLOCK": "Ativar Bloco", - "HELP": "Ajuda", - "UNDO": "Desfazer", - "REDO": "Refazer", - "CHANGE_VALUE_TITLE": "Alterar valor:", - "RENAME_VARIABLE": "Renomear variável...", - "RENAME_VARIABLE_TITLE": "Renomear todas as variáveis '%1' para:", - "NEW_VARIABLE": "Criar variável…", - "NEW_STRING_VARIABLE": "Criar variável de segmentos de texto...", - "NEW_NUMBER_VARIABLE": "Criar variável numérica...", - "NEW_COLOUR_VARIABLE": "Criar variável colorida...", - "NEW_VARIABLE_TYPE_TITLE": "Tipo da nova variável:", - "NEW_VARIABLE_TITLE": "Nome da nova variável:", - "VARIABLE_ALREADY_EXISTS": "Já existe uma variável com o nome de '%1'.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Já existe uma variável chamada '%1' para outra do tipo: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Eliminar %1 utilizações da variável '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Não se pode eliminar a variável '%1' porque faz parte da definição da função '%2'", - "DELETE_VARIABLE": "Eliminar a variável '%1'", - "COLOUR_PICKER_HELPURL": "http://pt.wikipedia.org/wiki/Cor", - "COLOUR_PICKER_TOOLTIP": "Escolha uma cor da paleta de cores.", - "COLOUR_RANDOM_TITLE": "cor aleatória", - "COLOUR_RANDOM_TOOLTIP": "Escolha uma cor aleatoriamente.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "pinte com", - "COLOUR_RGB_RED": "vermelho", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "azul", - "COLOUR_RGB_TOOLTIP": "Cria uma cor de acordo com a quantidade especificada de vermelho, verde e azul. Todos os valores devem estar entre 0 e 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "misturar", - "COLOUR_BLEND_COLOUR1": "cor 1", - "COLOUR_BLEND_COLOUR2": "cor 2", - "COLOUR_BLEND_RATIO": "proporção", - "COLOUR_BLEND_TOOLTIP": "Mistura duas cores com a proporção indicada (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle", - "CONTROLS_REPEAT_TITLE": "repetir %1 vez", - "CONTROLS_REPEAT_INPUT_DO": "faça", - "CONTROLS_REPEAT_TOOLTIP": "Faça algumas instruções várias vezes.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetir enquanto", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repetir até", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Enquanto um valor for verdadeiro, então faça algumas instruções.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Enquanto um valor for falso, então faça algumas instruções.", - "CONTROLS_FOR_TOOLTIP": "Faz com que a variável \"%1\" assuma os valores desde o número inicial até ao número final, contando de acordo com o intervalo especificado e executa os blocos especificados.", - "CONTROLS_FOR_TITLE": "contar com %1 de %2 até %3 por %4", - "CONTROLS_FOREACH_TITLE": "para cada item %1 na lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Para cada item numa lista, define a variável \"%1\" para o item e então faz algumas instruções.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "sair do ciclo", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continuar com a próxima iteração do ciclo", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Sair do ciclo que está contido.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Ignorar o resto deste ciclo, e continuar com a próxima iteração.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Aviso: Este bloco só pode ser usado dentro de um ciclo.", - "CONTROLS_IF_TOOLTIP_1": "Se um valor é verdadeiro, então realize alguns passos.", - "CONTROLS_IF_TOOLTIP_2": "Se um valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, realize o segundo bloco de instruções", - "CONTROLS_IF_TOOLTIP_3": "Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções.", - "CONTROLS_IF_TOOLTIP_4": "Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções. Se nenhum dos blocos for verdadeiro, realize o último bloco de instruções.", - "CONTROLS_IF_MSG_IF": "se", - "CONTROLS_IF_MSG_ELSEIF": "senão se", - "CONTROLS_IF_MSG_ELSE": "senão", - "CONTROLS_IF_IF_TOOLTIP": "Acrescente, remova ou reordene secções para reconfigurar este bloco se.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Acrescente uma condição ao bloco se.", - "CONTROLS_IF_ELSE_TOOLTIP": "Acrescente uma condição de excepação final para o bloco se.", - "IOS_OK": "Aceitar", - "IOS_CANCEL": "Cancelar", - "IOS_ERROR": "Erro", - "IOS_PROCEDURES_INPUTS": "ENTRADAS", - "IOS_PROCEDURES_ADD_INPUT": "+ Adicionar entrada", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permitir declarações", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Essa função tem entradas duplicadas.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Adicionar Variável", - "IOS_VARIABLES_ADD_BUTTON": "Adicionar", - "IOS_VARIABLES_RENAME_BUTTON": "Renomear", - "IOS_VARIABLES_DELETE_BUTTON": "Eliminar", - "IOS_VARIABLES_VARIABLE_NAME": "Nome da variável", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Você não pode usar um nome de variável vazio.", - "LOGIC_COMPARE_HELPURL": "http://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o", - "LOGIC_COMPARE_TOOLTIP_EQ": "Retorna verdadeiro se ambas as entradas forem iguais entre si.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Retorna verdadeiro se ambas as entradas forem diferentes entre si.", - "LOGIC_COMPARE_TOOLTIP_LT": "Retorna verdadeiro se a primeira entrada for menor que a segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Retorna verdadeiro se a primeira entrada for menor ou igual à segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_GT": "Retorna verdadeiro se a primeira entrada for maior que a segunda entrada.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Retorna verdadeiro se a primeira entrada for maior ou igual à segunda entrada.", - "LOGIC_OPERATION_TOOLTIP_AND": "Retorna verdadeiro se ambas as entradas forem verdadeiras.", - "LOGIC_OPERATION_AND": "e", - "LOGIC_OPERATION_TOOLTIP_OR": "Retorna verdadeiro se pelo menos uma das estradas for verdadeira.", - "LOGIC_OPERATION_OR": "ou", - "LOGIC_NEGATE_TITLE": "não %1", - "LOGIC_NEGATE_TOOLTIP": "Retorna verdadeiro se a entrada for falsa. Retorna falso se a entrada for verdadeira.", - "LOGIC_BOOLEAN_TRUE": "verdadeiro", - "LOGIC_BOOLEAN_FALSE": "falso", - "LOGIC_BOOLEAN_TOOLTIP": "Retorna verdadeiro ou falso.", - "LOGIC_NULL_HELPURL": "http://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "nulo", - "LOGIC_NULL_TOOLTIP": "Retorna nulo.", - "LOGIC_TERNARY_HELPURL": "http://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "teste", - "LOGIC_TERNARY_IF_TRUE": "se verdadeiro", - "LOGIC_TERNARY_IF_FALSE": "se falso", - "LOGIC_TERNARY_TOOLTIP": "Avalia a condição em \"teste\". Se a condição for verdadeira retorna o valor \"se verdadeiro\", senão retorna o valor \"se falso\".", - "MATH_NUMBER_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero", - "MATH_NUMBER_TOOLTIP": "Um número.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "http://pt.wikipedia.org/wiki/Aritm%C3%A9tica", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Retorna a soma de dois números.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Retorna a diferença de dois números.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Retorna o produto de dois números.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Retorna o quociente da divisão de dois números.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Retorna o primeiro número elevado à potência do segundo número.", - "MATH_SINGLE_HELPURL": "http://pt.wikipedia.org/wiki/Raiz_quadrada", - "MATH_SINGLE_OP_ROOT": "raíz quadrada", - "MATH_SINGLE_TOOLTIP_ROOT": "Retorna a raiz quadrada de um número.", - "MATH_SINGLE_OP_ABSOLUTE": "absoluto", - "MATH_SINGLE_TOOLTIP_ABS": "Retorna o valor absoluto de um número.", - "MATH_SINGLE_TOOLTIP_NEG": "Retorna o oposto de um número.", - "MATH_SINGLE_TOOLTIP_LN": "Retorna o logarítmo natural de um número.", - "MATH_SINGLE_TOOLTIP_LOG10": "Retorna o logarítmo em base 10 de um número.", - "MATH_SINGLE_TOOLTIP_EXP": "Retorna o número e elevado à potência de um número.", - "MATH_SINGLE_TOOLTIP_POW10": "Retorna 10 elevado à potência de um número.", - "MATH_TRIG_HELPURL": "http://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica", - "MATH_TRIG_TOOLTIP_SIN": "Retorna o seno de um grau (não radiano).", - "MATH_TRIG_TOOLTIP_COS": "Retorna o cosseno de um grau (não radiano).", - "MATH_TRIG_TOOLTIP_TAN": "Retorna a tangente de um grau (não radiano).", - "MATH_TRIG_TOOLTIP_ASIN": "Retorna o arco seno de um número.", - "MATH_TRIG_TOOLTIP_ACOS": "Retorna o arco cosseno de um número.", - "MATH_TRIG_TOOLTIP_ATAN": "Retorna o arco tangente de um número.", - "MATH_CONSTANT_HELPURL": "http://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas", - "MATH_CONSTANT_TOOLTIP": "Retorna uma das constantes comuns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito).", - "MATH_IS_EVEN": "é par", - "MATH_IS_ODD": "é impar", - "MATH_IS_PRIME": "é primo", - "MATH_IS_WHOLE": "é inteiro", - "MATH_IS_POSITIVE": "é positivo", - "MATH_IS_NEGATIVE": "é negativo", - "MATH_IS_DIVISIBLE_BY": "é divisível por", - "MATH_IS_TOOLTIP": "Verifica se um número é par, impar, primo, inteiro, positivo, negativo, ou se é divisível por outro número. Retorna verdadeiro ou falso.", - "MATH_CHANGE_HELPURL": "http://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o", - "MATH_CHANGE_TITLE": "alterar %1 por %2", - "MATH_CHANGE_TOOLTIP": "Soma um número à variável \"%1\".", - "MATH_ROUND_HELPURL": "http://pt.wikipedia.org/wiki/Arredondamento", - "MATH_ROUND_TOOLTIP": "Arredonda um número para cima ou para baixo.", - "MATH_ROUND_OPERATOR_ROUND": "arredonda", - "MATH_ROUND_OPERATOR_ROUNDUP": "arredonda para cima", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arredonda para baixo", - "MATH_ONLIST_OPERATOR_SUM": "soma da lista", - "MATH_ONLIST_TOOLTIP_SUM": "Retorna a soma de todos os números da lista.", - "MATH_ONLIST_OPERATOR_MIN": "menor de uma lista", - "MATH_ONLIST_TOOLTIP_MIN": "Retorna o menor número da lista.", - "MATH_ONLIST_OPERATOR_MAX": "maior de uma lista", - "MATH_ONLIST_TOOLTIP_MAX": "Retorna o maior número da lista.", - "MATH_ONLIST_OPERATOR_AVERAGE": "média de uma lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Retorna a média aritmética dos valores números da lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana de uma lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Retorna a mediana da lista.", - "MATH_ONLIST_OPERATOR_MODE": "moda de uma lista", - "MATH_ONLIST_TOOLTIP_MODE": "Retorna a lista de item(ns) mais comum(ns) da lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "desvio padrão de uma lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Retorna o desvio padrão dos números da lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "item aleatório de uma lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Retorna um elemento aleatório da lista.", - "MATH_MODULO_HELPURL": "http://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo", - "MATH_MODULO_TITLE": "resto da divisão de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Retorna o resto da divisão de dois números.", - "MATH_CONSTRAIN_TITLE": "restringe %1 inferior %2 superior %3", - "MATH_CONSTRAIN_TOOLTIP": "Restringe um número entre os limites especificados (inclusive).", - "MATH_RANDOM_INT_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", - "MATH_RANDOM_INT_TITLE": "inteiro aleatório entre %1 e %2", - "MATH_RANDOM_INT_TOOLTIP": "Retorna um número inteiro entre os dois limites especificados, inclusive.", - "MATH_RANDOM_FLOAT_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fração aleatória", - "MATH_RANDOM_FLOAT_TOOLTIP": "Insere uma fração aleatória entre 0.0 (inclusive) e 1.0 (exclusive).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Devolver o arco tangente do ponto (X, Y) em graus entre -180 e 180.", - "TEXT_TEXT_HELPURL": "http://pt.wikipedia.org/wiki/Cadeia_de_caracteres", - "TEXT_TEXT_TOOLTIP": "Uma letra, palavra ou linha de texto.", - "TEXT_JOIN_TITLE_CREATEWITH": "criar texto com", - "TEXT_JOIN_TOOLTIP": "Criar um pedaço de texto juntando qualquer número de itens.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "unir", - "TEXT_CREATE_JOIN_TOOLTIP": "Acrescenta, remove ou reordena seções para reconfigurar este bloco de texto.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Acrescentar um item ao texto.", - "TEXT_APPEND_TITLE": "para %1 acrescentar texto %2", - "TEXT_APPEND_TOOLTIP": "Acrescentar um pedaço de texto à variável \"%1\".", - "TEXT_LENGTH_TITLE": "tamanho de %1", - "TEXT_LENGTH_TOOLTIP": "Devolve o número de letras (incluindo espaços) do texto fornecido.", - "TEXT_ISEMPTY_TITLE": "%1 está vazio", - "TEXT_ISEMPTY_TOOLTIP": "Retorna verdadeiro se o texto fornecido estiver vazio.", - "TEXT_INDEXOF_TOOLTIP": "Retorna a posição da primeira/última ocorrência do primeiro texto no segundo texto. Retorna %1 se o texto não for encontrado.", - "TEXT_INDEXOF_TITLE": "no texto %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "primeira ocorrência do texto", - "TEXT_INDEXOF_OPERATOR_LAST": "última ocorrência do texto", - "TEXT_CHARAT_TITLE": "no texto %1 %2", - "TEXT_CHARAT_FROM_START": "obter letra nº", - "TEXT_CHARAT_FROM_END": "obter letra nº a partir do final", - "TEXT_CHARAT_FIRST": "obter primeira letra", - "TEXT_CHARAT_LAST": "obter última letra", - "TEXT_CHARAT_RANDOM": "obter letra aleatória", - "TEXT_CHARAT_TOOLTIP": "Retorna a letra na posição especificada.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Retorna a parte especificada do texto.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "no texto", - "TEXT_GET_SUBSTRING_START_FROM_START": "obter subsequência de tamanho #", - "TEXT_GET_SUBSTRING_START_FROM_END": "obter subsequência de tamanho # a partir do final", - "TEXT_GET_SUBSTRING_START_FIRST": "obter subsequência a partir da primeira letra", - "TEXT_GET_SUBSTRING_END_FROM_START": "até letra nº", - "TEXT_GET_SUBSTRING_END_FROM_END": "até letra nº a partir do final", - "TEXT_GET_SUBSTRING_END_LAST": "até última letra", - "TEXT_CHANGECASE_TOOLTIP": "Retorna uma cópia do texto em formato diferente.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "para MAIÚSCULAS", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "para minúsculas", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "para Iniciais Maiúsculas", - "TEXT_TRIM_TOOLTIP": "Retorna uma cópia do texto com os espaços removidos de uma ou ambas as extremidades.", - "TEXT_TRIM_OPERATOR_BOTH": "remover espaços de ambos os lados", - "TEXT_TRIM_OPERATOR_LEFT": "remover espaços à esquerda de", - "TEXT_TRIM_OPERATOR_RIGHT": "remover espaços à direita", - "TEXT_PRINT_TITLE": "imprime %1", - "TEXT_PRINT_TOOLTIP": "Imprime o texto, número ou outro valor especificado.", - "TEXT_PROMPT_TYPE_TEXT": "Pede um texto com a mensagem", - "TEXT_PROMPT_TYPE_NUMBER": "pede um número com a mensagem", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Pede ao utilizador um número.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Pede ao utilizador um texto.", - "TEXT_COUNT_MESSAGE0": "contar %1 em %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Conte quantas vezes um certo texto aparece dentro de algum outro texto.", - "TEXT_REPLACE_MESSAGE0": "substituir %1 por %2 em %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Substituir todas as ocorrências de um certo texto dentro de algum outro texto.", - "TEXT_REVERSE_MESSAGE0": "inverter %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Inverte a ordem dos caracteres no texto.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "criar lista vazia", - "LISTS_CREATE_EMPTY_TOOLTIP": "Retorna uma lista, de tamanho 0, contendo nenhum registo", - "LISTS_CREATE_WITH_TOOLTIP": "Cria uma lista com qualquer número de itens.", - "LISTS_CREATE_WITH_INPUT_WITH": "criar lista com", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Acrescente, remova ou reordene as seções para reconfigurar este bloco lista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Acrescenta um item à lista.", - "LISTS_REPEAT_TOOLTIP": "Cria uma lista constituída por um dado valor repetido o número de vezes especificado.", - "LISTS_REPEAT_TITLE": "criar lista com o item %1 repetido %2 vezes", - "LISTS_LENGTH_TITLE": "tamanho de %1", - "LISTS_LENGTH_TOOLTIP": "Retorna o tamanho de uma lista.", - "LISTS_ISEMPTY_TITLE": "%1 está vazia", - "LISTS_ISEMPTY_TOOLTIP": "Retona verdadeiro se a lista estiver vazia.", - "LISTS_INLIST": "na lista", - "LISTS_INDEX_OF_FIRST": "encontre a primeira ocorrência do item", - "LISTS_INDEX_OF_LAST": "encontre a última ocorrência do item", - "LISTS_INDEX_OF_TOOLTIP": "Retorna a posição da primeira/última ocorrência do item na lista. Retorna %1 se o item não for encontrado.", - "LISTS_GET_INDEX_GET": "obter", - "LISTS_GET_INDEX_GET_REMOVE": "obter e remover", - "LISTS_GET_INDEX_REMOVE": "remover", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# a partir do final", - "LISTS_GET_INDEX_FIRST": "primeiro", - "LISTS_GET_INDEX_LAST": "último", - "LISTS_GET_INDEX_RANDOM": "aleatório", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 é o primeiro item.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 é o último item.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Retorna o item na posição especificada da lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Retorna o primeiro item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Retorna o último item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Retorna um item aleatório de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Remove e retorna o item na posição especificada de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Remove e retorna o primeiro item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Remove e retorna o último item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Remove e retorna um item aleatório de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Remove o item de uma posição especifica da lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Remove o primeiro item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Remove o último item de uma lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Remove um item aleatório de uma lista.", - "LISTS_SET_INDEX_SET": "definir", - "LISTS_SET_INDEX_INSERT": "inserir em", - "LISTS_SET_INDEX_INPUT_TO": "como", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Define o item na posição especificada de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Define o primeiro item de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Define o último item de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Define um item aleatório de uma lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Insere o item numa posição especificada numa lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Insere o item no início da lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Insere o item no final da lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Insere o item numa posição aleatória de uma lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "obtem sublista de #", - "LISTS_GET_SUBLIST_START_FROM_END": "obtem sublista de # a partir do final", - "LISTS_GET_SUBLIST_START_FIRST": "obtem sublista da primeira lista", - "LISTS_GET_SUBLIST_END_FROM_START": "até #", - "LISTS_GET_SUBLIST_END_FROM_END": "até #, a partir do final", - "LISTS_GET_SUBLIST_END_LAST": "para o último", - "LISTS_GET_SUBLIST_TOOLTIP": "Cria uma cópia da porção especificada de uma lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "ordenar %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Ordenar uma cópia de uma lista.", - "LISTS_SORT_ORDER_ASCENDING": "ascendente", - "LISTS_SORT_ORDER_DESCENDING": "descendente", - "LISTS_SORT_TYPE_NUMERIC": "numérica", - "LISTS_SORT_TYPE_TEXT": "alfabética", - "LISTS_SORT_TYPE_IGNORECASE": "alfabética, ignorar maiúsculas/minúsculas", - "LISTS_SPLIT_LIST_FROM_TEXT": "fazer lista a partir de texto", - "LISTS_SPLIT_TEXT_FROM_LIST": "fazer texto a partir da lista", - "LISTS_SPLIT_WITH_DELIMITER": "com delimitador", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Dividir o texto numa lista de textos, separando-o em cada delimitador.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Juntar uma lista de textos num único texto, separado por um delimitador.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "inverter %1", - "LISTS_REVERSE_TOOLTIP": "Inverter uma cópia da lista.", - "VARIABLES_GET_TOOLTIP": "Retorna o valor desta variável.", - "VARIABLES_GET_CREATE_SET": "Criar \"definir %1\"", - "VARIABLES_SET": "definir %1 para %2", - "VARIABLES_SET_TOOLTIP": "Define esta variável para o valor inserido.", - "VARIABLES_SET_CREATE_GET": "Criar \"obter %1\"", - "PROCEDURES_DEFNORETURN_HELPURL": "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "para", - "PROCEDURES_DEFNORETURN_PROCEDURE": "faz algo", - "PROCEDURES_BEFORE_PARAMS": "com:", - "PROCEDURES_CALL_BEFORE_PARAMS": "com:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Cria uma função que não tem retorno.", - "PROCEDURES_DEFNORETURN_COMMENT": "Descreva esta função...", - "PROCEDURES_DEFRETURN_HELPURL": "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "retorna", - "PROCEDURES_DEFRETURN_TOOLTIP": "Cria uma função que possui um valor de retorno.", - "PROCEDURES_ALLOW_STATEMENTS": "permitir declarações", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Aviso: Esta função tem parâmetros duplicados.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://pt.wikipedia.org/wiki/Sub-rotina", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Executa a função \"%1\".", - "PROCEDURES_CALLRETURN_HELPURL": "https://pt.wikipedia.org/wiki/Sub-rotina", - "PROCEDURES_CALLRETURN_TOOLTIP": "Executa a função \"%1\" e usa o seu retorno.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "entradas", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Adicionar, remover ou reordenar as entradas para esta função.", - "PROCEDURES_MUTATORARG_TITLE": "nome da entrada:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Adicionar uma entrada para a função.", - "PROCEDURES_HIGHLIGHT_DEF": "Destacar definição da função", - "PROCEDURES_CREATE_DO": "Criar \"%1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "se o valor é verdadeiro, então retorna um segundo valor.", - "PROCEDURES_IFRETURN_WARNING": "Aviso: Este bloco só pode ser utilizado dentro da definição de uma função.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Diz algo...", - "COLLAPSED_WARNINGS_WARNING": "Os blocos ocultados contêm avisos." -} diff --git a/lib/blockly/msg/json/qqq.json b/lib/blockly/msg/json/qqq.json deleted file mode 100644 index 64d459c..0000000 --- a/lib/blockly/msg/json/qqq.json +++ /dev/null @@ -1,401 +0,0 @@ -{ - "VARIABLES_DEFAULT_NAME": "default name - A simple, general default name for a variable, preferably short. For more context, see [[Translating:Blockly#infrequent_message_types]].\n{{Identical|Item}}", - "UNNAMED_KEY": "default name - A simple, default name for an unnamed function or variable. Preferably indicates that the item is unnamed.", - "TODAY": "button text - Button that sets a calendar to today's date.\n{{Identical|Today}}", - "DUPLICATE_BLOCK": "context menu - Make a copy of the selected block (and any blocks it contains).\n{{Identical|Duplicate}}", - "ADD_COMMENT": "context menu - Add a descriptive comment to the selected block.", - "REMOVE_COMMENT": "context menu - Remove the descriptive comment from the selected block.", - "DUPLICATE_COMMENT": "context menu - Make a copy of the selected workspace comment.\n{{Identical|Duplicate}}", - "EXTERNAL_INPUTS": "context menu - Change from 'external' to 'inline' mode for displaying blocks used as inputs to the selected block. See [[Translating:Blockly#context_menus]].", - "INLINE_INPUTS": "context menu - Change from 'internal' to 'external' mode for displaying blocks used as inputs to the selected block. See [[Translating:Blockly#context_menus]].", - "DELETE_BLOCK": "context menu - Permanently delete the selected block.", - "DELETE_X_BLOCKS": "context menu - Permanently delete the %1 selected blocks.\n\nParameters:\n* %1 - an integer greater than 1.", - "DELETE_ALL_BLOCKS": "confirmation prompt - Question the user if they really wanted to permanently delete all %1 blocks.\n\nParameters:\n* %1 - an integer greater than 1.", - "CLEAN_UP": "context menu - Reposition all the blocks so that they form a neat line.", - "COLLAPSE_BLOCK": "context menu - Make the appearance of the selected block smaller by hiding some information about it.", - "COLLAPSE_ALL": "context menu - Make the appearance of all blocks smaller by hiding some information about it. Use the same terminology as in the previous message.", - "EXPAND_BLOCK": "context menu - Restore the appearance of the selected block by showing information about it that was hidden (collapsed) earlier.", - "EXPAND_ALL": "context menu - Restore the appearance of all blocks by showing information about it that was hidden (collapsed) earlier. Use the same terminology as in the previous message.", - "DISABLE_BLOCK": "context menu - Make the selected block have no effect (unless reenabled).", - "ENABLE_BLOCK": "context menu - Make the selected block have effect (after having been disabled earlier).", - "HELP": "context menu - Provide helpful information about the selected block.\n{{Identical|Help}}", - "UNDO": "context menu - Undo the previous action.\n{{Identical|Undo}}", - "REDO": "context menu - Undo the previous undo action.\n{{Identical|Redo}}", - "CHANGE_VALUE_TITLE": "prompt - This message is only seen in the Opera browser. With most browsers, users can edit numeric values in blocks by just clicking and typing. Opera does not allows this, so we have to open a new window and prompt users with this message to chanage a value.", - "RENAME_VARIABLE": "dropdown choice - When the user clicks on a variable block, this is one of the dropdown menu choices. It is used to rename the current variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu].", - "RENAME_VARIABLE_TITLE": "prompt - Prompts the user to enter the new name for the selected variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu].\n\nParameters:\n* %1 - the name of the variable to be renamed.", - "NEW_VARIABLE": "button text - Text on the button used to launch the variable creation dialogue.", - "NEW_STRING_VARIABLE": "button text - Text on the button used to launch the variable creation dialogue.", - "NEW_NUMBER_VARIABLE": "button text - Text on the button used to launch the variable creation dialogue.", - "NEW_COLOUR_VARIABLE": "button text - Text on the button used to launch the variable creation dialogue.", - "NEW_VARIABLE_TYPE_TITLE": "prompt - Prompts the user to enter the type for a variable.", - "NEW_VARIABLE_TITLE": "prompt - Prompts the user to enter the name for a new variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu].", - "VARIABLE_ALREADY_EXISTS": "alert - Tells the user that the name they entered is already in use.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "alert - Tells the user that the name they entered is already in use for another type.", - "DELETE_VARIABLE_CONFIRMATION": "confirm - Ask the user to confirm their deletion of multiple uses of a variable.", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "alert - Tell the user that they can't delete a variable because it's part of the definition of a function.", - "DELETE_VARIABLE": "dropdown choice - Delete the currently selected variable.", - "COLOUR_PICKER_HELPURL": "{{Optional}} url - Information about colour.", - "COLOUR_PICKER_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#picking-a-colour-from-a-palette https://github.com/google/blockly/wiki/Colour#picking-a-colour-from-a-palette].", - "COLOUR_RANDOM_HELPURL": "{{Optional}} url - A link that displays a random colour each time you visit it.", - "COLOUR_RANDOM_TITLE": "block text - Title of block that generates a colour at random.", - "COLOUR_RANDOM_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#generating-a-random-colour https://github.com/google/blockly/wiki/Colour#generating-a-random-colour].", - "COLOUR_RGB_HELPURL": "{{Optional}} url - A link for colour codes with percentages (0-100%) for each component, instead of the more common 0-255, which may be more difficult for beginners.", - "COLOUR_RGB_TITLE": "block text - Title of block for [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].", - "COLOUR_RGB_RED": "block input text - The amount of red (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].\n{{Identical|Red}}", - "COLOUR_RGB_GREEN": "block input text - The amount of green (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].", - "COLOUR_RGB_BLUE": "block input text - The amount of blue (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].\n{{Identical|Blue}}", - "COLOUR_RGB_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].", - "COLOUR_BLEND_HELPURL": "{{Optional}} url - A useful link that displays blending of two colours.", - "COLOUR_BLEND_TITLE": "block text - A verb for blending two shades of paint.", - "COLOUR_BLEND_COLOUR1": "block input text - The first of two colours to [https://github.com/google/blockly/wiki/Colour#blending-colours blend].", - "COLOUR_BLEND_COLOUR2": "block input text - The second of two colours to [https://github.com/google/blockly/wiki/Colour#blending-colours blend].", - "COLOUR_BLEND_RATIO": "block input text - The proportion of the [https://github.com/google/blockly/wiki/Colour#blending-colours blend] containing the first colour; the remaining proportion is of the second colour. For example, if the first colour is red and the second colour blue, a ratio of 1 would yield pure red, a ratio of .5 would yield purple (equal amounts of red and blue), and a ratio of 0 would yield pure blue.\n{{Identical|Ratio}}", - "COLOUR_BLEND_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#blending-colours https://github.com/google/blockly/wiki/Colour#blending-colours].", - "CONTROLS_REPEAT_HELPURL": "{{Optional}} url - Describes 'repeat loops' in computer programs; consider using the translation of the page [https://en.wikipedia.org/wiki/Control_flow https://en.wikipedia.org/wiki/Control_flow].", - "CONTROLS_REPEAT_TITLE": "block input text - Title of [https://github.com/google/blockly/wiki/Loops#repeat repeat block].\n\nParameters:\n* %1 - the number of times the body of the loop should be repeated.", - "CONTROLS_REPEAT_INPUT_DO": "block text - Preceding the blocks in the body of the loop. See [https://github.com/google/blockly/wiki/Loops https://github.com/google/blockly/wiki/Loops].\n{{Identical|Do}}", - "CONTROLS_REPEAT_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Loops#repeat https://github.com/google/blockly/wiki/Loops#repeat].", - "CONTROLS_WHILEUNTIL_HELPURL": "{{Optional}} url - Describes 'while loops' in computer programs; consider using the translation of [https://en.wikipedia.org/wiki/While_loop https://en.wikipedia.org/wiki/While_loop], if present, or [https://en.wikipedia.org/wiki/Control_flow https://en.wikipedia.org/wiki/Control_flow].", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "dropdown - Specifies that a loop should [https://github.com/google/blockly/wiki/Loops#repeat-while repeat while] the following condition is true.", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "dropdown - Specifies that a loop should [https://github.com/google/blockly/wiki/Loops#repeat-until repeat until] the following condition becomes true.", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "tooltip - See [https://github.com/google/blockly/wiki/Loops#repeat-while Loops#repeat-while https://github.com/google/blockly/wiki/Loops#repeat-while Loops#repeat-while].", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "tooltip - See [https://github.com/google/blockly/wiki/Loops#repeat-until https://github.com/google/blockly/wiki/Loops#repeat-until].", - "CONTROLS_FOR_HELPURL": "{{Optional}} url - Describes 'for loops' in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/For_loop https://en.wikipedia.org/wiki/For_loop], if present.", - "CONTROLS_FOR_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Loops#count-with https://github.com/google/blockly/wiki/Loops#count-with].\n\nParameters:\n* %1 - the name of the loop variable.", - "CONTROLS_FOR_TITLE": "block text - Repeatedly counts a variable (%1) starting with a (usually lower) number in a range (%2), ending with a (usually higher) number in a range (%3), and counting the iterations by a number of steps (%4). As in [https://github.com/google/blockly/wiki/Loops#count-with https://github.com/google/blockly/wiki/Loops#count-with]. [[File:Blockly-count-with.png]]", - "CONTROLS_FOREACH_HELPURL": "{{Optional}} url - Describes 'for-each loops' in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/Foreach https://en.wikipedia.org/wiki/Foreach] if present.", - "CONTROLS_FOREACH_TITLE": "block text - Title of [https://github.com/google/blockly/wiki/Loops#for-each for each block]. Sequentially assigns every item in array %2 to the valiable %1.", - "CONTROLS_FOREACH_TOOLTIP": "block text - Description of [https://github.com/google/blockly/wiki/Loops#for-each for each blocks].\n\nParameters:\n* %1 - the name of the loop variable.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "{{Optional}} url - Describes control flow in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/Control_flow https://en.wikipedia.org/wiki/Control_flow], if it exists.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "dropdown - The current loop should be exited. See [https://github.com/google/blockly/wiki/Loops#break https://github.com/google/blockly/wiki/Loops#break].", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "dropdown - The current iteration of the loop should be ended and the next should begin. See [https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration].", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "tooltip - See [https://github.com/google/blockly/wiki/Loops#break-out-of-loop https://github.com/google/blockly/wiki/Loops#break-out-of-loop].", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "tooltip - See [https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration].", - "CONTROLS_FLOW_STATEMENTS_WARNING": "warning - The user has tried placing a block outside of a loop (for each, while, repeat, etc.), but this type of block may only be used within a loop. See [https://github.com/google/blockly/wiki/Loops#loop-termination-blocks https://github.com/google/blockly/wiki/Loops#loop-termination-blocks].", - "CONTROLS_IF_HELPURL": "{{Optional}} url - Describes conditional statements (if-then-else) in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_else https://en.wikipedia.org/wiki/If_else], if present.", - "CONTROLS_IF_TOOLTIP_1": "tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-blocks 'if' blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present.", - "CONTROLS_IF_TOOLTIP_2": "tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-else-blocks if-else blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present.", - "CONTROLS_IF_TOOLTIP_3": "tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-else-if-blocks if-else-if blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present.", - "CONTROLS_IF_TOOLTIP_4": "tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-else-if-else-blocks if-else-if-else blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present.", - "CONTROLS_IF_MSG_IF": "block text - See [https://github.com/google/blockly/wiki/IfElse https://github.com/google/blockly/wiki/IfElse]. It is recommended, but not essential, that this have text in common with the translation of 'else if'\n{{Identical|If}}", - "CONTROLS_IF_MSG_ELSEIF": "block text - See [https://github.com/google/blockly/wiki/IfElse https://github.com/google/blockly/wiki/IfElse]. The English words 'otherwise if' would probably be clearer than 'else if', but the latter is used because it is traditional and shorter.", - "CONTROLS_IF_MSG_ELSE": "block text - See [https://github.com/google/blockly/wiki/IfElse https://github.com/google/blockly/wiki/IfElse]. The English word 'otherwise' would probably be superior to 'else', but the latter is used because it is traditional and shorter.", - "CONTROLS_IF_IF_TOOLTIP": "tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#block-modification if block modification].", - "CONTROLS_IF_ELSEIF_TOOLTIP": "tooltip - Describes the 'else if' subblock during [https://github.com/google/blockly/wiki/IfElse#block-modification if block modification].", - "CONTROLS_IF_ELSE_TOOLTIP": "tooltip - Describes the 'else' subblock during [https://github.com/google/blockly/wiki/IfElse#block-modification if block modification].", - "IOS_OK": "button text - Text on a button inside a dialogue window, which will accept or acknowledge the contents of the dialogue when pressed.\n{{Identical|OK}}", - "IOS_CANCEL": "button text - Text on a button inside a dialogue window, which will close or cancel the dialogue when pressed.\n{{Identical|Cancel}}", - "IOS_ERROR": "alert - Title text for an error dialogue.\n{{Identical|Error}}", - "IOS_PROCEDURES_INPUTS": "header text - Title of a section that displays a list of parameters (aka. 'inputs') that have been defined for a procedure. This is used inside a dialogue window to configure a procedure.\n{{Identical|Input}}", - "IOS_PROCEDURES_ADD_INPUT": "button text - Text on a button which will add a parameter (aka. 'input') to a procedure. This is used inside a dialogue window to configure a procedure. NOTE: The '+' should be preserved at the beginning of the text.", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "option text - Text describing an option to allow statements to be added within a procedure. This is used inside a dialogue window to configure a procedure.", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "alert - Error message when duplicate parameters (aka. 'inputs') have been defined on a procedure. This is used inside a dialogue window to configure procedure parameters.", - "IOS_VARIABLES_ADD_VARIABLE": "button text - Text on a button which will open a variable creation dialogue when pressed. NOTE: The '+' should be preserved at the beginning of the text.", - "IOS_VARIABLES_ADD_BUTTON": "button text - Text on a button inside a variable creation dialogue, which will add a variable when pressed.\n{{Identical|Add}}", - "IOS_VARIABLES_RENAME_BUTTON": "button text - Text on a button inside a variable rename dialogue, which will rename a variable when pressed.\n{{Identical|Rename}}", - "IOS_VARIABLES_DELETE_BUTTON": "button text - Text on a button inside a variable deletion dialogue, which will delete a variable when pressed.\n{{Identical|Delete}}", - "IOS_VARIABLES_VARIABLE_NAME": "placeholder text - Placeholder text used inside a text input, where a variable name should be entered.", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "alert - Error message that is displayed when the user attempts to create a variable without a name.", - "LOGIC_COMPARE_HELPURL": "{{Optional}} url - Information about comparisons.", - "LOGIC_COMPARE_TOOLTIP_EQ": "tooltip - Describes the equals (=) block.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "tooltip - Describes the not equals (≠) block.", - "LOGIC_COMPARE_TOOLTIP_LT": "tooltip - Describes the less than (<) block.", - "LOGIC_COMPARE_TOOLTIP_LTE": "tooltip - Describes the less than or equals (≤) block.", - "LOGIC_COMPARE_TOOLTIP_GT": "tooltip - Describes the greater than (>) block.", - "LOGIC_COMPARE_TOOLTIP_GTE": "tooltip - Describes the greater than or equals (≥) block.", - "LOGIC_OPERATION_HELPURL": "{{Optional}} url - Information about the Boolean conjunction ('and') and disjunction ('or') operators. Consider using the translation of [https://en.wikipedia.org/wiki/Boolean_logic https://en.wikipedia.org/wiki/Boolean_logic], if it exists in your language.", - "LOGIC_OPERATION_TOOLTIP_AND": "tooltip - See [https://en.wikipedia.org/wiki/Logical_conjunction https://en.wikipedia.org/wiki/Logical_conjunction].", - "LOGIC_OPERATION_AND": "block text - See [https://en.wikipedia.org/wiki/Logical_conjunction https://en.wikipedia.org/wiki/Logical_conjunction].\n{{Identical|And}}", - "LOGIC_OPERATION_TOOLTIP_OR": "block text - See [https://en.wikipedia.org/wiki/Disjunction https://en.wikipedia.org/wiki/Disjunction].", - "LOGIC_OPERATION_OR": "block text - See [https://en.wikipedia.org/wiki/Disjunction https://en.wikipedia.org/wiki/Disjunction].\n{{Identical|Or}}", - "LOGIC_NEGATE_HELPURL": "{{Optional}} url - Information about logical negation. The translation of [https://en.wikipedia.org/wiki/Logical_negation https://en.wikipedia.org/wiki/Logical_negation] is recommended if it exists in the target language.", - "LOGIC_NEGATE_TITLE": "block text - This is a unary operator that returns ''false'' when the input is ''true'', and ''true'' when the input is ''false''. \n\nParameters:\n* %1 - the input (which should be either the value 'true' or 'false')", - "LOGIC_NEGATE_TOOLTIP": "tooltip - See [https://en.wikipedia.org/wiki/Logical_negation https://en.wikipedia.org/wiki/Logical_negation].", - "LOGIC_BOOLEAN_HELPURL": "{{Optional}} url - Information about the logic values ''true'' and ''false''. Consider using the translation of [https://en.wikipedia.org/wiki/Truth_value https://en.wikipedia.org/wiki/Truth_value] if it exists in your language.", - "LOGIC_BOOLEAN_TRUE": "block text - The word for the [https://en.wikipedia.org/wiki/Truth_value logical value] ''true''.\n{{Identical|True}}", - "LOGIC_BOOLEAN_FALSE": "block text - The word for the [https://en.wikipedia.org/wiki/Truth_value logical value] ''false''.\n{{Identical|False}}", - "LOGIC_BOOLEAN_TOOLTIP": "tooltip - Indicates that the block returns either of the two possible [https://en.wikipedia.org/wiki/Truth_value logical values].", - "LOGIC_NULL_HELPURL": "{{Optional}} url - Provide a link to the translation of [https://en.wikipedia.org/wiki/Nullable_type https://en.wikipedia.org/wiki/Nullable_type], if it exists in your language; otherwise, do not worry about translating this advanced concept.", - "LOGIC_NULL": "block text - In computer languages, ''null'' is a special value that indicates that no value has been set. You may use your language's word for 'nothing' or 'invalid'.\n{{Identical|Null}}", - "LOGIC_NULL_TOOLTIP": "tooltip - This should use the word from the previous message.", - "LOGIC_TERNARY_HELPURL": "{{Optional}} url - Describes the programming language operator known as the ''ternary'' or ''conditional'' operator. It is recommended that you use the translation of [https://en.wikipedia.org/wiki/%3F: https://en.wikipedia.org/wiki/%3F:] if it exists.", - "LOGIC_TERNARY_CONDITION": "block input text - Label for the input whose value determines which of the other two inputs is returned. In some programming languages, this is called a ''''predicate''''.", - "LOGIC_TERNARY_IF_TRUE": "block input text - Indicates that the following input should be returned (used as output) if the test input is true. Remember to try to keep block text terse (short).", - "LOGIC_TERNARY_IF_FALSE": "block input text - Indicates that the following input should be returned (used as output) if the test input is false.", - "LOGIC_TERNARY_TOOLTIP": "tooltip - See [https://en.wikipedia.org/wiki/%3F: https://en.wikipedia.org/wiki/%3F:].", - "MATH_NUMBER_HELPURL": "{{Optional}} url - Information about (real) numbers.", - "MATH_NUMBER_TOOLTIP": "tooltip - Any positive or negative number, not necessarily an integer.", - "MATH_ADDITION_SYMBOL": "{{Optional}} math - The symbol for the binary operation addition.", - "MATH_SUBTRACTION_SYMBOL": "{{Optional}} math - The symbol for the binary operation indicating that the right operand should be subtracted from the left operand.", - "MATH_DIVISION_SYMBOL": "{{Optional}} math - The binary operation indicating that the left operand should be divided by the right operand.", - "MATH_MULTIPLICATION_SYMBOL": "{{Optional}} math - The symbol for the binary operation multiplication.", - "MATH_POWER_SYMBOL": "{{Optional}} math - The symbol for the binary operation exponentiation. Specifically, if the value of the left operand is L and the value of the right operand (the exponent) is R, multiply L by itself R times. (Fractional and negative exponents are also legal.)", - "MATH_TRIG_SIN": "math - The short name of the trigonometric function [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent sine].", - "MATH_TRIG_COS": "math - The short name of the trigonometric function [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent cosine].", - "MATH_TRIG_TAN": "math - The short name of the trigonometric function [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent tangent].", - "MATH_TRIG_ASIN": "math - The short name of the ''inverse of'' the trigonometric function [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent sine].", - "MATH_TRIG_ACOS": "math - The short name of the ''inverse of'' the trigonometric function [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent cosine].", - "MATH_TRIG_ATAN": "math - The short name of the ''inverse of'' the trigonometric function [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent tangent].", - "MATH_ARITHMETIC_HELPURL": "{{Optional}} url - Information about addition, subtraction, multiplication, division, and exponentiation.", - "MATH_ARITHMETIC_TOOLTIP_ADD": "tooltip - See [https://en.wikipedia.org/wiki/Addition https://en.wikipedia.org/wiki/Addition].", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "tooltip - See [https://en.wikipedia.org/wiki/Subtraction https://en.wikipedia.org/wiki/Subtraction].", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "tooltip - See [https://en.wikipedia.org/wiki/Multiplication https://en.wikipedia.org/wiki/Multiplication].", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "tooltip - See [https://en.wikipedia.org/wiki/Division_(mathematics) https://en.wikipedia.org/wiki/Division_(mathematics)].", - "MATH_ARITHMETIC_TOOLTIP_POWER": "tooltip - See [https://en.wikipedia.org/wiki/Exponentiation https://en.wikipedia.org/wiki/Exponentiation].", - "MATH_SINGLE_HELPURL": "{{Optional}} url - Information about the square root operation.", - "MATH_SINGLE_OP_ROOT": "dropdown - This computes the positive [https://en.wikipedia.org/wiki/Square_root square root] of its input. For example, the square root of 16 is 4.", - "MATH_SINGLE_TOOLTIP_ROOT": "tooltip - Please use the same term as in the previous message.", - "MATH_SINGLE_OP_ABSOLUTE": "dropdown - This leaves positive numeric inputs changed and inverts negative inputs. For example, the absolute value of 5 is 5; the absolute value of -5 is also 5. For more information, see [https://en.wikipedia.org/wiki/Absolute_value https://en.wikipedia.org/wiki/Absolute_value].", - "MATH_SINGLE_TOOLTIP_ABS": "tooltip - Please use the same term as in the previous message.", - "MATH_SINGLE_TOOLTIP_NEG": "tooltip - Calculates '''0-n''', where '''n''' is the single numeric input.", - "MATH_SINGLE_TOOLTIP_LN": "tooltip - Calculates the [https://en.wikipedia.org/wiki/Natural_logarithm|natural logarithm] of its single numeric input.", - "MATH_SINGLE_TOOLTIP_LOG10": "tooltip - Calculates the [https://en.wikipedia.org/wiki/Common_logarithm common logarithm] of its single numeric input.", - "MATH_SINGLE_TOOLTIP_EXP": "tooltip - Multiplies [https://en.wikipedia.org/wiki/E_(mathematical_constant) e] by itself n times, where n is the single numeric input.", - "MATH_SINGLE_TOOLTIP_POW10": "tooltip - Multiplies 10 by itself n times, where n is the single numeric input.", - "MATH_TRIG_HELPURL": "{{Optional}} url - Information about the trigonometric functions sine, cosine, tangent, and their inverses (ideally using degrees, not radians).", - "MATH_TRIG_TOOLTIP_SIN": "tooltip - Return the [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent sine] of an [https://en.wikipedia.org/wiki/Degree_(angle) angle in degrees], not radians.", - "MATH_TRIG_TOOLTIP_COS": "tooltip - Return the [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent cosine] of an [https://en.wikipedia.org/wiki/Degree_(angle) angle in degrees], not radians.", - "MATH_TRIG_TOOLTIP_TAN": "tooltip - Return the [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent tangent] of an [https://en.wikipedia.org/wiki/Degree_(angle) angle in degrees], not radians.", - "MATH_TRIG_TOOLTIP_ASIN": "tooltip - The [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions inverse] of the [https://en.wikipedia.org/wiki/Cosine#Sine.2C_cosine_and_tangent sine function], using [https://en.wikipedia.org/wiki/Degree_(angle) degrees], not radians.", - "MATH_TRIG_TOOLTIP_ACOS": "tooltip - The [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions inverse] of the [https://en.wikipedia.org/wiki/Cosine#Sine.2C_cosine_and_tangent cosine] function, using [https://en.wikipedia.org/wiki/Degree_(angle) degrees], not radians.", - "MATH_TRIG_TOOLTIP_ATAN": "tooltip - The [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions inverse] of the [https://en.wikipedia.org/wiki/Cosine#Sine.2C_cosine_and_tangent tangent] function, using [https://en.wikipedia.org/wiki/Degree_(angle) degrees], not radians.", - "MATH_CONSTANT_HELPURL": "{{Optional}} url - Information about the mathematical constants Pi (π), e, the golden ratio (φ), √ 2, √ 1/2, and infinity (∞).", - "MATH_CONSTANT_TOOLTIP": "tooltip - Provides the specified [https://en.wikipedia.org/wiki/Mathematical_constant mathematical constant].", - "MATH_IS_EVEN": "dropdown - A number is '''even''' if it is a multiple of 2. For example, 4 is even (yielding true), but 3 is not (false).", - "MATH_IS_ODD": "dropdown - A number is '''odd''' if it is not a multiple of 2. For example, 3 is odd (yielding true), but 4 is not (false). The opposite of 'odd' is 'even'.", - "MATH_IS_PRIME": "dropdown - A number is [https://en.wikipedia.org/wiki/Prime prime] if it cannot be evenly divided by any positive integers except for 1 and itself. For example, 5 is prime, but 6 is not because 2 × 3 = 6.", - "MATH_IS_WHOLE": "dropdown - A number is '''whole''' if it is an [https://en.wikipedia.org/wiki/Integer integer]. For example, 5 is whole, but 5.1 is not.", - "MATH_IS_POSITIVE": "dropdown - A number is '''positive''' if it is greater than 0. (0 is neither negative nor positive.)", - "MATH_IS_NEGATIVE": "dropdown - A number is '''negative''' if it is less than 0. (0 is neither negative nor positive.)", - "MATH_IS_DIVISIBLE_BY": "dropdown - A number x is divisible by y if y goes into x evenly. For example, 10 is divisible by 5, but 10 is not divisible by 3.", - "MATH_IS_TOOLTIP": "tooltip - This block lets the user specify via a dropdown menu whether to check if the numeric input is even, odd, prime, whole, positive, negative, or divisible by a given value.", - "MATH_CHANGE_HELPURL": "{{Optional}} url - Information about incrementing (increasing the value of) a variable. For other languages, just use the translation of the Wikipedia page about addition ([https://en.wikipedia.org/wiki/Addition https://en.wikipedia.org/wiki/Addition]).", - "MATH_CHANGE_TITLE": "- As in: ''change'' [the value of variable] ''item'' ''by'' 1 (e.g., if the variable named 'item' had the value 5, change it to 6). %1 is a variable name. %2 is the amount of change.", - "MATH_CHANGE_TOOLTIP": "tooltip - This updates the value of the variable by adding to it the following numeric input.\n\nParameters:\n* %1 - the name of the variable whose value should be increased.", - "MATH_ROUND_HELPURL": "{{Optional}} url - Information about how numbers are rounded to the nearest integer", - "MATH_ROUND_TOOLTIP": "tooltip - See [https://en.wikipedia.org/wiki/Rounding https://en.wikipedia.org/wiki/Rounding].", - "MATH_ROUND_OPERATOR_ROUND": "dropdown - This rounds its input to the nearest whole number. For example, 3.4 is rounded to 3.", - "MATH_ROUND_OPERATOR_ROUNDUP": "dropdown - This rounds its input up to the nearest whole number. For example, if the input was 2.2, the result would be 3.", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "dropdown - This rounds its input down to the nearest whole number. For example, if the input was 3.8, the result would be 3.", - "MATH_ONLIST_HELPURL": "{{Optional}} url - Information about applying a function to a list of numbers. (We were unable to find such information in English. Feel free to skip this and any other URLs that are difficult.)", - "MATH_ONLIST_OPERATOR_SUM": "dropdown - This computes the sum of the numeric elements in the list. For example, the sum of the list {1, 4} is 5.", - "MATH_ONLIST_TOOLTIP_SUM": "tooltip - Please use the same term for 'sum' as in the previous message.", - "MATH_ONLIST_OPERATOR_MIN": "dropdown - This finds the smallest (minimum) number in a list. For example, the smallest number in the list [-5, 0, 3] is -5.", - "MATH_ONLIST_TOOLTIP_MIN": "tooltip - Please use the same term for 'min' or 'minimum' as in the previous message.", - "MATH_ONLIST_OPERATOR_MAX": "dropdown - This finds the largest (maximum) number in a list. For example, the largest number in the list [-5, 0, 3] is 3.", - "MATH_ONLIST_TOOLTIP_MAX": "tooltip", - "MATH_ONLIST_OPERATOR_AVERAGE": "dropdown - This adds up all of the numbers in a list and divides the sum by the number of elements in the list. For example, the [https://en.wikipedia.org/wiki/Arithmetic_mean average] of the list [1, 2, 3, 4] is 2.5 (10/4).", - "MATH_ONLIST_TOOLTIP_AVERAGE": "tooltip - See [https://en.wikipedia.org/wiki/Arithmetic_mean https://en.wikipedia.org/wiki/Arithmetic_mean] for more informatin.", - "MATH_ONLIST_OPERATOR_MEDIAN": "dropdown - This finds the [https://en.wikipedia.org/wiki/Median median] of the numeric values in a list. For example, the median of the list {1, 2, 7, 12, 13} is 7.", - "MATH_ONLIST_TOOLTIP_MEDIAN": "tooltip - See [https://en.wikipedia.org/wiki/Median median https://en.wikipedia.org/wiki/Median median] for more information.", - "MATH_ONLIST_OPERATOR_MODE": "dropdown - This finds the most common numbers ([https://en.wikipedia.org/wiki/Mode_(statistics) modes]) in a list. For example, the modes of the list {1, 3, 9, 3, 9} are {3, 9}.", - "MATH_ONLIST_TOOLTIP_MODE": "tooltip - See [https://en.wikipedia.org/wiki/Mode_(statistics) https://en.wikipedia.org/wiki/Mode_(statistics)] for more information.", - "MATH_ONLIST_OPERATOR_STD_DEV": "dropdown - This finds the [https://en.wikipedia.org/wiki/Standard_deviation standard deviation] of the numeric values in a list.", - "MATH_ONLIST_TOOLTIP_STD_DEV": "tooltip - See [https://en.wikipedia.org/wiki/Standard_deviation https://en.wikipedia.org/wiki/Standard_deviation] for more information.", - "MATH_ONLIST_OPERATOR_RANDOM": "dropdown - This choose an element at random from a list. Each element is chosen with equal probability.", - "MATH_ONLIST_TOOLTIP_RANDOM": "tooltip - Please use same term for 'random' as in previous entry.", - "MATH_MODULO_HELPURL": "{{Optional}} url - information about the modulo (remainder) operation.", - "MATH_MODULO_TITLE": "block text - Title of block providing the remainder when dividing the first numerical input by the second. For example, the remainder of 10 divided by 3 is 1.\n\nParameters:\n* %1 - the dividend (10, in our example)\n* %2 - the divisor (3 in our example).", - "MATH_MODULO_TOOLTIP": "tooltip - For example, the remainder of 10 divided by 3 is 1.", - "MATH_CONSTRAIN_HELPURL": "{{Optional}} url - Information about constraining a numeric value to be in a specific range. (The English URL is not ideal. Recall that translating URLs is the lowest priority.)", - "MATH_CONSTRAIN_TITLE": "block text - The title of the block that '''constrain'''s (forces) a number to be in a given range. For example, if the number 150 is constrained to be between 5 and 100, the result will be 100. \n\nParameters:\n* %1 - the value to constrain (e.g., 150)\n* %2 - the minimum value (e.g., 5)\n* %3 - the maximum value (e.g., 100).", - "MATH_CONSTRAIN_TOOLTIP": "tooltip - This compares a number ''x'' to a low value ''L'' and a high value ''H''. If ''x'' is less then ''L'', the result is ''L''. If ''x'' is greater than ''H'', the result is ''H''. Otherwise, the result is ''x''.", - "MATH_RANDOM_INT_HELPURL": "{{Optional}} url - Information about how computers generate random numbers.", - "MATH_RANDOM_INT_TITLE": "block text - The title of the block that generates a random integer (whole number) in the specified range. For example, if the range is from 5 to 7, this returns 5, 6, or 7 with equal likelihood. %1 is a placeholder for the lower number, %2 is the placeholder for the larger number.", - "MATH_RANDOM_INT_TOOLTIP": "tooltip - Return a random integer between two values specified as inputs. For example, if one input was 7 and another 9, any of the numbers 7, 8, or 9 could be produced.", - "MATH_RANDOM_FLOAT_HELPURL": "{{Optional}} url - Information about how computers generate random numbers (specifically, numbers in the range from 0 to just below 1).", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "block text - The title of the block that generates a random number greater than or equal to 0 and less than 1.", - "MATH_RANDOM_FLOAT_TOOLTIP": "tooltip - Return a random fraction between 0 and 1. The value may be equal to 0 but must be less than 1.", - "MATH_ATAN2_HELPURL": "{{Optional}} url - Information about how to calculate atan2.", - "MATH_ATAN2_TITLE": "block text - The title of the block that calculates atan2 of point (X, Y). For example, if the point is (-1, -1), this returns -135. %1 is a placeholder for the X coordinate, %2 is the placeholder for the Y coordinate.", - "MATH_ATAN2_TOOLTIP": "tooltip - Return the arctangent of point (X, Y) in degrees from -180 to 180. For example, if the point is (-1, -1) this returns -135.", - "TEXT_TEXT_HELPURL": "{{Optional}} url - Information about how computers represent text (sometimes referred to as ''string''s).", - "TEXT_TEXT_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text https://github.com/google/blockly/wiki/Text].", - "TEXT_JOIN_HELPURL": "{{Optional}} url - Information on concatenating/appending pieces of text.", - "TEXT_JOIN_TITLE_CREATEWITH": "block text - See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation].", - "TEXT_JOIN_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#text-creation create text with] for more information.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "block text - This is shown when the programmer wants to change the number of pieces of text being joined together. See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation], specifically the last picture in the 'Text creation' section.\n{{Identical|Join}}", - "TEXT_CREATE_JOIN_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation], specifically the last picture in the 'Text creation' section.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "block text - See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation], specifically the last picture in the 'Text creation' section.", - "TEXT_APPEND_HELPURL": "{{Optional}} url - This and the other text-related URLs are going to be hard to translate. As always, it is okay to leave untranslated or paste in the English-language URL. For these URLs, you might also consider a general URL about how computers represent text (such as the translation of [https://en.wikipedia.org/wiki/String_(computer_science) this Wikipedia page]).", - "TEXT_APPEND_TITLE": "block input text - Message that the variable name at %1 will have the item at %2 appended to it. [[File:blockly-append-text.png]]", - "TEXT_APPEND_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#text-modification https://github.com/google/blockly/wiki/Text#text-modification] for more information.\n\nParameters:\n* %1 - the name of the variable to which text should be appended", - "TEXT_LENGTH_HELPURL": "{{Optional}} url - Information about text on computers (usually referred to as 'strings').", - "TEXT_LENGTH_TITLE": "block text - See [https://github.com/google/blockly/wiki/Text#text-length https://github.com/google/blockly/wiki/Text#text-length]. \n\nParameters:\n* %1 - the piece of text to take the length of", - "TEXT_LENGTH_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#text-length https://github.com/google/blockly/wiki/Text#text-length].", - "TEXT_ISEMPTY_HELPURL": "{{Optional}} url - Information about empty pieces of text on computers (usually referred to as 'empty strings').", - "TEXT_ISEMPTY_TITLE": "block text - See [https://github.com/google/blockly/wiki/Text#checking-for-empty-text https://github.com/google/blockly/wiki/Text#checking-for-empty-text]. \n\nParameters:\n* %1 - the piece of text to test for emptiness", - "TEXT_ISEMPTY_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#checking-for-empty-text https://github.com/google/blockly/wiki/Text#checking-for-empty-text].", - "TEXT_INDEXOF_HELPURL": "{{Optional}} url - Information about finding a character in a piece of text.", - "TEXT_INDEXOF_TOOLTIP": "tooltip - %1 will be replaced by either the number 0 or -1 depending on the indexing mode. See [https://github.com/google/blockly/wiki/Text#finding-text https://github.com/google/blockly/wiki/Text#finding-text].", - "TEXT_INDEXOF_TITLE": "block text - Title of blocks allowing users to find text. See [https://github.com/google/blockly/wiki/Text#finding-text https://github.com/google/blockly/wiki/Text#finding-text]. [[File:Blockly-find-text.png]]. In English the expanded message is 'in text %1 find (first|last) occurance of text %3' where %1 and %3 are added by the user. See TEXT_INDEXOF_OPERATOR_FIRST and TEXT_INDEXOF_OPERATOR_LAST for the dropdown text that replaces %2.", - "TEXT_INDEXOF_OPERATOR_FIRST": "dropdown - See [https://github.com/google/blockly/wiki/Text#finding-text https://github.com/google/blockly/wiki/Text#finding-text]. [[File:Blockly-find-text.png]].", - "TEXT_INDEXOF_OPERATOR_LAST": "dropdown - See [https://github.com/google/blockly/wiki/Text#finding-text https://github.com/google/blockly/wiki/Text#finding-text]. This would replace 'find first occurrence of text' below. (For more information on how common text is factored out of dropdown menus, see [https://translatewiki.net/wiki/Translating:Blockly#Drop-Down_Menus https://translatewiki.net/wiki/Translating:Blockly#Drop-Down_Menus)].) [[File:Blockly-find-text.png]].", - "TEXT_CHARAT_HELPURL": "{{Optional}} url - Information about extracting characters (letters, number, symbols, etc.) from text.", - "TEXT_CHARAT_TITLE": "block text - Text for a block to extract a letter (or number, punctuation character, etc.) from a string, as shown below. %1 is added by the user and %2 is replaced by a dropdown of options, possibly followed by another user supplied string. TEXT_CHARAT_TAIL is then added to the end. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_FROM_START": "dropdown - Indicates that the letter (or number, punctuation character, etc.) with the specified index should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_FROM_END": "block text - Indicates that the letter (or number, punctuation character, etc.) with the specified index from the end of a given piece of text should be obtained. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_FIRST": "block text - Indicates that the first letter of the following piece of text should be retrieved. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_LAST": "block text - Indicates that the last letter (or number, punctuation mark, etc.) of the following piece of text should be retrieved. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_RANDOM": "block text - Indicates that any letter (or number, punctuation mark, etc.) in the following piece of text should be randomly selected. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_TAIL": "block text - Text that goes after the rightmost block/dropdown when getting a single letter from a piece of text, as in [https://blockly-demo.appspot.com/static/apps/code/index.html#3m23km these blocks] or shown below. For most languages, this will be blank. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_GET_SUBSTRING_TOOLTIP": "See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text].", - "TEXT_GET_SUBSTRING_HELPURL": "{{Optional}} url - Information about extracting characters from text. Reminder: urls are the lowest priority translations. Feel free to skip.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "block text - Precedes a piece of text from which a portion should be extracted. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_START_FROM_START": "dropdown - Indicates that the following number specifies the position (relative to the start position) of the beginning of the region of text that should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_START_FROM_END": "dropdown - Indicates that the following number specifies the position (relative to the end position) of the beginning of the region of text that should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. Note: If {{msg-blockly|ORDINAL_NUMBER_SUFFIX}} is defined, it will automatically appear ''after'' this and any other [https://translatewiki.net/wiki/Translating:Blockly#Ordinal_numbers ordinal numbers] on this block. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_START_FIRST": "block text - Indicates that a region starting with the first letter of the preceding piece of text should be extracted. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_END_FROM_START": "dropdown - Indicates that the following number specifies the position (relative to the start position) of the end of the region of text that should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_END_FROM_END": "dropdown - Indicates that the following number specifies the position (relative to the end position) of the end of the region of text that should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_END_LAST": "block text - Indicates that a region ending with the last letter of the preceding piece of text should be extracted. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_TAIL": "block text - Text that should go after the rightmost block/dropdown when [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text extracting a region of text]. In most languages, this will be the empty string. [[File:Blockly-get-substring.png]]", - "TEXT_CHANGECASE_HELPURL": "{{Optional}} url - Information about the case of letters (upper-case and lower-case).", - "TEXT_CHANGECASE_TOOLTIP": "tooltip - Describes a block to adjust the case of letters. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case].", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "block text - Indicates that all of the letters in the following piece of text should be capitalized. If your language does not use case, you may indicate that this is not applicable to your language. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case].", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "block text - Indicates that all of the letters in the following piece of text should be converted to lower-case. If your language does not use case, you may indicate that this is not applicable to your language. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case].", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "block text - Indicates that the first letter of each of the following words should be capitalized and the rest converted to lower-case. If your language does not use case, you may indicate that this is not applicable to your language. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case].", - "TEXT_TRIM_HELPURL": "{{Optional}} url - Information about trimming (removing) text off the beginning and ends of pieces of text.", - "TEXT_TRIM_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces https://github.com/google/blockly/wiki/Text#trimming-removing-spaces].", - "TEXT_TRIM_OPERATOR_BOTH": "dropdown - Removes spaces from the beginning and end of a piece of text. See [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. Note that neither this nor the other options modify the original piece of text (that follows); the block just returns a version of the text without the specified spaces.", - "TEXT_TRIM_OPERATOR_LEFT": "dropdown - Removes spaces from the beginning of a piece of text. See [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. Note that in right-to-left scripts, this will remove spaces from the right side.", - "TEXT_TRIM_OPERATOR_RIGHT": "dropdown - Removes spaces from the end of a piece of text. See [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. Note that in right-to-left scripts, this will remove spaces from the left side.", - "TEXT_PRINT_HELPURL": "{{Optional}} url - Information about displaying text on computers.", - "TEXT_PRINT_TITLE": "block text - Display the input on the screen. See [https://github.com/google/blockly/wiki/Text#printing-text https://github.com/google/blockly/wiki/Text#printing-text]. \n\nParameters:\n* %1 - the value to print", - "TEXT_PRINT_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#printing-text https://github.com/google/blockly/wiki/Text#printing-text].", - "TEXT_PROMPT_HELPURL": "{{Optional}} url - Information about getting text from users.", - "TEXT_PROMPT_TYPE_TEXT": "dropdown - Specifies that a piece of text should be requested from the user with the following message. See [https://github.com/google/blockly/wiki/Text#printing-text https://github.com/google/blockly/wiki/Text#printing-text].", - "TEXT_PROMPT_TYPE_NUMBER": "dropdown - Specifies that a number should be requested from the user with the following message. See [https://github.com/google/blockly/wiki/Text#printing-text https://github.com/google/blockly/wiki/Text#printing-text].", - "TEXT_PROMPT_TOOLTIP_NUMBER": "dropdown - Precedes the message with which the user should be prompted for a number. See [https://github.com/google/blockly/wiki/Text#printing-text https://github.com/google/blockly/wiki/Text#printing-text].", - "TEXT_PROMPT_TOOLTIP_TEXT": "dropdown - Precedes the message with which the user should be prompted for some text. See [https://github.com/google/blockly/wiki/Text#printing-text https://github.com/google/blockly/wiki/Text#printing-text].", - "TEXT_COUNT_MESSAGE0": "block text - Title of a block that counts the number of instances of a smaller pattern (%1) inside a longer string (%2).", - "TEXT_COUNT_HELPURL": "{{Optional}} url - Information about counting how many times a string appears in another string.", - "TEXT_COUNT_TOOLTIP": "tooltip - Short description of a block that counts how many times some text occurs within some other text.", - "TEXT_REPLACE_MESSAGE0": "block text - Title of a block that returns a copy of text (%3) with all instances of some smaller text (%1) replaced with other text (%2).", - "TEXT_REPLACE_HELPURL": "{{Optional}} url - Information about replacing each copy text (or string, in computer lingo) with other text.", - "TEXT_REPLACE_TOOLTIP": "tooltip - Short description of a block that replaces copies of text in a large text with other text.", - "TEXT_REVERSE_MESSAGE0": "block text - Title of block that returns a copy of text (%1) with the order of letters and characters reversed.", - "TEXT_REVERSE_HELPURL": "{{Optional}} url - Information about reversing a letters/characters in text.", - "TEXT_REVERSE_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text].", - "LISTS_CREATE_EMPTY_HELPURL": "{{Optional}} url - Information on empty lists.", - "LISTS_CREATE_EMPTY_TITLE": "block text - See [https://github.com/google/blockly/wiki/Lists#create-empty-list https://github.com/google/blockly/wiki/Lists#create-empty-list].", - "LISTS_CREATE_EMPTY_TOOLTIP": "block text - See [https://github.com/google/blockly/wiki/Lists#create-empty-list https://github.com/google/blockly/wiki/Lists#create-empty-list].", - "LISTS_CREATE_WITH_HELPURL": "{{Optional}} url - Information on building lists.", - "LISTS_CREATE_WITH_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Lists#create-list-with https://github.com/google/blockly/wiki/Lists#create-list-with].", - "LISTS_CREATE_WITH_INPUT_WITH": "block text - See [https://github.com/google/blockly/wiki/Lists#create-list-with https://github.com/google/blockly/wiki/Lists#create-list-with].", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "block text - This appears in a sub-block when [https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs changing the number of inputs in a ''''create list with'''' block].\n{{Identical|List}}", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs].", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs].", - "LISTS_REPEAT_HELPURL": "{{Optional}} url - Information about [https://github.com/google/blockly/wiki/Lists#create-list-with creating a list with multiple copies of a single item].", - "LISTS_REPEAT_TOOLTIP": "{{Optional}} url - See [https://github.com/google/blockly/wiki/Lists#create-list-with creating a list with multiple copies of a single item].", - "LISTS_REPEAT_TITLE": "block text - See [https://github.com/google/blockly/wiki/Lists#create-list-with https://github.com/google/blockly/wiki/Lists#create-list-with]. \n\nParameters:\n* %1 - the item (text) to be repeated\n* %2 - the number of times to repeat it", - "LISTS_LENGTH_HELPURL": "{{Optional}} url - Information about how the length of a list is computed (i.e., by the total number of elements, not the number of different elements).", - "LISTS_LENGTH_TITLE": "block text - See [https://github.com/google/blockly/wiki/Lists#length-of https://github.com/google/blockly/wiki/Lists#length-of]. \n\nParameters:\n* %1 - the list whose length is desired", - "LISTS_LENGTH_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Lists#length-of https://github.com/google/blockly/wiki/Lists#length-of Blockly:Lists:length of].", - "LISTS_ISEMPTY_HELPURL": "{{Optional}} url - See [https://github.com/google/blockly/wiki/Lists#is-empty https://github.com/google/blockly/wiki/Lists#is-empty].", - "LISTS_ISEMPTY_TITLE": "block text - See [https://github.com/google/blockly/wiki/Lists#is-empty https://github.com/google/blockly/wiki/Lists#is-empty]. \n\nParameters:\n* %1 - the list to test", - "LISTS_ISEMPTY_TOOLTIP": "block tooltip - See [https://github.com/google/blockly/wiki/Lists#is-empty https://github.com/google/blockly/wiki/Lists#is-empty].", - "LISTS_INLIST": "block text - Title of blocks operating on [https://github.com/google/blockly/wiki/Lists lists].", - "LISTS_INDEX_OF_HELPURL": "{{Optional}} url - See [https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list].", - "LISTS_INDEX_OF_FIRST": "dropdown - See [https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list Lists#finding-items-in-a-list]. [[File:Blockly-list-find.png]]", - "LISTS_INDEX_OF_LAST": "dropdown - See [https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list]. [[File:Blockly-list-find.png]]", - "LISTS_INDEX_OF_TOOLTIP": "tooltip - %1 will be replaced by either the number 0 or -1 depending on the indexing mode. See [https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list]. [[File:Blockly-list-find.png]]", - "LISTS_GET_INDEX_GET": "dropdown - Indicates that the user wishes to [https://github.com/google/blockly/wiki/Lists#getting-a-single-item get an item from a list] without removing it from the list.", - "LISTS_GET_INDEX_GET_REMOVE": "dropdown - Indicates that the user wishes to [https://github.com/google/blockly/wiki/Lists#getting-a-single-item get and remove an item from a list], as opposed to merely getting it without modifying the list.", - "LISTS_GET_INDEX_REMOVE": "dropdown - Indicates that the user wishes to [https://github.com/google/blockly/wiki/Lists#removing-an-item remove an item from a list].\n{{Identical|Remove}}", - "LISTS_GET_INDEX_FROM_START": "dropdown - Indicates that an index relative to the front of the list should be used to [https://github.com/google/blockly/wiki/Lists#getting-a-single-item get and/or remove an item from a list]. Note: If {{msg-blockly|ORDINAL_NUMBER_SUFFIX}} is defined, it will automatically appear ''after'' this number (and any other ordinal numbers on this block). See [[Translating:Blockly#Ordinal_numbers]] for more information on ordinal numbers in Blockly. [[File:Blockly-list-get-item.png]]", - "LISTS_GET_INDEX_FROM_END": "dropdown - Indicates that an index relative to the end of the list should be used to [https://github.com/google/blockly/wiki/Lists#getting-a-single-item access an item in a list]. [[File:Blockly-list-get-item.png]]", - "LISTS_GET_INDEX_FIRST": "dropdown - Indicates that the '''first''' item should be [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. [[File:Blockly-list-get-item.png]]", - "LISTS_GET_INDEX_LAST": "dropdown - Indicates that the '''last''' item should be [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. [[File:Blockly-list-get-item.png]]", - "LISTS_GET_INDEX_RANDOM": "dropdown - Indicates that a '''random''' item should be [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. [[File:Blockly-list-get-item.png]]", - "LISTS_GET_INDEX_TAIL": "block text - Text that should go after the rightmost block/dropdown when [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessing an item from a list]. In most languages, this will be the empty string. [[File:Blockly-list-get-item.png]]", - "LISTS_INDEX_FROM_START_TOOLTIP": "tooltip - Indicates the ordinal number that the first item in a list is referenced by. %1 will be replaced by either '#0' or '#1' depending on the indexing mode.", - "LISTS_INDEX_FROM_END_TOOLTIP": "tooltip - Indicates the ordinal number that the last item in a list is referenced by. %1 will be replaced by either '#0' or '#1' depending on the indexing mode.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for '#' or '# from end'.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'first'.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'last'.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'random'.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for '#' or '# from end'.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'first'.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'last'.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'random'.", - "LISTS_SET_INDEX_HELPURL": "{{Optional}} url - Information about putting items in lists.", - "LISTS_SET_INDEX_SET": "block text - [https://github.com/google/blockly/wiki/Lists#in-list--set Replaces an item in a list]. [[File:Blockly-in-list-set-insert.png]]", - "LISTS_SET_INDEX_INSERT": "block text - [https://github.com/google/blockly/wiki/Lists#in-list--insert-at Inserts an item into a list]. [[File:Blockly-in-list-set-insert.png]]", - "LISTS_SET_INDEX_INPUT_TO": "block text - The word(s) after the position in the list and before the item to be set/inserted. [[File:Blockly-in-list-set-insert.png]]", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'set' block).", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'set' block).", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'set' block).", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'set' block).", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'insert' block).", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'insert' block).", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'insert' block).", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the 'get' block, the idea is the same for the 'insert' block).", - "LISTS_GET_SUBLIST_HELPURL": "{{Optional}} url - Information describing extracting a sublist from an existing list.", - "LISTS_GET_SUBLIST_START_FROM_START": "dropdown - Indicates that an index relative to the front of the list should be used to specify the beginning of the range from which to [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. [[File:Blockly-get-sublist.png]] Note: If {{msg-blockly|ORDINAL_NUMBER_SUFFIX}} is defined, it will automatically appear ''after'' this number (and any other ordinal numbers on this block). See [[Translating:Blockly#Ordinal_numbers]] for more information on ordinal numbers in Blockly.", - "LISTS_GET_SUBLIST_START_FROM_END": "dropdown - Indicates that an index relative to the end of the list should be used to specify the beginning of the range from which to [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist].", - "LISTS_GET_SUBLIST_START_FIRST": "dropdown - Indicates that the [https://github.com/google/blockly/wiki/Lists#getting-a-sublist sublist to extract] should begin with the list's first item.", - "LISTS_GET_SUBLIST_END_FROM_START": "dropdown - Indicates that an index relative to the front of the list should be used to specify the end of the range from which to [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. [[File:Blockly-get-sublist.png]]", - "LISTS_GET_SUBLIST_END_FROM_END": "dropdown - Indicates that an index relative to the end of the list should be used to specify the end of the range from which to [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. [[File:Blockly-get-sublist.png]]", - "LISTS_GET_SUBLIST_END_LAST": "dropdown - Indicates that the '''last''' item in the given list should be [https://github.com/google/blockly/wiki/Lists#getting-a-sublist the end of the selected sublist]. [[File:Blockly-get-sublist.png]]", - "LISTS_GET_SUBLIST_TAIL": "block text - This appears in the rightmost position ('tail') of the sublist block, as described at [https://github.com/google/blockly/wiki/Lists#getting-a-sublist https://github.com/google/blockly/wiki/Lists#getting-a-sublist]. In English and most other languages, this is the empty string. [[File:Blockly-get-sublist.png]]", - "LISTS_GET_SUBLIST_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-sublist https://github.com/google/blockly/wiki/Lists#getting-a-sublist] for more information. [[File:Blockly-get-sublist.png]]", - "LISTS_SORT_HELPURL": "{{Optional}} url - Information describing sorting a list.", - "LISTS_SORT_TITLE": "Sort as type %1 (numeric or alphabetic) in order %2 (ascending or descending) a list of items %3.\n{{Identical|Sort}}", - "LISTS_SORT_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Lists#sorting-a-list].", - "LISTS_SORT_ORDER_ASCENDING": "sorting order or direction from low to high value for numeric, or A-Z for alphabetic.\n{{Identical|Ascending}}", - "LISTS_SORT_ORDER_DESCENDING": "sorting order or direction from high to low value for numeric, or Z-A for alphabetic.\n{{Identical|Descending}}", - "LISTS_SORT_TYPE_NUMERIC": "sort by treating each item as a number.", - "LISTS_SORT_TYPE_TEXT": "sort by treating each item alphabetically, case-sensitive.", - "LISTS_SORT_TYPE_IGNORECASE": "sort by treating each item alphabetically, ignoring differences in case.", - "LISTS_SPLIT_HELPURL": "{{Optional}} url - Information describing splitting text into a list, or joining a list into text.", - "LISTS_SPLIT_LIST_FROM_TEXT": "dropdown - Indicates that text will be split up into a list (e.g. 'a-b-c' -> ['a', 'b', 'c']).", - "LISTS_SPLIT_TEXT_FROM_LIST": "dropdown - Indicates that a list will be joined together to form text (e.g. ['a', 'b', 'c'] -> 'a-b-c').", - "LISTS_SPLIT_WITH_DELIMITER": "block text - Prompts for a letter to be used as a separator when splitting or joining text.", - "LISTS_SPLIT_TOOLTIP_SPLIT": "tooltip - See [https://github.com/google/blockly/wiki/Lists#make-list-from-text https://github.com/google/blockly/wiki/Lists#make-list-from-text] for more information.", - "LISTS_SPLIT_TOOLTIP_JOIN": "tooltip - See [https://github.com/google/blockly/wiki/Lists#make-text-from-list https://github.com/google/blockly/wiki/Lists#make-text-from-list] for more information.", - "LISTS_REVERSE_HELPURL": "{{Optional}} url - Information describing reversing a list.", - "LISTS_REVERSE_MESSAGE0": "block text - Title of block that returns a copy of a list (%1) with the order of items reversed.", - "LISTS_REVERSE_TOOLTIP": "tooltip - Short description for a block that reverses a copy of a list.", - "ORDINAL_NUMBER_SUFFIX": "grammar - Text that follows an ordinal number (a number that indicates position relative to other numbers). In most languages, such text appears before the number, so this should be blank. An exception is Hungarian. See [[Translating:Blockly#Ordinal_numbers]] for more information.", - "VARIABLES_GET_HELPURL": "{{Optional}} url - Information about ''variables'' in computer programming. Consider using your language's translation of [https://en.wikipedia.org/wiki/Variable_(computer_science) https://en.wikipedia.org/wiki/Variable_(computer_science)], if it exists.", - "VARIABLES_GET_TOOLTIP": "tooltip - This gets the value of the named variable without modifying it.", - "VARIABLES_GET_CREATE_SET": "context menu - Selecting this creates a block to set (change) the value of this variable. \n\nParameters:\n* %1 - the name of the variable.", - "VARIABLES_SET_HELPURL": "{{Optional}} url - Information about ''variables'' in computer programming. Consider using your language's translation of [https://en.wikipedia.org/wiki/Variable_(computer_science) https://en.wikipedia.org/wiki/Variable_(computer_science)], if it exists.", - "VARIABLES_SET": "block text - Change the value of a mathematical variable: '''set [the value of] x to 7'''.\n\nParameters:\n* %1 - the name of the variable.\n* %2 - the value to be assigned.", - "VARIABLES_SET_TOOLTIP": "tooltip - This initializes or changes the value of the named variable.", - "VARIABLES_SET_CREATE_GET": "context menu - Selecting this creates a block to get (change) the value of this variable.\n\nParameters:\n* %1 - the name of the variable.", - "PROCEDURES_DEFNORETURN_HELPURL": "{{Optional}} url - Information about defining [https://en.wikipedia.org/wiki/Subroutine functions] that do not have return values.", - "PROCEDURES_DEFNORETURN_TITLE": "block text - This precedes the name of the function when defining it. See [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#c84aoc this sample function definition].", - "PROCEDURES_DEFNORETURN_PROCEDURE": "default name - This acts as a placeholder for the name of a function on a function definition block, as shown on [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#w7cfju this block]. The user will replace it with the function's name.", - "PROCEDURES_BEFORE_PARAMS": "block text - This precedes the list of parameters on a function's definition block. See [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#voztpd this sample function with parameters].", - "PROCEDURES_CALL_BEFORE_PARAMS": "block text - This precedes the list of parameters on a function's caller block. See [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#voztpd this sample function with parameters].", - "PROCEDURES_DEFNORETURN_DO": "block text - This appears next to the function's 'body', the blocks that should be run when the function is called, as shown in [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#voztpd this sample function definition].", - "PROCEDURES_DEFNORETURN_TOOLTIP": "tooltip", - "PROCEDURES_DEFNORETURN_COMMENT": "Placeholder text that the user is encouraged to replace with a description of what their function does.", - "PROCEDURES_DEFRETURN_HELPURL": "{{Optional}} url - Information about defining [https://en.wikipedia.org/wiki/Subroutine functions] that have return values.", - "PROCEDURES_DEFRETURN_RETURN": "block text - This imperative or infinite verb precedes the value that is used as the return value (output) of this function. See [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#6ot5y5 this sample function that returns a value].", - "PROCEDURES_DEFRETURN_TOOLTIP": "tooltip", - "PROCEDURES_ALLOW_STATEMENTS": "Label for a checkbox that controls if statements are allowed in a function.", - "PROCEDURES_DEF_DUPLICATE_WARNING": "alert - The user has created a function with two parameters that have the same name. Every parameter must have a different name.", - "PROCEDURES_CALLNORETURN_HELPURL": "{{Optional}} url - Information about calling [https://en.wikipedia.org/wiki/Subroutine functions] that do not return values.", - "PROCEDURES_CALLNORETURN_TOOLTIP": "tooltip - This block causes the body (blocks inside) of the named function definition to be run.", - "PROCEDURES_CALLRETURN_HELPURL": "{{Optional}} url - Information about calling [https://en.wikipedia.org/wiki/Subroutine functions] that return values.", - "PROCEDURES_CALLRETURN_TOOLTIP": "tooltip - This block causes the body (blocks inside) of the named function definition to be run.\n\nParameters:\n* %1 - the name of the function.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "block text - This text appears on a block in a window that appears when the user clicks on the plus sign or star on a function definition block. It refers to the set of parameters (referred to by the simpler term 'inputs') to the function. See [[Translating:Blockly#function_definitions]].\n{{Identical|Input}}", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "tooltip", - "PROCEDURES_MUTATORARG_TITLE": "block text - This text appears on a block in a window that appears when the user clicks on the plus sign or star on a function definition block]. It appears on the block for adding an individual parameter (referred to by the simpler term 'inputs') to the function. See [[Translating:Blockly#function_definitions]].", - "PROCEDURES_MUTATORARG_TOOLTIP": "tooltip", - "PROCEDURES_HIGHLIGHT_DEF": "context menu - This appears on the context menu for function calls. Selecting it causes the corresponding function definition to be highlighted (as shown at [[Translating:Blockly#context_menus]].", - "PROCEDURES_CREATE_DO": "context menu - This appears on the context menu for function definitions. Selecting it creates a block to call the function.\n\nParameters:\n* %1 - the name of the function.\n{{Identical|Create}}", - "PROCEDURES_IFRETURN_TOOLTIP": "tooltip - If the first value is true, this causes the second value to be returned immediately from the enclosing function.", - "PROCEDURES_IFRETURN_HELPURL": "{{Optional}} url - Information about guard clauses.", - "PROCEDURES_IFRETURN_WARNING": "warning - This appears if the user tries to use this block outside of a function definition.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "comment text - This text appears in a new workspace comment, to hint that the user can type here.", - "COLLAPSED_WARNINGS_WARNING": "warning - This appears if the user collapses a block, and blocks inside that block have warnings attached to them. It should inform the user that the block they collapsed contains blocks that have warnings." -} diff --git a/lib/blockly/msg/json/ro.json b/lib/blockly/msg/json/ro.json deleted file mode 100644 index df3ead9..0000000 --- a/lib/blockly/msg/json/ro.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Minisarm", - "Ely en", - "Hugbear", - "아라", - "Ykhwong", - "Wintereu", - "MSClaudiu" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "TODAY": "Astăzi", - "DUPLICATE_BLOCK": "Duplicate", - "ADD_COMMENT": "Adaugă un comentariu", - "REMOVE_COMMENT": "Elimină comentariu", - "DUPLICATE_COMMENT": "Coment duplicat", - "EXTERNAL_INPUTS": "Intrări externe", - "INLINE_INPUTS": "Intrări în linie", - "DELETE_BLOCK": "Șterge Bloc", - "DELETE_X_BLOCKS": "Ștergeți %1 Blocuri", - "DELETE_ALL_BLOCKS": "Ștergi toate cele %1 (de) blocuri?", - "CLEAN_UP": "Curăță blocări", - "COLLAPSE_BLOCK": "Restrange blocul", - "COLLAPSE_ALL": "Restrange blocurile", - "EXPAND_BLOCK": "Extinde bloc", - "EXPAND_ALL": "Extinde blocuri", - "DISABLE_BLOCK": "Dezactivaţi bloc", - "ENABLE_BLOCK": "Permite bloc", - "HELP": "Ajutor", - "UNDO": "Anulează", - "REDO": "Refă", - "CHANGE_VALUE_TITLE": "Schimbaţi valoarea:", - "RENAME_VARIABLE": "Redenumirea variabilei...", - "RENAME_VARIABLE_TITLE": "Redenumeşte toate variabilele '%1' în:", - "NEW_VARIABLE": "Crează variabilă", - "NEW_STRING_VARIABLE": "Crează o variabilă string", - "NEW_NUMBER_VARIABLE": "Crează o variabilă număr", - "NEW_COLOUR_VARIABLE": "Crează o variabilă culoare", - "NEW_VARIABLE_TYPE_TITLE": "Tip nou de variabilă", - "NEW_VARIABLE_TITLE": "Noul nume de variabilă:", - "VARIABLE_ALREADY_EXISTS": "O variabilă cu numele '%1' există deja.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "o variabilă numită '%1' există deja pentru alt tip: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Șterge %1 utilizările variabilei '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Nu se poate șterge variabila '%1' deoarece face parte din definiția funcției '%2'", - "DELETE_VARIABLE": "Ștergeți variabila '%1'", - "COLOUR_PICKER_HELPURL": "https://ro.wikipedia.org/wiki/Culoare", - "COLOUR_PICKER_TOOLTIP": "Alege o culoare din paleta de culori.", - "COLOUR_RANDOM_TITLE": "culoare aleatorie", - "COLOUR_RANDOM_TOOLTIP": "Alege o culoare la întâmplare.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "colorează cu", - "COLOUR_RGB_RED": "roşu", - "COLOUR_RGB_GREEN": "verde", - "COLOUR_RGB_BLUE": "albastru", - "COLOUR_RGB_TOOLTIP": "Creează o culoare cu suma specificată de roşu, verde şi albastru. Toate valorile trebuie să fie între 0 şi 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "amestec", - "COLOUR_BLEND_COLOUR1": "culoare 1", - "COLOUR_BLEND_COLOUR2": "culoare 2", - "COLOUR_BLEND_RATIO": "Raport", - "COLOUR_BLEND_TOOLTIP": "Amestecă două culori cu un raport dat (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repetă de %1 ori", - "CONTROLS_REPEAT_INPUT_DO": "fă", - "CONTROLS_REPEAT_TOOLTIP": "Face unele afirmaţii de mai multe ori.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repetă în timp ce", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "Repetaţi până când", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "În timp ce o valoare este adevărat, atunci face unele declaraţii.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "În timp ce o valoare este adevărat, atunci face unele declaraţii.", - "CONTROLS_FOR_TOOLTIP": "Cu variablia \"%1\" ia o valoare din numărul început la numărul final, numara in intervalul specificat, apoi face blocurile specificate.", - "CONTROLS_FOR_TITLE": "numără cu %1 de la %2 la %3 prin %4", - "CONTROLS_FOREACH_TITLE": "pentru fiecare element %1 în listă %2", - "CONTROLS_FOREACH_TOOLTIP": "Pentru fiecare element din listă, setaţi variabila '%1' ca valoarea elementului, şi apoi faceţi unele declaraţii.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ieşi din bucla", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "continuă cu următoarea iterație a buclei", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Ieși din bucla care conţine.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Sari peste restul aceastei bucle, şi continuă cu urmatoarea iteratie.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Avertisment: Acest bloc pote fi utilizat numai în interiorul unei bucle.", - "CONTROLS_IF_TOOLTIP_1": "Dacă o valoare este adevărată, atunci fa unele declaraţii.", - "CONTROLS_IF_TOOLTIP_2": "Dacă o valoare este adevărat, atunci face primul bloc de declaraţii. Altfel, face al doilea bloc de declaraţii.", - "CONTROLS_IF_TOOLTIP_3": "Dacă prima valoare este adevărat, atunci face primul bloc de declaraţii. Altfel, dacă a doua valoare este adevărat, face al doilea bloc de declaraţii.", - "CONTROLS_IF_TOOLTIP_4": "Dacă prima valoare este adevărat, atunci face primul bloc de declaraţii. Altfel, dacă a doua valoare este adevărat, face al doilea bloc de declaraţii. În cazul în care niciuna din valorilor nu este adevărat, face ultimul bloc de declaraţii.", - "CONTROLS_IF_MSG_IF": "dacă", - "CONTROLS_IF_MSG_ELSEIF": "altfel dacă", - "CONTROLS_IF_MSG_ELSE": "altfel", - "CONTROLS_IF_IF_TOOLTIP": "Adaugă, elimină sau reordonează secţiuni pentru a reconfigura acest bloc if.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Adăugaţi o condiţie in blocul if.", - "CONTROLS_IF_ELSE_TOOLTIP": "Adauga o stare finala, cuprinde toata conditia din blocul if.", - "IOS_OK": "OK", - "IOS_CANCEL": "Anulare", - "IOS_ERROR": "Eroare", - "IOS_PROCEDURES_INPUTS": "INTRĂRI", - "IOS_PROCEDURES_ADD_INPUT": "+ Adăugați intrare", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Permite declarațiile", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Această funcție are intrări duplicate.", - "IOS_VARIABLES_ADD_VARIABLE": "+Adăugați variabilă", - "IOS_VARIABLES_ADD_BUTTON": "Adaugă", - "IOS_VARIABLES_RENAME_BUTTON": "Redenumire", - "IOS_VARIABLES_DELETE_BUTTON": "Ştergeți", - "IOS_VARIABLES_VARIABLE_NAME": "Numele variabilei", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Nu puteți utiliza un nume de variabilă gol.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Returnează adevărat dacă ambele intrări sunt egale.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Returnează adevărat daca cele două intrări nu sunt egale.", - "LOGIC_COMPARE_TOOLTIP_LT": "Returnează adevărat dacă prima intrare este mai mică decât a doua intrare.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Returnează adevărat dacă prima intrare este mai mică sau egală cu a doua intrare.", - "LOGIC_COMPARE_TOOLTIP_GT": "Returnează adevărat dacă prima intrare este mai mare decât a doua intrare.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Returnează adevărat dacă prima intrare este mai mare sau egală cu a doua intrare.", - "LOGIC_OPERATION_TOOLTIP_AND": "Returnează adevărat daca ambele intrări sunt adevărate.", - "LOGIC_OPERATION_AND": "şi", - "LOGIC_OPERATION_TOOLTIP_OR": "Returnează adevărat dacă cel puţin una din intrări este adevărată.", - "LOGIC_OPERATION_OR": "sau", - "LOGIC_NEGATE_TITLE": "non %1", - "LOGIC_NEGATE_TOOLTIP": "Returnează adevărat dacă intrarea este falsă. Returnează fals dacă intrarea este adevărată.", - "LOGIC_BOOLEAN_TRUE": "adevărat", - "LOGIC_BOOLEAN_FALSE": "fals", - "LOGIC_BOOLEAN_TOOLTIP": "Returnează adevărat sau fals.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "nul", - "LOGIC_NULL_TOOLTIP": "returnează nul.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "dacă este adevărat", - "LOGIC_TERNARY_IF_FALSE": "dacă este fals", - "LOGIC_TERNARY_TOOLTIP": "Verifică condiţia din \"test\". Dacă condiţia este adevărată, returnează valoarea \"în cazul în care adevărat\"; în caz contrar întoarce valoarea \"în cazul în care e fals\".", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Un număr.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tg", - "MATH_TRIG_ASIN": "arcsin", - "MATH_TRIG_ACOS": "arccos", - "MATH_TRIG_ATAN": "arctg", - "MATH_ARITHMETIC_HELPURL": "https://ro.wikipedia.org/wiki/Aritmetic%C4%83", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Returnează suma a două numere.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Returneaza diferenţa dintre cele două numere.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Returnează produsul celor două numere.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Returnează câtul celor două numere.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Returneaza numărul rezultat prin ridicarea primului număr la puterea celui de-al doilea.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "rădăcina pătrată", - "MATH_SINGLE_TOOLTIP_ROOT": "Returnează rădăcina pătrată a unui număr.", - "MATH_SINGLE_OP_ABSOLUTE": "absolută", - "MATH_SINGLE_TOOLTIP_ABS": "Returnează valoarea absolută a unui număr.", - "MATH_SINGLE_TOOLTIP_NEG": "Returnează negaţia unui număr.", - "MATH_SINGLE_TOOLTIP_LN": "Întoarce logaritmul natural al unui număr.", - "MATH_SINGLE_TOOLTIP_LOG10": "Returnează logaritmul în baza 10 a unui număr.", - "MATH_SINGLE_TOOLTIP_EXP": "Returnează e la puterea unui număr.", - "MATH_SINGLE_TOOLTIP_POW10": "Returnează 10 la puterea unui număr.", - "MATH_TRIG_HELPURL": "https://ro.wikipedia.org/wiki/Funcții_trigonometrice", - "MATH_TRIG_TOOLTIP_SIN": "Întoarce cosinusul unui grad (nu radianul).", - "MATH_TRIG_TOOLTIP_COS": "Întoarce cosinusul unui grad (nu radianul).", - "MATH_TRIG_TOOLTIP_TAN": "Întoarce tangenta unui grad (nu radianul).", - "MATH_TRIG_TOOLTIP_ASIN": "Returnează arcsinusul unui număr.", - "MATH_TRIG_TOOLTIP_ACOS": "Returnează arccosinusul unui număr.", - "MATH_TRIG_TOOLTIP_ATAN": "Returnează arctangenta unui număr.", - "MATH_CONSTANT_HELPURL": "https://ro.wikipedia.org/wiki/Constant%C4%83_matematic%C4%83", - "MATH_CONSTANT_TOOLTIP": "Întoarcă una din constantele comune: π (3.141...), e (2.718...), φ (1,618...), sqrt(2) (1.414...), sqrt(½) (0.707...) sau ∞ (infinitate).", - "MATH_IS_EVEN": "este par", - "MATH_IS_ODD": "este impar", - "MATH_IS_PRIME": "este prim", - "MATH_IS_WHOLE": "este întreg", - "MATH_IS_POSITIVE": "este pozitiv", - "MATH_IS_NEGATIVE": "este negativ", - "MATH_IS_DIVISIBLE_BY": "este divizibil cu", - "MATH_IS_TOOLTIP": "Verifică dacă un număr este un par, impar, prim, întreg, pozitiv, negativ, sau dacă este divizibil cu un anumit număr. Returnează true sau false.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "schimbă %1 de %2", - "MATH_CHANGE_TOOLTIP": "Adaugă un număr variabilei '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Rotunjirea unui număr în sus sau în jos.", - "MATH_ROUND_OPERATOR_ROUND": "rotund", - "MATH_ROUND_OPERATOR_ROUNDUP": "rotunjește în sus", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "rotunjit", - "MATH_ONLIST_OPERATOR_SUM": "suma listei", - "MATH_ONLIST_TOOLTIP_SUM": "Returnează suma tuturor numerelor din lista.", - "MATH_ONLIST_OPERATOR_MIN": "minimul listei", - "MATH_ONLIST_TOOLTIP_MIN": "Returnează cel mai mic număr din listă.", - "MATH_ONLIST_OPERATOR_MAX": "maximul listei", - "MATH_ONLIST_TOOLTIP_MAX": "Întoarce cel mai mare număr din listă.", - "MATH_ONLIST_OPERATOR_AVERAGE": "media listei", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Întoarce media (aritmetică) a valorilor numerice în listă.", - "MATH_ONLIST_OPERATOR_MEDIAN": "media listei", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Întoarce numărul median în listă.", - "MATH_ONLIST_OPERATOR_MODE": "moduri de listă", - "MATH_ONLIST_TOOLTIP_MODE": "Returnează o listă cu cel(e) mai frecvent(e) element(e) din listă.", - "MATH_ONLIST_OPERATOR_STD_DEV": "deviația standard a listei", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Întoarce deviația standard a listei.", - "MATH_ONLIST_OPERATOR_RANDOM": "element aleatoriu din lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Returnează un element aleatoriu din listă.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "restul la %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Întoarce restul din împărţirea celor două numere.", - "MATH_CONSTRAIN_TITLE": "constrânge %1 redus %2 ridicat %3", - "MATH_CONSTRAIN_TOOLTIP": "Constrânge un număr să fie între limitele specificate (inclusiv).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "un număr întreg aleator de la %1 la %2", - "MATH_RANDOM_INT_TOOLTIP": "Returnează un număr întreg aleator aflat între cele două limite specificate, inclusiv.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fracții aleatorii", - "MATH_RANDOM_FLOAT_TOOLTIP": "Returnează o fracţie aleatoare între 0.0 (inclusiv) si 1.0 (exclusiv).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 of X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Întoarceți arctangentul punctului (X, Y) în grade de la -180 la 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "O literă, cuvânt sau linie de text.", - "TEXT_JOIN_TITLE_CREATEWITH": "crează text cu", - "TEXT_JOIN_TOOLTIP": "Creaţi o bucată de text prin unirea oricărui număr de elemente.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "alăturaţi-vă", - "TEXT_CREATE_JOIN_TOOLTIP": "Adaugă, elimină sau reordonează secțiuni ca să reconfigureze blocul text.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Adaugă un element în text.", - "TEXT_APPEND_TITLE": "la %1 Adăugaţi text %2", - "TEXT_APPEND_TOOLTIP": "Adăugaţi text la variabila '%1'.", - "TEXT_LENGTH_TITLE": "lungime de %1", - "TEXT_LENGTH_TOOLTIP": "Returnează numărul de litere (inclusiv spaţiile) în textul furnizat.", - "TEXT_ISEMPTY_TITLE": "%1 este gol", - "TEXT_ISEMPTY_TOOLTIP": "Returnează adevărat dacă textul furnizat este gol.", - "TEXT_INDEXOF_TOOLTIP": "Returnează indicele primei/ultimei apariţii din primul text în al doilea text. Returnează %1 dacă textul nu este găsit.", - "TEXT_INDEXOF_TITLE": "în text %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "găseşte prima apariţie a textului", - "TEXT_INDEXOF_OPERATOR_LAST": "găseşte ultima apariţie a textului", - "TEXT_CHARAT_TITLE": "în text %1 %2", - "TEXT_CHARAT_FROM_START": "obtine litera #", - "TEXT_CHARAT_FROM_END": "obţine litera # de la sfârșit", - "TEXT_CHARAT_FIRST": "obţine prima litera", - "TEXT_CHARAT_LAST": "obţine o litera oarecare", - "TEXT_CHARAT_RANDOM": "obtine o litera oarecare", - "TEXT_CHARAT_TOOLTIP": "Returnează litera la poziția specificată.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Returnează o anumită parte din text.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "în text", - "TEXT_GET_SUBSTRING_START_FROM_START": "obține subșir de la litera #", - "TEXT_GET_SUBSTRING_START_FROM_END": "obține un subșir de la litera # de la sfârșit", - "TEXT_GET_SUBSTRING_START_FIRST": "obţine un subșir de la prima literă", - "TEXT_GET_SUBSTRING_END_FROM_START": "la litera #", - "TEXT_GET_SUBSTRING_END_FROM_END": "la litera # de la sfarsit", - "TEXT_GET_SUBSTRING_END_LAST": "la ultima literă", - "TEXT_CHANGECASE_TOOLTIP": "Întoarce o copie a textului într-un caz diferit.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "la MAJUSCULE", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "la litere mici", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "către Titlul de caz", - "TEXT_TRIM_TOOLTIP": "Returnează o copie a textului fără spațiile de la unul sau ambele capete.", - "TEXT_TRIM_OPERATOR_BOTH": "taie spațiile de pe ambele părți ale", - "TEXT_TRIM_OPERATOR_LEFT": "tăiaţi spațiile din partea stângă a", - "TEXT_TRIM_OPERATOR_RIGHT": "taie spațiile din partea dreaptă a", - "TEXT_PRINT_TITLE": "imprimare %1", - "TEXT_PRINT_TOOLTIP": "Afișează textul specificat, numărul sau altă valoare.", - "TEXT_PROMPT_TYPE_TEXT": "solicită pentru text cu mesaj", - "TEXT_PROMPT_TYPE_NUMBER": "solicită pentru număr cu mesaj", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Solicită utilizatorul pentru un număr.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Solicită utilizatorul pentru text.", - "TEXT_COUNT_MESSAGE0": "numără %1 in %2", - "TEXT_COUNT_TOOLTIP": "Aflați de câte ori apare un text într-un alt text.", - "TEXT_REPLACE_MESSAGE0": "înlocuiți %1 cu %2 în %3", - "TEXT_REPLACE_TOOLTIP": "Înlocuiți toate aparițiile anumitor texte într-un alt text.", - "TEXT_REVERSE_MESSAGE0": "inversă %1", - "TEXT_REVERSE_TOOLTIP": "Inversează ordinea caracterelor din text.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "creează listă goală", - "LISTS_CREATE_EMPTY_TOOLTIP": "Returnează o listă, de lungime 0, care nu conţine înregistrări de date", - "LISTS_CREATE_WITH_TOOLTIP": "Creaţi o listă cu orice număr de elemente.", - "LISTS_CREATE_WITH_INPUT_WITH": "creează listă cu", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "listă", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Adaugă, elimină sau reordonează secţiuni ca să reconfiguraţi aceste blocuri de listă.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Adăugaţi un element la listă.", - "LISTS_REPEAT_TOOLTIP": "Creează o listă alcătuită dintr-o anumită valoare repetată de numărul specificat de ori.", - "LISTS_REPEAT_TITLE": "creaza lista cu %1 elemente repetate de %2 ori", - "LISTS_LENGTH_TITLE": "lungime de %1", - "LISTS_LENGTH_TOOLTIP": "Returnează lungimea unei liste.", - "LISTS_ISEMPTY_TITLE": "%1 este gol", - "LISTS_ISEMPTY_TOOLTIP": "Returnează adevărat dacă lista este goală.", - "LISTS_INLIST": "în listă", - "LISTS_INDEX_OF_FIRST": "Găseşte prima apariţie a elementului", - "LISTS_INDEX_OF_LAST": "găseşte ultima apariţie a elementului", - "LISTS_INDEX_OF_TOOLTIP": "Returnează indexul primei/ultimei apariții a articolului din listă. Returnează %1 dacă elementul nu este găsit.", - "LISTS_GET_INDEX_GET": "obţine", - "LISTS_GET_INDEX_GET_REMOVE": "obţine şi elimină", - "LISTS_GET_INDEX_REMOVE": "elimină", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# de la sfârșit", - "LISTS_GET_INDEX_FIRST": "primul", - "LISTS_GET_INDEX_LAST": "ultimul", - "LISTS_GET_INDEX_RANDOM": "aleator", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 este primul element.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 este ultimul element.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Returneaza elementul la poziţia specificată într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Returnează primul element dintr-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Returnează ultimul element într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Returneaza un element aleatoriu într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Elimină şi returneaza elementul la poziţia specificată într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Elimină şi returnează primul element într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Elimină şi returnează ultimul element într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Elimină şi returnează un element aleatoriu într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Elimină elementul la poziţia specificată într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Elimină primul element într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Elimină ultimul element într-o listă.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Elimină un element aleatoriu într-o listă.", - "LISTS_SET_INDEX_SET": "seteaza", - "LISTS_SET_INDEX_INSERT": "introduceţi la", - "LISTS_SET_INDEX_INPUT_TO": "ca", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Setează elementul la poziţia specificată într-o listă.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Setează primul element într-o listă.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Setează ultimul element într-o listă.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Setează un element aleator într-o listă.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Inserează elementul la poziţia specificată într-o listă.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Inserează elementul la începutul unei liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Adăugă elementul la sfârşitul unei liste.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Inserează elementul aleatoriu într-o listă.", - "LISTS_GET_SUBLIST_START_FROM_START": "obţine sub-lista de la #", - "LISTS_GET_SUBLIST_START_FROM_END": "obţine sub-lista de la # de la sfârşitul", - "LISTS_GET_SUBLIST_START_FIRST": "obţine sub-lista de la primul", - "LISTS_GET_SUBLIST_END_FROM_START": "la #", - "LISTS_GET_SUBLIST_END_FROM_END": "la # de la sfarsit", - "LISTS_GET_SUBLIST_END_LAST": "la ultima", - "LISTS_GET_SUBLIST_TOOLTIP": "Creează o copie a porţiunii specificate dintr-o listă.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sortați %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sortați o copie a unei liste.", - "LISTS_SORT_ORDER_ASCENDING": "crescător", - "LISTS_SORT_ORDER_DESCENDING": "descrescător", - "LISTS_SORT_TYPE_NUMERIC": "numeric", - "LISTS_SORT_TYPE_TEXT": "alfabetic", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetic, ignorați cazul", - "LISTS_SPLIT_LIST_FROM_TEXT": "convertește textul în listă", - "LISTS_SPLIT_TEXT_FROM_LIST": "convertește lista în text", - "LISTS_SPLIT_WITH_DELIMITER": "cu separatorul", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Împarte textul într-o listă de texte, despărțite prin fiecare separator", - "LISTS_SPLIT_TOOLTIP_JOIN": "Concatenează o listă de texte (alternate cu separatorul) într-un text unic", - "LISTS_REVERSE_MESSAGE0": "inversă %1", - "LISTS_REVERSE_TOOLTIP": "Inversați copia unei liste.", - "VARIABLES_GET_TOOLTIP": "Returnează valoarea acestei variabile.", - "VARIABLES_GET_CREATE_SET": "Crează 'set %1'", - "VARIABLES_SET": "seteaza %1 la %2", - "VARIABLES_SET_TOOLTIP": "Setează această variabilă sa fie egală la intrare.", - "VARIABLES_SET_CREATE_GET": "Crează 'get %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "la", - "PROCEDURES_DEFNORETURN_PROCEDURE": "fă ceva", - "PROCEDURES_BEFORE_PARAMS": "cu:", - "PROCEDURES_CALL_BEFORE_PARAMS": "cu:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Crează o funcţie cu nici o ieşire.", - "PROCEDURES_DEFNORETURN_COMMENT": "Descrieți această funcție ...", - "PROCEDURES_DEFRETURN_HELPURL": "https://ro.wikipedia.org/wiki/Subrutină", - "PROCEDURES_DEFRETURN_RETURN": "returnează", - "PROCEDURES_DEFRETURN_TOOLTIP": "Creează o funcţie cu o ieşire.", - "PROCEDURES_ALLOW_STATEMENTS": "permite declarațiile", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Atenţie: Această funcţie are parametri duplicaţi.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Executați funcția '%1 'definită de utilizator.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Executați funcția '%1 'definită de utilizator şi folosiţi producţia sa.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "intrări", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Adăugă, șterge sau reordonează parametrii de intrare ai acestei funcții.", - "PROCEDURES_MUTATORARG_TITLE": "nume de intrare:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Adaugă un parametru de intrare pentru funcție.", - "PROCEDURES_HIGHLIGHT_DEF": "Evidenţiază definiţia funcţiei", - "PROCEDURES_CREATE_DO": "Creaţi '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Dacă o valoare este adevărată, atunci returnează valoarea a doua.", - "PROCEDURES_IFRETURN_WARNING": "Avertisment: Acest bloc poate fi utilizat numai în definiţia unei funcţii.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Spune ceva...", - "COLLAPSED_WARNINGS_WARNING": "Blocurile blocate conțin avertismente." -} diff --git a/lib/blockly/msg/json/ru.json b/lib/blockly/msg/json/ru.json deleted file mode 100644 index b4840c9..0000000 --- a/lib/blockly/msg/json/ru.json +++ /dev/null @@ -1,365 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Espertus", - "MS", - "Okras", - "RedFox", - "Mailman", - "Silovan", - "Redredsonia", - "Facenapalm", - "Helpau", - "SimondR", - "Mouse21", - "Movses", - "Vlad5250" - ] - }, - "VARIABLES_DEFAULT_NAME": "элемент", - "UNNAMED_KEY": "без названия", - "TODAY": "Сегодня", - "DUPLICATE_BLOCK": "Дублировать", - "ADD_COMMENT": "Добавить комментарий", - "REMOVE_COMMENT": "Удалить комментарий", - "DUPLICATE_COMMENT": "Клонировать комментарий", - "EXTERNAL_INPUTS": "Вставки снаружи", - "INLINE_INPUTS": "Вставки внутри", - "DELETE_BLOCK": "Удалить блок", - "DELETE_X_BLOCKS": "Удалить %1 блоков", - "DELETE_ALL_BLOCKS": "Удалить все блоки (%1)?", - "CLEAN_UP": "Убрать блоки", - "COLLAPSE_BLOCK": "Свернуть блок", - "COLLAPSE_ALL": "Свернуть блоки", - "EXPAND_BLOCK": "Развернуть блок", - "EXPAND_ALL": "Развернуть блоки", - "DISABLE_BLOCK": "Отключить блок", - "ENABLE_BLOCK": "Включить блок", - "HELP": "Справка", - "UNDO": "Отменить", - "REDO": "Повторить", - "CHANGE_VALUE_TITLE": "Измените значение:", - "RENAME_VARIABLE": "Переименовать переменную…", - "RENAME_VARIABLE_TITLE": "Переименовать все переменные '%1' в:", - "NEW_VARIABLE": "Создать переменную…", - "NEW_STRING_VARIABLE": "Создать строковую переменную...", - "NEW_NUMBER_VARIABLE": "Создать числовую переменную...", - "NEW_COLOUR_VARIABLE": "Создать переменную цвета...", - "NEW_VARIABLE_TYPE_TITLE": "Новый тип переменной:", - "NEW_VARIABLE_TITLE": "Имя новой переменной:", - "VARIABLE_ALREADY_EXISTS": "Переменная с именем '%1' уже существует.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Название переменной '%1' уже используется другой типа: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Удалить %1 использований переменной '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Невозможно удалить переменную '%1', поскольку она является частью определения функции '%2'", - "DELETE_VARIABLE": "Удалить переменную '%1'", - "COLOUR_PICKER_HELPURL": "https://ru.wikipedia.org/wiki/Цвет", - "COLOUR_PICKER_TOOLTIP": "Выберите цвет из палитры.", - "COLOUR_RANDOM_TITLE": "случайный цвет", - "COLOUR_RANDOM_TOOLTIP": "Выбирает цвет случайным образом.", - "COLOUR_RGB_TITLE": "цвет из", - "COLOUR_RGB_RED": "красного", - "COLOUR_RGB_GREEN": "зелёного", - "COLOUR_RGB_BLUE": "синего", - "COLOUR_RGB_TOOLTIP": "Создаёт цвет с указанной пропорцией красного, зеленого и синего. Все значения должны быть между 0 и 100.", - "COLOUR_BLEND_TITLE": "смешать", - "COLOUR_BLEND_COLOUR1": "цвет 1", - "COLOUR_BLEND_COLOUR2": "цвет 2", - "COLOUR_BLEND_RATIO": "доля цвета 1", - "COLOUR_BLEND_TOOLTIP": "Смешивает два цвета в заданном соотношении (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://ru.wikipedia.org/wiki/Цикл_(программирование)", - "CONTROLS_REPEAT_TITLE": "повторить %1 раз", - "CONTROLS_REPEAT_INPUT_DO": "выполнить", - "CONTROLS_REPEAT_TOOLTIP": "Выполняет некоторые команды несколько раз.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "повторять, пока", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "повторять, пока не", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Пока значение истинно, выполняет команды.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Пока значение ложно, выполняет команды", - "CONTROLS_FOR_TOOLTIP": "Присваивает переменной '%1' значения от начального до конечного с заданным шагом и выполняет указанные команды.", - "CONTROLS_FOR_TITLE": "цикл по %1 от %2 до %3 с шагом %4", - "CONTROLS_FOREACH_TITLE": "для каждого элемента %1 в списке %2", - "CONTROLS_FOREACH_TOOLTIP": "Для каждого элемента в списке, присваивает переменной '%1' значение элемента и выполняет указанные команды.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "выйти из цикла", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "перейти к следующему шагу цикла", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Прерывает этот цикл.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Пропускает остаток цикла и переходит к следующему шагу.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Предупреждение: этот блок может использоваться только внутри цикла.", - "CONTROLS_IF_TOOLTIP_1": "Если условие истинно, выполняет команды.", - "CONTROLS_IF_TOOLTIP_2": "Если условие истинно, выполняет первый блок команд. Иначе выполняется второй блок команд.", - "CONTROLS_IF_TOOLTIP_3": "Если первое условие истинно, то выполняет первый блок команд. Иначе, если второе условие истинно, выполняет второй блок команд.", - "CONTROLS_IF_TOOLTIP_4": "Если первое условие истинно, то выполняет первый блок команд. В противном случае, если второе условие истинно, выполняет второй блок команд. Если ни одно из условий не истинно, выполняет последний блок команд.", - "CONTROLS_IF_MSG_IF": "если", - "CONTROLS_IF_MSG_ELSEIF": "иначе если", - "CONTROLS_IF_MSG_ELSE": "иначе", - "CONTROLS_IF_IF_TOOLTIP": "Добавьте, удалите, переставьте фрагменты для переделки блока \"если\".", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Добавляет условие к блоку \"если\"", - "CONTROLS_IF_ELSE_TOOLTIP": "Добавить заключительный подблок для случая, когда все условия ложны.", - "IOS_OK": "ОК", - "IOS_CANCEL": "Отмена", - "IOS_ERROR": "Ошибка", - "IOS_PROCEDURES_INPUTS": "ВХОД", - "IOS_PROCEDURES_ADD_INPUT": "+ Добавить входную переменную", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Разрешить операторы", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "У этой функции есть дублирующиеся входные переменные.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Добавить переменную", - "IOS_VARIABLES_ADD_BUTTON": "Добавить", - "IOS_VARIABLES_RENAME_BUTTON": "Переименовать", - "IOS_VARIABLES_DELETE_BUTTON": "Удалить", - "IOS_VARIABLES_VARIABLE_NAME": "Имя переменной", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Вы не можете использовать пустое имя переменной.", - "LOGIC_COMPARE_HELPURL": "https://ru.wikipedia.org/wiki/Неравенство", - "LOGIC_COMPARE_TOOLTIP_EQ": "Возвращает положительное значение, если вводы равны.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Возвращает положительное значение, если вводы не равны.", - "LOGIC_COMPARE_TOOLTIP_LT": "Возвращает положительное значение, если первый ввод меньше второго.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Возвращает значение истина, если первая вставка меньше или равна второй.", - "LOGIC_COMPARE_TOOLTIP_GT": "Возвращает значение истина, если первая вставка больше второй.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Возвращает значение истина, если первая вставка больше или равна второй.", - "LOGIC_OPERATION_TOOLTIP_AND": "Возвращает значение истина, если обе вставки истинны.", - "LOGIC_OPERATION_AND": "и", - "LOGIC_OPERATION_TOOLTIP_OR": "Возвращает значение истина, если хотя бы одна из вставок истинна.", - "LOGIC_OPERATION_OR": "или", - "LOGIC_NEGATE_TITLE": "не %1", - "LOGIC_NEGATE_TOOLTIP": "Возвращает значение истина, если вставка ложна. Возвращает значение ложь, если вставка истинна.", - "LOGIC_BOOLEAN_TRUE": "истина", - "LOGIC_BOOLEAN_FALSE": "ложь", - "LOGIC_BOOLEAN_TOOLTIP": "Возвращает значение истина или ложь.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "ничто", - "LOGIC_NULL_TOOLTIP": "Возвращает ничто.", - "LOGIC_TERNARY_HELPURL": "https://ru.wikipedia.org/wiki/Тернарная_условная_операция", - "LOGIC_TERNARY_CONDITION": "выбрать по", - "LOGIC_TERNARY_IF_TRUE": "если истина", - "LOGIC_TERNARY_IF_FALSE": "если ложь", - "LOGIC_TERNARY_TOOLTIP": "Проверяет условие выбора. Если условие истинно, возвращает первое значение, в противном случае возвращает второе значение.", - "MATH_NUMBER_HELPURL": "https://ru.wikipedia.org/wiki/Число", - "MATH_NUMBER_TOOLTIP": "Число.", - "MATH_ARITHMETIC_HELPURL": "https://ru.wikipedia.org/wiki/Арифметика", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Возвращает сумму двух чисел.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Возвращает разность двух чисел.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Возвращает произведение двух чисел.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Возвращает частное от деления первого числа на второе.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Возвращает первое число, возведённое в степень второго числа.", - "MATH_SINGLE_HELPURL": "https://ru.wikipedia.org/wiki/Квадратный_корень", - "MATH_SINGLE_OP_ROOT": "квадратный корень", - "MATH_SINGLE_TOOLTIP_ROOT": "Возвращает квадратный корень числа.", - "MATH_SINGLE_OP_ABSOLUTE": "модуль", - "MATH_SINGLE_TOOLTIP_ABS": "Возвращает модуль числа", - "MATH_SINGLE_TOOLTIP_NEG": "Возвращает противоположное число.", - "MATH_SINGLE_TOOLTIP_LN": "Возвращает натуральный логарифм числа.", - "MATH_SINGLE_TOOLTIP_LOG10": "Возвращает десятичный логарифм числа.", - "MATH_SINGLE_TOOLTIP_EXP": "Возвращает е в указанной степени.", - "MATH_SINGLE_TOOLTIP_POW10": "Возвращает 10 в указанной степени.", - "MATH_TRIG_HELPURL": "https://ru.wikipedia.org/wiki/Тригонометрические_функции", - "MATH_TRIG_TOOLTIP_SIN": "Возвращает синус угла в градусах.", - "MATH_TRIG_TOOLTIP_COS": "Возвращает косинус угла в градусах.", - "MATH_TRIG_TOOLTIP_TAN": "Возвращает тангенс угла в градусах.", - "MATH_TRIG_TOOLTIP_ASIN": "Возвращает арксинус (в градусах).", - "MATH_TRIG_TOOLTIP_ACOS": "Возвращает арккосинус (в градусах).", - "MATH_TRIG_TOOLTIP_ATAN": "Возвращает арктангенс (в градусах)", - "MATH_CONSTANT_HELPURL": "https://ru.wikipedia.org/wiki/Математическая_константа", - "MATH_CONSTANT_TOOLTIP": "Возвращает одну из распространённых констант: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (бесконечность).", - "MATH_IS_EVEN": "чётное", - "MATH_IS_ODD": "нечётное", - "MATH_IS_PRIME": "простое", - "MATH_IS_WHOLE": "целое", - "MATH_IS_POSITIVE": "положительное", - "MATH_IS_NEGATIVE": "отрицательное", - "MATH_IS_DIVISIBLE_BY": "делится на", - "MATH_IS_TOOLTIP": "Проверяет, является ли число чётным, нечётным, простым, целым, положительным, отрицательным или оно кратно определённому числу. Возвращает значение истина или ложь.", - "MATH_CHANGE_HELPURL": "https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B8%D0%BE%D0%BC%D0%B0_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29#.D0.98.D0.BD.D0.BA.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D1.82", - "MATH_CHANGE_TITLE": "увеличить %1 на %2", - "MATH_CHANGE_TOOLTIP": "Добавляет число к переменной '%1'.", - "MATH_ROUND_HELPURL": "https://ru.wikipedia.org/wiki/Округление", - "MATH_ROUND_TOOLTIP": "Округляет число до большего или меньшего.", - "MATH_ROUND_OPERATOR_ROUND": "округлить", - "MATH_ROUND_OPERATOR_ROUNDUP": "округлить к большему", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "округлить к меньшему", - "MATH_ONLIST_OPERATOR_SUM": "сумма списка", - "MATH_ONLIST_TOOLTIP_SUM": "Возвращает сумму всех чисел в списке.", - "MATH_ONLIST_OPERATOR_MIN": "наименьшее в списке", - "MATH_ONLIST_TOOLTIP_MIN": "Возвращает наименьшее число списка.", - "MATH_ONLIST_OPERATOR_MAX": "наибольшее в списке", - "MATH_ONLIST_TOOLTIP_MAX": "Возвращает наибольшее число списка.", - "MATH_ONLIST_OPERATOR_AVERAGE": "среднее арифметическое списка", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Возвращает среднее арифметическое списка.", - "MATH_ONLIST_OPERATOR_MEDIAN": "медиана списка", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Возвращает медиану списка.", - "MATH_ONLIST_OPERATOR_MODE": "моды списка", - "MATH_ONLIST_TOOLTIP_MODE": "Возвращает список наиболее часто встречающихся элементов списка.", - "MATH_ONLIST_OPERATOR_STD_DEV": "стандартное отклонение списка", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Возвращает стандартное отклонение списка.", - "MATH_ONLIST_OPERATOR_RANDOM": "случайный элемент списка", - "MATH_ONLIST_TOOLTIP_RANDOM": "Возвращает случайный элемент списка.", - "MATH_MODULO_HELPURL": "https://ru.wikipedia.org/wiki/Деление_с_остатком", - "MATH_MODULO_TITLE": "остаток от %1 : %2", - "MATH_MODULO_TOOLTIP": "Возвращает остаток от деления двух чисел.", - "MATH_CONSTRAIN_TITLE": "ограничить %1 снизу %2 сверху %3", - "MATH_CONSTRAIN_TOOLTIP": "Ограничивает число нижней и верхней границами (включительно).", - "MATH_RANDOM_INT_HELPURL": "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел", - "MATH_RANDOM_INT_TITLE": "случайное целое число от %1 для %2", - "MATH_RANDOM_INT_TOOLTIP": "Возвращает случайное число между двумя заданными пределами (включая и их).", - "MATH_RANDOM_FLOAT_HELPURL": "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "случайное число от 0 (включительно) до 1", - "MATH_RANDOM_FLOAT_TOOLTIP": "Возвращает случайное число от 0.0 (включительно) до 1.0.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 от X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Возвращает арктангенс точки (X, Y) в градусах от -180 до 180.", - "TEXT_TEXT_HELPURL": "https://ru.wikipedia.org/wiki/Строковый_тип", - "TEXT_TEXT_TOOLTIP": "Буква, слово или строка текста.", - "TEXT_JOIN_TITLE_CREATEWITH": "создать текст из", - "TEXT_JOIN_TOOLTIP": "Создаёт фрагмент текста, объединяя любое число элементов", - "TEXT_CREATE_JOIN_TITLE_JOIN": "соединить", - "TEXT_CREATE_JOIN_TOOLTIP": "Добавьте, удалите, переставьте фрагменты для переделки текстового блока.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Добавить элемент к тексту.", - "TEXT_APPEND_TITLE": "к %1 добавить текст %2", - "TEXT_APPEND_TOOLTIP": "Добавить текст к переменной «%1».", - "TEXT_LENGTH_TITLE": "длина %1", - "TEXT_LENGTH_TOOLTIP": "Возвращает число символов (включая пробелы) в заданном тексте.", - "TEXT_ISEMPTY_TITLE": "%1 пуст", - "TEXT_ISEMPTY_TOOLTIP": "Возвращает значение истина, если предоставленный текст пуст.", - "TEXT_INDEXOF_TOOLTIP": "Возвращает номер позиции первого/последнего вхождения первого текста во втором. Возвращает %1, если текст не найден.", - "TEXT_INDEXOF_TITLE": "в тексте %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "найти первое вхождение текста", - "TEXT_INDEXOF_OPERATOR_LAST": "найти последнее вхождение текста", - "TEXT_CHARAT_TITLE": "в тексте %1 %2", - "TEXT_CHARAT_FROM_START": "взять букву №", - "TEXT_CHARAT_FROM_END": "взять букву № с конца", - "TEXT_CHARAT_FIRST": "взять первую букву", - "TEXT_CHARAT_LAST": "взять последнюю букву", - "TEXT_CHARAT_RANDOM": "взять случайную букву", - "TEXT_CHARAT_TOOLTIP": "Возвращает букву в указанной позиции.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Возвращает указанную часть текста.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "в тексте", - "TEXT_GET_SUBSTRING_START_FROM_START": "взять подстроку с буквы №", - "TEXT_GET_SUBSTRING_START_FROM_END": "взять подстроку с буквы № с конца", - "TEXT_GET_SUBSTRING_START_FIRST": "взять подстроку с первой буквы", - "TEXT_GET_SUBSTRING_END_FROM_START": "по букву №", - "TEXT_GET_SUBSTRING_END_FROM_END": "по букву № с конца", - "TEXT_GET_SUBSTRING_END_LAST": "по последнюю букву", - "TEXT_CHANGECASE_TOOLTIP": "Возвращает копию текста с ЗАГЛАВНЫМИ или строчными буквами.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "в ЗАГЛАВНЫЕ БУКВЫ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "в строчные буквы", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "в Заглавные Начальные Буквы", - "TEXT_TRIM_TOOLTIP": "Возвращает копию текста с пробелами, удалёнными с одного или обоих концов.", - "TEXT_TRIM_OPERATOR_BOTH": "обрезать пробелы с двух сторон", - "TEXT_TRIM_OPERATOR_LEFT": "обрезать пробелы слева", - "TEXT_TRIM_OPERATOR_RIGHT": "обрезать пробелы справа", - "TEXT_PRINT_TITLE": "напечатать %1", - "TEXT_PRINT_TOOLTIP": "Печатает текст, число или другой объект.", - "TEXT_PROMPT_TYPE_TEXT": "запросить текст с подсказкой", - "TEXT_PROMPT_TYPE_NUMBER": "запросить число с подсказкой", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Запросить у пользователя число.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Запросить у пользователя текст.", - "TEXT_COUNT_MESSAGE0": "подсчитать количество %1 в %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Подсчитать, сколько раз отрывок текста появляется в другом тексте.", - "TEXT_REPLACE_MESSAGE0": "заменить %1 на %2 в %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Заменить все вхождения некоторого текста другим текстом.", - "TEXT_REVERSE_MESSAGE0": "изменить порядок на обратный %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Меняет порядок символов в тексте на обратный.", - "LISTS_CREATE_EMPTY_TITLE": "создать пустой список", - "LISTS_CREATE_EMPTY_TOOLTIP": "Возвращает список длины 0, не содержащий данных", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Создаёт список с любым числом элементов.", - "LISTS_CREATE_WITH_INPUT_WITH": "создать список из", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "список", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Добавьте, удалите, переставьте элементы для переделки блока списка.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Добавляет элемент к списку.", - "LISTS_REPEAT_TOOLTIP": "Создаёт список, состоящий из заданного числа копий элемента.", - "LISTS_REPEAT_TITLE": "создать список из элемента %1, повторяющегося %2 раз", - "LISTS_LENGTH_TITLE": "длина %1", - "LISTS_LENGTH_TOOLTIP": "Возвращает длину списка.", - "LISTS_ISEMPTY_TITLE": "%1 пуст", - "LISTS_ISEMPTY_TOOLTIP": "Возвращает значение истина, если список пуст.", - "LISTS_INLIST": "в списке", - "LISTS_INDEX_OF_FIRST": "найти первое вхождение элемента", - "LISTS_INDEX_OF_LAST": "найти последнее вхождение элемента", - "LISTS_INDEX_OF_TOOLTIP": "Возвращает номер позиции первого/последнего вхождения элемента в списке. Возвращает %1, если элемент не найден.", - "LISTS_GET_INDEX_GET": "взять", - "LISTS_GET_INDEX_GET_REMOVE": "взять и удалить", - "LISTS_GET_INDEX_REMOVE": "удалить", - "LISTS_GET_INDEX_FROM_END": "№ с конца", - "LISTS_GET_INDEX_FIRST": "первый", - "LISTS_GET_INDEX_LAST": "последний", - "LISTS_GET_INDEX_RANDOM": "произвольный", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 - первый элемент.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 - последний элемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Возвращает элемент в указанной позиции списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Возвращает первый элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Возвращает последний элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Возвращает случайный элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Удаляет и возвращает элемент в указанной позиции списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Удаляет и возвращает первый элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Удаляет и возвращает последний элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Удаляет и возвращает случайный элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Удаляет элемент в указанной позиции списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Удаляет первый элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Удаляет последний элемент списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Удаляет случайный элемент списка.", - "LISTS_SET_INDEX_SET": "присвоить", - "LISTS_SET_INDEX_INSERT": "вставить в", - "LISTS_SET_INDEX_INPUT_TO": "=", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Присваивает значение элементу в указанной позиции списка.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Присваивает значение первому элементу списка.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Присваивает значение последнему элементу списка.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Присваивает значение случайному элементу списка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Вставляет элемент в указанной позиции списка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Вставляет элемент в начало списка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Добавляет элемент в конец списка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Вставляет элемент в случайное место в списке.", - "LISTS_GET_SUBLIST_START_FROM_START": "взять подсписок с №", - "LISTS_GET_SUBLIST_START_FROM_END": "взять подсписок с № с конца", - "LISTS_GET_SUBLIST_START_FIRST": "взять подсписок с первого", - "LISTS_GET_SUBLIST_END_FROM_START": "по №", - "LISTS_GET_SUBLIST_END_FROM_END": "по № с конца", - "LISTS_GET_SUBLIST_END_LAST": "по последний", - "LISTS_GET_SUBLIST_TOOLTIP": "Создаёт копию указанной части списка.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "сортировать %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Сортировать копию списка.", - "LISTS_SORT_ORDER_ASCENDING": "по возрастанию", - "LISTS_SORT_ORDER_DESCENDING": "по убыванию", - "LISTS_SORT_TYPE_NUMERIC": "числовая", - "LISTS_SORT_TYPE_TEXT": "по алфавиту", - "LISTS_SORT_TYPE_IGNORECASE": "по алфавиту, без учёта регистра", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "сделать список из текста", - "LISTS_SPLIT_TEXT_FROM_LIST": "собрать текст из списка", - "LISTS_SPLIT_WITH_DELIMITER": "с разделителем", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Разбивает текст в список текстов, по разделителям.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Соединяет список текстов в один текст с разделителями.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "изменить порядок на обратный %1", - "LISTS_REVERSE_TOOLTIP": "Изменить порядок списка на обратный.", - "VARIABLES_GET_TOOLTIP": "Возвращает значение этой переменной.", - "VARIABLES_GET_CREATE_SET": "Создать блок \"присвоить\" для %1", - "VARIABLES_SET": "присвоить %1 = %2", - "VARIABLES_SET_TOOLTIP": "Присваивает переменной значение вставки.", - "VARIABLES_SET_CREATE_GET": "Создать вставку %1", - "PROCEDURES_DEFNORETURN_TITLE": "чтобы", - "PROCEDURES_DEFNORETURN_PROCEDURE": "выполнить что-то", - "PROCEDURES_BEFORE_PARAMS": "с:", - "PROCEDURES_CALL_BEFORE_PARAMS": "с:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Создаёт процедуру, не возвращающую значение.", - "PROCEDURES_DEFNORETURN_COMMENT": "Опишите эту функцию…", - "PROCEDURES_DEFRETURN_RETURN": "вернуть", - "PROCEDURES_DEFRETURN_TOOLTIP": "Создаёт процедуру, возвращающую значение.", - "PROCEDURES_ALLOW_STATEMENTS": "разрешить операторы", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Предупреждение: эта функция имеет повторяющиеся параметры.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://ru.wikipedia.org/wiki/Подпрограмма", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Исполняет определённую пользователем процедуру '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://ru.wikipedia.org/wiki/Подпрограмма", - "PROCEDURES_CALLRETURN_TOOLTIP": "Исполняет определённую пользователем процедуру '%1' и возвращает вычисленное значение.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "параметры", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Добавить, удалить или изменить порядок входных параметров для этой функции.", - "PROCEDURES_MUTATORARG_TITLE": "имя параметра:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Добавить входной параметр в функцию.", - "PROCEDURES_HIGHLIGHT_DEF": "Выделить определение процедуры", - "PROCEDURES_CREATE_DO": "Создать вызов '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Если первое значение истинно, возвращает второе значение.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Предупреждение: Этот блок может использоваться только внутри определения функции.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Напишите здесь что-нибудь...", - "COLLAPSED_WARNINGS_WARNING": "Свёрнутые блоки содержат предупреждения." -} diff --git a/lib/blockly/msg/json/sc.json b/lib/blockly/msg/json/sc.json deleted file mode 100644 index 282d529..0000000 --- a/lib/blockly/msg/json/sc.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Via maxima", - "Taxandru", - "Uharteko" - ] - }, - "VARIABLES_DEFAULT_NAME": "item", - "TODAY": "Oe", - "DUPLICATE_BLOCK": "Dùplica", - "ADD_COMMENT": "Agiunghe unu cumentu", - "REMOVE_COMMENT": "Fùlia unu cumentu", - "EXTERNAL_INPUTS": "Intradas esternas", - "INLINE_INPUTS": "Intradas in lìnia", - "DELETE_BLOCK": "Fùlia Blocu", - "DELETE_X_BLOCKS": "Fulia %1 Blocus", - "DELETE_ALL_BLOCKS": "Scancellu su %1 de is brocus?", - "CLEAN_UP": "Lìmpia is brocus", - "COLLAPSE_BLOCK": "Serra e stringi Brocu", - "COLLAPSE_ALL": "Serra e stringi Brocus", - "EXPAND_BLOCK": "Aberi Brocu", - "EXPAND_ALL": "Aberi Brocus", - "DISABLE_BLOCK": "Disabìlita Blocu", - "ENABLE_BLOCK": "Abìlita Blocu", - "HELP": "Agiudu", - "CHANGE_VALUE_TITLE": "Muda valori:", - "RENAME_VARIABLE": "Muda nòmini a variabili...", - "RENAME_VARIABLE_TITLE": "A is variabilis '%1' muda nòmini a:", - "NEW_VARIABLE": "Variabili noa...", - "NEW_VARIABLE_TITLE": "Nòmini de sa variabili noa:", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Scebera unu colori de sa tauledda.", - "COLOUR_RANDOM_TITLE": "Unu colori a brítiu", - "COLOUR_RANDOM_TOOLTIP": "Scebera unu colori a brítiu.", - "COLOUR_RGB_TITLE": "colora cun", - "COLOUR_RGB_RED": "arrùbiu", - "COLOUR_RGB_GREEN": "birdi", - "COLOUR_RGB_BLUE": "blue", - "COLOUR_RGB_TOOLTIP": "Cuncorda unu colori cun su tanti de arrubiu, birdi, e blue. Totu is valoris depint essi intra 0 e 100.", - "COLOUR_BLEND_TITLE": "mestura", - "COLOUR_BLEND_COLOUR1": "colori 1", - "COLOUR_BLEND_COLOUR2": "colori 2", - "COLOUR_BLEND_RATIO": "raportu", - "COLOUR_BLEND_TOOLTIP": "Amestura duus coloris cun unu raportu (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "repiti %1 bortas", - "CONTROLS_REPEAT_INPUT_DO": "fai", - "CONTROLS_REPEAT_TOOLTIP": "Fait pariga de cumandus prus bortas.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "repiti interis", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "repiti fintzas", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Interis su valori est berus, tandu fai pariga de cumandus.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Interis su valori est frassu, tandu fai pariga de cumandus.", - "CONTROLS_FOR_TOOLTIP": "Fait pigai a sa variàbili \"%1\" i valoris de su primu numeru a s'urtimu, a su passu impostau e fait su brocu.", - "CONTROLS_FOR_TITLE": "po %1 de %2 fintzas %3 a passus de %4", - "CONTROLS_FOREACH_TITLE": "po dònnia item %1 in lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Po dònnia item in sa lista, ponit sa variàbili '%1' pari a s'item, e tandu fait pariga de cumandus.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "sàrtiat a foras de sa lòriga", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "sighit cun su repicu afatànti", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Bessit de sa lòriga.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Sartiat su chi abarrat de sa loriga, e sighit cun su repicu afatànti.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Amonestu: Custu brocu ddu podis ponni sceti aintru de una lòriga.", - "CONTROLS_IF_TOOLTIP_1": "Si su valori est berus, tandu fait pariga de cumandus.", - "CONTROLS_IF_TOOLTIP_2": "Si su valori est berus, tandu fai su primu brocu de is cumandus. Sinuncas, fai su segundu brocu de is cumandus.", - "CONTROLS_IF_TOOLTIP_3": "Si su primu valori est beridadi, tandu fai su primu brocu de is cumandus. Sinuncas, si su segundu valori est beridadi, fai su segundu brocu de is cumandus.", - "CONTROLS_IF_TOOLTIP_4": "Si su primu valori est berus, tandu fai su primu brocu de is cumandus. Sinuncas, si su segundu valori est berus, fai su segundu brocu de is cumandus. Si mancu unu valori est berus, tandu fai s'urtimu brocu de is cumandus.", - "CONTROLS_IF_MSG_IF": "si", - "CONTROLS_IF_MSG_ELSEIF": "sinuncas si", - "CONTROLS_IF_MSG_ELSE": "sinuncas", - "CONTROLS_IF_IF_TOOLTIP": "Aciungi, fùlia, o assenta is partis po torrai a sètiu custu brocu si.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Aciungi una cunditzioni a su brocu si.", - "CONTROLS_IF_ELSE_TOOLTIP": "Aciungi una urtima cunditzioni piga-totu a su brocu si.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Torrat berus si is inputs funt unu uguali a s'àteru.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Torrat berus si is inputs non funt unu uguali a s'àteru.", - "LOGIC_COMPARE_TOOLTIP_LT": "Torrat berus si su primu input est prus piticu de s'àteru.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Torrat berus si su primu input est prus piticu o uguali a s'àteru.", - "LOGIC_COMPARE_TOOLTIP_GT": "Torrat berus si su primu input est prus mannu de s'àteru.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Torrat berus si su primu input est prus mannu o uguali a s'àteru.", - "LOGIC_OPERATION_TOOLTIP_AND": "Torrat berus si ambos is inputs funt berus.", - "LOGIC_OPERATION_AND": "and", - "LOGIC_OPERATION_TOOLTIP_OR": "Torrat berus si assumancu unu de is inputs est berus.", - "LOGIC_OPERATION_OR": "or", - "LOGIC_NEGATE_TITLE": "non %1", - "LOGIC_NEGATE_TOOLTIP": "Torrat berus si s'input est frassu. Torrat frassu si s'input est berus.", - "LOGIC_BOOLEAN_TRUE": "berus", - "LOGIC_BOOLEAN_FALSE": "frassu", - "LOGIC_BOOLEAN_TOOLTIP": "Torrat berus o frassu.", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Torrat null.", - "LOGIC_TERNARY_CONDITION": "cumpròa", - "LOGIC_TERNARY_IF_TRUE": "si berus", - "LOGIC_TERNARY_IF_FALSE": "si frassu", - "LOGIC_TERNARY_TOOLTIP": "‎Cumproa sa cunditzioni in 'cumproa'. Si sa cunditzioni est berus, torrat su valori 'si berus'; sinuncas torrat su valori 'si frassu'.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Unu numeru", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Torrat sa summa de is duus nùmerus.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Torrat sa diferèntzia de is duus nùmerus.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Torrat su produtu de is duus nùmerus.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Torrat su cuotzienti de is duus nùmerus.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Torrat su primu numeru artziau a sa potenza de su segundu nùmeru.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "arraxina cuadra", - "MATH_SINGLE_TOOLTIP_ROOT": "Torrat s'arraxina cuadra de unu numeru.", - "MATH_SINGLE_OP_ABSOLUTE": "assolutu", - "MATH_SINGLE_TOOLTIP_ABS": "Torrat su valori assolútu de unu numeru.", - "MATH_SINGLE_TOOLTIP_NEG": "Torrat su valori negau de unu numeru.", - "MATH_SINGLE_TOOLTIP_LN": "Torrat su logaritmu naturali de unu numeru.", - "MATH_SINGLE_TOOLTIP_LOG10": "Torrat su logaritmu a basi 10 de unu numeru.", - "MATH_SINGLE_TOOLTIP_EXP": "Torrat (e) a sa potèntzia de unu numeru.", - "MATH_SINGLE_TOOLTIP_POW10": "Torrat (10) a sa potèntzia de unu numeru.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Torrat su sinu de unu gradu (no radianti).", - "MATH_TRIG_TOOLTIP_COS": "Torrat su cosinu de unu gradu (no radianti).", - "MATH_TRIG_TOOLTIP_TAN": "Torrat sa tangenti de unu gradu (no radianti).", - "MATH_TRIG_TOOLTIP_ASIN": "Torrat su arcsinu de unu numeru.", - "MATH_TRIG_TOOLTIP_ACOS": "Torrat su arccosinu de unu numeru.", - "MATH_TRIG_TOOLTIP_ATAN": "Torrat su arctangenti de unu numeru.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Torrat una de is costantis comunas: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), o ∞ (infiniu).", - "MATH_IS_EVEN": "est paris", - "MATH_IS_ODD": "est dísparu", - "MATH_IS_PRIME": "est primu", - "MATH_IS_WHOLE": "est intreu", - "MATH_IS_POSITIVE": "est positivu", - "MATH_IS_NEGATIVE": "est negativu", - "MATH_IS_DIVISIBLE_BY": "fait a ddu dividi po", - "MATH_IS_TOOLTIP": "Cumprova si unu numeru est paris, dìsparis, primu, intreu, positivu, negativu o si fait a ddu dividi po unu numeru giau. Torrat berus o frassu.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "muda %1 de %2", - "MATH_CHANGE_TOOLTIP": "Aciungi unu numeru a sa variabili '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Arretunda unu numeru faci a susu o faci a bàsciu.", - "MATH_ROUND_OPERATOR_ROUND": "arretunda", - "MATH_ROUND_OPERATOR_ROUNDUP": "Arretunda faci a susu", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "arretunda faci a bàsciu.", - "MATH_ONLIST_OPERATOR_SUM": "suma sa lista", - "MATH_ONLIST_TOOLTIP_SUM": "Torrat sa suma de totu is numerus de sa lista.", - "MATH_ONLIST_OPERATOR_MIN": "minimu de sa lista", - "MATH_ONLIST_TOOLTIP_MIN": "Torrat su numeru prus piticu de sa lista.", - "MATH_ONLIST_OPERATOR_MAX": "massimu de sa lista", - "MATH_ONLIST_TOOLTIP_MAX": "Torrat su numeru prus mannu de sa lista", - "MATH_ONLIST_OPERATOR_AVERAGE": "mèdia de sa lista", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Torrat sa mèdia (aritimètica) de is valoris de sa lista.", - "MATH_ONLIST_OPERATOR_MEDIAN": "medianu de sa lista", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Torrat su numeru medianu de sa lista.", - "MATH_ONLIST_OPERATOR_MODE": "modas de sa lista", - "MATH_ONLIST_TOOLTIP_MODE": "Torrat una lista de is itams prus frecuentis de sa lista.", - "MATH_ONLIST_OPERATOR_STD_DEV": "deviadura standard de sa lista", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Torrat sa deviadura standard de sa lista.", - "MATH_ONLIST_OPERATOR_RANDOM": "unu item a brìtiu de sa lista", - "MATH_ONLIST_TOOLTIP_RANDOM": "Torrat unu item a brìtiu de sa lista.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "arrestu de %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Torrat s'arrestu de sa divisioni de duus numerus.", - "MATH_CONSTRAIN_TITLE": "custringi %1 de %2 a %3", - "MATH_CONSTRAIN_TOOLTIP": "Custringi unu numeru aintru de is liminaxus giaus (cumprendius).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "numeru intreu a brítiu de %1 a %2", - "MATH_RANDOM_INT_TOOLTIP": "Torrat unu numeru intreu a brìtiu intra duus nùmerus giaus (cumpresus).", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "una fratzioni a brìtiu", - "MATH_RANDOM_FLOAT_TOOLTIP": "Torrat una fratzioni a brìtiu intra 0.0 (cumpresu) e 1.0 (bogau).", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Una lìtera, paràula, o linia de testu.", - "TEXT_JOIN_TITLE_CREATEWITH": "scri testu cun", - "TEXT_JOIN_TOOLTIP": "Fait unu testu ponendi a pari parigas de items.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "auni a pari", - "TEXT_CREATE_JOIN_TOOLTIP": "Aciungi, fùlia, o assenta is partis po torrai a sètiu custu brocu de testu.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Acciungi unu item a su testu.", - "TEXT_APPEND_TITLE": "a %1 acciungi su testu %2", - "TEXT_APPEND_TOOLTIP": "Aciungit testu a sa variàbili '%1'.", - "TEXT_LENGTH_TITLE": "longària de %1", - "TEXT_LENGTH_TOOLTIP": "Torrat su numeru de lìteras (cun is spàtzius) in su testu giau.", - "TEXT_ISEMPTY_TITLE": "%1 est buidu", - "TEXT_ISEMPTY_TOOLTIP": "Torrat berus si su testu giau est buidu.", - "TEXT_INDEXOF_TOOLTIP": "Torrat s'indixi de sa primu/urtima ocasioni de su primu testu in su segundu testu. Torrat %1 si su testu no ddu agatat.", - "TEXT_INDEXOF_TITLE": "in su testu %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "circa prima ocasioni de su testu", - "TEXT_INDEXOF_OPERATOR_LAST": "circa urtima ocasioni de su testu", - "TEXT_CHARAT_FROM_START": "piga sa lìtera #", - "TEXT_CHARAT_FROM_END": "piga sa lìtera # de sa fini", - "TEXT_CHARAT_FIRST": "piga sa prima lìtera", - "TEXT_CHARAT_LAST": "piga s'urtima lìtera", - "TEXT_CHARAT_RANDOM": "piga una lìtera a brìtiu", - "TEXT_CHARAT_TOOLTIP": "Torrat sa lìtera de su postu giau.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Torrat su testu inditau.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "in su testu", - "TEXT_GET_SUBSTRING_START_FROM_START": "piga suta-stringa de sa lìtera #", - "TEXT_GET_SUBSTRING_START_FROM_END": "piga suta-stringa de sa lìtera # fintzas a fini", - "TEXT_GET_SUBSTRING_START_FIRST": "piga suta-stringa de sa primu lìtera", - "TEXT_GET_SUBSTRING_END_FROM_START": "a sa lìtera #", - "TEXT_GET_SUBSTRING_END_FROM_END": "a sa lìtera # de sa fini", - "TEXT_GET_SUBSTRING_END_LAST": "a s'urtima lìtera", - "TEXT_CHANGECASE_TOOLTIP": "Torrat una copia de su testu inditau mudendi mauschínu/minúdu.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "a mauschínu", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "a minúdu", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "cun Primu lìtera a Mauschínu", - "TEXT_TRIM_TOOLTIP": "Torrat una copia de su testu bogaus is spàtzius de unu o de ambus is càbudus.", - "TEXT_TRIM_OPERATOR_BOTH": "bogat spàtzius de ambus càbudus de", - "TEXT_TRIM_OPERATOR_LEFT": "bogat spàtzius de su càbudu de manca de", - "TEXT_TRIM_OPERATOR_RIGHT": "bogat spàtzius de su càbudu de dereta de", - "TEXT_PRINT_TITLE": "scri %1", - "TEXT_PRINT_TOOLTIP": "Scri su testu, numeru o àteru valori.", - "TEXT_PROMPT_TYPE_TEXT": "pregonta po su testu", - "TEXT_PROMPT_TYPE_NUMBER": "pregonta po unu numeru", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Pregonta unu nùmeru a s'impitadore.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Pregonta testu a s'impitadore.", - "LISTS_CREATE_EMPTY_TITLE": "fait una lista buida", - "LISTS_CREATE_EMPTY_TOOLTIP": "Torrat una lista, de longària 0, chena records de datus.", - "LISTS_CREATE_WITH_TOOLTIP": "Fait una lista cun calisiollat numeru de items.", - "LISTS_CREATE_WITH_INPUT_WITH": "fait una lista cun", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Aciungi, fùlia, o assenta is partis po torrai a sètiu custu brocu lista.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Acciungi unu item a sa lista.", - "LISTS_REPEAT_TOOLTIP": "Fait una lista cun unu numeru giau repitiu su tanti de is bortas inditadas.", - "LISTS_REPEAT_TITLE": "fait una lista cun item %1 repitiu %2 bortas", - "LISTS_LENGTH_TITLE": "longària de %1", - "LISTS_LENGTH_TOOLTIP": "Torrat sa longària de una lista.", - "LISTS_ISEMPTY_TITLE": "%1 est buidu", - "LISTS_ISEMPTY_TOOLTIP": "Torrat berus si sa lista est buida.", - "LISTS_INLIST": "in lista", - "LISTS_INDEX_OF_FIRST": "circa prima ocasioni de s'item", - "LISTS_INDEX_OF_LAST": "circa urtima ocasioni de s'item", - "LISTS_INDEX_OF_TOOLTIP": "Torrat s'indixi de sa primu/urtima ocasioni de s'item in sa lista. Torrat %1 si s'item non s'agatat.", - "LISTS_GET_INDEX_GET": "piga", - "LISTS_GET_INDEX_GET_REMOVE": "piga e fùlia", - "LISTS_GET_INDEX_REMOVE": "fùlia", - "LISTS_GET_INDEX_FROM_END": "# de sa fini", - "LISTS_GET_INDEX_FIRST": "primu", - "LISTS_GET_INDEX_LAST": "urtimu", - "LISTS_GET_INDEX_RANDOM": "a brìtiu (random)", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 est po su primu elementu.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 est po s'urtimu elementu.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Torrat s'elementu de su postu inditau de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Torrat su primu elementu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Torrat s'urtimu elementu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Torrat un'elementu a brìtiu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Fùliat e torrat s'elementu de su postu inditau de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Fùliat e torrat su primu elementu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Fùliat e torrat s'urtimu elementu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Fùliat e torrat un'elementu a brìtiu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Fùliat s'elementu de su postu inditau de una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Fùliat su primu elementu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Fùliat s'urtimu elementu de una lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Fùliat unu elementu a brìtiu de una lista.", - "LISTS_SET_INDEX_SET": "imposta", - "LISTS_SET_INDEX_INSERT": "inserta a", - "LISTS_SET_INDEX_INPUT_TO": "a", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Impostat s'elementu in su postu inditau de una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Impostat su primu elementu in una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Impostat s'urtimu elementu in una lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Impostat unu elementu random in una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Insertat s'elementu in su postu inditau in una lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Insertat s'elementu a su cumintzu de sa lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Aciungit s'elementu a sa fini de sa lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Aciungit s'elementu a brítiu in sa lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "bogandi suta-lista de #", - "LISTS_GET_SUBLIST_START_FROM_END": "bogandi suta-lista de # de sa fini.", - "LISTS_GET_SUBLIST_START_FIRST": "bogandi suta-lista de su primu", - "LISTS_GET_SUBLIST_END_FROM_START": "fintzas a #", - "LISTS_GET_SUBLIST_END_FROM_END": "a # de sa fini", - "LISTS_GET_SUBLIST_END_LAST": "a s'urtimu", - "LISTS_GET_SUBLIST_TOOLTIP": "Fait una copia de sa parti inditada de sa lista.", - "LISTS_SPLIT_LIST_FROM_TEXT": "fai una lista de unu testu", - "LISTS_SPLIT_TEXT_FROM_LIST": "fai unu testu de una lista", - "LISTS_SPLIT_WITH_DELIMITER": "cun separadori", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Dividi su testu in un'elencu de testus, firmendi po dònnia separadori.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Auni una lista de testus in d-unu sceti, ponendi separadoris.", - "VARIABLES_GET_TOOLTIP": "Torrat su valori de custa variabili.", - "VARIABLES_GET_CREATE_SET": "Fait 'imposta %1'", - "VARIABLES_SET": "imposta %1 a %2", - "VARIABLES_SET_TOOLTIP": "Imposta custa variabili uguali a s'input.", - "VARIABLES_SET_CREATE_GET": "Fait 'piga %1'", - "PROCEDURES_DEFNORETURN_TITLE": "po", - "PROCEDURES_DEFNORETURN_PROCEDURE": "fait calincuna cosa", - "PROCEDURES_BEFORE_PARAMS": "con:", - "PROCEDURES_CALL_BEFORE_PARAMS": "cun", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Fait una funtzioni chena output.", - "PROCEDURES_DEFRETURN_RETURN": "torrat", - "PROCEDURES_DEFRETURN_TOOLTIP": "Fait una funtzioni cun output.", - "PROCEDURES_ALLOW_STATEMENTS": "permiti decraratzionis", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Amonestu: Custa funtzioni tenit parametrus duplicaus.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Arròllia sa funtzione '%1' cuncordada dae s'impitadore.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_CALLRETURN_TOOLTIP": "Arròllia sa funtzione '%1' cuncordada dae s'impitadore e imprea s'output suu.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "inputs", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Aciungi, fùlia, o assenta is inputs a custa funtzioni.", - "PROCEDURES_MUTATORARG_TITLE": "nomini input:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Aciungi un input a sa funtzioni.", - "PROCEDURES_HIGHLIGHT_DEF": "Marca sa definitzioni de funtzioni.", - "PROCEDURES_CREATE_DO": "Ingenerau'%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Si unu valori est berus, tandu torrat unu segundu valori.", - "PROCEDURES_IFRETURN_WARNING": "Amonestu: Custu brocu ddu podis ponni sceti aintru de una funtzioni." -} diff --git a/lib/blockly/msg/json/sd.json b/lib/blockly/msg/json/sd.json deleted file mode 100644 index 1ea4235..0000000 --- a/lib/blockly/msg/json/sd.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Aursani", - "Mehtab ahmed", - "Indus Asia", - "Tweety" - ] - }, - "VARIABLES_DEFAULT_NAME": "اسم", - "TODAY": "اڄ", - "DUPLICATE_BLOCK": "نقل", - "ADD_COMMENT": "رايو ڏيو", - "REMOVE_COMMENT": "رايو ڊاهيو", - "DUPLICATE_COMMENT": "نقل رايو", - "EXTERNAL_INPUTS": "ٻاهرين داخلائون", - "INLINE_INPUTS": "اِنلائين اِن پٽس", - "DELETE_BLOCK": "بلاڪ ڊاهيو", - "DELETE_X_BLOCKS": "1٪ بلاڪ ڊاهيو", - "DELETE_ALL_BLOCKS": "سڀ %1 بلاڪ ڊاھيون؟", - "CLEAN_UP": "بندشون هٽايو", - "COLLAPSE_BLOCK": "بلاڪ ڍڪيو", - "COLLAPSE_ALL": "بلاڪَ ڍڪيو", - "EXPAND_BLOCK": "بلاڪ نمايو", - "EXPAND_ALL": "بلاڪَ نمايو", - "DISABLE_BLOCK": "بلاڪ کي غيرفعال بڻايو", - "ENABLE_BLOCK": "بلاڪ کي فعال بڻايو", - "HELP": "مدد", - "UNDO": "ڊاهيو", - "REDO": "ٻيهر ڪريو", - "CHANGE_VALUE_TITLE": "قدر بدلايو", - "RENAME_VARIABLE": "ڦرڻي کي نئون نالو ڏيو...", - "NEW_VARIABLE": "نئون ڦرڻو...", - "NEW_VARIABLE_TITLE": "ڦرڻي جو نئون نالو:", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "رنگ دٻيءَ مان رنگ چونڊيو.", - "COLOUR_RANDOM_TITLE": "بنا ترتيب رنگ", - "COLOUR_RANDOM_TOOLTIP": "ڪو بہ ‌رنگ چونڊيو.", - "COLOUR_RGB_TITLE": "سان رڱيو", - "COLOUR_RGB_RED": "ڳاڙهو", - "COLOUR_RGB_GREEN": "سائو", - "COLOUR_RGB_BLUE": "نيرو", - "COLOUR_RGB_TOOLTIP": "ڳاڙهي، سائي، ۽ نيري جو مقدار ڄاڻائي گھربل رنگ ٺاهيو. سمورا قدر 0 ۽ 100 جي وچ ۾ هجن.", - "COLOUR_BLEND_TITLE": "گڏيل", - "COLOUR_BLEND_COLOUR1": "رنگ 1", - "COLOUR_BLEND_COLOUR2": "رنگ 2", - "COLOUR_BLEND_RATIO": "تناسب", - "COLOUR_BLEND_TOOLTIP": "ڄاڻايل تناسب سان ٻہ رنگ پاڻ ۾ ملايو (0.0-1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "1٪ ڀيرا ورجايو", - "CONTROLS_REPEAT_INPUT_DO": "ڪريو", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ورجايو جڏهن", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ورجايو جيستائين", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "چڪر مان ٻاهر نڪرو", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "چڪر جاري رکندي نئين ڦيري پايو", - "CONTROLS_IF_MSG_IF": "جيڪڏهن", - "CONTROLS_IF_MSG_ELSEIF": "نہ تہ جي", - "CONTROLS_IF_MSG_ELSE": "نہ تہ", - "IOS_OK": "ٺيڪ (او ڪي) آهي", - "IOS_CANCEL": "رد", - "IOS_ERROR": "چُڪَ", - "IOS_PROCEDURES_INPUTS": "داخلائون (اِن پٽس)", - "IOS_VARIABLES_ADD_VARIABLE": "تبديل ٿيندڙ (ويريئيبل) وجهو", - "IOS_VARIABLES_ADD_BUTTON": "شامل ڪيو", - "IOS_VARIABLES_RENAME_BUTTON": "ٻيهر نالو ڏيو", - "IOS_VARIABLES_DELETE_BUTTON": "ڊاهيو", - "IOS_VARIABLES_VARIABLE_NAME": "تبيديل ٿيندڙ (ويريئيبل) جو نالو", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "جيڪڏهن ٻئي ان پُٽس برابر آهن تہ درست وراڻيو", - "LOGIC_COMPARE_TOOLTIP_NEQ": "جيڪڏهن ٻئي ان پُٽس اڻ برابر آهن تہ درست وراڻيو", - "LOGIC_COMPARE_TOOLTIP_LT": "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان ننڍو آهي تہ درست وراڻيو", - "LOGIC_COMPARE_TOOLTIP_LTE": "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان ننڍو آهي يا ٻئي برابر آهن تہ درست وراڻيو", - "LOGIC_COMPARE_TOOLTIP_GT": "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان وڏو آهي تہ درست وراڻيو.", - "LOGIC_COMPARE_TOOLTIP_GTE": "جيڪڏهن پهريون ان پُٽ ٻين ان پُٽ کان وڏو آهي يا ٻئي برابر آهن تہ درست وراڻيو.", - "LOGIC_OPERATION_TOOLTIP_AND": "جيڪڏهن ٻئي ان پُٽ درست آهن تہ درست وراڻيو.", - "LOGIC_OPERATION_AND": "۽", - "LOGIC_OPERATION_TOOLTIP_OR": "جيڪڏهن ٻنهي ان پُٽس مان ڪو هڪ بہ درست آهي تہ درست وراڻيو.", - "LOGIC_OPERATION_OR": "يا", - "LOGIC_NEGATE_TITLE": "نڪي %1", - "LOGIC_NEGATE_TOOLTIP": "ان پُٽ غير درست آهي تہ درست وراڻيو. ان پُٽ درست آهي تہ غير درست وراڻيو.", - "LOGIC_BOOLEAN_TRUE": "سچ", - "LOGIC_BOOLEAN_FALSE": "ڪُوڙ", - "LOGIC_BOOLEAN_TOOLTIP": "درست يا غير درست وراڻي ٿو.", - "LOGIC_TERNARY_CONDITION": "پرک (ٽيسٽ)", - "LOGIC_TERNARY_IF_TRUE": "جيڪڏهن سچو", - "LOGIC_TERNARY_IF_FALSE": "جيڪڏهن ڪوڙو", - "MATH_NUMBER_TOOLTIP": "ڪو انگ.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "ٻن انگن جي جوڙ اپت ڏيو.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "ٻنهي انگن جو تفاوت ڏيو.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "ٻنهي انگن جي ضرب اُپت ڏيو.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "ٻنهي انگن جي ونڊ ڏيو.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/ٻيون مول", - "MATH_SINGLE_OP_ROOT": "ٻيون مول", - "MATH_SINGLE_TOOLTIP_ROOT": "ڪنهن انگ جو ٻيون مول ڄاڻايو.", - "MATH_SINGLE_OP_ABSOLUTE": "ٺپ", - "MATH_SINGLE_TOOLTIP_NEG": "ڪنهن انگ جو ڪاٽو ڄاڻايو.", - "MATH_SINGLE_TOOLTIP_LN": "ڪنهن انگ جو قدرتي لاگ ڄاڻايو.", - "MATH_SINGLE_TOOLTIP_LOG10": "ڪنهن انگ جو 10 بنيادي لاگ ڄاڻايو.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/ٽڪنڊور ڪاڄ", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/رياضياتي استقلال", - "MATH_IS_EVEN": "ٻڌي آهي", - "MATH_IS_ODD": "اِڪي آهي", - "MATH_IS_PRIME": "مفرد آهي", - "MATH_IS_WHOLE": "سڄو آهي", - "MATH_IS_POSITIVE": "واڌو آهي", - "MATH_IS_NEGATIVE": "ڪاٽو آهي", - "MATH_IS_DIVISIBLE_BY": "سان ونڊجندڙ آهي", - "MATH_CHANGE_TITLE": "%1 کي %2 سان مَٽايو", - "MATH_ROUND_OPERATOR_ROUNDUP": "ويڙهيو (رائونڊ اَپ)", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "هيٺ ڦيرايو (رائونڊ ڊائون)", - "MATH_ONLIST_OPERATOR_SUM": "فهرست جو وچور", - "MATH_ONLIST_OPERATOR_MIN": "لسٽ جو ننڍي ۾ ننڍو قدر", - "MATH_ONLIST_TOOLTIP_MIN": "لسٽ ۾ ننڍي کان ننڍو قدر ڄاڻايو.", - "MATH_ONLIST_OPERATOR_MAX": "لسٽ جو وڏي ۾ وڏو قدر", - "MATH_ONLIST_TOOLTIP_MAX": "لسٽ ۾ وڏي کان وڏو قدر ڄاڻايو.", - "MATH_ONLIST_OPERATOR_AVERAGE": "لسٽ جي سراسري", - "MATH_ONLIST_OPERATOR_MEDIAN": "لسٽ جو مڌيان", - "MATH_ONLIST_TOOLTIP_MEDIAN": "لسٽ جو مڌيان انگ ڄاڻايو.", - "MATH_ONLIST_OPERATOR_MODE": "فهرست جا طريقيڪا (موڊز آف لسٽ)", - "MATH_ONLIST_OPERATOR_RANDOM": "بي ترتيب جذن جي فهرست (رينڊم آئيٽم آف لسٽ)", - "TEXT_JOIN_TITLE_CREATEWITH": "سان مواد تخليق ڪيو (ڪريئيٽ ٽيڪسٽ وِد)", - "TEXT_CREATE_JOIN_TITLE_JOIN": "شامل ٿيو", - "TEXT_INDEXOF_TITLE": "۾ متن %1 %2 %3", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "متن ۾", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "وڏن اکرن ڏانهن", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "ننڍن اکر ڏانهن", - "TEXT_PRINT_TITLE": "ڇاپيو %1", - "TEXT_PRINT_TOOLTIP": "ڄاڻايل تحرير، انگ يا ڪو ٻيو قدر ڇاپيو.", - "TEXT_COUNT_MESSAGE0": "ڳڻيو %1 ۾ %2", - "LISTS_CREATE_EMPTY_TITLE": "خالي فهرست تخليق ڪريو", - "LISTS_CREATE_WITH_INPUT_WITH": "سان فهرست تخليق ڪيو", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "لسٽ", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "فهرست ۾ ڪا شي شامل ڪريو.", - "LISTS_ISEMPTY_TITLE": "%1 خالي آهي", - "LISTS_INLIST": "فهرست ۾", - "LISTS_GET_INDEX_REMOVE": "هٽايو", - "LISTS_GET_INDEX_FROM_END": "# آخر کان", - "LISTS_GET_INDEX_FIRST": "پهريون", - "LISTS_GET_INDEX_LAST": "آخري", - "LISTS_GET_INDEX_RANDOM": "بي ترتيب", - "LISTS_SET_INDEX_SET": "ميڙ", - "LISTS_SET_INDEX_INSERT": "تي داخل ڪريو", - "LISTS_SET_INDEX_INPUT_TO": "جيان", - "LISTS_GET_SUBLIST_END_FROM_START": "ڏانهن #", - "LISTS_GET_SUBLIST_END_FROM_END": "ڏانهن # آخر کان", - "LISTS_GET_SUBLIST_END_LAST": "آخري ڏانهن", - "LISTS_SORT_TITLE": "ترتيب ڏيو %1 %2 %3", - "LISTS_SORT_ORDER_ASCENDING": "اُڀو (اَسينڊنگ)", - "LISTS_SORT_TYPE_TEXT": "الف ب وار (الفابيٽڪ)", - "PROCEDURES_DEFNORETURN_TITLE": "ڏانهن", - "PROCEDURES_DEFNORETURN_PROCEDURE": "ڪجھ ڪريو", - "PROCEDURES_BEFORE_PARAMS": "سان:", - "PROCEDURES_CALL_BEFORE_PARAMS": "سان:", - "PROCEDURES_DEFRETURN_RETURN": "واپس ورو", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ان پُٽس", - "PROCEDURES_CREATE_DO": "تخليق ڪريو '%1'" -} diff --git a/lib/blockly/msg/json/shn.json b/lib/blockly/msg/json/shn.json deleted file mode 100644 index 6c211e4..0000000 --- a/lib/blockly/msg/json/shn.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Saosukham", - "Saimawnkham" - ] - }, - "VARIABLES_DEFAULT_NAME": "ဢၼ်", - "TODAY": "မိူဝ်ႈၼႆႉ", - "DUPLICATE_BLOCK": "ထုတ်ႇ", - "ADD_COMMENT": "သႂ်ႇၶေႃႈၶႆႈၸႂ်", - "REMOVE_COMMENT": "ထွၼ်ပႅတ်ႈ ၶေႃႈၶႆႈၸႂ်", - "EXTERNAL_INPUTS": "ၶိူင်ႈဢၼ်လုၵ်ႉတၢင်းၼွၵ်ႈၶဝ်ႈမႃး", - "INLINE_INPUTS": "ၶိူင်ႈဢၼ်ၶဝ်ႈမႃးၸွမ်းလႅင်း", - "DELETE_BLOCK": "မွတ်ႇပလွၵ်ႉ", - "DELETE_X_BLOCKS": "မွတ်ႇလွင်ႈႁႄႉတတ်း %1", - "COLLAPSE_BLOCK": "လွင်ႈႁႄႉတတ်းလႅဝ်", - "COLLAPSE_ALL": "လွင်ႈႁႄႉတတ်းၸိူဝ်းလႅဝ်", - "EXPAND_BLOCK": "ၶႂၢၵ်ႈလွင်ႈႁႄႉတတ်း", - "EXPAND_ALL": "ၶႂၢၵ်ႈၸိူဝ်းႁႄႉတတ်း", - "DISABLE_BLOCK": "ဢိုတ်းၸႂ်ႉ လွင်ႈႁႄႉတတ်း", - "ENABLE_BLOCK": "ပိုတ်ႇၸႂ်ႉ လွင်ႈႁႄႉတတ်း", - "HELP": "ၸွႆႈထႅမ်", - "CHANGE_VALUE_TITLE": "လႅၵ်ႈလၢႆႈၼမ်ႉၵတ်ႉ", - "RENAME_VARIABLE": "လိုမ်ႉၶိုၼ်း ဢၼ်လၢႆႈမႂ်ႇ", - "RENAME_VARIABLE_TITLE": "လိုမ်ႉၶိုၼ်း ဢၼ်လၢႆႈမႂ်ႇၸိူဝ်းၼၼ်ႉ '%1' ထိုင်", - "NEW_VARIABLE": "ၵေႃႇသၢင်ႈ တူဝ်ၼိုင်...", - "NEW_VARIABLE_TITLE": "ၸိုဝ်ႈဢၼ်လၢႆႈမႂ်ႇ", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color သီ", - "COLOUR_PICKER_TOOLTIP": "လိူၵ်ႈသီ တမ်ႈတီႈ ၽႃးလႅတ်ႉ", - "COLOUR_RANDOM_TITLE": "သီလၢမ်းလိမ်း", - "COLOUR_RANDOM_TOOLTIP": "လိူၵ်ႈသီတမ်ႈတီႈလွၵ်းလၢမ်းလိမ်း", - "COLOUR_RGB_TITLE": "ႁူမ်ႈၵိုၵ်းသီ", - "COLOUR_RGB_RED": "လီင်", - "COLOUR_RGB_GREEN": "ၶဵဝ်", - "COLOUR_RGB_BLUE": "သွမ်ႇ", - "COLOUR_RGB_TOOLTIP": "ႁဵတ်းတူၺ်း သီဢၼ်ၼိုင်ႈ ၸွမ်းၼင်ႇမၵ်းမၼ်ႈဝႆႉ ၼႂ်းၶႂၢင်ႇ သီလႅင်, ၶဵဝ် လႄႈ သွမ်ႇ။ ၼမ်ႉၼၵ်းသီ တေလႆႈမီးၼႂ်းဝူင်ႈၵၢင် 0 တေႃႇ 100.", - "COLOUR_BLEND_TITLE": "လေႃးလႄး", - "COLOUR_BLEND_COLOUR1": "သီ 1", - "COLOUR_BLEND_COLOUR2": "သီ 2", - "COLOUR_BLEND_RATIO": "သႅၼ်း", - "COLOUR_BLEND_TOOLTIP": "ဢဝ်သီသွင်ဢၼ်လေႃးၵၼ် ၸွမ်းၼမ် သႅၼ်းဢၼ်ပၼ်ဝႆႉ (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop တႃႇတူင်ႇမူၼ်း", - "CONTROLS_REPEAT_TITLE": "ပၼ်ႇၶိုၼ်း %1 ၵမ်း", - "CONTROLS_REPEAT_INPUT_DO": "ႁဵတ်း", - "CONTROLS_REPEAT_TOOLTIP": "ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ တင်းၼမ်", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ၶၢဝ်းတိုၵ်ႉလိုမ်ႉ", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "တိုၵ်ႉလိုမ်ႉထိုင်", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢၼ်ႇမႅၼ်ႈယဝ်ႉၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) ဢမ်ႇမၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ် ၵမ်ႈၽွင်ႈ", - "CONTROLS_FOR_TITLE": "တႄႇဢၢၼ်ႇၵိုၵ်း %1 တေႃႇ %2 တေႃႇ %3 လူၺ်ႈ %4", - "CONTROLS_FOREACH_TITLE": "တႃႇၵူႈဢၼ်ဢၼ် ၼႂ်း %1 သဵၼ်ႈမၢႆ %2", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ဢွၵ်ႇတီႈၶွပ်ႇမူၼ်း", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "သိုပ်ႇပၼ်ႇထႅင်ႈ ၶွပ်ႇမူၼ်းတၢင်ႇဢၼ်", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ၵိုတ်းပႅတ်ႈ ၶွပ်ႇမူၼ်း ဢၼ်မီးဝႆႉ", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "ဝဵၼ်ႉဝႆႉ ၶွပ်ႇမူၼ်း ဢၼ်ၵိုတ်းၸိူဝ်ႈဝႆႉ, သေ သိုပ်ႇထႅင်ႈတၢင်ႇဢၼ်", - "CONTROLS_FLOW_STATEMENTS_WARNING": "ၾၢင်ႉ: ပလွၵ်ႉဢၼ်ၼႆႉ ၵူၺ်းၸႂ်ႉလူၺ်ႈတႃႇ ၶွပ်ႇမူၼ်းၵူၺ်း", - "CONTROLS_IF_TOOLTIP_1": "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢၼ်ႇမႅၼ်ႈယဝ်ႉၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ", - "CONTROLS_IF_TOOLTIP_2": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ လိူဝ်သေၼၼ်ႉ ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်", - "CONTROLS_IF_TOOLTIP_3": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႉၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆသွင်မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်", - "CONTROLS_IF_TOOLTIP_4": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ လိူဝ်သေၼၼ်ႉ, သင်ဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢႆသွင် မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ) ဢမ်ႇမီးလွင်ႈမၢၼ်ႇမႅၼ်ႈ သင်ၸိုင် ႁဵတ်းပႅတ်ႈပလွၵ်ႉ ၵမ်းလိုမ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။", - "CONTROLS_IF_MSG_IF": "သင်ဝႃႈ", - "CONTROLS_IF_MSG_ELSEIF": "သင်ဝႃႈ လိူဝ်သေၼၼ်ႉ", - "CONTROLS_IF_MSG_ELSE": "လိူဝ်သေၼၼ်ႉ", - "CONTROLS_IF_ELSEIF_TOOLTIP": "သင်ဝႃႈ ပလွၵ်ႉၸိုင် သႂ်ႇပၼ်လွင်ႈတၢင်းမၼ်း တမ်ႈ", - "CONTROLS_IF_ELSE_TOOLTIP": "သႂ်ႇၵမ်းလိုၼ်း, သင်ဝႃႈ ပလွၵ်ႉၸိုင် ဢဝ်လွင်ႈတၢင်းမၼ်းတင်းသဵင်ႈ တမ်ႈ", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(ပၢႆးၼပ်ႉ)", - "LOGIC_COMPARE_TOOLTIP_EQ": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ တင်းသွင် မိူၼ်တၢင်ႇဢၼ်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_COMPARE_TOOLTIP_NEQ": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ တင်းသွင် ဢမ်ႇမိူၼ်တၢင်ႇဢၼ်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_COMPARE_TOOLTIP_LT": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း မိူၼ် ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_COMPARE_TOOLTIP_LTE": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း မိူၼ် ဢမ်ႇၼၼ် ၽဵင်ႇပဵင်း ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_COMPARE_TOOLTIP_GT": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း ယႂ်ႇလိူဝ် ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_COMPARE_TOOLTIP_GTE": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢွၼ်တၢင်း ယႂ်ႇလိူဝ် ဢမ်ႇၼၼ် ၽဵင်ႇပဵင်း ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢႆသွင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_OPERATION_TOOLTIP_AND": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ တင်းသွင်ဢၼ် မၢၼ်ႇမႅၼ်ႈၸိုင်ၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_OPERATION_AND": "လႄႈ", - "LOGIC_OPERATION_TOOLTIP_OR": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ၵမ်းလိုၼ်းသုတ်း မၢၼ်ႇမႅၼ်ႈၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ", - "LOGIC_OPERATION_OR": "ဢမ်ႇၼၼ်", - "LOGIC_NEGATE_TITLE": "ဢမ်ႇၸႂ်ႈ %1", - "LOGIC_NEGATE_TOOLTIP": "သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ ဢမ်ႇၼႅၼ်ႈၼႃၸိုင် မႄးၶိုၼ်း ႁႂ်ႈမၢၼ်ႇမႅၼ်ႈ။ သင်ဝႃႈ ဢၼ်ၽိူမ်ႉသႂ်ႇ မၢၼ်ႇမႅၼ်ႈၸိုင် ၶိုၼ်းမူၼ်ႉမႄး ႁႂ်ႈၼႅၼ်ႈၼႃ", - "LOGIC_BOOLEAN_TRUE": "မၢၼ်ႇမႅၼ်ႈ", - "LOGIC_BOOLEAN_FALSE": "ဢမ်ႇၼႅၼ်ႈၼႃ", - "LOGIC_BOOLEAN_TOOLTIP": "မၢၼ်ႇမႅၼ်ႈလႄႈသင် ဢမ်ႇၼႅၼ်ႈၼႃလႄႈသင် ႁူၼ်ၶိုၼ်း", - "LOGIC_NULL": "ဢမ်ႇၶဝ်ႈၶႂၢင်ႇ", - "LOGIC_NULL_TOOLTIP": "လဵဝ်ၶိုၼ်း ဢမ်ႇၶဝ်ႈၶႂၢင်ႇ", - "LOGIC_TERNARY_CONDITION": "ၸၢမ်း", - "LOGIC_TERNARY_IF_TRUE": "သင်ဝႃႈ မၢၼ်ႇမႅၼ်ႈ", - "LOGIC_TERNARY_IF_FALSE": "သင်ဝႃႈ ဢမ်ႇၼႅၼ်ႈၼႃ", - "LOGIC_TERNARY_TOOLTIP": "ၸၢမ်းၵူတ်ႇတူၺ်း သၢႆငၢႆ။ သင်ဝႃႈ သၢႆငၢႆမၢၼ်ႇမႅၼ်ႈ, လဵဝ်ၶိုၼ်း ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) 'သင်မၢၼ်ႇမႅၼ်ႈ'; လိူဝ်ၼၼ်ႉ လဵဝ်ၶိုၼ်း ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) 'သင်ဢမ်ႇၼႅၼ်ႈၼႃ'။", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/မၢႆၼပ်ႉ", - "MATH_NUMBER_TOOLTIP": "မၢႆၼပ်ႉ ၼိုင်ႈဢၼ်", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/ပၢႆးၼပ်ႉ", - "MATH_ARITHMETIC_TOOLTIP_ADD": "လဵဝ်ၶိုၼ်း တၢင်းၼမ် ၼႂ်းမၢႆၼပ်ႉ သွင်", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "လဵဝ်ၶိုၼ်း ဢၼ်ပႅၵ်ႇပိူင်ႈ ၼႂ်းမၢႆၼပ်ႉ သွင်", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "လဵဝ်ၶိုၼ်း ဢၼ်ဢဝ်ဢွၵ်ႇ ၼႂ်းမၢႆၼပ်ႉ သွင်", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "လဵဝ်ၶိုၼ်း ပမႃႇၼ ၼႂ်းမၢႆၼပ်ႉ သွင်", - "MATH_ARITHMETIC_TOOLTIP_POWER": "လဵဝ်ၶိုၼ်း တူဝ်ၼပ်ႉမၢႆၼိုင်ႈၼႆႉ ၸွႆႈႁႅင်းပၼ် တူဝ်ၼပ်ႉမၢႆသွင်", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root (မၢႆတူပ်ႉမိူၼ်)", - "MATH_SINGLE_OP_ROOT": "မၢႆတူပ်ႉမိူၼ်", - "MATH_SINGLE_TOOLTIP_ROOT": "လဵဝ်ၶိုၼ်း မၢႆတူပ်ႉမိူၼ် ၼႂ်းမၢႆၼပ်ႉ", - "MATH_SINGLE_OP_ABSOLUTE": "ပၵတိ", - "MATH_SINGLE_TOOLTIP_ABS": "လဵဝ်ၶိုၼ်း ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) ပၵတိ ၼႂ်းမၢႆၼပ်ႉ", - "MATH_SINGLE_TOOLTIP_NEG": "လဵဝ်ၶိုၼ်း ဢၼ်သၢၼ်ၶတ်း ၼႂ်း မၢႆၼပ်ႉ", - "MATH_SINGLE_TOOLTIP_LN": "လဵဝ်ၶိုၼ်း လွၵ်းလၢႆးၼပ်ႉ ၼႂ်းမၢႆၼပ်ႉ", - "MATH_SINGLE_TOOLTIP_LOG10": "လဵဝ်ၶိုၼ်း ပိုၼ်ႉထၢၼ် 10 လွၵ်းလၢႆးၼပ်ႉ ၼႂ်းမၢႆၼပ်ႉ", - "MATH_SINGLE_TOOLTIP_EXP": "လဵဝ်ၶိုၼ်း e ၵႂႃႇတီႈ ပႃႇဝႃႇ ၼႂ်းမၢႆၼပ်ႉ", - "MATH_SINGLE_TOOLTIP_POW10": "လဵဝ်ၶိုၼ်း 10 ၵႂႃႇတီႈ ပႃႇဝႃႇ ၼႂ်းမၢႆၼပ်ႉ", - "MATH_IS_EVEN": "ပဵၼ်ၵူပ်ႉ", - "MATH_IS_ODD": "ပဵၼ်ၵိၵ်ႈ" -} diff --git a/lib/blockly/msg/json/sk.json b/lib/blockly/msg/json/sk.json deleted file mode 100644 index 0dea601..0000000 --- a/lib/blockly/msg/json/sk.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Jaroslav.micek", - "Marian.stano", - "Mark", - "Kusavica", - "Genhis", - "Lexected", - "Adams", - "TomášPolonec", - "Pmikolas44" - ] - }, - "VARIABLES_DEFAULT_NAME": "prvok", - "TODAY": "Dnes", - "DUPLICATE_BLOCK": "Duplikovať", - "ADD_COMMENT": "Pridať komentár", - "REMOVE_COMMENT": "Odstrániť komentár", - "EXTERNAL_INPUTS": "Vonkajšie vstupy", - "INLINE_INPUTS": "Riadkové vstupy", - "DELETE_BLOCK": "Odstrániť blok", - "DELETE_X_BLOCKS": "Odstrániť %1 blokov", - "DELETE_ALL_BLOCKS": "Zmazať všetkých %1 dielcov?", - "CLEAN_UP": "Narovnať bloky", - "COLLAPSE_BLOCK": "Zvinúť blok", - "COLLAPSE_ALL": "Zvinúť bloky", - "EXPAND_BLOCK": "Rozvinúť blok", - "EXPAND_ALL": "Rozvinúť bloky", - "DISABLE_BLOCK": "Vypnúť blok", - "ENABLE_BLOCK": "Povoliť blok", - "HELP": "Pomoc", - "UNDO": "Späť", - "REDO": "Znova", - "CHANGE_VALUE_TITLE": "Zmeniť hodnotu:", - "RENAME_VARIABLE": "Premenovať premennú...", - "RENAME_VARIABLE_TITLE": "Premenovať všetky premenné '%1' na:", - "NEW_VARIABLE": "Vytvoriť premennú...", - "NEW_VARIABLE_TITLE": "Názov novej premennej:", - "VARIABLE_ALREADY_EXISTS": "Premenná s názvom %1 už existuje.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Premenná s názvom '%1' už existuje pre inú premennú typu '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Odstrániť %1 použití premennej '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Nie je možné zmazať premennú „%1“, pretože je súčasťou definície funkcie „%2“", - "DELETE_VARIABLE": "Odstrániť premennú '%1'", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Zvoľte farbu z palety.", - "COLOUR_RANDOM_TITLE": "náhodná farba", - "COLOUR_RANDOM_TOOLTIP": "Zvoliť farbu náhodne.", - "COLOUR_RGB_TITLE": "ofarbiť s", - "COLOUR_RGB_RED": "červená", - "COLOUR_RGB_GREEN": "zelená", - "COLOUR_RGB_BLUE": "modrá", - "COLOUR_RGB_TOOLTIP": "Vytvoriť farbu pomocou zadaného množstva červenej, zelenej a modrej. Množstvo musí byť medzi 0 a 100.", - "COLOUR_BLEND_TITLE": "zmiešať", - "COLOUR_BLEND_COLOUR1": "farba 1", - "COLOUR_BLEND_COLOUR2": "farba 2", - "COLOUR_BLEND_RATIO": "pomer", - "COLOUR_BLEND_TOOLTIP": "Zmieša dve farby v danom pomere (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "opakuj %1 krát", - "CONTROLS_REPEAT_INPUT_DO": "rob", - "CONTROLS_REPEAT_TOOLTIP": "Opakuj určité príkazy viackrát.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "opakuj kým", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "opakuj kým nebude", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Kým je hodnota pravdivá, vykonávaj príkazy.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Kým je hodnota nepravdivá, vykonávaj príkazy.", - "CONTROLS_FOR_TOOLTIP": "Nechá premennú '%1' nadobúdať hodnoty od začiatočného čísla po konečné s daným medzikrokom a vykoná zadané bloky.", - "CONTROLS_FOR_TITLE": "počítať s %1 od %2 do %3 o %4", - "CONTROLS_FOREACH_TITLE": "pre každý prvok %1 v zozname %2", - "CONTROLS_FOREACH_TOOLTIP": "Pre každý prvok v zozname priraď jeho hodnotu do premenej '%1' a vykonaj príkazy.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "opustiť slučku", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "prejdi na nasledujúce opakovanie slučky", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Opustiť túto slučku.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Vynechať zvyšok tejto slučky a pokračovať ďalším opakovaním.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Upozornenie: Tento blok sa môže používať len v rámci slučky.", - "CONTROLS_IF_TOOLTIP_1": "Ak je hodnota pravda, vykonaj príkazy.", - "CONTROLS_IF_TOOLTIP_2": "Ak je hodnota pravda, vykonaj príkazy v prvom bloku. Inak vykonaj príkazy v druhom bloku.", - "CONTROLS_IF_TOOLTIP_3": "Ak je prvá hodnota pravda, vykonaj príkazy v prvom bloku. Inak, ak je druhá hodnota pravda, vykonaj príkazy v druhom bloku.", - "CONTROLS_IF_TOOLTIP_4": "Ak je prvá hodnota pravda, vykonaj príkazy v prvom bloku. Inak, ak je druhá hodnota pravda, vykonaj príkazy v druhom bloku. Ak ani jedna hodnota nie je pravda, vykonaj príkazy v poslednom bloku.", - "CONTROLS_IF_MSG_IF": "ak", - "CONTROLS_IF_MSG_ELSEIF": "inak ak", - "CONTROLS_IF_MSG_ELSE": "inak", - "CONTROLS_IF_IF_TOOLTIP": "Pridať, odstrániť alebo zmeniť poradie oddielov tohto \"ak\" bloku.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Pridať podmienku k \"ak\" bloku.", - "CONTROLS_IF_ELSE_TOOLTIP": "Pridať poslednú záchytnú podmienku k \"ak\" bloku.", - "IOS_OK": "OK", - "IOS_CANCEL": "Zrušiť", - "IOS_ERROR": "Chyba", - "IOS_PROCEDURES_INPUTS": "Vstupy", - "IOS_PROCEDURES_ADD_INPUT": "+ Pridať vstup", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Povoľujú príkazy", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Táto funkcia obsahuje duplikáty vstupov.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Pridať premennú", - "IOS_VARIABLES_ADD_BUTTON": "Pridať", - "IOS_VARIABLES_RENAME_BUTTON": "Premenovať", - "IOS_VARIABLES_DELETE_BUTTON": "Zmazať", - "IOS_VARIABLES_VARIABLE_NAME": "Názov premennej", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Nie je možné použiť premennú bez mena.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Vráť hodnotu pravda, ak sú vstupy rovnaké.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Vráť hodnotu pravda, ak vstupy nie sú rovnaké.", - "LOGIC_COMPARE_TOOLTIP_LT": "Vráť hodnotu pravda, ak prvý vstup je menší než druhý.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Vráť hodnotu pravda ak prvý vstup je menší alebo rovný druhému.", - "LOGIC_COMPARE_TOOLTIP_GT": "Vráť hodnotu pravda ak prvý vstup je väčší než druhý.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Vráť hodnotu pravda ak prvý vstup je väčší alebo rovný druhému.", - "LOGIC_OPERATION_TOOLTIP_AND": "Vráť hodnotu pravda, ak sú vstupy pravdivé.", - "LOGIC_OPERATION_AND": "a", - "LOGIC_OPERATION_TOOLTIP_OR": "Vráť hodnotu pravda, ak je aspoň jeden vstup pravda.", - "LOGIC_OPERATION_OR": "alebo", - "LOGIC_NEGATE_TITLE": "nie je %1", - "LOGIC_NEGATE_TOOLTIP": "Vráti hodnotu pravda, ak je vstup nepravda. Vráti hodnotu nepravda ak je vstup pravda.", - "LOGIC_BOOLEAN_TRUE": "pravda", - "LOGIC_BOOLEAN_FALSE": "nepravda", - "LOGIC_BOOLEAN_TOOLTIP": "Vráť buď hodnotu pravda alebo nepravda.", - "LOGIC_NULL": "nič", - "LOGIC_NULL_TOOLTIP": "Vráti hodnotu nula.", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "ak pravda", - "LOGIC_TERNARY_IF_FALSE": "ak nepravda", - "LOGIC_TERNARY_TOOLTIP": "Skontroluj podmienku testom. Ak je podmienka pravda, vráť hodnotu \"ak pravda\", inak vráť hodnotu \"ak nepravda\".", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Číslo.", - "MATH_TRIG_ASIN": "arcsin", - "MATH_TRIG_ACOS": "arccos", - "MATH_TRIG_ATAN": "arctan", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Vráť súčet dvoch čísel.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Vráť rozdiel dvoch čísel.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Vráť súčin dvoch čísel.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Vráť podiel dvoch čísel.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Vráť prvé číslo umocnené druhým.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "druhá odmocnina", - "MATH_SINGLE_TOOLTIP_ROOT": "Vráť druhú odmocninu čísla.", - "MATH_SINGLE_OP_ABSOLUTE": "absolútna hodnota", - "MATH_SINGLE_TOOLTIP_ABS": "Vráť absolútnu hodnotu čísla.", - "MATH_SINGLE_TOOLTIP_NEG": "Vráť opačné číslo.", - "MATH_SINGLE_TOOLTIP_LN": "Vráť prirodzený logaritmus čísla.", - "MATH_SINGLE_TOOLTIP_LOG10": "Vráť logaritmus čísla so základom 10.", - "MATH_SINGLE_TOOLTIP_EXP": "Vráť e umocnené číslom.", - "MATH_SINGLE_TOOLTIP_POW10": "Vráť 10 umocnené číslom.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Vráť sínus uhla (v stupňoch).", - "MATH_TRIG_TOOLTIP_COS": "Vráť kosínus uhla (v stupňoch).", - "MATH_TRIG_TOOLTIP_TAN": "Vráť tangens uhla (v stupňoch).", - "MATH_TRIG_TOOLTIP_ASIN": "Vráť arkus sínus čísla.", - "MATH_TRIG_TOOLTIP_ACOS": "Vráť arkus kosínus čísla.", - "MATH_TRIG_TOOLTIP_ATAN": "Vráť arkus tangens čísla.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant‎", - "MATH_CONSTANT_TOOLTIP": "Vráť jednu zo zvyčajných konštánt: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), alebo ∞ (nekonečno).", - "MATH_IS_EVEN": "je párne", - "MATH_IS_ODD": "je nepárne", - "MATH_IS_PRIME": "je prvočíslo", - "MATH_IS_WHOLE": "je celé číslo", - "MATH_IS_POSITIVE": "je kladné", - "MATH_IS_NEGATIVE": "je záporné", - "MATH_IS_DIVISIBLE_BY": "je deliteľné", - "MATH_IS_TOOLTIP": "Skontroluj či je číslo párne, nepárne, celé, kladné, záporné alebo deliteľné určitým číslom. Vráť hodnotu pravda alebo nepravda.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "zmeniť %1 o %2", - "MATH_CHANGE_TOOLTIP": "Pridaj číslo do premennej \"%1\".", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Zaokrúhli číslo nahor alebo nadol.", - "MATH_ROUND_OPERATOR_ROUND": "zaokrúhli", - "MATH_ROUND_OPERATOR_ROUNDUP": "zaokrúhli nahor", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "zaokrúhli nadol", - "MATH_ONLIST_OPERATOR_SUM": "súčet zoznamu", - "MATH_ONLIST_TOOLTIP_SUM": "Vráť súčet všetkých čísel v zozname.", - "MATH_ONLIST_OPERATOR_MIN": "najmenšie v zozname", - "MATH_ONLIST_TOOLTIP_MIN": "Vrátiť najmenšie číslo v zozname.", - "MATH_ONLIST_OPERATOR_MAX": "najväčšie v zozname", - "MATH_ONLIST_TOOLTIP_MAX": "Vrátiť najväčšie číslo v zozname.", - "MATH_ONLIST_OPERATOR_AVERAGE": "priemer zoznamu", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Vráť aritmetický priemer čísel v zozname.", - "MATH_ONLIST_OPERATOR_MEDIAN": "medián zoznamu", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Vráť medián čísel v zozname.", - "MATH_ONLIST_OPERATOR_MODE": "najčastejšie v zozname", - "MATH_ONLIST_TOOLTIP_MODE": "Vrátiť najčastejší prvok v zozname.", - "MATH_ONLIST_OPERATOR_STD_DEV": "smerodajná odchýlka zoznamu", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Vráť smeroddajnú odchýlku zoznamu.", - "MATH_ONLIST_OPERATOR_RANDOM": "náhodný prvok zoznamu", - "MATH_ONLIST_TOOLTIP_RANDOM": "Vráť náhodne zvolený prvok zoznamu.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "zvyšok po delení %1 + %2", - "MATH_MODULO_TOOLTIP": "Vráť zvyšok po delení jedného čísla druhým.", - "MATH_CONSTRAIN_TITLE": "obmedz %1 od %2 do %3", - "MATH_CONSTRAIN_TOOLTIP": "Obmedzí číslo do zadaných hraníc (vrátane).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "náhodné celé číslo od %1 do %2", - "MATH_RANDOM_INT_TOOLTIP": "Vráť náhodné celé číslo z určeného intervalu (vrátane).", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "náhodné číslo od 0 do 1", - "MATH_RANDOM_FLOAT_TOOLTIP": "Vráť náhodné číslo z intervalu 0.0 (vrátane) až 1.0.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Písmeno, slovo alebo riadok textu.", - "TEXT_JOIN_TITLE_CREATEWITH": "vytvor text z", - "TEXT_JOIN_TOOLTIP": "Vytvor text spojením určitého počtu prvkov.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "spoj", - "TEXT_CREATE_JOIN_TOOLTIP": "Pridaj, odstráň alebo zmeň poradie oddielov v tomto textovom bloku.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Pridaj prvok do textu.", - "TEXT_APPEND_TITLE": "do %1 pridaj text %2", - "TEXT_APPEND_TOOLTIP": "Pridaj určitý text do premennej '%1'.", - "TEXT_LENGTH_TITLE": "dĺžka %1", - "TEXT_LENGTH_TOOLTIP": "Vráti počet písmen (s medzerami) v zadanom texte.", - "TEXT_ISEMPTY_TITLE": "%1 je prázdny", - "TEXT_ISEMPTY_TOOLTIP": "Vráti hodnotu pravda, ak zadaný text je prázdny.", - "TEXT_INDEXOF_TOOLTIP": "Vráti index prvého/posledného výskytu prvého textu v druhom texte. Ak nenájde, vráti %1.", - "TEXT_INDEXOF_TITLE": "v texte %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "nájdi prvý výskyt textu", - "TEXT_INDEXOF_OPERATOR_LAST": "nájdi posledný výskyt textu", - "TEXT_CHARAT_TITLE": "v texte %1 %2", - "TEXT_CHARAT_FROM_START": "zisti písmeno #", - "TEXT_CHARAT_FROM_END": "zisti # písmeno od konca", - "TEXT_CHARAT_FIRST": "zisti prvé písmeno", - "TEXT_CHARAT_LAST": "zisti posledné písmeno", - "TEXT_CHARAT_RANDOM": "vyber náhodné písmeno", - "TEXT_CHARAT_TOOLTIP": "Vráti písmeno na určenej pozícii.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Vráti určenú časť textu.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "v texte", - "TEXT_GET_SUBSTRING_START_FROM_START": "vyber podreťazec od písmena #", - "TEXT_GET_SUBSTRING_START_FROM_END": "vyber podreťazec od # písmena od konca", - "TEXT_GET_SUBSTRING_START_FIRST": "vyber podreťazec od začiatku", - "TEXT_GET_SUBSTRING_END_FROM_START": "po písmeno #", - "TEXT_GET_SUBSTRING_END_FROM_END": "po # písmeno od konca", - "TEXT_GET_SUBSTRING_END_LAST": "po koniec", - "TEXT_CHANGECASE_TOOLTIP": "Vráť kópiu textu s inou veľkosťou písmen.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "na VEĽKÉ PÍSMENÁ", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "na malé písmená", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "na Veľké Začiatočné Písmená", - "TEXT_TRIM_TOOLTIP": "Vráť kópiu textu bez medzier na jednom alebo oboch koncoch.", - "TEXT_TRIM_OPERATOR_BOTH": "odstráň medzery z oboch strán", - "TEXT_TRIM_OPERATOR_LEFT": "odstráň medzery z ľavej strany", - "TEXT_TRIM_OPERATOR_RIGHT": "odstráň medzery z pravej strany", - "TEXT_PRINT_TITLE": "píš %1", - "TEXT_PRINT_TOOLTIP": "Napíš zadaný text, číslo alebo hodnotu.", - "TEXT_PROMPT_TYPE_TEXT": "výzva za zadanie textu so správou", - "TEXT_PROMPT_TYPE_NUMBER": "výzva na zadanie čísla so správou", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Výzva pre používateľa na zadanie čísla.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Výzva pre používateľa na zadanie textu.", - "TEXT_COUNT_MESSAGE0": "počet výskytov %1 v %2", - "TEXT_COUNT_TOOLTIP": "Počet výskytov textu nachádzajúcom sa v inom texte.", - "TEXT_REPLACE_MESSAGE0": "zameniť %1 za %2 v reťazci %3", - "TEXT_REPLACE_TOOLTIP": "Zameniť všetky výskyty textu za iný text.", - "TEXT_REVERSE_MESSAGE0": "text odzadu %1", - "TEXT_REVERSE_TOOLTIP": "Obrátiť poradie písmen v texte.", - "LISTS_CREATE_EMPTY_TITLE": "prázdny zoznam", - "LISTS_CREATE_EMPTY_TOOLTIP": "Vráti zoznam nulovej dĺžky, ktorý neobsahuje žiadne prvky.", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Vytvor zoznam s ľubovoľným počtom prvkov.", - "LISTS_CREATE_WITH_INPUT_WITH": "vytvor zoznam s", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "zoznam", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Pridaj, odstráň alebo zmeň poradie v tomto zoznamovom bloku.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Pridaj prvok do zoznamu.", - "LISTS_REPEAT_TOOLTIP": "Vytvorí zoznam s niekoľkými rovnakými prvkami s danou hodnotou.", - "LISTS_REPEAT_TITLE": "vytvor zoznam s prvkom %1 opakovaným %2 krát", - "LISTS_LENGTH_TITLE": "dĺžka %1", - "LISTS_LENGTH_TOOLTIP": "Vráti dĺžku zoznamu", - "LISTS_ISEMPTY_TITLE": "%1 je prázdny", - "LISTS_ISEMPTY_TOOLTIP": "Vráti pravda, ak je zoznam prázdny.", - "LISTS_INLIST": "v zozname", - "LISTS_INDEX_OF_FIRST": "nájdi prvý výskyt prvku", - "LISTS_INDEX_OF_LAST": "nájdi posledný výskyt prvku", - "LISTS_INDEX_OF_TOOLTIP": "Vráti index prvého/posledného výskytu prvku v zozname. Ak sa nič nenašlo, vráti %1.", - "LISTS_GET_INDEX_GET": "zisti", - "LISTS_GET_INDEX_GET_REMOVE": "zisti a odstráň", - "LISTS_GET_INDEX_REMOVE": "odstráň", - "LISTS_GET_INDEX_FROM_END": "# od konca", - "LISTS_GET_INDEX_FIRST": "prvý", - "LISTS_GET_INDEX_LAST": "posledný", - "LISTS_GET_INDEX_RANDOM": "náhodný", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 je počiatočný prvok.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 je posledný prvok.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Vráti prvok na určenej pozícii v zozname.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Vráti počiatočný prvok zoznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Vráti posledný prvok zoznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Vráti náhodný prvok zoznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Odstráni a vráti prvok z určenej pozície v zozname.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Odstráni a vráti prvý prvok v zozname.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Odstráni a vráti posledný prvok v zozname.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Odstráni a vráti náhodný prvok v zozname.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Odstráni prvok na určenej pozícii v zozname.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Odstráni prvý prvok v zozname.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Odstráni posledný prvok v zozname.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Odstráni náhodný prvok v zozname.", - "LISTS_SET_INDEX_SET": "nastaviť", - "LISTS_SET_INDEX_INSERT": "vložiť na", - "LISTS_SET_INDEX_INPUT_TO": "ako", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Nastaví prvok na určenej pozícii v zozname.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Nastaví prvý prvok v zozname.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Nastaví posledný prvok v zozname.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Nastaví posledný prvok v zozname.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Vsunie prvok na určenú pozíciu v zozname.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Vsunie prvok na začiatok zoznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Pripojí prvok na koniec zoznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Vsunie prvok na náhodné miesto v zozname.", - "LISTS_GET_SUBLIST_START_FROM_START": "získať podzoznam od #", - "LISTS_GET_SUBLIST_START_FROM_END": "Získať podzoznam od # od konca", - "LISTS_GET_SUBLIST_START_FIRST": "Získať podzoznam od začiatku", - "LISTS_GET_SUBLIST_END_FROM_START": "po #", - "LISTS_GET_SUBLIST_END_FROM_END": "po # od konca", - "LISTS_GET_SUBLIST_END_LAST": "po koniec", - "LISTS_GET_SUBLIST_TOOLTIP": "Skopíruje určený úsek zoznamu.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "zoradiť %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Zoradiť kópiu zoznamu.", - "LISTS_SORT_ORDER_ASCENDING": "Vzostupne", - "LISTS_SORT_ORDER_DESCENDING": "Zostupne", - "LISTS_SORT_TYPE_NUMERIC": "numericky", - "LISTS_SORT_TYPE_TEXT": "abecedne", - "LISTS_SORT_TYPE_IGNORECASE": "abecedne, ignorovať veľkosť písmen", - "LISTS_SPLIT_LIST_FROM_TEXT": "vytvoriť zoznam z textu", - "LISTS_SPLIT_TEXT_FROM_LIST": "vytvoriť text zo zoznamu", - "LISTS_SPLIT_WITH_DELIMITER": "s oddeľovačom", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Rozdelenie textu do zoznamu textov, lámanie na oddeľovačoch.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Spojiť zoznam textov do jedného textu s oddeľovačmi.", - "LISTS_REVERSE_MESSAGE0": "obrátiť %1", - "LISTS_REVERSE_TOOLTIP": "Obrátiť kópiu zoznamu.", - "VARIABLES_GET_TOOLTIP": "Vráti hodnotu tejto premennej.", - "VARIABLES_GET_CREATE_SET": "Vytvoriť \"nastaviť %1\"", - "VARIABLES_SET": "nastaviť %1 na %2", - "VARIABLES_SET_TOOLTIP": "Nastaví túto premennú, aby sa rovnala vstupu.", - "VARIABLES_SET_CREATE_GET": "Vytvoriť \"získať %1\"", - "PROCEDURES_DEFNORETURN_TITLE": "na", - "PROCEDURES_DEFNORETURN_PROCEDURE": "urob niečo", - "PROCEDURES_BEFORE_PARAMS": "s:", - "PROCEDURES_CALL_BEFORE_PARAMS": "s:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Vytvorí funciu bez výstupu.", - "PROCEDURES_DEFNORETURN_COMMENT": "Doplň, čo robí táto funkcia...", - "PROCEDURES_DEFRETURN_RETURN": "vrátiť", - "PROCEDURES_DEFRETURN_TOOLTIP": "Vytvorí funkciu s výstupom.", - "PROCEDURES_ALLOW_STATEMENTS": "povoliť príkazy", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Upozornenie: Táto funkcia má duplicitné parametre.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://sk.wikipedia.org/wiki/Podprogram", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Spustí používateľom definovanú funkciu '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://sk.wikipedia.org/wiki/Podprogram", - "PROCEDURES_CALLRETURN_TOOLTIP": "Spustí používateľom definovanú funkciu '%1' a použije jej výstup.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "vstupy", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Pridať, odstrániť alebo zmeniť poradie vstupov tejto funkcie.", - "PROCEDURES_MUTATORARG_TITLE": "názov vstupu:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Pridať vstup do funkcie.", - "PROCEDURES_HIGHLIGHT_DEF": "Zvýrazniť definíciu funkcie", - "PROCEDURES_CREATE_DO": "Vytvoriť '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Ak je hodnota pravda, tak vráti druhú hodnotu.", - "PROCEDURES_IFRETURN_WARNING": "Upozornenie: Tento blok môže byť len vo vnútri funkcie." -} diff --git a/lib/blockly/msg/json/skr-arab.json b/lib/blockly/msg/json/skr-arab.json deleted file mode 100644 index b1b0c3f..0000000 --- a/lib/blockly/msg/json/skr-arab.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Saraiki" - ] - }, - "VARIABLES_DEFAULT_NAME": "آئٹم", - "TODAY": "اڄ", - "DUPLICATE_BLOCK": "ڈپلیکیٹ", - "ADD_COMMENT": "تبصرہ کرو", - "REMOVE_COMMENT": "رائے مٹاؤ", - "EXTERNAL_INPUTS": "باہرلے انپٹ", - "INLINE_INPUTS": "ان لائن ان پٹ", - "DELETE_BLOCK": "بلاک مٹاؤ", - "DELETE_X_BLOCKS": "%1 بلاکاں کوں مٹاؤ", - "DELETE_ALL_BLOCKS": "بھلا %1 بلاکاں کوں مٹاؤں؟", - "CLEAN_UP": "بلاک صاف کرو", - "COLLAPSE_BLOCK": "بلا ک کٹھے کرو", - "COLLAPSE_ALL": "بلاک کٹھے کرو", - "EXPAND_BLOCK": "بلاک کھنڈاؤ", - "EXPAND_ALL": "بلاکوں کوں کھنڈاؤ", - "DISABLE_BLOCK": "بلاک ہٹاؤ", - "ENABLE_BLOCK": "بلاک فعال کرو", - "HELP": "مدد", - "UNDO": "واپس", - "REDO": "ولدا کرو", - "CHANGE_VALUE_TITLE": "ویلیو تبدیل کرو:", - "RENAME_VARIABLE": "متغیر دا ولدا ناں رکھو۔۔۔", - "NEW_VARIABLE": "متغیر بݨاؤ۔۔۔", - "NEW_VARIABLE_TITLE": "نواں متغیر ناں:", - "VARIABLE_ALREADY_EXISTS": "'%1' نامی متغیر پہلے موجود ہے۔", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_RANDOM_TITLE": "بنا ترتيب رنگ", - "COLOUR_RGB_TITLE": "نال رن٘گ", - "COLOUR_RGB_RED": "رتا", - "COLOUR_RGB_GREEN": "ساوا", - "COLOUR_RGB_BLUE": "نیلا", - "COLOUR_BLEND_TITLE": "مرکب", - "COLOUR_BLEND_COLOUR1": "رنگ 1", - "COLOUR_BLEND_COLOUR2": "رنگ 2", - "COLOUR_BLEND_RATIO": "نسبت", - "CONTROLS_REPEAT_INPUT_DO": "کرو", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تائیں دہرائے", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "گھیرے کنوں ٻاہر نکلݨ", - "CONTROLS_IF_MSG_IF": "جے", - "CONTROLS_IF_MSG_ELSEIF": "ٻیا اگر", - "CONTROLS_IF_MSG_ELSE": "وکھرا", - "IOS_OK": "ٹھیک ہے", - "IOS_CANCEL": "منسوخ", - "IOS_ERROR": "نقص", - "IOS_PROCEDURES_INPUTS": "ان پٹ", - "IOS_VARIABLES_ADD_VARIABLE": "+ متغیر شامل کرو", - "IOS_VARIABLES_ADD_BUTTON": "شامل کرو", - "IOS_VARIABLES_RENAME_BUTTON": "نواں ناں لکھو", - "IOS_VARIABLES_DELETE_BUTTON": "مٹاؤ", - "IOS_VARIABLES_VARIABLE_NAME": "متغیر ناں", - "LOGIC_OPERATION_AND": "اتے", - "LOGIC_OPERATION_OR": "یا", - "LOGIC_NEGATE_TITLE": "%1 کائنی", - "LOGIC_BOOLEAN_TRUE": "سچ", - "LOGIC_BOOLEAN_FALSE": "غلط", - "LOGIC_NULL": "کوئی وی کائنی", - "LOGIC_TERNARY_CONDITION": "ٹیسٹ", - "LOGIC_TERNARY_IF_TRUE": "اگر سچ ہے", - "LOGIC_TERNARY_IF_FALSE": "اگر کوڑ ہے", - "MATH_NUMBER_TOOLTIP": "ہک عدد", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_SINGLE_OP_ROOT": "مربعی جذر", - "MATH_SINGLE_OP_ABSOLUTE": "مطلق", - "MATH_IS_EVEN": "جفت ہے", - "MATH_IS_ODD": "طاق ہے", - "MATH_IS_PRIME": "مفرد ہے", - "MATH_IS_WHOLE": "مکمل ہے", - "MATH_IS_POSITIVE": "مثبت ہے", - "MATH_IS_NEGATIVE": "منفی ہے", - "MATH_ONLIST_OPERATOR_SUM": "لسٹ دا مجموعہ", - "MATH_ONLIST_OPERATOR_MIN": "لسٹ وچوں سب توں گھٹ", - "MATH_ONLIST_OPERATOR_MAX": "لسٹ وچوں سب توں ودھ", - "MATH_ONLIST_OPERATOR_AVERAGE": "فہرست دی اوسط", - "TEXT_CREATE_JOIN_TITLE_JOIN": "شامل تھیوو", - "TEXT_LENGTH_TITLE": "%1 دی لمباݨ", - "TEXT_ISEMPTY_TITLE": "%1 خالی ہے", - "TEXT_CHARAT_FROM_START": "# حرف گھنو", - "TEXT_CHARAT_FIRST": "پہلا حرف گھنو", - "TEXT_CHARAT_LAST": "چھیکڑی حرف گھنو", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ٹیکسٹ وچ", - "TEXT_PRINT_TITLE": "%1 چھاپو", - "LISTS_CREATE_EMPTY_TITLE": "خالی تندیر بݨاؤ", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "فہرست", - "LISTS_ISEMPTY_TITLE": "%1 خالی ہے", - "LISTS_INLIST": "فہرست وچ", - "LISTS_GET_INDEX_GET": "گھنو", - "LISTS_GET_INDEX_GET_REMOVE": "گھنو تے ہٹاؤ", - "LISTS_GET_INDEX_REMOVE": "ہٹاؤ", - "LISTS_GET_INDEX_FROM_END": "# چھیکڑ کنوں", - "LISTS_GET_INDEX_FIRST": "پہلا", - "LISTS_GET_INDEX_LAST": "چھیکڑی", - "LISTS_GET_INDEX_RANDOM": "پُٹھے سِدھے", - "LISTS_SET_INDEX_SET": "سیٹ", - "LISTS_SET_INDEX_INSERT": "تے درج کرو", - "LISTS_SET_INDEX_INPUT_TO": "بطور", - "LISTS_SORT_TITLE": "سارٹ کرو%1%2%3", - "LISTS_SORT_ORDER_ASCENDING": "چڑھدا ہویا", - "LISTS_SORT_ORDER_DESCENDING": "لہندا ہویا", - "LISTS_SORT_TYPE_NUMERIC": "عددی", - "LISTS_SORT_TYPE_TEXT": "الف بے دی", - "PROCEDURES_DEFNORETURN_TITLE": "کوں", - "PROCEDURES_BEFORE_PARAMS": "نال:", - "PROCEDURES_CALL_BEFORE_PARAMS": "نال:", - "PROCEDURES_DEFRETURN_RETURN": "واپس آ ونڄو", - "PROCEDURES_MUTATORARG_TITLE": "ان پُٹ ناں:" -} diff --git a/lib/blockly/msg/json/sl.json b/lib/blockly/msg/json/sl.json deleted file mode 100644 index 1c7f5d2..0000000 --- a/lib/blockly/msg/json/sl.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Anzeljg", - "Miloš Košir", - "Dbc334", - "HairyFotr", - "Igor.pesek", - "MaxiMouse", - "LoveMortuus" - ] - }, - "VARIABLES_DEFAULT_NAME": "element", - "TODAY": "Danes", - "DUPLICATE_BLOCK": "Podvoji", - "ADD_COMMENT": "Dodaj komentar", - "REMOVE_COMMENT": "Odstrani komentar", - "DUPLICATE_COMMENT": "Podvoji komentar", - "EXTERNAL_INPUTS": "Zunanji vnosi", - "INLINE_INPUTS": "Vrstični vnosi", - "DELETE_BLOCK": "Izbriši kocko", - "DELETE_X_BLOCKS": "Izbriši %1 bloke/-a/-ov", - "DELETE_ALL_BLOCKS": "Izbrišem vseh %1 kock?", - "CLEAN_UP": "Ponastavi kocke", - "COLLAPSE_BLOCK": "Skrči kocko", - "COLLAPSE_ALL": "Skrči kocke", - "EXPAND_BLOCK": "Razširi kocko", - "EXPAND_ALL": "Razširi kocke", - "DISABLE_BLOCK": "Onemogoči kocko", - "ENABLE_BLOCK": "Omogoči kocko", - "HELP": "Pomoč", - "UNDO": "Razveljavi", - "REDO": "Ponovi", - "CHANGE_VALUE_TITLE": "Spremeni vrednost:", - "RENAME_VARIABLE": "Preimenuj spremenljivko...", - "RENAME_VARIABLE_TITLE": "Preimenuj vse spremenljivke '%1' v:", - "NEW_VARIABLE": "Ustvari spremenljivko ...", - "NEW_STRING_VARIABLE": "Ustvari spremenljivko niza", - "NEW_NUMBER_VARIABLE": "Ustvari spremenljivko števila", - "NEW_COLOUR_VARIABLE": "Ustvari spremenljivko barve", - "NEW_VARIABLE_TYPE_TITLE": "Novi tip spremenljivke:", - "NEW_VARIABLE_TITLE": "Ime nove spremenljivke:", - "VARIABLE_ALREADY_EXISTS": "Spremenljivka »%1« že obstaja.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Spremenljivka z imenom %1 že obstaja za tip %2", - "DELETE_VARIABLE_CONFIRMATION": "Izbrišem %1 uporab spremenljivke »%2«?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ni mogoče izbrisati spremenljivke %1, ker je uporabljena v definiciji funkcije %2", - "DELETE_VARIABLE": "Izbriši spremenljivko »%1«", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Izberi barvo s palete.", - "COLOUR_RANDOM_TITLE": "naključna barva", - "COLOUR_RANDOM_TOOLTIP": "Izbere naključno barvo.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "določena barva", - "COLOUR_RGB_RED": "rdeča", - "COLOUR_RGB_GREEN": "zelena", - "COLOUR_RGB_BLUE": "modra", - "COLOUR_RGB_TOOLTIP": "Ustvari barvo z določeno količino rdeče, zelene in modre. Vse vrednosti morajo biti med 0 in 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "mešanica", - "COLOUR_BLEND_COLOUR1": "barva 1", - "COLOUR_BLEND_COLOUR2": "barva 2", - "COLOUR_BLEND_RATIO": "razmerje", - "COLOUR_BLEND_TOOLTIP": "Zmeša dve barvi v danem razmerju (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ponovi %1 krat", - "CONTROLS_REPEAT_INPUT_DO": "izvedi", - "CONTROLS_REPEAT_TOOLTIP": "Kocke se izvedejo večkrat.", - "CONTROLS_WHILEUNTIL_HELPURL": "https://github.com/google/blockly/wiki/Loops#repeat", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ponavljaj dokler", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ponavljaj do takrat, ko", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Kocke se izvajajo dokler je vrednost resnična.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Kocke se izvajajo dokler je vrednost neresnična.", - "CONTROLS_FOR_HELPURL": "https://github.com/google/blockly/wiki/Loops#count-with", - "CONTROLS_FOR_TOOLTIP": "Vrednost spremenljivke '%1' se spreminja od začetnega števila do končnega števila, z določenim korakom. Pri tem se izvedejo določene kocke.", - "CONTROLS_FOR_TITLE": "štej s/z %1 od %2 do %3 po %4", - "CONTROLS_FOREACH_HELPURL": "https://github.com/google/blockly/wiki/Loops#for-each", - "CONTROLS_FOREACH_TITLE": "za vsak element %1 v seznamu %2", - "CONTROLS_FOREACH_TOOLTIP": "Za vsak element v seznamu, nastavi spremenljivko '%1' na ta element. Pri tem se izvedejo določene kocke.", - "CONTROLS_FLOW_STATEMENTS_HELPURL": "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "izstopi iz zanke", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "nadaljuj z naslednjo ponovitvijo zanke", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Izstopi iz trenutne zanke.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Preskoči preostanek te zanke in nadaljuje z naslednjo ponovitvijo.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Pozor: To kocko lahko uporabiš samo znotraj zanke.", - "CONTROLS_IF_HELPURL": "https://github.com/google/blockly/wiki/IfElse", - "CONTROLS_IF_TOOLTIP_1": "Če je vrednost resnična, izvedi določene kocke.", - "CONTROLS_IF_TOOLTIP_2": "Če je vrednost resnična, izvedi prvo skupino kock. Sicer izvedi drugo skupino kock.", - "CONTROLS_IF_TOOLTIP_3": "Če je prva vrednost resnična, izvedi prvo skupino kock. Sicer, če je resnična druga vrednost, izvedi drugo skupino kock.", - "CONTROLS_IF_TOOLTIP_4": "Če je prva vrednost resnična, izvedi prvo skupino kock. Sicer, če je resnična druga vrednost, izvedi drugo skupino kock. Če nobena izmed vrednosti ni resnična, izvedi zadnjo skupino kock.", - "CONTROLS_IF_MSG_IF": "če", - "CONTROLS_IF_MSG_ELSEIF": "sicer če", - "CONTROLS_IF_MSG_ELSE": "sicer", - "CONTROLS_IF_IF_TOOLTIP": "Dodaj, odstrani ali spremeni vrstni red odsekov za ponovno nastavitev »če« kocke.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Dodaj pogoj »če« kocki.", - "CONTROLS_IF_ELSE_TOOLTIP": "Dodaj končni pogoj »če« kocki.", - "IOS_OK": "V redu", - "IOS_CANCEL": "Prekliči", - "IOS_ERROR": "Napaka", - "IOS_PROCEDURES_INPUTS": "VHODI", - "IOS_PROCEDURES_ADD_INPUT": "+ Dodaj vnos", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Dovoli izjave", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ta funkcija ima podvojene vnose", - "IOS_VARIABLES_ADD_VARIABLE": "+ Dodaj spremenljivko", - "IOS_VARIABLES_ADD_BUTTON": "Dodaj", - "IOS_VARIABLES_RENAME_BUTTON": "Preimenuj", - "IOS_VARIABLES_DELETE_BUTTON": "Izbriši", - "IOS_VARIABLES_VARIABLE_NAME": "Ime spremenljivke", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ne moreš uporabiti spremenljivko praznega imena", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Vrne resnično, če sta vnosa enaka.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Vrne resnično, če vnosa nista enaka.", - "LOGIC_COMPARE_TOOLTIP_LT": "Vrne resnično, če je prvi vnos manjši od drugega.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Vrne resnično, če je prvi vnos manjši ali enak drugemu.", - "LOGIC_COMPARE_TOOLTIP_GT": "Vrne resnično, če je prvi vnos večji od drugega.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Vrne resnično, če je prvi vnos večji ali enak drugemu.", - "LOGIC_OPERATION_HELPURL": "https://github.com/google/blockly/wiki/Logic#logical-operations", - "LOGIC_OPERATION_TOOLTIP_AND": "Vrne resnično, če sta oba vnosa resnična.", - "LOGIC_OPERATION_AND": "in", - "LOGIC_OPERATION_TOOLTIP_OR": "Vrne resnično, če je vsaj eden od vnosov resničen.", - "LOGIC_OPERATION_OR": "ali", - "LOGIC_NEGATE_HELPURL": "https://github.com/google/blockly/wiki/Logic#not", - "LOGIC_NEGATE_TITLE": "ne %1", - "LOGIC_NEGATE_TOOLTIP": "Vrne resnično, če je vnos neresničen. Vrne neresnično, če je vnos resničen.", - "LOGIC_BOOLEAN_HELPURL": "https://github.com/google/blockly/wiki/Logic#values", - "LOGIC_BOOLEAN_TRUE": "resnično", - "LOGIC_BOOLEAN_FALSE": "neresnično", - "LOGIC_BOOLEAN_TOOLTIP": "Vrne resnično ali neresnično.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "prazno", - "LOGIC_NULL_TOOLTIP": "Vrne prazno.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "če resnično", - "LOGIC_TERNARY_IF_FALSE": "če neresnično", - "LOGIC_TERNARY_TOOLTIP": "Preveri pogoj v »testu«. Če je pogoj resničen, potem vrne vrednost »če resnično«; sicer vrne vrednost »če neresnično«.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Število.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Vrne vsoto dveh števil.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Vrne razliko dveh števil.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Vrne zmnožek dveh števil.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Vrne kvocient dveh števil.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Vrne prvo število na potenco drugega števila.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "kvadratni koren", - "MATH_SINGLE_TOOLTIP_ROOT": "Vrne kvadratni koren števila.", - "MATH_SINGLE_OP_ABSOLUTE": "absolutno", - "MATH_SINGLE_TOOLTIP_ABS": "Vrne absolutno vrednost števila.", - "MATH_SINGLE_TOOLTIP_NEG": "Vrne negacijo števila.", - "MATH_SINGLE_TOOLTIP_LN": "Vrne naravni logaritem števila.", - "MATH_SINGLE_TOOLTIP_LOG10": "Vrne desetiški logaritem števila.", - "MATH_SINGLE_TOOLTIP_EXP": "Vrne e na potenco števila.", - "MATH_SINGLE_TOOLTIP_POW10": "Vrne 10 na potenco števila.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Vrne sinus kota v stopinjah (ne radianih).", - "MATH_TRIG_TOOLTIP_COS": "Vrne kosinus kota v stopinjah (ne radianih).", - "MATH_TRIG_TOOLTIP_TAN": "Vrne tangens kota v stopinjah (ne radianih).", - "MATH_TRIG_TOOLTIP_ASIN": "Vrne arkus sinus števila.", - "MATH_TRIG_TOOLTIP_ACOS": "Vrne arkus kosinus števila.", - "MATH_TRIG_TOOLTIP_ATAN": "Vrne arkus tangens števila.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Vrne eno izmed običajnih konstant: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ali ∞ (neskončno).", - "MATH_IS_EVEN": "je sodo", - "MATH_IS_ODD": "je liho", - "MATH_IS_PRIME": "je praštevilo", - "MATH_IS_WHOLE": "je celo", - "MATH_IS_POSITIVE": "je pozitivno", - "MATH_IS_NEGATIVE": "je negativno", - "MATH_IS_DIVISIBLE_BY": "je deljivo s/z", - "MATH_IS_TOOLTIP": "Preveri, če je število sodo, liho, praštevilo, celo, pozitivno, negativno ali, če je deljivo z določenim številom. Vrne resnično ali neresnično.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "spremeni %1 za %2", - "MATH_CHANGE_TOOLTIP": "Prišteje število k spremenljivki '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Zaokroži število navzgor ali navzdol.", - "MATH_ROUND_OPERATOR_ROUND": "zaokroži", - "MATH_ROUND_OPERATOR_ROUNDUP": "zaokroži navzgor", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "zaokroži navzdol", - "MATH_ONLIST_OPERATOR_SUM": "vsota seznama", - "MATH_ONLIST_TOOLTIP_SUM": "Vrne vsoto vseh števil na seznamu.", - "MATH_ONLIST_OPERATOR_MIN": "minimum seznama", - "MATH_ONLIST_TOOLTIP_MIN": "Vrne najmanjše število na seznamu.", - "MATH_ONLIST_OPERATOR_MAX": "maksimum seznama", - "MATH_ONLIST_TOOLTIP_MAX": "Vrne največje število na seznamu.", - "MATH_ONLIST_OPERATOR_AVERAGE": "povprečje seznama", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Vrne povprečje (aritmetično sredino) števil na seznamu.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana seznama", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Vrne mediano števil na seznamu.", - "MATH_ONLIST_OPERATOR_MODE": "modus seznama", - "MATH_ONLIST_TOOLTIP_MODE": "Vrne seznam najpogostejšega elementa(-ov) na seznamu.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standardni odklon seznama", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Vrne standardni odklon seznama.", - "MATH_ONLIST_OPERATOR_RANDOM": "naključni element seznama", - "MATH_ONLIST_TOOLTIP_RANDOM": "Vrne naključno število izmed števil na seznamu.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "ostanek pri %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Vrne ostanek pri deljenju dveh števil.", - "MATH_CONSTRAIN_HELPURL": "https://en.wikipedia.org/wiki/Clamping_%28graphics%29", - "MATH_CONSTRAIN_TITLE": "omeji %1 na najmanj %2 in največ %3", - "MATH_CONSTRAIN_TOOLTIP": "Omeji število, da bo med določenima (vključenima) mejama.", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "naključno število med %1 in %2", - "MATH_RANDOM_INT_TOOLTIP": "Vrne naključno število med dvema določenima mejama, vključno z mejama.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "naključni ulomek", - "MATH_RANDOM_FLOAT_TOOLTIP": "Vrne naključni ulomek med (vključno) 0.0 in 1.0 (izključno).", - "MATH_ATAN2_TITLE": "atan2 koordinate X:%1 in Y:%2", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Črka, beseda ali vrstica besedila.", - "TEXT_JOIN_HELPURL": "https://github.com/google/blockly/wiki/Text#text-creation", - "TEXT_JOIN_TITLE_CREATEWITH": "ustvari besedilo iz", - "TEXT_JOIN_TOOLTIP": "Ustvari besedilo tako, da združi poljubno število elementov.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "združi", - "TEXT_CREATE_JOIN_TOOLTIP": "Doda, odstrani ali spremeni vrstni red elementov tega besedila.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Doda element k besedilu.", - "TEXT_APPEND_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_APPEND_TITLE": "k %1 dodaj besedilo %2", - "TEXT_APPEND_TOOLTIP": "Doda besedilo k spremenljivki '%1'.", - "TEXT_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Text#text-modification", - "TEXT_LENGTH_TITLE": "dolžina %1", - "TEXT_LENGTH_TOOLTIP": "Vrne število črk oz. znakov (vključno s presledki) v določenem besedilu.", - "TEXT_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Text#checking-for-empty-text", - "TEXT_ISEMPTY_TITLE": "%1 je prazno", - "TEXT_ISEMPTY_TOOLTIP": "Vrne resnično, če je določeno besedilo prazno.", - "TEXT_INDEXOF_HELPURL": "https://github.com/google/blockly/wiki/Text#finding-text", - "TEXT_INDEXOF_TOOLTIP": "Vrne mesto (indeks) prve/zadnje pojavitve drugega besedila v prvem besedilu. Če besedila ne najde, vrne %1.", - "TEXT_INDEXOF_TITLE": "v besedilu %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "najdi prvo pojavitev besedila", - "TEXT_INDEXOF_OPERATOR_LAST": "najdi zadnjo pojavitev besedila", - "TEXT_CHARAT_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-text", - "TEXT_CHARAT_FROM_START": "vrni črko št.", - "TEXT_CHARAT_FROM_END": "vrni črko št. od konca", - "TEXT_CHARAT_FIRST": "vrni prvo črko", - "TEXT_CHARAT_LAST": "vrni zadnjo črko", - "TEXT_CHARAT_RANDOM": "vrni naključno črko", - "TEXT_CHARAT_TOOLTIP": "Vrne črko na določenem mestu v besedilu.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Vrne določen del besedila.", - "TEXT_GET_SUBSTRING_HELPURL": "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "iz besedila", - "TEXT_GET_SUBSTRING_START_FROM_START": "vrni del od črke št.", - "TEXT_GET_SUBSTRING_START_FROM_END": "vrni del od črke št. od konca", - "TEXT_GET_SUBSTRING_START_FIRST": "vrni del od prve črke", - "TEXT_GET_SUBSTRING_END_FROM_START": "do črke št.", - "TEXT_GET_SUBSTRING_END_FROM_END": "do črke št. od konca", - "TEXT_GET_SUBSTRING_END_LAST": "do zadnje črke", - "TEXT_CHANGECASE_HELPURL": "https://github.com/google/blockly/wiki/Text#adjusting-text-case", - "TEXT_CHANGECASE_TOOLTIP": "Vrne kopijo besedila v drugi obliki.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "v VELIKE ČRKE", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "v male črke", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "v Velike Začetnice", - "TEXT_TRIM_HELPURL": "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces", - "TEXT_TRIM_TOOLTIP": "Vrne kopijo besedila z odstranjenimi presledki z ene ali obeh strani.", - "TEXT_TRIM_OPERATOR_BOTH": "odstrani presledke z obeh strani", - "TEXT_TRIM_OPERATOR_LEFT": "odstrani presledke z leve strani", - "TEXT_TRIM_OPERATOR_RIGHT": "odstrani presledke z desne strani", - "TEXT_PRINT_HELPURL": "https://github.com/google/blockly/wiki/Text#printing-text", - "TEXT_PRINT_TITLE": "izpiši %1", - "TEXT_PRINT_TOOLTIP": "Izpiše določeno besedilo, število ali drugo vrednost.", - "TEXT_PROMPT_HELPURL": "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user", - "TEXT_PROMPT_TYPE_TEXT": "vprašaj za besedilo s sporočilom", - "TEXT_PROMPT_TYPE_NUMBER": "vprašaj za število s sporočilom", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Vpraša uporabnika za vnos števila.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Vpraša uporabnika za vnos besedila.", - "TEXT_REPLACE_MESSAGE0": "zamenjaj %1 z %2 v %3", - "TEXT_REVERSE_MESSAGE0": "obrni %1", - "TEXT_REVERSE_TOOLTIP": "Obrne vrstni red znakov v besedilu.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "ustvari prazen seznam", - "LISTS_CREATE_EMPTY_TOOLTIP": "Vrne seznam, dolžine 0, ki ne vsebuje nobenih podatkov.", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Ustvari seznam s poljubnim številom elementov.", - "LISTS_CREATE_WITH_INPUT_WITH": "ustvari seznam s/z", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "seznam", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Doda, odstrani ali spremeni vrstni red elementov tega seznama.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Doda element seznamu.", - "LISTS_REPEAT_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_REPEAT_TOOLTIP": "Ustvari seznam z danim elementom, ki se poljubno mnogo krat ponovi.", - "LISTS_REPEAT_TITLE": "ustvari seznam z elementom %1, ki se ponovi %2 krat", - "LISTS_LENGTH_HELPURL": "https://github.com/google/blockly/wiki/Lists#length-of", - "LISTS_LENGTH_TITLE": "dolžina %1", - "LISTS_LENGTH_TOOLTIP": "Vrne dolžino seznama.", - "LISTS_ISEMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#is-empty", - "LISTS_ISEMPTY_TITLE": "%1 je prazen", - "LISTS_ISEMPTY_TOOLTIP": "Vrne resnično, če je seznam prazen.", - "LISTS_INLIST": "v seznamu", - "LISTS_INDEX_OF_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", - "LISTS_INDEX_OF_FIRST": "najdi prvo pojavitev elementa", - "LISTS_INDEX_OF_LAST": "najdi zadnjo pojavitev elementa", - "LISTS_INDEX_OF_TOOLTIP": "Vrne mesto (indeks) prve/zadnje pojavitve elementa v seznamu. Če elementa ne najde, vrne %1.", - "LISTS_GET_INDEX_GET": "vrni", - "LISTS_GET_INDEX_GET_REMOVE": "odstrani in vrni", - "LISTS_GET_INDEX_REMOVE": "odstrani", - "LISTS_GET_INDEX_FROM_START": "št.", - "LISTS_GET_INDEX_FROM_END": "mesto št. od konca", - "LISTS_GET_INDEX_FIRST": "prvo mesto", - "LISTS_GET_INDEX_LAST": "zadnje mesto", - "LISTS_GET_INDEX_RANDOM": "naključno mesto", - "LISTS_INDEX_FROM_START_TOOLTIP": "Prvi element je št. %1.", - "LISTS_INDEX_FROM_END_TOOLTIP": "Zadnji element je št. %1.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Vrne element na določenem mestu v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Vrne prvi element seznama.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Vrne zadnji element seznama.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Vrne naključni element seznama.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Odstrani in vrne element na določenem mestu v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Odstrani in vrne prvi element seznama.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Odstrani in vrne zadnji element seznama.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Odstrani in vrne naključni element seznama.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Odstrani element na določenem mestu v seznamu.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Odstrani prvi element seznama.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Odstrani zadnji element seznama.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Odstrani naključni element seznama.", - "LISTS_SET_INDEX_HELPURL": "https://github.com/google/blockly/wiki/Lists#in-list--set", - "LISTS_SET_INDEX_SET": "nastavi na", - "LISTS_SET_INDEX_INSERT": "vstavi na", - "LISTS_SET_INDEX_INPUT_TO": "element", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Nastavi element na določenem mestu v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Nastavi prvi element seznama.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Nastavi zadnji element seznama.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Nastavi naključni element seznama.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Vstavi element na določeno mesto v seznamu.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Vstavi element na začetek seznama.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Doda element na konec seznama.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Vstavi element na naključno mesto v seznamu.", - "LISTS_GET_SUBLIST_HELPURL": "https://github.com/google/blockly/wiki/Lists#getting-a-sublist", - "LISTS_GET_SUBLIST_START_FROM_START": "ustvari podseznam od mesta št.", - "LISTS_GET_SUBLIST_START_FROM_END": "ustvari podseznam od mesta št. od konca", - "LISTS_GET_SUBLIST_START_FIRST": "ustvari podseznam od prvega mesta", - "LISTS_GET_SUBLIST_END_FROM_START": "do mesta št.", - "LISTS_GET_SUBLIST_END_FROM_END": "do mesta št. od konca", - "LISTS_GET_SUBLIST_END_LAST": "do zadnjega mesta", - "LISTS_GET_SUBLIST_TOOLTIP": "Ustvari nov seznam, kot kopijo določenega dela seznama.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "uredi %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Uredi kopijo seznama.", - "LISTS_SORT_ORDER_ASCENDING": "naraščajoče", - "LISTS_SORT_ORDER_DESCENDING": "padajoče", - "LISTS_SORT_TYPE_NUMERIC": "številčno", - "LISTS_SORT_TYPE_TEXT": "abecedno", - "LISTS_SORT_TYPE_IGNORECASE": "abecedno, brez velikosti črk", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "ustvari seznam iz besedila", - "LISTS_SPLIT_TEXT_FROM_LIST": "ustvari besedilo iz seznama", - "LISTS_SPLIT_WITH_DELIMITER": "z ločilom", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Razdruži besedilo v seznam besedil. Za razdruževanje besedila uporabi ločilo.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Združi seznam besedil v eno besedilo, ločeno z ločilom.", - "LISTS_REVERSE_MESSAGE0": "obrni %1", - "LISTS_REVERSE_TOOLTIP": "Obrnjena kopija seznama.", - "VARIABLES_GET_HELPURL": "https://github.com/google/blockly/wiki/Variables#get", - "VARIABLES_GET_TOOLTIP": "Vrne vrednost spremenljivke.", - "VARIABLES_GET_CREATE_SET": "Ustvari 'nastavi %1'", - "VARIABLES_SET_HELPURL": "https://github.com/google/blockly/wiki/Variables#set", - "VARIABLES_SET": "nastavi %1 na %2", - "VARIABLES_SET_TOOLTIP": "Nastavi, da je vrednost spremenljivke enaka vnosu.", - "VARIABLES_SET_CREATE_GET": "Ustvari 'vrni %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "izvedi", - "PROCEDURES_DEFNORETURN_PROCEDURE": "nekaj", - "PROCEDURES_BEFORE_PARAMS": "s/z:", - "PROCEDURES_CALL_BEFORE_PARAMS": "s/z:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Ustvari funkcijo brez izhoda.", - "PROCEDURES_DEFNORETURN_COMMENT": "Opišite funkcijo ...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "vrni", - "PROCEDURES_DEFRETURN_TOOLTIP": "Ustvari funkcijo z izhodom.", - "PROCEDURES_ALLOW_STATEMENTS": "dovoli korake", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Pozor: Ta funkcija ima podvojene parametre.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Izvede uporabniško funkcijo '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Izvede uporabniško funkcijo '%1' in uporabi njen izhod.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "vnosi", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Doda, odstrani ali spremeni vrstni red vnosov te funkcije.", - "PROCEDURES_MUTATORARG_TITLE": "ime vnosa:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Funkciji doda vnos.", - "PROCEDURES_HIGHLIGHT_DEF": "Označi definicijo funkcije", - "PROCEDURES_CREATE_DO": "Ustvari '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Če je vrednost resnična, vrne drugo vrednost.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Pozor: To kocko lahko uporabiš samo znotraj definicije funkcije." -} diff --git a/lib/blockly/msg/json/sq.json b/lib/blockly/msg/json/sq.json deleted file mode 100644 index 187f8e4..0000000 --- a/lib/blockly/msg/json/sq.json +++ /dev/null @@ -1,359 +0,0 @@ -{ - "@metadata": { - "authors": [ - "아라", - "Liridon", - "Arianit" - ] - }, - "VARIABLES_DEFAULT_NAME": "send", - "TODAY": "Sot", - "DUPLICATE_BLOCK": "Kopjo", - "ADD_COMMENT": "Vendos nje Koment", - "REMOVE_COMMENT": "Fshij komentin", - "EXTERNAL_INPUTS": "Hyrjet e jashtme", - "INLINE_INPUTS": "Hyrjet e brendshme", - "DELETE_BLOCK": "Fshij bllokun", - "DELETE_X_BLOCKS": "Fshij %1 blloqe", - "DELETE_ALL_BLOCKS": "Fshijë të gjitha %1 të blloqeve?", - "CLEAN_UP": "Pastro blloqet", - "COLLAPSE_BLOCK": "Mbyll bllokun", - "COLLAPSE_ALL": "Mbyll blloqet", - "EXPAND_BLOCK": "Zmadho bllokun", - "EXPAND_ALL": "Zmadho blloqet", - "DISABLE_BLOCK": "Çaktivizo bllokun", - "ENABLE_BLOCK": "Aktivizo bllokun", - "HELP": "Ndihmë", - "UNDO": "Zhbëj", - "REDO": "Ribëj", - "CHANGE_VALUE_TITLE": "Ndrysho Vlerat:", - "RENAME_VARIABLE": "Ndrysho emrin variables...", - "RENAME_VARIABLE_TITLE": "Ndrysho emrin e te gjitha '%1' variablave ne :", - "NEW_VARIABLE": "Krijo variabël...", - "NEW_STRING_VARIABLE": "Krijo variabël varg", - "NEW_NUMBER_VARIABLE": "Krijo variabël numër", - "NEW_COLOUR_VARIABLE": "Krijo variabël ngjyrë...", - "NEW_VARIABLE_TYPE_TITLE": "Tip i ri i variablës:", - "NEW_VARIABLE_TITLE": "Emri i identifikatorit të ri:", - "VARIABLE_ALREADY_EXISTS": "Një variabël e quajtur '%1' tashmë ekziston.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Një variabël me emrin '%1' veç ekziston për një tip tjetër: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Fshi përdorimin %1 të variablës '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Nuk mund të fshihet variabla '%1' sepse është pjesë e definicionit të funksionit '%2'", - "DELETE_VARIABLE": "Fshi variablën '%1'", - "COLOUR_PICKER_HELPURL": "http://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Zgjidh nje ngjyre nga nje game ngjyrash.", - "COLOUR_RANDOM_TITLE": "ngjyre e rastesishme", - "COLOUR_RANDOM_TOOLTIP": "Zgjidhni një ngjyrë në mënyrë të rastësishme.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "ngjyre me", - "COLOUR_RGB_RED": "e kuqe", - "COLOUR_RGB_GREEN": "jeshile", - "COLOUR_RGB_BLUE": "blu", - "COLOUR_RGB_TOOLTIP": "Krijo një ngjyrë me shumën e specifikuar te te kuqes, te gjelbëres, dhe bluse. Te gjitha vlerat duhet te jene mes 0 dhe 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "Përzierje", - "COLOUR_BLEND_COLOUR1": "Ngjyra 1", - "COLOUR_BLEND_COLOUR2": "Ngjyra 2", - "COLOUR_BLEND_RATIO": "Perpjesetim", - "COLOUR_BLEND_TOOLTIP": "Perzien dy ngjyra së bashku me një raport të dhënë (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "përsërit %1 herë", - "CONTROLS_REPEAT_INPUT_DO": "ekzekuto", - "CONTROLS_REPEAT_TOOLTIP": "Ekzekuto disa fjali disa herë.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "përsërit përderisa", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "përsërit derisa", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Përderisa një vlerë është e saktë, atëherë ekzekuto disa fjali.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Përderisa një vlerë është e pasaktë, atëherë ekzekuto disa fjali.", - "CONTROLS_FOR_TOOLTIP": "Bëje identifikuesin \"%1\" që ta ketë vlerat prej numrit të fillimit deri tek numri i fundit, duke numëruar nga intervali i specifikuar, dhe ti bëj blloqet e specifikuara.", - "CONTROLS_FOR_TITLE": "numero me %1 nga %2 ne %3 me nga %4", - "CONTROLS_FOREACH_TITLE": "per cdo produkt %1 ne liste %2", - "CONTROLS_FOREACH_TOOLTIP": "Per cdo produkt ne nje \"liste\" \"vendos\" ndryshoren '%1' produktit, dhe pastaj bej disa deklarata.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "dil nga nje faze perseritese", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "vazhdo me elementin tjeter te nje faze perseritese", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Ndahu nga unaza.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Kapërce pjesën e mbetur të unazës, dhe vazhdo me ripërsëritjen tjetër.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Paralajmërim: Ky bllok mund të përdoret vetëm brenda unazës.", - "CONTROLS_IF_TOOLTIP_1": "Nëse një vlerë është e saktë, atëherë ekzekuto disa fjali.", - "CONTROLS_IF_TOOLTIP_2": "Nëse një vlerë është e saktë, atëherë ekzekuto bllokun e parë të fjalive. Përndryshe, ekzekuto bllokun e dytë të fjalive.", - "CONTROLS_IF_TOOLTIP_3": "Nëse vlera e parë është e saktë, atëherë ekzekuto bllokun e parë të fjalive. Përndryshe, nëse vlera e dytë është e saktë, ekzekuto bllokun e dytë të fjalive.", - "CONTROLS_IF_TOOLTIP_4": "Nëse vlera e parë është e saktë, atëherë ekzekuto bllokun e parë të fjalive. Përndryshe, nëse vlera e dytë është e saktë, ekzekuto bllokun e dytë të fjalive. Nëse asnjëra nga vlerat nuk është e saktë, ekzekuto bllokun e fundit të fjalive.", - "CONTROLS_IF_MSG_IF": "nëse", - "CONTROLS_IF_MSG_ELSEIF": "përndryshe nëse", - "CONTROLS_IF_MSG_ELSE": "përndryshe", - "CONTROLS_IF_IF_TOOLTIP": "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këte bllok nëse.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "\"Vendos\" \"kushtein\"tek \"pjesa\" \"if\"", - "CONTROLS_IF_ELSE_TOOLTIP": "Shto një përfundues, që i mbërrin të gjitha kushtet në bllokun nëse.", - "IOS_OK": "Në rregull", - "IOS_CANCEL": "Anulo", - "IOS_ERROR": "Gabim", - "IOS_PROCEDURES_INPUTS": "INPUTET", - "IOS_PROCEDURES_ADD_INPUT": "+ Shto Inputet", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Lejo deklaratat", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ky funksion ka inpute të dyfishta.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Shto Variabël", - "IOS_VARIABLES_ADD_BUTTON": "Shto", - "IOS_VARIABLES_RENAME_BUTTON": "Riemro", - "IOS_VARIABLES_DELETE_BUTTON": "Grise", - "IOS_VARIABLES_VARIABLE_NAME": "Emri i variablës", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Nuk mund të përdorni variabël pa emër.", - "LOGIC_COMPARE_HELPURL": "http://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Ktheje të saktë nëse të dy hyrjet janë të barabarta me njëra-tjetrën.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Ktheje të saktë nëse të dy hyrjet nuk janë të barabarta me njëra-tjetrën.", - "LOGIC_COMPARE_TOOLTIP_LT": "Ktheje të saktë nëse hyrja e parë është më e vogël se hyrja e dytë.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Ktheje të saktë nëse hyrja e parë është më e vogël ose e barabartë me hyrjen e dytë.", - "LOGIC_COMPARE_TOOLTIP_GT": "Ktheje të saktë nëse hyrja e parë është më e madhe se hyrja e dytë.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Ktheje të saktë nëse hyrja e parë është më e madhe ose e barabartë me hyrjen e dytë.", - "LOGIC_OPERATION_TOOLTIP_AND": "Kthehet të saktë nëse të dy hyrjet janë të sakta.", - "LOGIC_OPERATION_AND": "dhe", - "LOGIC_OPERATION_TOOLTIP_OR": "Kthehet e saktë nëse së paku njëra nga hyrjet është e saktë.", - "LOGIC_OPERATION_OR": "ose", - "LOGIC_NEGATE_TITLE": "jo %1", - "LOGIC_NEGATE_TOOLTIP": "Kthehet e saktë nëse hyrja është e pasaktë. Kthehet e pasaktë nëse hyrja është e saktë.", - "LOGIC_BOOLEAN_TRUE": "e saktë", - "LOGIC_BOOLEAN_FALSE": "e pasaktë", - "LOGIC_BOOLEAN_TOOLTIP": "Kthehet ose të saktë ose të pasaktë.", - "LOGIC_NULL_HELPURL": "http://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "pavlerë", - "LOGIC_NULL_TOOLTIP": "Kthehet e pavlerë.", - "LOGIC_TERNARY_HELPURL": "http://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "nëse e saktë", - "LOGIC_TERNARY_IF_FALSE": "nëse e pasaktë", - "LOGIC_TERNARY_TOOLTIP": "Kontrollo kushtin në 'test'. Nëse kushti është i saktë, kthen vlerën 'nëse e saktë'; përndryshe kthen vlerën 'nëse e pasaktë'.", - "MATH_NUMBER_HELPURL": "http://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Një numër.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "x", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asinus", - "MATH_TRIG_ACOS": "acosinus", - "MATH_TRIG_ATAN": "atangjentë", - "MATH_ARITHMETIC_HELPURL": "http://sq.wikipedia.org/wiki/Aritmetika", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Kthen shumën e dy numrave.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Kthen ndryshimin e dy numrave.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Kthen produktin e dy numrave.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Kthen herësin e dy numrave.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Kthen numrin e parë të ngritur në fuqinë e numrit të dytë.", - "MATH_SINGLE_HELPURL": "http://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "rrënja katrore", - "MATH_SINGLE_TOOLTIP_ROOT": "Kthen rrënjën katrore të një numri.", - "MATH_SINGLE_OP_ABSOLUTE": "absolut", - "MATH_SINGLE_TOOLTIP_ABS": "Kthen vlerën absolute të një numri.", - "MATH_SINGLE_TOOLTIP_NEG": "Kthe negacionin e një numri.", - "MATH_SINGLE_TOOLTIP_LN": "Kthen logaritmën natyrale të një numri.", - "MATH_SINGLE_TOOLTIP_LOG10": "Kthen 10 logaritmet bazë të një numri.", - "MATH_SINGLE_TOOLTIP_EXP": "Kthen e në fuqinë e një numri.", - "MATH_SINGLE_TOOLTIP_POW10": "Kthen 10 në fuqinë e një numri.", - "MATH_TRIG_HELPURL": "http://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Kthe kosinusin e nje kendi (jo ne radiant).", - "MATH_TRIG_TOOLTIP_COS": "Kthe kosinusin e nje grade (jo ne radiant).", - "MATH_TRIG_TOOLTIP_TAN": "Kthe tangentin e nje kendi (jo radiant).", - "MATH_TRIG_TOOLTIP_ASIN": "Rikthe sin-1 e nje numeri.", - "MATH_TRIG_TOOLTIP_ACOS": "Rikthe cos-1 e nje numeri.", - "MATH_TRIG_TOOLTIP_ATAN": "Kthe tg-1 e nje numeri.", - "MATH_CONSTANT_HELPURL": "http://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Kthen një nga konstantet e përbashkëta: : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infiniti).", - "MATH_IS_EVEN": "është çift", - "MATH_IS_ODD": "është tek", - "MATH_IS_PRIME": "është prim", - "MATH_IS_WHOLE": "është i plotë", - "MATH_IS_POSITIVE": "është pozitiv", - "MATH_IS_NEGATIVE": "është negativ", - "MATH_IS_DIVISIBLE_BY": "është i pjestueshme me", - "MATH_IS_TOOLTIP": "Kontrollo nëse një numër është çift, tek, prim, i plotë, pozitiv, negativ, ose nëse është i pjestueshëm me një numër të caktuar. Kthehet e saktë ose e pasaktë.", - "MATH_CHANGE_HELPURL": "http://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "ndrysho %1 nga %2", - "MATH_CHANGE_TOOLTIP": "Shto një numër në ndryshoren '%1'.", - "MATH_ROUND_HELPURL": "http://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Rrumbullakësimi i numrit të lartë ose të ulët.", - "MATH_ROUND_OPERATOR_ROUND": "rrumbullakësimi", - "MATH_ROUND_OPERATOR_ROUNDUP": "rrumbullakësimi i lartë", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "rrumbullakësimi i ulët", - "MATH_ONLIST_OPERATOR_SUM": "mbledhja e listës", - "MATH_ONLIST_TOOLTIP_SUM": "Kthe shumën e të gjithë numrave të listës.", - "MATH_ONLIST_OPERATOR_MIN": "numri më i ulët i listës", - "MATH_ONLIST_TOOLTIP_MIN": "Kthe numrin me të vogël të listës.", - "MATH_ONLIST_OPERATOR_MAX": "numri më i madh i listës", - "MATH_ONLIST_TOOLTIP_MAX": "Kthe numrin më të madh të listës.", - "MATH_ONLIST_OPERATOR_AVERAGE": "mesatarja e listës", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Kthen mesatarën (kuptimi aritmetik) i vlerave numerike të listës.", - "MATH_ONLIST_OPERATOR_MEDIAN": "mediana e listës", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Kthe numrin median të listës.", - "MATH_ONLIST_OPERATOR_MODE": "modat e listës", - "MATH_ONLIST_TOOLTIP_MODE": "Kthe listën e sendit(eve) më të zakonshme të listës.", - "MATH_ONLIST_OPERATOR_STD_DEV": "devijimi standard i listës", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Kthe devijimin standard të listës.", - "MATH_ONLIST_OPERATOR_RANDOM": "send i rastësishëm i listës", - "MATH_ONLIST_TOOLTIP_RANDOM": "Kthe një element të rastësishëm nga lista.", - "MATH_MODULO_HELPURL": "http://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "mbetësi i %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Kthen mbetësin nga pjestimi i dy numrave.", - "MATH_CONSTRAIN_TITLE": "detyro %1 e ulët %2 e lartë %3", - "MATH_CONSTRAIN_TOOLTIP": "Vëni një numër që të jetë në mes të kufive të specifikuara(përfshirëse).", - "MATH_RANDOM_INT_HELPURL": "http://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "numër i plotë i rastësishëm nga %1 deri në %2", - "MATH_RANDOM_INT_TOOLTIP": "Kthe një numër të plotë të rastësishëm të dy kufijve të specifikuar, të përfshirë.", - "MATH_RANDOM_FLOAT_HELPURL": "http://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fraksioni i rastësishëm", - "MATH_RANDOM_FLOAT_TOOLTIP": "Kthe fraksionin e rastësishëm në mes të 0.0 (përfshirëse) dhe 1.0 (jopërfshirëse).", - "TEXT_TEXT_HELPURL": "http://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Nje shkronje, fjale, ose rresht teksti.", - "TEXT_JOIN_TITLE_CREATEWITH": "krijo tekst me", - "TEXT_JOIN_TOOLTIP": "Krijo nje pjese te tekstit duke bashkuar se bashku disa sende", - "TEXT_CREATE_JOIN_TITLE_JOIN": "bashkangjit", - "TEXT_CREATE_JOIN_TOOLTIP": "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këtë bllok teksti.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Shto nje gje ne tekst", - "TEXT_APPEND_TITLE": "ne %1 shto tekst %2", - "TEXT_APPEND_TOOLTIP": "shto tekst tek varibla '%1'.", - "TEXT_LENGTH_TITLE": "gjatesi %1", - "TEXT_LENGTH_TOOLTIP": "Pergjigjet me nje numer shkronjash (duke perfshire hapesire) ne tekstin e dhene.", - "TEXT_ISEMPTY_TITLE": "%1 eshte bosh", - "TEXT_ISEMPTY_TOOLTIP": "Kthehet e vertete neqoftese teksti i dhene eshte bosh.", - "TEXT_INDEXOF_TOOLTIP": "Pergjigjet me indeksin e pare/fundit te rastisjes se tekstit te pare ne tekstin e dyte. Pergjigjet me %1 ne qofte se teksti nuk u gjet.", - "TEXT_INDEXOF_TITLE": "ne tekst %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "gjej rastisjen e pare te tekstit", - "TEXT_INDEXOF_OPERATOR_LAST": "gjej rastisjen e fundit te tekstit", - "TEXT_CHARAT_TITLE": "në tekst %1 %2", - "TEXT_CHARAT_FROM_START": "merr shkronjen #", - "TEXT_CHARAT_FROM_END": "merr shkronjen # nga fundi", - "TEXT_CHARAT_FIRST": "merr shkronjen e pare", - "TEXT_CHARAT_LAST": "merr shkronjen e fundit", - "TEXT_CHARAT_RANDOM": "merr nje shkronje te rastesishme", - "TEXT_CHARAT_TOOLTIP": "Kthe nje shkronje nga nje pozicion i caktuar.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Pergjigjet me nje pjese te caktuar teksti.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ne tekst", - "TEXT_GET_SUBSTRING_START_FROM_START": "Merr nenvargun nga shkronja #", - "TEXT_GET_SUBSTRING_START_FROM_END": "merr nenvargun nga shkronja # nga fundi", - "TEXT_GET_SUBSTRING_START_FIRST": "merr vlerat qe vazhdojne me shkronjen e pare", - "TEXT_GET_SUBSTRING_END_FROM_START": "ne shkronjen #", - "TEXT_GET_SUBSTRING_END_FROM_END": "ne shkronjen # nga fundi", - "TEXT_GET_SUBSTRING_END_LAST": "tek shkronja e fundit", - "TEXT_CHANGECASE_TOOLTIP": "Kthe nje kopje te tekstit ne nje rast te ndryshem.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "me shkronja te medha shtypi", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "me shkronja te vogla shtypi", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Fillimi me shkronje te madhe shtypi", - "TEXT_TRIM_TOOLTIP": "Pergjigju me nje kopje te tekstit me hapesira te fshira nga njera ane ose te dyja anet.", - "TEXT_TRIM_OPERATOR_BOTH": "prit hapesirat nga te dyja anet", - "TEXT_TRIM_OPERATOR_LEFT": "prit hapesirat nga ana e majte", - "TEXT_TRIM_OPERATOR_RIGHT": "prit hapesirat nga ana e djathte", - "TEXT_PRINT_TITLE": "printo %1", - "TEXT_PRINT_TOOLTIP": "Printo tekstin e caktuar, numer ose vlere tjeter.", - "TEXT_PROMPT_TYPE_TEXT": "kerko tekst me njoftim", - "TEXT_PROMPT_TYPE_NUMBER": "kerko nje numer me njoftim", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Kerkoji perdoruesit nje numer.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Kerkoji perdoruesit ca tekst.", - "TEXT_COUNT_MESSAGE0": "numro %1 në %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Numrin sa herë paraqitet një tekst brenda një teksti tjetër.", - "TEXT_REPLACE_MESSAGE0": "zëvendëso %1 me %2 në %3", - "TEXT_REPLACE_TOOLTIP": "Zëvendëso të gjitha paraqitjet e një teksti brenda një teksti tjetër.", - "TEXT_REVERSE_MESSAGE0": "kthe %1", - "TEXT_REVERSE_TOOLTIP": "Kthen renditjen e karaktereve në tekst.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "krijo një listë të zbrazët", - "LISTS_CREATE_EMPTY_TOOLTIP": "Kthen një listë, te gjatësisë 0, duke mos përmbajtur asnjë regjistrim të të dhënave", - "LISTS_CREATE_WITH_TOOLTIP": "Krijo një listë me ndonjë numbër të sendeve.", - "LISTS_CREATE_WITH_INPUT_WITH": "krijo listë me", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "listë", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këtë bllok të listës.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Shto një send në listë.", - "LISTS_REPEAT_TOOLTIP": "Krijon në listë qe përmban vlerën e dhënë të përsëritur aq herë sa numri i specifikuar.", - "LISTS_REPEAT_TITLE": "krijo listën me sendin %1 të përsëritur %2 herë", - "LISTS_LENGTH_TITLE": "gjatësia e %1", - "LISTS_LENGTH_TOOLTIP": "Kthen gjatësinë e listës.", - "LISTS_ISEMPTY_TITLE": "%1 është e zbraztë", - "LISTS_ISEMPTY_TOOLTIP": "Kthehet i saktë nëse lista është e zbraztë.", - "LISTS_INLIST": "në listë", - "LISTS_INDEX_OF_FIRST": "gjen ndodhjen e parë të sendit", - "LISTS_INDEX_OF_LAST": "gjen ndodhjen e fundit të sendit", - "LISTS_INDEX_OF_TOOLTIP": "Kthen indeksin e ndodhjes së parë/fudit të sendit në listë. Kthen %1 nëse teksti nuk është gjetur.", - "LISTS_GET_INDEX_GET": "merr", - "LISTS_GET_INDEX_GET_REMOVE": "merr dhe fshij", - "LISTS_GET_INDEX_REMOVE": "largo", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# nga fundi", - "LISTS_GET_INDEX_FIRST": "i parë", - "LISTS_GET_INDEX_LAST": "i fundit", - "LISTS_GET_INDEX_RANDOM": "i rastësishëm", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 është sendi i parë.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 është sendi i fundit.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Kthen një send në pozicionin e specifikuar në listë.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Rikthen tek artikulli i par në list.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Kthen artikullin e fundit në list.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Kthen një send të rastësishëm në listë.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Fshin dhe kthen sendin në pozicionin e specifikuar në listë.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Fshin dhe kthen sendin e parë në listë.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Fshin dhe kthen sendin e fundit në listë.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Fshin dhe kthen një send të rastësishëm në listë.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Fshin sendin në pozicionin e specifikuar në listë.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Fshin sendin e parë në listë.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Fshin sendin e fundit në listë.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Kthen një send të rastësishëm në listë.", - "LISTS_SET_INDEX_SET": "vendos", - "LISTS_SET_INDEX_INSERT": "fut në", - "LISTS_SET_INDEX_INPUT_TO": "sikurse", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Vendos sendin në pozicionin e specifikuar në listë.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Vendos sendin e parë në listë.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Vendos sendin e fundit në listë.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Vendos një send të rastësishëm në listë.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Fut sendin në pozicionin e specifikuar të listës.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Fut sendin në fillim të listës.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Bashkangjit sendin në fund të listës.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Fut sendin rastësisht në listë.", - "LISTS_GET_SUBLIST_START_FROM_START": "merr nën-listën nga #", - "LISTS_GET_SUBLIST_START_FROM_END": "merr nën listën nga # nga fundi", - "LISTS_GET_SUBLIST_START_FIRST": "merr nën-listën nga i pari", - "LISTS_GET_SUBLIST_END_FROM_START": "tek #", - "LISTS_GET_SUBLIST_END_FROM_END": "tek # nga fundi", - "LISTS_GET_SUBLIST_END_LAST": "tek i fundit", - "LISTS_GET_SUBLIST_TOOLTIP": "Krijon në kopje të pjesës së specifikuar të listës.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "rendit %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Rendit një kopje të listës.", - "LISTS_SORT_ORDER_ASCENDING": "ngjitje", - "LISTS_SORT_ORDER_DESCENDING": "zbritje", - "LISTS_SORT_TYPE_NUMERIC": "numerike", - "LISTS_SORT_TYPE_TEXT": "alfabetike", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetike, injoro madhësinë e shkronjave", - "LISTS_SPLIT_LIST_FROM_TEXT": "bëj listë nga teksti", - "LISTS_SPLIT_TEXT_FROM_LIST": "bëj tekst nga lista", - "LISTS_SPLIT_WITH_DELIMITER": "me ndarës", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Ndaj tekstin në një listë tekstesh, duke ndarë në secilin ndarës.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Ngjit një listë tekstesh në një, të ndara me ndarës.", - "LISTS_REVERSE_MESSAGE0": "kthe %1", - "LISTS_REVERSE_TOOLTIP": "Ndërro renditjen e një kopjeje të listës.", - "VARIABLES_GET_TOOLTIP": "Pergjigjet me nje vlere te kesaj variable.", - "VARIABLES_GET_CREATE_SET": "Krijo 'vendos %1", - "VARIABLES_SET": "vendos %1 ne %2", - "VARIABLES_SET_TOOLTIP": "Vendos kete variable te jete e barabarte me te dhenat ne hyrje.", - "VARIABLES_SET_CREATE_GET": "Krijo 'merr %1", - "PROCEDURES_DEFNORETURN_HELPURL": "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "te", - "PROCEDURES_DEFNORETURN_PROCEDURE": "bëj diqka", - "PROCEDURES_BEFORE_PARAMS": "me:", - "PROCEDURES_CALL_BEFORE_PARAMS": "me:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Krijon një funksion pa dalje.", - "PROCEDURES_DEFNORETURN_COMMENT": "Përshkruaj këtë funksion...", - "PROCEDURES_DEFRETURN_HELPURL": "http://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "rikthe", - "PROCEDURES_DEFRETURN_TOOLTIP": "Krijon një funksion me një dalje.", - "PROCEDURES_ALLOW_STATEMENTS": "lejo deklaratat", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Paralajmërim: Ky funksion ka parametra të dyfishuar.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Lësho funksionin e definuar nga përdoruesi '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Lëho funksionin e definuar nga përdoruesi '%1' dhe përdor daljen e tij.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "Informacioni i futur", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Shto, hiq, ose rirendit inputet e këtij funksioni.", - "PROCEDURES_MUTATORARG_TITLE": "Fut emrin:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Shto një input në këtë funksion.", - "PROCEDURES_HIGHLIGHT_DEF": "Thekso definicionin e funksionit", - "PROCEDURES_CREATE_DO": "Krijo '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Nëse një vlerë është e saktë, atëherë kthe një vlerë të dytë.", - "PROCEDURES_IFRETURN_WARNING": "Paralajmërim: Ky bllok mund të përdoret vetëm brenda definicionit të funksionit." -} diff --git a/lib/blockly/msg/json/sr-latn.json b/lib/blockly/msg/json/sr-latn.json deleted file mode 100644 index af03f28..0000000 --- a/lib/blockly/msg/json/sr-latn.json +++ /dev/null @@ -1,356 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Zoranzoki21" - ] - }, - "VARIABLES_DEFAULT_NAME": "stavka", - "TODAY": "Danas", - "DUPLICATE_BLOCK": "Dupliraj", - "ADD_COMMENT": "Dodaj komentar", - "REMOVE_COMMENT": "Ukloni komentar", - "EXTERNAL_INPUTS": "Spoljni ulazi", - "INLINE_INPUTS": "Unutrašnji ulazi", - "DELETE_BLOCK": "Obriši blok", - "DELETE_X_BLOCKS": "Obriši %1 blokova", - "DELETE_ALL_BLOCKS": "Da obrišem svih %1 blokova?", - "CLEAN_UP": "Ukloni blokove", - "COLLAPSE_BLOCK": "Skupi blok", - "COLLAPSE_ALL": "Skupi blokove", - "EXPAND_BLOCK": "Proširi blok", - "EXPAND_ALL": "Proširi blokove", - "DISABLE_BLOCK": "Onemogući blok", - "ENABLE_BLOCK": "Omogući blok", - "HELP": "Pomoć", - "UNDO": "Opozovi", - "REDO": "Ponovi", - "CHANGE_VALUE_TITLE": "Promeni vrednost:", - "RENAME_VARIABLE": "Preimenuj promenljivu…", - "RENAME_VARIABLE_TITLE": "Preimenuj sve „%1“ promenljive u:", - "NEW_VARIABLE": "Napravi promenljivu…", - "NEW_VARIABLE_TITLE": "Ime nove promenljive:", - "VARIABLE_ALREADY_EXISTS": "Promenljiva pod imenom '%1' već postoji.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Varijabla po imenu '%1' već postoji za drugu varijablu tipa '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Da obrišem %1 upotreba promenljive '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ne mogu da obrišem varijablu ’%1’ jer je deo definicije funkcije ’%2’", - "DELETE_VARIABLE": "Obriši promenljivu '%1'", - "COLOUR_PICKER_HELPURL": "https://sr.wikipedia.org/wiki/Boja", - "COLOUR_PICKER_TOOLTIP": "Izaberite boju sa palete.", - "COLOUR_RANDOM_TITLE": "slučajna boja", - "COLOUR_RANDOM_TOOLTIP": "Izaberite boju nasumice.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "boja sa", - "COLOUR_RGB_RED": "crvena", - "COLOUR_RGB_GREEN": "zelena", - "COLOUR_RGB_BLUE": "plava", - "COLOUR_RGB_TOOLTIP": "Kreiraj boju sa određenom količinom crvene,zelene, i plave. Sve vrednosti moraju biti između 0 i 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "pomešaj", - "COLOUR_BLEND_COLOUR1": "boja 1", - "COLOUR_BLEND_COLOUR2": "boja 2", - "COLOUR_BLEND_RATIO": "odnos", - "COLOUR_BLEND_TOOLTIP": "Pomešati dve boje zajedno sa datim odnosom (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://sr.wikipedia.org/wiki/For_petlja", - "CONTROLS_REPEAT_TITLE": "ponovi %1 puta", - "CONTROLS_REPEAT_INPUT_DO": "izvrši", - "CONTROLS_REPEAT_TOOLTIP": "Odraditi neke naredbe nekoliko puta.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ponavljati dok", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ponavljati do", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Dok je vrednost tačna, onda izvršite neke naredbe.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Dok vrednost nije tačna, onda izvršiti neke naredbe.", - "CONTROLS_FOR_TOOLTIP": "Imaj promenjivu \"%1\" uzmi vrednosti od početnog broja do zadnjeg broja, brojeći po određenom intervalu, i izvrši određene blokove.", - "CONTROLS_FOR_TITLE": "prebroj sa %1 od %2 do %3 od %4", - "CONTROLS_FOREACH_TITLE": "za svaku stavku %1 na spisku %2", - "CONTROLS_FOREACH_TOOLTIP": "Za svaku stavku unutar liste, podesi promenjivu '%1' po stavci, i onda načini neke izjave-naredbe.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "Izađite iz petlje", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "nastavi sa sledećom iteracijom petlje", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Napusti sadržaj petlje.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Preskoči ostatak ove petlje, i nastavi sa sledećom iteracijom(ponavljanjem).", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Upozorenje: Ovaj blok može da se upotrebi samo unutar petlje.", - "CONTROLS_IF_TOOLTIP_1": "ako je vrednost tačna, onda izvrši neke naredbe-izjave.", - "CONTROLS_IF_TOOLTIP_2": "ako je vrednost tačna, onda izvrši prvi blok naredbi, U suprotnom, izvrši drugi blok naredbi.", - "CONTROLS_IF_TOOLTIP_3": "Ako je prva vrednost tačna, onda izvrši prvi blok naredbi, u suprotnom, ako je druga vrednost tačna , izvrši drugi blok naredbi.", - "CONTROLS_IF_TOOLTIP_4": "Ako je prva vrednost tačna, onda izvrši prvi blok naredbi, u suprotnom, ako je druga vrednost tačna , izvrši drugi blok naredbi. Ako ni jedna od vrednosti nije tačna, izvrši poslednji blok naredbi.", - "CONTROLS_IF_MSG_IF": "ako", - "CONTROLS_IF_MSG_ELSEIF": "inače-ako", - "CONTROLS_IF_MSG_ELSE": "inače", - "CONTROLS_IF_IF_TOOLTIP": "Dodaj, ukloni, ili preuredi delove kako bih rekonfigurisali ovaj if blok.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Dodajte uslov bloku „ako“.", - "CONTROLS_IF_ELSE_TOOLTIP": "Dodaj konačni, catch-all (uhvati sve) uslove if bloka.", - "IOS_OK": "U redu", - "IOS_CANCEL": "Otkaži", - "IOS_ERROR": "Greška", - "IOS_PROCEDURES_INPUTS": "UNOSI", - "IOS_PROCEDURES_ADD_INPUT": "+ Dodaj unos", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Dozvoli izjave", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ova funkcija ima duplicirane unose.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Dodaj varijablu", - "IOS_VARIABLES_ADD_BUTTON": "Dodaj", - "IOS_VARIABLES_RENAME_BUTTON": "Preimenuj", - "IOS_VARIABLES_DELETE_BUTTON": "Obriši", - "IOS_VARIABLES_VARIABLE_NAME": "Ime varijable", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ne možete da koristite prazno ime varijable.", - "LOGIC_COMPARE_HELPURL": "https://sr.wikipedia.org/wiki/Nejednakost", - "LOGIC_COMPARE_TOOLTIP_EQ": "Vraća vrednost „tačno“ ako su oba ulaza jednaka.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Vraća vrednost „tačno“ ako su oba ulaza nejednaka.", - "LOGIC_COMPARE_TOOLTIP_LT": "Vraća vrednost „tačno“ ako je prvi ulaz manji od drugog.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Vraća vrednost „tačno“ ako je prvi ulaz manji ili jednak drugom.", - "LOGIC_COMPARE_TOOLTIP_GT": "Vraća vrednost „tačno“ ako je prvi ulaz veći od drugog.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Vraća vrednost „tačno“ ako je prvi ulaz veći ili jednak drugom.", - "LOGIC_OPERATION_TOOLTIP_AND": "Vraća vrednost „tačno“ ako su oba ulaza tačna.", - "LOGIC_OPERATION_AND": "i", - "LOGIC_OPERATION_TOOLTIP_OR": "Vraća vrednost „tačno“ ako je bar jedan od ulaza tačan.", - "LOGIC_OPERATION_OR": "ili", - "LOGIC_NEGATE_TITLE": "nije %1", - "LOGIC_NEGATE_TOOLTIP": "Vraća vrednost „tačno“ ako je ulaz netačan. Vraća vrednost „netačno“ ako je ulaz tačan.", - "LOGIC_BOOLEAN_TRUE": "tačno", - "LOGIC_BOOLEAN_FALSE": "netačno", - "LOGIC_BOOLEAN_TOOLTIP": "Vraća ili tačno ili netačno.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "bez vrednosti", - "LOGIC_NULL_TOOLTIP": "Vraća „bez vrednosti“.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "proba", - "LOGIC_TERNARY_IF_TRUE": "ako je tačno", - "LOGIC_TERNARY_IF_FALSE": "ako je netačno", - "LOGIC_TERNARY_TOOLTIP": "Proveri uslov u 'test'. Ako je uslov tačan, tada vraća 'if true' vrednost; u drugom slučaju vraća 'if false' vrednost.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Neki broj.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "arc sin", - "MATH_TRIG_ACOS": "arc cos", - "MATH_TRIG_ATAN": "arc tan", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Vratite zbir dva broja.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Vraća razliku dva broja.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Vraća proizvod dva broja.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Vraća količnik dva broja.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Vraća prvi broj stepenovan drugim.", - "MATH_SINGLE_HELPURL": "https://sr.wikipedia.org/wiki/Kvadratni_koren", - "MATH_SINGLE_OP_ROOT": "kvadratni koren", - "MATH_SINGLE_TOOLTIP_ROOT": "Vraća kvadratni koren broja.", - "MATH_SINGLE_OP_ABSOLUTE": "apsolutan", - "MATH_SINGLE_TOOLTIP_ABS": "Vraća apsolutnu vrednost broja.", - "MATH_SINGLE_TOOLTIP_NEG": "Vraća negaciju broja.", - "MATH_SINGLE_TOOLTIP_LN": "Vraća prirodni logaritam broja.", - "MATH_SINGLE_TOOLTIP_LOG10": "Vraća logaritam broja sa osnovom 10.", - "MATH_SINGLE_TOOLTIP_EXP": "vratiti e na vlasti broja.", - "MATH_SINGLE_TOOLTIP_POW10": "Vraća 10-ti stepen broja.", - "MATH_TRIG_HELPURL": "https://sr.wikipedia.org/wiki/Trigonometrijske_funkcije", - "MATH_TRIG_TOOLTIP_SIN": "Vraća sinus stepena (ne radijan).", - "MATH_TRIG_TOOLTIP_COS": "Vraća kosinus stepena (ne radijan).", - "MATH_TRIG_TOOLTIP_TAN": "Vraća tangens stepena (ne radijan).", - "MATH_TRIG_TOOLTIP_ASIN": "Vraća arkus broja.", - "MATH_TRIG_TOOLTIP_ACOS": "Vraća arkus kosinus broja.", - "MATH_TRIG_TOOLTIP_ATAN": "Vraća arkus tangens broja.", - "MATH_CONSTANT_HELPURL": "https://sr.wikipedia.org/wiki/Matematička_konstanta", - "MATH_CONSTANT_TOOLTIP": "vrati jednu od zajedničkih konstanti: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ili ∞ (infinity).", - "MATH_IS_EVEN": "je paran", - "MATH_IS_ODD": "je neparan", - "MATH_IS_PRIME": "je prost", - "MATH_IS_WHOLE": "je ceo", - "MATH_IS_POSITIVE": "je pozitivan", - "MATH_IS_NEGATIVE": "je negativan", - "MATH_IS_DIVISIBLE_BY": "je deljiv sa", - "MATH_IS_TOOLTIP": "Provjerava da li je broj paran, neparan, prost, cio, pozitivan, negativan, ili da li je deljiv sa određenim brojem. Vraća tačno ili netačno.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "promeni %1 za %2", - "MATH_CHANGE_TOOLTIP": "Dodajte broj promenljivoj „%1“.", - "MATH_ROUND_HELPURL": "https://sr.wikipedia.org/wiki/Zaokruživanje", - "MATH_ROUND_TOOLTIP": "Zaokružite broj na veću ili manju vrednost.", - "MATH_ROUND_OPERATOR_ROUND": "zaokruži", - "MATH_ROUND_OPERATOR_ROUNDUP": "zaokruži naviše", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "zaokruži naniže", - "MATH_ONLIST_OPERATOR_SUM": "zbir spiska", - "MATH_ONLIST_TOOLTIP_SUM": "Vraća zbir svih brojeva sa spiska.", - "MATH_ONLIST_OPERATOR_MIN": "min. spiska", - "MATH_ONLIST_TOOLTIP_MIN": "Vraća najmanji broj sa spiska.", - "MATH_ONLIST_OPERATOR_MAX": "maks. spiska", - "MATH_ONLIST_TOOLTIP_MAX": "Vraća najveći broj sa spiska.", - "MATH_ONLIST_OPERATOR_AVERAGE": "prosek spiska", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Vraća prosek numeričkih vrednosti sa spiska.", - "MATH_ONLIST_OPERATOR_MEDIAN": "medijana spiska", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Vraća medijanu sa spiska.", - "MATH_ONLIST_OPERATOR_MODE": "modus spiska", - "MATH_ONLIST_TOOLTIP_MODE": "Vraća najčešće stavke sa spiska.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standardna devijacija spiska", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Vraća standardnu devijaciju spiska.", - "MATH_ONLIST_OPERATOR_RANDOM": "slučajna stavka spiska", - "MATH_ONLIST_TOOLTIP_RANDOM": "Vraća slučajni element sa spiska.", - "MATH_MODULO_HELPURL": "https://sr.wikipedia.org/wiki/Kongruencija", - "MATH_MODULO_TITLE": "podsetnik od %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Vraća podsetnik od deljenja dva broja.", - "MATH_CONSTRAIN_TITLE": "ograniči %1 nisko %2 visoko %3", - "MATH_CONSTRAIN_TOOLTIP": "Ograničava broj na donje i gornje granice (uključivo).", - "MATH_RANDOM_INT_HELPURL": "https://sr.wikipedia.org/wiki/Generator_slučajnih_brojeva", - "MATH_RANDOM_INT_TITLE": "sličajno odabrani cijeli broj od %1 do %2", - "MATH_RANDOM_INT_TOOLTIP": "Vraća slučajno odabrani celi broj između dve određene granice, uključivo.", - "MATH_RANDOM_FLOAT_HELPURL": "https://sr.wikipedia.org/wiki/Generator_slučajnih_brojeva", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "slučajni razlomak", - "MATH_RANDOM_FLOAT_TOOLTIP": "Vraća slučajni razlomak između 0.0 (uključivo) i 1.0 (isključivo).", - "TEXT_TEXT_HELPURL": "https://sr.wikipedia.org/wiki/Niska", - "TEXT_TEXT_TOOLTIP": "Slovo, reč ili red teksta.", - "TEXT_JOIN_TITLE_CREATEWITH": "napiši tekst sa", - "TEXT_JOIN_TOOLTIP": "Napraviti dio teksta spajajući različite stavke.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "spajanjem", - "TEXT_CREATE_JOIN_TOOLTIP": "Dodaj, ukloni, ili drugačije poredaj odjelke kako bi iznova postavili ovaj tekst blok.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Dodajte stavku u tekst.", - "TEXT_APPEND_TITLE": "na %1 dodaj tekst %2", - "TEXT_APPEND_TOOLTIP": "Dodajte tekst na promenljivu „%1“.", - "TEXT_LENGTH_TITLE": "dužina teksta %1", - "TEXT_LENGTH_TOOLTIP": "Vraća broj slova (uključujući razmake) u datom tekstu.", - "TEXT_ISEMPTY_TITLE": "%1 je prazan", - "TEXT_ISEMPTY_TOOLTIP": "Vraća tačno ako je dostavljeni tekst prazan.", - "TEXT_INDEXOF_TOOLTIP": "Vraća odnos prvog/zadnjeg pojavljivanja teksta u drugom tekstu. Vrađa %1 ako tekst nije pronađen.", - "TEXT_INDEXOF_TITLE": "u tekstu %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "pronađi prvo pojavljivanje teksta", - "TEXT_INDEXOF_OPERATOR_LAST": "pronađi poslednje pojavljivanje teksta", - "TEXT_CHARAT_TITLE": "u tekstu %1 %2", - "TEXT_CHARAT_FROM_START": "preuzmi slovo #", - "TEXT_CHARAT_FROM_END": "preuzmi slovo # sa kraja", - "TEXT_CHARAT_FIRST": "preuzmi prvo slovo", - "TEXT_CHARAT_LAST": "preuzmi poslednje slovo", - "TEXT_CHARAT_RANDOM": "preuzmi slučajno slovo", - "TEXT_CHARAT_TOOLTIP": "Vraća slovo na određeni položaj.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Vraća određeni deo teksta.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "u tekstu", - "TEXT_GET_SUBSTRING_START_FROM_START": "preuzmi podnisku iz slova #", - "TEXT_GET_SUBSTRING_START_FROM_END": "preuzmi podnisku iz slova # sa kraja", - "TEXT_GET_SUBSTRING_START_FIRST": "preuzmi podnisku iz prvog slova", - "TEXT_GET_SUBSTRING_END_FROM_START": "slovu #", - "TEXT_GET_SUBSTRING_END_FROM_END": "slovu # sa kraja", - "TEXT_GET_SUBSTRING_END_LAST": "poslednjem slovu", - "TEXT_CHANGECASE_TOOLTIP": "Vraća primerak teksta sa drugačijom veličinom slova.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "velikim slovima", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "malim slovima", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "svaka reč velikim slovom", - "TEXT_TRIM_TOOLTIP": "Vraća kopiju teksta sa uklonjenim prostorom sa jednog od dva kraja.", - "TEXT_TRIM_OPERATOR_BOTH": "trim praznine sa obe strane", - "TEXT_TRIM_OPERATOR_LEFT": "skratiti prostor sa leve strane", - "TEXT_TRIM_OPERATOR_RIGHT": "skratiti prostor sa desne strane", - "TEXT_PRINT_TITLE": "prikaži %1", - "TEXT_PRINT_TOOLTIP": "Prikažite određeni tekst, broj ili drugu vrednost na ekranu.", - "TEXT_PROMPT_TYPE_TEXT": "pitaj za tekst sa porukom", - "TEXT_PROMPT_TYPE_NUMBER": "pitaj za broj sa porukom", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Pitajte korisnika za broj.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Pitajte korisnika za unos teksta.", - "TEXT_COUNT_MESSAGE0": "broj %1 u %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Broji koliko puta se neki tekst pojavljuje unutar nekog drugog teksta.", - "TEXT_REPLACE_MESSAGE0": "zamena %1 sa %2 u %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Zamena svih pojava nekog teksta unutar nekog drugog teksta.", - "TEXT_REVERSE_MESSAGE0": "obrnuto %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Obrće redosled karaktera u tekstu.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "napravi prazan spisak", - "LISTS_CREATE_EMPTY_TOOLTIP": "vraća listu, dužine 0, ne sadržavajući evidenciju podataka", - "LISTS_CREATE_WITH_TOOLTIP": "Kreiraj listu sa bilo kojim brojem stavki.", - "LISTS_CREATE_WITH_INPUT_WITH": "napravi spisak sa", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "spisak", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Dodajte, izbrišite, ili preuredite delove kako bi se reorganizovali ovaj blok liste.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Dodajte stavku na spisak.", - "LISTS_REPEAT_TOOLTIP": "Pravi listu koja se sastoji od zadane vrednosti koju ponavljamo određeni broj šuta.", - "LISTS_REPEAT_TITLE": "Napraviti listu sa stavkom %1 koja se ponavlja %2 puta", - "LISTS_LENGTH_TITLE": "dužina spiska %1", - "LISTS_LENGTH_TOOLTIP": "Vraća dužinu spiska.", - "LISTS_ISEMPTY_TITLE": "%1 je prazan", - "LISTS_ISEMPTY_TOOLTIP": "Vraća vrednost tačno ako je lista prazna.", - "LISTS_INLIST": "na spisku", - "LISTS_INDEX_OF_FIRST": "pronađi prvo pojavljivanje stavke", - "LISTS_INDEX_OF_LAST": "pronađi poslednje pojavljivanje stavke", - "LISTS_INDEX_OF_TOOLTIP": "Vraća broj prvog i/poslednjeg ulaska elementa u listu. Vraća %1 Ako element nije pronađen.", - "LISTS_GET_INDEX_GET": "preuzmi", - "LISTS_GET_INDEX_GET_REMOVE": "preuzmi i ukloni", - "LISTS_GET_INDEX_REMOVE": "ukloni", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# sa kraja", - "LISTS_GET_INDEX_FIRST": "prva", - "LISTS_GET_INDEX_LAST": "poslednja", - "LISTS_GET_INDEX_RANDOM": "slučajna", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 je prva stavka.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 je poslednja stavka.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Vraća stavku na određenu poziciju na listi.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Vraća prvu stavku na spisku.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Vraća poslednju stavku na spisku.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Vraća slučajnu stavku sa spiska.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Uklanja i vraća stavku sa određenog položaja na spisku.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Uklanja i vraća prvu stavku sa spiska.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Uklanja i vraća poslednju stavku sa spiska.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Uklanja i vraća slučajnu stavku sa spiska.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Uklanja stavku sa određenog položaja na spisku.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Uklanja prvu stavku sa spiska.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Uklanja poslednju stavku sa spiska.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Uklanja slučajnu stavku sa spiska.", - "LISTS_SET_INDEX_SET": "postavi", - "LISTS_SET_INDEX_INSERT": "ubaci na", - "LISTS_SET_INDEX_INPUT_TO": "kao", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Postavlja stavku na određeni položaj na spisku.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Postavlja prvu stavku na spisku.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Postavlja poslednju stavku na spisku.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Postavlja slučajnu stavku na spisku.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ubacuje stavku na određeni položaj na spisku.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ubacuje stavku na početak spiska.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Dodajte stavku na kraj spiska.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Ubacuje stavku na slučajno mesto na spisku.", - "LISTS_GET_SUBLIST_START_FROM_START": "preuzmi podspisak od #", - "LISTS_GET_SUBLIST_START_FROM_END": "preuzmi podspisak iz # sa kraja", - "LISTS_GET_SUBLIST_START_FIRST": "preuzmi podspisak od prve", - "LISTS_GET_SUBLIST_END_FROM_START": "do #", - "LISTS_GET_SUBLIST_END_FROM_END": "do # od kraja", - "LISTS_GET_SUBLIST_END_LAST": "do poslednje", - "LISTS_GET_SUBLIST_TOOLTIP": "Pravi kopiju određenog dela liste.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sortiraj %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sortirajte kopiju spiska.", - "LISTS_SORT_ORDER_ASCENDING": "rastuće", - "LISTS_SORT_ORDER_DESCENDING": "opadajuće", - "LISTS_SORT_TYPE_NUMERIC": "kao brojeve", - "LISTS_SORT_TYPE_TEXT": "azbučno", - "LISTS_SORT_TYPE_IGNORECASE": "azbučno, ignoriši mala i velika slova", - "LISTS_SPLIT_LIST_FROM_TEXT": "napravite listu sa teksta", - "LISTS_SPLIT_TEXT_FROM_LIST": "da tekst iz liste", - "LISTS_SPLIT_WITH_DELIMITER": "sa razdvajanje", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Podeliti tekst u listu tekstova, razbijanje na svakom graničnik.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Da se pridruži listu tekstova u jedan tekst, podeljenih za razdvajanje.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "obrnuto %1", - "LISTS_REVERSE_TOOLTIP": "Obrni kopiju spiska.", - "VARIABLES_GET_TOOLTIP": "Vraća vrednost ove promenljive.", - "VARIABLES_GET_CREATE_SET": "Napravi „postavi %1“", - "VARIABLES_SET": "postavi %1 u %2", - "VARIABLES_SET_TOOLTIP": "Postavlja promenljivu tako da bude jednaka ulazu.", - "VARIABLES_SET_CREATE_GET": "Napravi „preuzmi %1“", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "da", - "PROCEDURES_DEFNORETURN_PROCEDURE": "uradite nešto", - "PROCEDURES_BEFORE_PARAMS": "sa:", - "PROCEDURES_CALL_BEFORE_PARAMS": "sa:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Pravi funkciju bez izlaza.", - "PROCEDURES_DEFNORETURN_COMMENT": "Opisati ovu funkciju...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "vrati", - "PROCEDURES_DEFRETURN_TOOLTIP": "Pravi funkciju sa izlazom.", - "PROCEDURES_ALLOW_STATEMENTS": "dozvoliti izreke", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Upozorenje: Ova funkcija ima duplikate parametara.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Pokrenite prilagođenu funkciju „%1“.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Pokrenite prilagođenu funkciju „%1“ i koristi njen izlaz.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ulazi", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Da dodate, uklonite ili pereuporяdočitь ulaza za ovu funkciju.", - "PROCEDURES_MUTATORARG_TITLE": "naziv ulaza:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Dodajte ulazna funkcija.", - "PROCEDURES_HIGHLIGHT_DEF": "Istakni definiciju funkcije", - "PROCEDURES_CREATE_DO": "Napravi „%1“", - "PROCEDURES_IFRETURN_TOOLTIP": "Ukoliko je vrednost tačna, vrati drugu vrednost.", - "PROCEDURES_IFRETURN_WARNING": "Upozorenje: Ovaj blok se može koristiti jedino u definiciji funkcije." -} diff --git a/lib/blockly/msg/json/sr.json b/lib/blockly/msg/json/sr.json deleted file mode 100644 index 1dea9ce..0000000 --- a/lib/blockly/msg/json/sr.json +++ /dev/null @@ -1,379 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Rancher", - "아라", - "Perevod16", - "Nikola Smolenski", - "Obsuser", - "Acamicamacaraca", - "BadDog", - "Милан Јелисавчић" - ] - }, - "VARIABLES_DEFAULT_NAME": "ставка", - "TODAY": "Данас", - "DUPLICATE_BLOCK": "Дуплирај", - "ADD_COMMENT": "Додај коментар", - "REMOVE_COMMENT": "Уклони коментар", - "DUPLICATE_COMMENT": "Дуплирај коментар", - "EXTERNAL_INPUTS": "Спољашњи улази", - "INLINE_INPUTS": "Редни улази", - "DELETE_BLOCK": "Избриши блок", - "DELETE_X_BLOCKS": "Избриши %1 блокова", - "DELETE_ALL_BLOCKS": "Избрисати свих %1 блокова?", - "CLEAN_UP": "Очисти блокове", - "COLLAPSE_BLOCK": "Скупи блок", - "COLLAPSE_ALL": "Скупи блокове", - "EXPAND_BLOCK": "Прошири блок", - "EXPAND_ALL": "Прошири блокове", - "DISABLE_BLOCK": "Онемогући блок", - "ENABLE_BLOCK": "Омогући блок", - "HELP": "Помоћ", - "UNDO": "Опозови", - "REDO": "Понови", - "CHANGE_VALUE_TITLE": "Промена вредности:", - "RENAME_VARIABLE": "Преименуј променљиву…", - "RENAME_VARIABLE_TITLE": "Преименуј све ’%1’ променљиве у:", - "NEW_VARIABLE": "Направи променљиву…", - "NEW_STRING_VARIABLE": "Направи променљиву ниске...", - "NEW_NUMBER_VARIABLE": "Направи променљиву броја...", - "NEW_COLOUR_VARIABLE": "Направи променљиву боје...", - "NEW_VARIABLE_TYPE_TITLE": "Нова врста променљиве:", - "NEW_VARIABLE_TITLE": "Име нове променљиве:", - "VARIABLE_ALREADY_EXISTS": "Променљива под именом ’%1’ већ постоји.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Променљива под именом ’%1’ већ постоји за други тип: ’%2’.", - "DELETE_VARIABLE_CONFIRMATION": "Избрисати %1 употребу променљиве „%2”?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Није могуће избрисати променљиву „%1” јер је део дефиниције функције „%2”", - "DELETE_VARIABLE": "Избриши променљиву ’%1’", - "COLOUR_PICKER_HELPURL": "https://sr.wikipedia.org/wiki/Боја", - "COLOUR_PICKER_TOOLTIP": "Одаберите боју са палете.", - "COLOUR_RANDOM_TITLE": "случајна боја", - "COLOUR_RANDOM_TOOLTIP": "Одаберите боју насумично.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "боја са", - "COLOUR_RGB_RED": "црвена", - "COLOUR_RGB_GREEN": "зелена", - "COLOUR_RGB_BLUE": "плава", - "COLOUR_RGB_TOOLTIP": "Направите боју са одређеном количином црвене, зелене и плаве. Све вредности морају бити између 0 и 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "помешај", - "COLOUR_BLEND_COLOUR1": "боја 1", - "COLOUR_BLEND_COLOUR2": "боја 2", - "COLOUR_BLEND_RATIO": "однос", - "COLOUR_BLEND_TOOLTIP": "Меша две боје заједно са датим односом (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://sr.wikipedia.org/wiki/For_петља", - "CONTROLS_REPEAT_TITLE": "понови %1 пута", - "CONTROLS_REPEAT_INPUT_DO": "изврши", - "CONTROLS_REPEAT_TOOLTIP": "Изврши неке наредбе неколико пута.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "понављати док", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "понављати до", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Док је вредност тачна, извршава неке наредбе.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Док је вредност нетачна, извршава неке наредбе.", - "CONTROLS_FOR_TOOLTIP": "Имај промењиву \"%1\" узми вредности од почетног броја до задњег броја, бројећи по одређеном интервалу, и изврши одређене блокове.", - "CONTROLS_FOR_TITLE": "преброј са %1 од %2 до %3 од %4", - "CONTROLS_FOREACH_TITLE": "за сваку ставку %1 на списку %2", - "CONTROLS_FOREACH_TOOLTIP": "За сваку ставку унутар листе, подеси промењиву '%1' по ставци, и онда начини неке изјаве-наредбе.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "изађи из петље", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "настави са следећом итерацијом петље", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Напусти садржај петље.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Прескочи остатак ове петље, и настави са следећом итерацијом(понављанјем).", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Упозорење: Овај блок може да се употреби само унутар петље.", - "CONTROLS_IF_TOOLTIP_1": "ако је вредност тачна, онда изврши неке наредбе-изјаве.", - "CONTROLS_IF_TOOLTIP_2": "ако је вредност тачна, онда изврши први блок наредби, У супротном, изврши други блок наредби.", - "CONTROLS_IF_TOOLTIP_3": "Ако је прва вредност тачна, онда изврши први блок наредби, у супротном, ако је друга вредност тачна , изврши други блок наредби.", - "CONTROLS_IF_TOOLTIP_4": "Ако је прва вредност тачна, онда изврши први блок наредби, у супротном, ако је друга вредност тачна , изврши други блок наредби. Ако ни једна од вредности није тачна, изврши последнји блок наредби.", - "CONTROLS_IF_MSG_IF": "ако", - "CONTROLS_IF_MSG_ELSEIF": "иначе-ако", - "CONTROLS_IF_MSG_ELSE": "иначе", - "CONTROLS_IF_IF_TOOLTIP": "Додај, уклони, или преуреди делове како бих реконфигурисали овај иф блок.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Додајте услов блоку „ако“.", - "CONTROLS_IF_ELSE_TOOLTIP": "Додај коначни, catch-all (ухвати све) услове иф блока.", - "IOS_OK": "У реду", - "IOS_CANCEL": "Откажи", - "IOS_ERROR": "Грешка", - "IOS_PROCEDURES_INPUTS": "УНОСИ", - "IOS_PROCEDURES_ADD_INPUT": "+ Додај унос", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Дозволи изјаве", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Ова функција има дуплиране уносе.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Додај променљиву", - "IOS_VARIABLES_ADD_BUTTON": "Додај", - "IOS_VARIABLES_RENAME_BUTTON": "Преименуј", - "IOS_VARIABLES_DELETE_BUTTON": "Избриши", - "IOS_VARIABLES_VARIABLE_NAME": "Име променљиве", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Не можете да користите празно име променљиве.", - "LOGIC_COMPARE_HELPURL": "https://sr.wikipedia.org/wiki/Неједнакост", - "LOGIC_COMPARE_TOOLTIP_EQ": "Враћа вредност „тачно“ ако су оба улаза једнака.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Враћа вредност „тачно“ ако су оба уноса неједнака.", - "LOGIC_COMPARE_TOOLTIP_LT": "Враћа вредност „тачно“ ако је први унос мањи од другог.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Враћа вредност „тачно“ ако је први унос мањи или једнак другом.", - "LOGIC_COMPARE_TOOLTIP_GT": "Враћа вредност „тачно“ ако је први унос већи од другог.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Враћа вредност „тачно“ ако је први унос већи или једнак другом.", - "LOGIC_OPERATION_TOOLTIP_AND": "Враћа вредност „тачно“ ако су оба уноса тачна.", - "LOGIC_OPERATION_AND": "и", - "LOGIC_OPERATION_TOOLTIP_OR": "Враћа вредност „тачно“ ако је бар један од уноса тачан.", - "LOGIC_OPERATION_OR": "или", - "LOGIC_NEGATE_TITLE": "није %1", - "LOGIC_NEGATE_TOOLTIP": "Враћа вредност „тачно“ ако је унос нетачан. Враћа вредност „нетачно“ ако је унос тачан.", - "LOGIC_BOOLEAN_TRUE": "тачно", - "LOGIC_BOOLEAN_FALSE": "нетачно", - "LOGIC_BOOLEAN_TOOLTIP": "Враћа или „тачно“ или „нетачно“.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "без вредности", - "LOGIC_NULL_TOOLTIP": "Враћа „без вредности“.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "проба", - "LOGIC_TERNARY_IF_TRUE": "ако је тачно", - "LOGIC_TERNARY_IF_FALSE": "ако је нетачно", - "LOGIC_TERNARY_TOOLTIP": "Проверите услов у „проба”. Ако је услов тачан, тада враћа „ако је тачно” вредност; у другом случају враћа „ако је нетачно” вредност.", - "MATH_NUMBER_HELPURL": "https://sr.wikipedia.org/wiki/Број", - "MATH_NUMBER_TOOLTIP": "Број.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "син", - "MATH_TRIG_COS": "цос", - "MATH_TRIG_TAN": "тан", - "MATH_TRIG_ASIN": "арц син", - "MATH_TRIG_ACOS": "арц цос", - "MATH_TRIG_ATAN": "арц тан", - "MATH_ARITHMETIC_HELPURL": "https://sr.wikipedia.org/wiki/Аритметика", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Враћа збир два броја.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Враћа разлику два броја.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Враћа производ два броја.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Враћа количник два броја.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Враћа први број степенован другим.", - "MATH_SINGLE_HELPURL": "https://sr.wikipedia.org/wiki/Квадратни_корен", - "MATH_SINGLE_OP_ROOT": "квадратни корен", - "MATH_SINGLE_TOOLTIP_ROOT": "Враћа квадратни корен броја.", - "MATH_SINGLE_OP_ABSOLUTE": "апсолутно", - "MATH_SINGLE_TOOLTIP_ABS": "Враћа апсолутну вредност броја.", - "MATH_SINGLE_TOOLTIP_NEG": "Враћа негацију броја.", - "MATH_SINGLE_TOOLTIP_LN": "Враћа природни логаритам броја.", - "MATH_SINGLE_TOOLTIP_LOG10": "Враћа логаритам броја са основом 10.", - "MATH_SINGLE_TOOLTIP_EXP": "Враћа е-број на степен броја.", - "MATH_SINGLE_TOOLTIP_POW10": "Враћа 10-ти степен броја.", - "MATH_TRIG_HELPURL": "https://sr.wikipedia.org/wiki/Тригонометријске_функције", - "MATH_TRIG_TOOLTIP_SIN": "Враћа синус степена (не радијан).", - "MATH_TRIG_TOOLTIP_COS": "Враћа косинус степена (не радијан).", - "MATH_TRIG_TOOLTIP_TAN": "Враћа тангенс степена (не радијан).", - "MATH_TRIG_TOOLTIP_ASIN": "Враћа аркус синус броја.", - "MATH_TRIG_TOOLTIP_ACOS": "Враћа аркус косинус броја.", - "MATH_TRIG_TOOLTIP_ATAN": "Враћа аркус тангенс броја.", - "MATH_CONSTANT_HELPURL": "https://sr.wikipedia.org/wiki/Математичка_константа", - "MATH_CONSTANT_TOOLTIP": "Враћа једну од заједничких константи: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), или ∞ (бесконачно).", - "MATH_IS_EVEN": "је паран", - "MATH_IS_ODD": "је непаран", - "MATH_IS_PRIME": "је прост", - "MATH_IS_WHOLE": "је цео", - "MATH_IS_POSITIVE": "је позитиван", - "MATH_IS_NEGATIVE": "је негативан", - "MATH_IS_DIVISIBLE_BY": "је дељив са", - "MATH_IS_TOOLTIP": "Проверава да ли је број паран, непаран, прост, цео, позитиван, негативан, или дељив са одређеним бројем. Враћа „тачно” или „нетачно”.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "промени %1 за %2", - "MATH_CHANGE_TOOLTIP": "Додаје број променљивој „%1”.", - "MATH_ROUND_HELPURL": "https://sr.wikipedia.org/wiki/Заокруживање", - "MATH_ROUND_TOOLTIP": "Заокружује број на већу или мању вредност.", - "MATH_ROUND_OPERATOR_ROUND": "заокружи", - "MATH_ROUND_OPERATOR_ROUNDUP": "заокружи навише", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "заокружи наниже", - "MATH_ONLIST_HELPURL": "", - "MATH_ONLIST_OPERATOR_SUM": "збир списка", - "MATH_ONLIST_TOOLTIP_SUM": "Враћа збир свих бројева са списка.", - "MATH_ONLIST_OPERATOR_MIN": "мин. списка", - "MATH_ONLIST_TOOLTIP_MIN": "Враћа најмањи број са списка.", - "MATH_ONLIST_OPERATOR_MAX": "макс. списка", - "MATH_ONLIST_TOOLTIP_MAX": "Враћа највећи број са списка.", - "MATH_ONLIST_OPERATOR_AVERAGE": "просек списка", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Враћа просек (аритметичку средину) бројева са списка.", - "MATH_ONLIST_OPERATOR_MEDIAN": "медијана списка", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Враћа медијану са списка.", - "MATH_ONLIST_OPERATOR_MODE": "модус списка", - "MATH_ONLIST_TOOLTIP_MODE": "Враћа списак најчешћих ставки на списку.", - "MATH_ONLIST_OPERATOR_STD_DEV": "стандардна девијација списка", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Враћа стандардну девијацију списка.", - "MATH_ONLIST_OPERATOR_RANDOM": "случајна ставка списка", - "MATH_ONLIST_TOOLTIP_RANDOM": "Враћа случајни елемент са списка.", - "MATH_MODULO_HELPURL": "https://sr.wikipedia.org/wiki/Конгруенција", - "MATH_MODULO_TITLE": "подсетник од %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Враћа подсетник од дељења два броја.", - "MATH_CONSTRAIN_TITLE": "ограничи %1 ниско %2 високо %3", - "MATH_CONSTRAIN_TOOLTIP": "Ограничава број на доње и горње границе (укључиво).", - "MATH_RANDOM_INT_HELPURL": "https://sr.wikipedia.org/wiki/Генератор_случајних_бројева", - "MATH_RANDOM_INT_TITLE": "сличајно одабрани цијели број од %1 до %2", - "MATH_RANDOM_INT_TOOLTIP": "Враћа случајно одабрани цели број између две одређене границе, уклјучиво.", - "MATH_RANDOM_FLOAT_HELPURL": "https://sr.wikipedia.org/wiki/Генератор_случајних_бројева", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "случајни разломак", - "MATH_RANDOM_FLOAT_TOOLTIP": "Враћа случајни разломак између 0.0 (укључиво) и 1.0 (искључиво).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "атан2 од X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Врати арктангенту тачке (X, Y) у степенима од -180 до 180.", - "TEXT_TEXT_HELPURL": "https://sr.wikipedia.org/wiki/Ниска", - "TEXT_TEXT_TOOLTIP": "Слово, реч или ред текста.", - "TEXT_JOIN_TITLE_CREATEWITH": "напиши текст са", - "TEXT_JOIN_TOOLTIP": "Направити дио текста спајајући различите ставке.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "спој", - "TEXT_CREATE_JOIN_TOOLTIP": "Додај, уклони, или другачије поредај одјелке како би изнова поставили овај текст блок.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Додајте ставку у текст.", - "TEXT_APPEND_TITLE": "на %1 додај текст %2", - "TEXT_APPEND_TOOLTIP": "Додаје текст променљивој „%1”.", - "TEXT_LENGTH_TITLE": "дужина текста %1", - "TEXT_LENGTH_TOOLTIP": "Враћа број слова (уклјучујући размаке) у датом тексту.", - "TEXT_ISEMPTY_TITLE": "%1 је празан", - "TEXT_ISEMPTY_TOOLTIP": "Враћа „тачно” ако је достављени текст празан.", - "TEXT_INDEXOF_TOOLTIP": "Враћа индекс првог/задњег појављивања првог текста у другом тексту. Враћа %1 ако текст није пронађен.", - "TEXT_INDEXOF_TITLE": "у тексту %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "пронађи прво појављивање текста", - "TEXT_INDEXOF_OPERATOR_LAST": "пронађи последње појављивање текста", - "TEXT_CHARAT_TITLE": "у тексту %1 %2", - "TEXT_CHARAT_FROM_START": "преузми слово #", - "TEXT_CHARAT_FROM_END": "преузми слово # са краја", - "TEXT_CHARAT_FIRST": "преузми прво слово", - "TEXT_CHARAT_LAST": "преузми последње слово", - "TEXT_CHARAT_RANDOM": "преузми случајно слово", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "Враћа слово на одређени положај.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Враћа одређени део текста.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "у тексту", - "TEXT_GET_SUBSTRING_START_FROM_START": "преузми подниску из слова #", - "TEXT_GET_SUBSTRING_START_FROM_END": "преузми подниску из слова # са краја", - "TEXT_GET_SUBSTRING_START_FIRST": "преузми подниску из првог слова", - "TEXT_GET_SUBSTRING_END_FROM_START": "слову #", - "TEXT_GET_SUBSTRING_END_FROM_END": "слову # са краја", - "TEXT_GET_SUBSTRING_END_LAST": "последњем слову", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_TOOLTIP": "Враћа примерак текста са другачијом величином слова.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "великим словима", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "малим словима", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "свака реч великим словом", - "TEXT_TRIM_TOOLTIP": "Враћа копију текста са уклонјеним простором са једног од два краја.", - "TEXT_TRIM_OPERATOR_BOTH": "трим празнине са обе стране", - "TEXT_TRIM_OPERATOR_LEFT": "скратити простор са леве стране", - "TEXT_TRIM_OPERATOR_RIGHT": "скратити простор са десне стране", - "TEXT_PRINT_TITLE": "прикажи %1", - "TEXT_PRINT_TOOLTIP": "Прикажите одређени текст, број или другу вредност на екрану.", - "TEXT_PROMPT_TYPE_TEXT": "питај за текст са поруком", - "TEXT_PROMPT_TYPE_NUMBER": "питај за број са поруком", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Питајте корисника за број.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Питајте корисника за унос текста.", - "TEXT_COUNT_MESSAGE0": "број %1 у %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Броји колико пута се неки текст појављује унутар неког другог текста.", - "TEXT_REPLACE_MESSAGE0": "замена %1 са %2 у %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Замена свих појава неког текста унутар неког другог текста.", - "TEXT_REVERSE_MESSAGE0": "обрнуто %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Обрће редослед карактера у тексту.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "направи празан списак", - "LISTS_CREATE_EMPTY_TOOLTIP": "Враћа списак, дужине 0, без података", - "LISTS_CREATE_WITH_TOOLTIP": "Направите списак са било којим бројем ставки.", - "LISTS_CREATE_WITH_INPUT_WITH": "направи списак са", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "списак", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Додајте, избришите, или преуредите делове како би се реорганизовали овај блок листе.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Додајте ставку на списак.", - "LISTS_REPEAT_TOOLTIP": "Прави листу која се састоји од задане вредности коју понавлјамо одређени број шута.", - "LISTS_REPEAT_TITLE": "Направити списак са ставком %1 која се понавља %2 пута", - "LISTS_LENGTH_TITLE": "дужина списка %1", - "LISTS_LENGTH_TOOLTIP": "Враћа дужину списка.", - "LISTS_ISEMPTY_TITLE": "%1 је празан", - "LISTS_ISEMPTY_TOOLTIP": "Враћа вредност „тачно” ако је списак празан.", - "LISTS_INLIST": "на списку", - "LISTS_INDEX_OF_FIRST": "пронађи прво појављивање ставке", - "LISTS_INDEX_OF_LAST": "пронађи последње појављивање ставке", - "LISTS_INDEX_OF_TOOLTIP": "Враћа индекс прве/последње појаве ставке на списку. Враћа %1 ако ставка није пронађена.", - "LISTS_GET_INDEX_GET": "преузми", - "LISTS_GET_INDEX_GET_REMOVE": "преузми и уклони", - "LISTS_GET_INDEX_REMOVE": "уклони", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# са краја", - "LISTS_GET_INDEX_FIRST": "прва", - "LISTS_GET_INDEX_LAST": "последња", - "LISTS_GET_INDEX_RANDOM": "случајна", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 је прва ставка.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 је последња ставка.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Враћа ставку на одређену позицију на списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Враћа прву ставку на списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Враћа последњу ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Враћа случајну ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Уклања и враћа ставку са одређеног положаја са списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Уклања и враћа прву ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Уклања и враћа последњу ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Уклања и враћа случајну ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Уклања ставку са одређеног положаја са списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Уклања прву ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Уклања последњу ставку са списка.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Уклања случајну ставку са списка.", - "LISTS_SET_INDEX_SET": "постави", - "LISTS_SET_INDEX_INSERT": "убаци на", - "LISTS_SET_INDEX_INPUT_TO": "као", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Поставља ставку на одређени положај на списку.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Поставља прву ставку на списку.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Поставља последњу ставку на списку.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Поставља случајну ставку на списку.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Убацује ставку на одређени положај на списку.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Убацује ставку на почетак списка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Додајте ставку на крај списка.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Убацује ставку на случајно место на списку.", - "LISTS_GET_SUBLIST_START_FROM_START": "преузми подсписак од #", - "LISTS_GET_SUBLIST_START_FROM_END": "преузми подсписак из # са краја", - "LISTS_GET_SUBLIST_START_FIRST": "преузми подсписак од прве", - "LISTS_GET_SUBLIST_END_FROM_START": "до #", - "LISTS_GET_SUBLIST_END_FROM_END": "до # од краја", - "LISTS_GET_SUBLIST_END_LAST": "до последње", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "Прави копију одређеног дела списка.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "сортирај %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Сортирајте копију списка.", - "LISTS_SORT_ORDER_ASCENDING": "растуће", - "LISTS_SORT_ORDER_DESCENDING": "опадајуће", - "LISTS_SORT_TYPE_NUMERIC": "као бројеве", - "LISTS_SORT_TYPE_TEXT": "азбучно", - "LISTS_SORT_TYPE_IGNORECASE": "азбучно, игнориши мала и велика слова", - "LISTS_SPLIT_LIST_FROM_TEXT": "направите листу са текста", - "LISTS_SPLIT_TEXT_FROM_LIST": "направи текст из списка", - "LISTS_SPLIT_WITH_DELIMITER": "са граничником", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Раздваја текст у списак текстова, преламањем на сваком граничнику.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Спаја списак текстова у један текст, раздвојених граничником.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "обрнуто %1", - "LISTS_REVERSE_TOOLTIP": "Обрни копију списка.", - "ORDINAL_NUMBER_SUFFIX": "", - "VARIABLES_GET_TOOLTIP": "Враћа вредност ове променљиве.", - "VARIABLES_GET_CREATE_SET": "Направи блок за доделу вредности %1", - "VARIABLES_SET": "постави %1 у %2", - "VARIABLES_SET_TOOLTIP": "Поставља променљиву тако да буде једнака улазу.", - "VARIABLES_SET_CREATE_GET": "Направи блок за преузимање вредности из „%1”", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "до", - "PROCEDURES_DEFNORETURN_PROCEDURE": "урадите нешто", - "PROCEDURES_BEFORE_PARAMS": "са:", - "PROCEDURES_CALL_BEFORE_PARAMS": "са:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Прави функцију без излаза.", - "PROCEDURES_DEFNORETURN_COMMENT": "Опишите ову функцију…", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "врати", - "PROCEDURES_DEFRETURN_TOOLTIP": "Прави функцију са излазом.", - "PROCEDURES_ALLOW_STATEMENTS": "дозволи изјаве", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Упозорење: Ова функција има дуплиране параметре.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://sr.wikipedia.org/wiki/Потпрограм", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Покреће кориснички дефинисану функцију „%1”.", - "PROCEDURES_CALLRETURN_HELPURL": "https://sr.wikipedia.org/wiki/Потпрограм", - "PROCEDURES_CALLRETURN_TOOLTIP": "Покреће кориснички дефинисану функцију „%1” и користи њен излаз.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "улази", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Додајте, уклоните или преуредите уносе за ову функцију.", - "PROCEDURES_MUTATORARG_TITLE": "име параметра:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Додајте улазни параметар финкцији.", - "PROCEDURES_HIGHLIGHT_DEF": "Истакни дефиницију функције", - "PROCEDURES_CREATE_DO": "Направи „%1”", - "PROCEDURES_IFRETURN_TOOLTIP": "Ако је прва вредност тачна, враћа другу вредност.", - "PROCEDURES_IFRETURN_WARNING": "Упозорење: Овај блок се може користити једино унутар дефиниције функције.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Кажите нешто…" -} diff --git a/lib/blockly/msg/json/sv.json b/lib/blockly/msg/json/sv.json deleted file mode 100644 index e6a718f..0000000 --- a/lib/blockly/msg/json/sv.json +++ /dev/null @@ -1,376 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Jopparn", - "WikiPhoenix", - "Abbedabb", - "Aaoo", - "아라", - "Eldaria", - "Smuda" - ] - }, - "VARIABLES_DEFAULT_NAME": "föremål", - "UNNAMED_KEY": "namnlös", - "TODAY": "Idag", - "DUPLICATE_BLOCK": "Duplicera", - "ADD_COMMENT": "Lägg till kommentar", - "REMOVE_COMMENT": "Radera kommentar", - "DUPLICATE_COMMENT": "Duplicera kommentar", - "EXTERNAL_INPUTS": "Externa inmatningar", - "INLINE_INPUTS": "Radinmatning", - "DELETE_BLOCK": "Radera block", - "DELETE_X_BLOCKS": "Radera %1 block", - "DELETE_ALL_BLOCKS": "Radera alla %1 block?", - "CLEAN_UP": "Städa upp block", - "COLLAPSE_BLOCK": "Fäll ihop block", - "COLLAPSE_ALL": "Fäll ihop block", - "EXPAND_BLOCK": "Fäll ut block", - "EXPAND_ALL": "Fäll ut block", - "DISABLE_BLOCK": "Inaktivera block", - "ENABLE_BLOCK": "Aktivera block", - "HELP": "Hjälp", - "UNDO": "Ångra", - "REDO": "Gör om", - "CHANGE_VALUE_TITLE": "Ändra värde:", - "RENAME_VARIABLE": "Byt namn på variabel...", - "RENAME_VARIABLE_TITLE": "Byt namn på alla'%1'-variabler till:", - "NEW_VARIABLE": "Skapa variabel...", - "NEW_STRING_VARIABLE": "Skapa strängvariabel...", - "NEW_NUMBER_VARIABLE": "Skapa siffervariabel...", - "NEW_COLOUR_VARIABLE": "Skapa färgvariabel...", - "NEW_VARIABLE_TYPE_TITLE": "Ny variabeltyp:", - "NEW_VARIABLE_TITLE": "Nytt variabelnamn:", - "VARIABLE_ALREADY_EXISTS": "En variabel med namn \"%1\" finns redan.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "En variabel med namnet \"%1\" finns redan för en annan typ: \"%2\".", - "DELETE_VARIABLE_CONFIRMATION": "Radera %1 användningar av variabeln \"%2\"?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Kan inte radera variabeln '%1' eftersom den är en del av definition för funktionen '%2'", - "DELETE_VARIABLE": "Radera variabeln \"%1\"", - "COLOUR_PICKER_HELPURL": "https://sv.wikipedia.org/wiki/Färg", - "COLOUR_PICKER_TOOLTIP": "Välj en färg från paletten.", - "COLOUR_RANDOM_TITLE": "slumpfärg", - "COLOUR_RANDOM_TOOLTIP": "Slumpa fram en färg.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "färg med", - "COLOUR_RGB_RED": "röd", - "COLOUR_RGB_GREEN": "grön", - "COLOUR_RGB_BLUE": "blå", - "COLOUR_RGB_TOOLTIP": "Skapa en färg med det angivna mängden röd, grön och blå. Alla värden måste vara mellan 0 och 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "blanda", - "COLOUR_BLEND_COLOUR1": "färg 1", - "COLOUR_BLEND_COLOUR2": "färg 2", - "COLOUR_BLEND_RATIO": "förhållande", - "COLOUR_BLEND_TOOLTIP": "Blandar ihop två färger med ett bestämt förhållande (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "upprepa %1 gånger", - "CONTROLS_REPEAT_INPUT_DO": "utför", - "CONTROLS_REPEAT_TOOLTIP": "Utför några kommandon flera gånger.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "upprepa så länge", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "upprepa tills", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Medan ett värde är sant, utför några kommandon.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Medan ett värde är falskt, utför några kommandon.", - "CONTROLS_FOR_TOOLTIP": "Låt variabeln \"%1\" anta värden från starttalet till sluttalet, beräknat med det angivna intervallet, och utför de angivna blocken.", - "CONTROLS_FOR_TITLE": "räkna med %1 från %2 till %3 med %4", - "CONTROLS_FOREACH_TITLE": "för varje föremål %1 i listan %2", - "CONTROLS_FOREACH_TOOLTIP": "För varje objekt i en lista, ange variabeln '%1' till objektet, och utför sedan några kommandon.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "bryt ut ur loop", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "fortsätta med nästa upprepning av loop", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Bryt ut ur den innehållande upprepningen.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Hoppa över resten av denna loop och fortsätt med nästa loop.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Varning: Detta block kan endast användas i en loop.", - "CONTROLS_IF_TOOLTIP_1": "Om ett värde är sant, utför några kommandon.", - "CONTROLS_IF_TOOLTIP_2": "Om värdet är sant, utför det första kommandoblocket. Utför annars det andra kommandoblocket.", - "CONTROLS_IF_TOOLTIP_3": "Om det första värdet är sant, utför det första kommandoblocket. Annars, om det andra värdet är sant, utför det andra kommandoblocket.", - "CONTROLS_IF_TOOLTIP_4": "Om det första värdet är sant, utför det första kommandoblocket. Annars, om det andra värdet är sant, utför det andra kommandoblocket. Om ingen av värdena är sanna, utför det sista kommandoblocket.", - "CONTROLS_IF_MSG_IF": "om", - "CONTROLS_IF_MSG_ELSEIF": "annars om", - "CONTROLS_IF_MSG_ELSE": "annars", - "CONTROLS_IF_IF_TOOLTIP": "Lägg till, ta bort eller ändra ordningen för sektioner för att omkonfigurera blocket \"om\".", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Lägg till ett villkor blocket \"om\".", - "CONTROLS_IF_ELSE_TOOLTIP": "Lägg till ett sista villkor som täcker alla alternativ som är kvar för \"if\"-blocket.", - "IOS_OK": "OK", - "IOS_CANCEL": "Avbryt", - "IOS_ERROR": "Fel", - "IOS_PROCEDURES_INPUTS": "INMATNINGAR", - "IOS_PROCEDURES_ADD_INPUT": "+ Lägg till inmatning", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Tillåt kommandon", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Denna funktion har dubblettinmatningar.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Lägg till variabel", - "IOS_VARIABLES_ADD_BUTTON": "Lägg till", - "IOS_VARIABLES_RENAME_BUTTON": "Döp om", - "IOS_VARIABLES_DELETE_BUTTON": "Radera", - "IOS_VARIABLES_VARIABLE_NAME": "Variabelnamn", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Du kan inte använda ett tomt variabelnamn.", - "LOGIC_COMPARE_HELPURL": "https://sv.wikipedia.org/wiki/Olikhet", - "LOGIC_COMPARE_TOOLTIP_EQ": "Ger tillbaka sant om båda värdena är lika med varandra.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Ger tillbaka sant om båda värdena inte är lika med varandra.", - "LOGIC_COMPARE_TOOLTIP_LT": "Ger tillbaka sant om det första värdet är mindre än det andra.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Ger tillbaka sant om det första värdet är mindre än eller lika med det andra.", - "LOGIC_COMPARE_TOOLTIP_GT": "Ger tillbaka sant om det första värdet är större än det andra.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Ger tillbaka sant om det första värdet är större än eller lika med det andra.", - "LOGIC_OPERATION_TOOLTIP_AND": "Ger tillbaka sant om båda värdena är sanna.", - "LOGIC_OPERATION_AND": "och", - "LOGIC_OPERATION_TOOLTIP_OR": "Ger tillbaka sant om minst ett av värdena är sant.", - "LOGIC_OPERATION_OR": "eller", - "LOGIC_NEGATE_TITLE": "inte %1", - "LOGIC_NEGATE_TOOLTIP": "Ger tillbaka sant om inmatningen är falsk. Ger tillbaka falskt och inmatningen är sann.", - "LOGIC_BOOLEAN_TRUE": "sant", - "LOGIC_BOOLEAN_FALSE": "falskt", - "LOGIC_BOOLEAN_TOOLTIP": "Returnerar antingen sant eller falskt.", - "LOGIC_NULL_HELPURL": "https://sv.wikipedia.org/wiki/Null", - "LOGIC_NULL": "null", - "LOGIC_NULL_TOOLTIP": "Returnerar null.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "om sant", - "LOGIC_TERNARY_IF_FALSE": "om falskt", - "LOGIC_TERNARY_TOOLTIP": "Kontrollera villkoret i \"test\". Om villkoret är sant, ge tillbaka \"om sant\"-värdet; annars ge tillbaka \"om falskt\"-värdet.", - "MATH_NUMBER_HELPURL": "https://sv.wikipedia.org/wiki/Tal", - "MATH_NUMBER_TOOLTIP": "Ett tal.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "arcsin", - "MATH_TRIG_ACOS": "arccos", - "MATH_TRIG_ATAN": "arctan", - "MATH_ARITHMETIC_HELPURL": "https://sv.wikipedia.org/wiki/Aritmetik", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Returnerar summan av de två talen.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Returnerar differensen mellan de två talen.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Returnerar produkten av de två talen.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Returnerar kvoten av de två talen.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Ger tillbaka det första talet upphöjt till det andra talet.", - "MATH_SINGLE_HELPURL": "https://sv.wikipedia.org/wiki/Kvadratrot", - "MATH_SINGLE_OP_ROOT": "kvadratrot", - "MATH_SINGLE_TOOLTIP_ROOT": "Returnerar kvadratroten av ett tal.", - "MATH_SINGLE_OP_ABSOLUTE": "absolut", - "MATH_SINGLE_TOOLTIP_ABS": "Returnerar absolutvärdet av ett tal.", - "MATH_SINGLE_TOOLTIP_NEG": "Returnerar negationen av ett tal.", - "MATH_SINGLE_TOOLTIP_LN": "Returnera den naturliga logaritmen av ett tal.", - "MATH_SINGLE_TOOLTIP_LOG10": "Returnerar logaritmen för bas 10 av ett tal.", - "MATH_SINGLE_TOOLTIP_EXP": "Ger tillbaka e upphöjt i ett tal.", - "MATH_SINGLE_TOOLTIP_POW10": "Ger tillbaka 10 upphöjt i ett tal.", - "MATH_TRIG_HELPURL": "https://sv.wikipedia.org/wiki/Trigonometrisk_funktion", - "MATH_TRIG_TOOLTIP_SIN": "Ger tillbaka sinus för en grad (inte radian).", - "MATH_TRIG_TOOLTIP_COS": "Ger tillbaka cosinus för en grad (inte radian).", - "MATH_TRIG_TOOLTIP_TAN": "Ger tillbaka tangens för en grad (inte radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Ger tillbaka arcus sinus (arcsin) för ett tal.", - "MATH_TRIG_TOOLTIP_ACOS": "Ger tillbaka arcus cosinus (arccos) för ett tal.", - "MATH_TRIG_TOOLTIP_ATAN": "Ger tillbaka arcus tangens (arctan) av ett tal.", - "MATH_CONSTANT_HELPURL": "https://sv.wikipedia.org/wiki/Matematisk_konstant", - "MATH_CONSTANT_TOOLTIP": "Returnerar en av de vanliga konstanterna: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…) eller ∞ (oändligt).", - "MATH_IS_EVEN": "är jämnt", - "MATH_IS_ODD": "är ojämnt", - "MATH_IS_PRIME": "är ett primtal", - "MATH_IS_WHOLE": "är helt", - "MATH_IS_POSITIVE": "är positivt", - "MATH_IS_NEGATIVE": "är negativt", - "MATH_IS_DIVISIBLE_BY": "är delbart med", - "MATH_IS_TOOLTIP": "Kontrollera om ett tal är jämnt, ojämnt, helt, positivt, negativt eller det är delbart med ett bestämt tal. Returnerar med sant eller falskt.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "ändra %1 med %2", - "MATH_CHANGE_TOOLTIP": "Lägg till ett tal till variabeln '%1'.", - "MATH_ROUND_HELPURL": "https://sv.wikipedia.org/wiki/Avrundning", - "MATH_ROUND_TOOLTIP": "Avrunda ett tal uppåt eller nedåt.", - "MATH_ROUND_OPERATOR_ROUND": "avrunda", - "MATH_ROUND_OPERATOR_ROUNDUP": "avrunda uppåt", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "avrunda nedåt", - "MATH_ONLIST_OPERATOR_SUM": "summan av listan", - "MATH_ONLIST_TOOLTIP_SUM": "Ger tillbaka summan av alla talen i listan.", - "MATH_ONLIST_OPERATOR_MIN": "minsta talet i listan", - "MATH_ONLIST_TOOLTIP_MIN": "Ger tillbaka det minsta talet i listan.", - "MATH_ONLIST_OPERATOR_MAX": "högsta talet i listan", - "MATH_ONLIST_TOOLTIP_MAX": "Ger tillbaka det största talet i listan.", - "MATH_ONLIST_OPERATOR_AVERAGE": "medelvärdet av listan", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Ger tillbaka medelvärdet (aritmetiskt) av de numeriska värdena i listan.", - "MATH_ONLIST_OPERATOR_MEDIAN": "medianen av listan", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Returnerar medianen av talen i listan.", - "MATH_ONLIST_OPERATOR_MODE": "typvärdet i listan", - "MATH_ONLIST_TOOLTIP_MODE": "Ger tillbaka en lista med de(t) vanligaste objekte(t/n) i listan.", - "MATH_ONLIST_OPERATOR_STD_DEV": "standardavvikelsen i listan", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Ger tillbaka standardavvikelsen i listan.", - "MATH_ONLIST_OPERATOR_RANDOM": "slumpmässigt objekt i listan", - "MATH_ONLIST_TOOLTIP_RANDOM": "Returnerar ett slumpmässigt element från listan.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "resten av %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Returnerar kvoten från divisionen av de två talen.", - "MATH_CONSTRAIN_TITLE": "begränsa %1 till mellan %2 och %3", - "MATH_CONSTRAIN_TOOLTIP": "Begränsa ett tal till att mellan de angivna gränsvärden (inkluderande).", - "MATH_RANDOM_INT_HELPURL": "https://sv.wikipedia.org/wiki/Slumptalsgenerator", - "MATH_RANDOM_INT_TITLE": "slumpartat heltal från %1 till %2", - "MATH_RANDOM_INT_TOOLTIP": "Ger tillbaka ett slumpat heltal mellan två värden, inkluderande.", - "MATH_RANDOM_FLOAT_HELPURL": "https://sv.wikipedia.org/wiki/Slumptalsgenerator", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "slumpat decimaltal", - "MATH_RANDOM_FLOAT_TOOLTIP": "Ger tillbaka ett slumpat decimaltal mellan 0.0 (inkluderat) och 1.0 (exkluderat).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 av X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Returnerar arcustangens av punkt (X, Y) i grader från -180 till 180.", - "TEXT_TEXT_HELPURL": "https://sv.wikipedia.org/wiki/Str%C3%A4ng_%28data%29", - "TEXT_TEXT_TOOLTIP": "En bokstav, ord eller textrad.", - "TEXT_JOIN_TITLE_CREATEWITH": "skapa text med", - "TEXT_JOIN_TOOLTIP": "Skapa en textbit genom att sammanfoga ett valfritt antal föremål.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "sammanfoga", - "TEXT_CREATE_JOIN_TOOLTIP": "Lägg till, ta bort eller ändra ordningen för sektioner för att omkonfigurera detta textblock.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Lägg till ett föremål till texten.", - "TEXT_APPEND_TITLE": "för att %1 lägga till text %2", - "TEXT_APPEND_TOOLTIP": "Lägg till lite text till variabeln '%1'.", - "TEXT_LENGTH_TITLE": "längden på %1", - "TEXT_LENGTH_TOOLTIP": "Ger tillbaka antalet bokstäver (inklusive mellanslag) i den angivna texten.", - "TEXT_ISEMPTY_TITLE": "%1 är tom", - "TEXT_ISEMPTY_TOOLTIP": "Returnerar sant om den angivna texten är tom.", - "TEXT_INDEXOF_TOOLTIP": "Ger tillbaka indexet för den första/sista förekomsten av första texten i den andra texten. Ger tillbaka %1 om texten inte hittas.", - "TEXT_INDEXOF_TITLE": "i texten %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "hitta första förekomsten av texten", - "TEXT_INDEXOF_OPERATOR_LAST": "hitta sista förekomsten av texten", - "TEXT_CHARAT_TITLE": "i texten %1 %2", - "TEXT_CHARAT_FROM_START": "hämta bokstaven #", - "TEXT_CHARAT_FROM_END": "hämta bokstaven # från slutet", - "TEXT_CHARAT_FIRST": "hämta första bokstaven", - "TEXT_CHARAT_LAST": "hämta sista bokstaven", - "TEXT_CHARAT_RANDOM": "hämta slumpad bokstav", - "TEXT_CHARAT_TOOLTIP": "Ger tillbaka bokstaven på den specificerade positionen.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Ger tillbaka en viss del av texten.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "i texten", - "TEXT_GET_SUBSTRING_START_FROM_START": "få textdel från bokstav #", - "TEXT_GET_SUBSTRING_START_FROM_END": "få textdel från bokstav # från slutet", - "TEXT_GET_SUBSTRING_START_FIRST": "få textdel från första bokstaven", - "TEXT_GET_SUBSTRING_END_FROM_START": "till bokstav #", - "TEXT_GET_SUBSTRING_END_FROM_END": "till bokstav # från slutet", - "TEXT_GET_SUBSTRING_END_LAST": "till sista bokstaven", - "TEXT_CHANGECASE_TOOLTIP": "Returnerar en kopia av texten i ett annat skiftläge.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "till VERSALER", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "till gemener", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "till Versala Initialer", - "TEXT_TRIM_TOOLTIP": "Returnerar en kopia av texten med borttagna mellanrum från en eller båda ändar.", - "TEXT_TRIM_OPERATOR_BOTH": "ta bort mellanrum från båda sidorna av", - "TEXT_TRIM_OPERATOR_LEFT": "ta bort mellanrum från vänstra sidan av", - "TEXT_TRIM_OPERATOR_RIGHT": "ta bort mellanrum från högra sidan av", - "TEXT_PRINT_TITLE": "skriv %1", - "TEXT_PRINT_TOOLTIP": "Skriv den angivna texten, talet eller annat värde.", - "TEXT_PROMPT_TYPE_TEXT": "fråga efter text med meddelande", - "TEXT_PROMPT_TYPE_NUMBER": "fråga efter ett tal med meddelande", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Fråga användaren efter ett tal.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Fråga användaren efter lite text.", - "TEXT_COUNT_MESSAGE0": "räkna %1 i %2", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Räkna hur många gånger en text förekommer inom en annan text.", - "TEXT_REPLACE_MESSAGE0": "ersätt %1 med %2 i %3", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "Ersätt alla förekomster av en text inom en annan text.", - "TEXT_REVERSE_MESSAGE0": "vänd på %1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "Vänder på teckenordningen i texten.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "skapa tom lista", - "LISTS_CREATE_EMPTY_TOOLTIP": "Ger tillbaka en lista utan någon data, alltså med längden 0", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "Skapa en lista med valfritt antal föremål.", - "LISTS_CREATE_WITH_INPUT_WITH": "skapa lista med", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lista", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Lägg till, ta bort eller ändra ordningen på objekten för att göra om det här \"list\"-blocket.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Lägg till ett föremål till listan.", - "LISTS_REPEAT_TOOLTIP": "Skapar en lista som innehåller ett valt värde upprepat ett bestämt antalet gånger.", - "LISTS_REPEAT_TITLE": "skapa lista med föremålet %1 upprepat %2 gånger", - "LISTS_LENGTH_TITLE": "längden på %1", - "LISTS_LENGTH_TOOLTIP": "Returnerar längden på en lista.", - "LISTS_ISEMPTY_TITLE": "%1 är tom", - "LISTS_ISEMPTY_TOOLTIP": "Returnerar sant om listan är tom.", - "LISTS_INLIST": "i listan", - "LISTS_INDEX_OF_FIRST": "hitta första förekomsten av objektet", - "LISTS_INDEX_OF_LAST": "hitta sista förekomsten av objektet", - "LISTS_INDEX_OF_TOOLTIP": "Ger tillbaka den första/sista förekomsten av objektet i listan. Returnerar %1 om objektet inte hittas.", - "LISTS_GET_INDEX_GET": "hämta", - "LISTS_GET_INDEX_GET_REMOVE": "hämta och ta bort", - "LISTS_GET_INDEX_REMOVE": "ta bort", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# från slutet", - "LISTS_GET_INDEX_FIRST": "första", - "LISTS_GET_INDEX_LAST": "sista", - "LISTS_GET_INDEX_RANDOM": "slumpad", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 är det första objektet.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 är det sista objektet.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Ger tillbaka objektet på den efterfrågade positionen i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Returnerar det första objektet i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Returnerar det sista objektet i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Returnerar ett slumpmässigt objekt i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Tar bort och återställer objektet på den specificerade positionen i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Tar bort och återställer det första objektet i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Tar bort och återställer det sista objektet i en lista.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Tar bort och återställer ett slumpmässigt objekt i en lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Tar bort objektet på den specificerade positionen i en lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Tar bort det första objektet i en lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Tar bort det sista objektet i en lista.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Tar bort en slumpmässig post i en lista.", - "LISTS_SET_INDEX_SET": "ange", - "LISTS_SET_INDEX_INSERT": "Sätt in vid", - "LISTS_SET_INDEX_INPUT_TO": "som", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Sätter in objektet vid en specificerad position i en lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Anger det första objektet i en lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Anger det sista elementet i en lista.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Sätter in ett slumpat objekt i en lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Sätter in objektet vid en specificerad position i en lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "sätter in objektet i början av en lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Lägg till objektet i slutet av en lista.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "sätter in objektet på en slumpad position i en lista.", - "LISTS_GET_SUBLIST_START_FROM_START": "få underlista från #", - "LISTS_GET_SUBLIST_START_FROM_END": "få underlista från # från slutet", - "LISTS_GET_SUBLIST_START_FIRST": "få underlista från första", - "LISTS_GET_SUBLIST_END_FROM_START": "till #", - "LISTS_GET_SUBLIST_END_FROM_END": "till # från slutet", - "LISTS_GET_SUBLIST_END_LAST": "till sista", - "LISTS_GET_SUBLIST_TOOLTIP": "Skapar en kopia av den specificerade delen av en lista.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sortera %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sortera en kopia av en lista.", - "LISTS_SORT_ORDER_ASCENDING": "stigande", - "LISTS_SORT_ORDER_DESCENDING": "fallande", - "LISTS_SORT_TYPE_NUMERIC": "numeriskt", - "LISTS_SORT_TYPE_TEXT": "alfabetiskt", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetiskt, ignorera skiftläge", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "skapa lista från text", - "LISTS_SPLIT_TEXT_FROM_LIST": "skapa text från lista", - "LISTS_SPLIT_WITH_DELIMITER": "med avgränsare", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Dela upp text till en textlista och bryt vid varje avgränsare.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Sammanfoga en textlista till en text, som separeras av en avgränsare.", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "vänd på %1", - "LISTS_REVERSE_TOOLTIP": "Vänd på en kopia av en lista.", - "VARIABLES_GET_TOOLTIP": "Returnerar värdet av denna variabel.", - "VARIABLES_GET_CREATE_SET": "Skapa \"välj %1\"", - "VARIABLES_SET": "ange %1 till %2", - "VARIABLES_SET_TOOLTIP": "Gör så att den här variabeln blir lika med inputen.", - "VARIABLES_SET_CREATE_GET": "Skapa 'hämta %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://sv.wikipedia.org/wiki/Funktion_%28programmering%29", - "PROCEDURES_DEFNORETURN_TITLE": "för att", - "PROCEDURES_DEFNORETURN_PROCEDURE": "göra något", - "PROCEDURES_BEFORE_PARAMS": "med:", - "PROCEDURES_CALL_BEFORE_PARAMS": "med:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Skapar en funktion utan output.", - "PROCEDURES_DEFNORETURN_COMMENT": "Beskriv denna funktion...", - "PROCEDURES_DEFRETURN_HELPURL": "https://sv.wikipedia.org/wiki/Funktion_%28programmering%29", - "PROCEDURES_DEFRETURN_RETURN": "returnera", - "PROCEDURES_DEFRETURN_TOOLTIP": "Skapar en funktion med output.", - "PROCEDURES_ALLOW_STATEMENTS": "tillåta uttalanden", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Varning: Denna funktion har dubbla parametrar.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Kör den användardefinierade funktionen \"%1\".", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Kör den användardefinierade funktionen \"%1\" och använd resultatet av den.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "inmatningar", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Lägg till, ta bort och ändra ordningen för inmatningar till denna funktion.", - "PROCEDURES_MUTATORARG_TITLE": "inmatningsnamn:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Lägg till en inmatning till funktionen.", - "PROCEDURES_HIGHLIGHT_DEF": "Markera funktionsdefinition", - "PROCEDURES_CREATE_DO": "Skapa '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Om ett värde är sant returneras ett andra värde.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Varning: Detta block får användas endast i en funktionsdefinition.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Säg någonting...", - "COLLAPSED_WARNINGS_WARNING": "Hopfällda block innehåller varningar." -} diff --git a/lib/blockly/msg/json/synonyms.json b/lib/blockly/msg/json/synonyms.json deleted file mode 100644 index df3a963..0000000 --- a/lib/blockly/msg/json/synonyms.json +++ /dev/null @@ -1 +0,0 @@ -{"CONTROLS_WHILEUNTIL_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_FOR_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_FOREACH_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_IF_MSG_THEN": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_IF_IF_TITLE_IF": "CONTROLS_IF_MSG_IF", "CONTROLS_IF_ELSEIF_TITLE_ELSEIF": "CONTROLS_IF_MSG_ELSEIF", "CONTROLS_IF_ELSE_TITLE_ELSE": "CONTROLS_IF_MSG_ELSE", "MATH_CHANGE_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "TEXT_CREATE_JOIN_ITEM_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "TEXT_APPEND_VARIABLE": "VARIABLES_DEFAULT_NAME", "LISTS_CREATE_WITH_ITEM_TITLE": "VARIABLES_DEFAULT_NAME", "LISTS_INDEX_OF_INPUT_IN_LIST": "LISTS_INLIST", "LISTS_GET_INDEX_HELPURL": "LISTS_INDEX_OF_HELPURL", "LISTS_GET_INDEX_INPUT_IN_LIST": "LISTS_INLIST", "LISTS_SET_INDEX_INPUT_IN_LIST": "LISTS_INLIST", "LISTS_GET_SUBLIST_INPUT_IN_LIST": "LISTS_INLIST", "PROCEDURES_DEFRETURN_TITLE": "PROCEDURES_DEFNORETURN_TITLE", "PROCEDURES_DEFRETURN_PROCEDURE": "PROCEDURES_DEFNORETURN_PROCEDURE", "PROCEDURES_DEFRETURN_DO": "PROCEDURES_DEFNORETURN_DO", "PROCEDURES_DEFRETURN_COMMENT": "PROCEDURES_DEFNORETURN_COMMENT"} \ No newline at end of file diff --git a/lib/blockly/msg/json/ta.json b/lib/blockly/msg/json/ta.json deleted file mode 100644 index 73d636d..0000000 --- a/lib/blockly/msg/json/ta.json +++ /dev/null @@ -1,301 +0,0 @@ -{ - "@metadata": { - "authors": [ - "ElangoRamanujam", - "Ezhillang", - "Karuthan", - "Thangamani-arun", - "Mahir78" - ] - }, - "VARIABLES_DEFAULT_NAME": "உருப்படி", - "UNNAMED_KEY": "பெயரிடப்படாதது", - "TODAY": "இன்று", - "DUPLICATE_BLOCK": "மறுநகல்", - "ADD_COMMENT": "கருத்தை சேர்", - "REMOVE_COMMENT": "கருத்தை நீக்கு", - "EXTERNAL_INPUTS": "வெளி கருவிகளுடன் உள்ளீடு", - "INLINE_INPUTS": "சூழமைவில் உள்ளீடு", - "DELETE_BLOCK": "உறுப்பை நீக்கு", - "DELETE_X_BLOCKS": "%1 உறுப்பை நீக்கு", - "DELETE_ALL_BLOCKS": "அனைத்து %1 நிரல் துண்டுகளையும் அழிக்கவா??", - "COLLAPSE_BLOCK": "உறுப்பை மரை", - "COLLAPSE_ALL": "உறுப்புகளை மரை", - "EXPAND_BLOCK": "உறுப்பை காட்டு", - "EXPAND_ALL": "உறுப்புகளை காட்டு", - "DISABLE_BLOCK": "உறுப்பை இயங்காது செய்", - "ENABLE_BLOCK": "உறுப்பை இயங்குமாரு செய்", - "HELP": "உதவி", - "CHANGE_VALUE_TITLE": "மதிப்பை மாற்றவும்:", - "RENAME_VARIABLE": "மாறிலியை மறுபெயரிடுக...", - "RENAME_VARIABLE_TITLE": "அனைத்து '%1' மாறிலிகளையும் பின்வருமாறு மறுபெயரிடுக:", - "NEW_VARIABLE": "மாறிலியை உருவாக்குக...", - "NEW_VARIABLE_TITLE": "புதிய மாறிலியின் பெயர்:", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "வண்ண தட்டிலிருந்து ஒரு நிறத்தைத் தேர்ந்தெடுக்கவும்.", - "COLOUR_RANDOM_TITLE": "தற்போக்கு நிறம்", - "COLOUR_RANDOM_TOOLTIP": "தற்போக்கில் ஒரு நிறத்தை தேர்ந்தெடுக்கவும்.", - "COLOUR_RGB_TITLE": "நிறத்துடன்", - "COLOUR_RGB_RED": "சிகப்பு", - "COLOUR_RGB_GREEN": "பச்சை", - "COLOUR_RGB_BLUE": "நீலம்", - "COLOUR_RGB_TOOLTIP": "குறிப்பிட்ட அளவு சிவப்பு,பச்சை மற்றும் நீலம் சேர்த்து புது நிறம் உருவாக்கு. மதிப்புகள் 0 முதல் 100 வரை மட்டுமே இருக்க வேண்டும்.", - "COLOUR_BLEND_TITLE": "கலப்பு (வண்ணம்)", - "COLOUR_BLEND_COLOUR1": "நிறம் 1", - "COLOUR_BLEND_COLOUR2": "நிறம் 2", - "COLOUR_BLEND_RATIO": "விகிதம்", - "COLOUR_BLEND_TOOLTIP": "கொடுக்கப்பட்ட விகதத்தில் (0.0 - 1.0) இரு நிறங்களை கலக்குக.", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "'%1' முரை திரும்ப செய்", - "CONTROLS_REPEAT_INPUT_DO": "செய்க", - "CONTROLS_REPEAT_TOOLTIP": "கட்டளைகளை பல முரை செய்ய", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "பலமுரை திரும்ப செய் (வரை)", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "பலமுரை திரும்ப செய் (முடயேனில்)", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "மாறி பொய் ஆக உள்ள வரை, கட்டளைகளை இயக்கு", - "CONTROLS_FOR_TOOLTIP": "முதல் எண்ணில் இருந்து கடை எண் வரை எடுத்துக்கொள்ள ஒரு மாறியை வைத்துக்கொள், குறித்த இடைவெளியை சேர்த்தவறே தொகுதிகளை செயலாக்கு.", - "CONTROLS_FOR_TITLE": "மாறியை வைத்து எண்ண %1 %2 இல் இருந்து %3 வரை %4-இன் படியாக", - "CONTROLS_FOREACH_TITLE": "உருப்படி ஒவ்வொன்றாக %1 பட்டியலில் உள்ள %2", - "CONTROLS_FOREACH_TOOLTIP": "பட்டியலில் உள்ள உருப்படியில் ஒவ்வொன்றாக, மாறியின் பொருள் '%1' ஆக வைக்க.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "மடக்கு கட்டளையை நிறுத்து.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "மடக்கு கட்டளையின் அடுத்த இயக்கநிலைக்கு செல்", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "மடக்கு கட்டளையின் இயக்கத்தில் இருந்து நிறுத்து.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "மடக்கு கட்டளையின் மீதியை விட்டுவிட்டு அடுத்த இயக்கநிலைக்கு செல்", - "CONTROLS_FLOW_STATEMENTS_WARNING": "எச்சரிக்கை : மடக்கு கூற்றில் இந்த தொகுதி ஒரு முறை மட்டுமே செயல்படுத்தப் படலாம்.", - "CONTROLS_IF_TOOLTIP_1": "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு", - "CONTROLS_IF_TOOLTIP_2": "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு. அல்லது மற்ற (அடுத்த) கட்டளைகளை இயக்கு.", - "CONTROLS_IF_TOOLTIP_3": "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை தொகுப்பு இயக்கு. அல்லது மற்ற (அடுத்த) கட்டளைகளை தொகுப்பு இயக்கு.", - "CONTROLS_IF_TOOLTIP_4": "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை தொகுப்பு இயக்கு. அல்லது மற்ற (அடுத்த) கட்டளைகளை தொகுப்பு இயக்கு. இரண்டும் இல்லை என்றால் கடைசி தொகுப்பு இயக்கு.", - "CONTROLS_IF_MSG_IF": "எனில்", - "CONTROLS_IF_MSG_ELSEIF": "இல்லைஆனால்", - "CONTROLS_IF_MSG_ELSE": "இல்லையெனில்", - "CONTROLS_IF_IF_TOOLTIP": "கட்டளைகளை தொகுப்பு திருத்துதம் செய்", - "CONTROLS_IF_ELSEIF_TOOLTIP": "ஆனால் தொகுப்பிற்கு நிபந்தனை சேர்க்க", - "CONTROLS_IF_ELSE_TOOLTIP": "ஆனால் தொகுப்பிற்கு விதிவிலக்கு காப்பை சேர்க்க", - "IOS_VARIABLES_ADD_BUTTON": "சேர்க்கவும்", - "IOS_VARIABLES_RENAME_BUTTON": "பெயர் மாற்றுக", - "IOS_VARIABLES_DELETE_BUTTON": "நீக்கவும்", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "இரண்டு மாறியும் ஈடானால், மெய் பின்கொடு.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "இரண்டு மாறியும் ஈடாகாவிட்டால், மெய் பின்கொடு.", - "LOGIC_COMPARE_TOOLTIP_LT": "முதல் உள்ளீடு இரண்டாவதைவிட குறைவாக இருந்தால், மெய் பின்கொடு.", - "LOGIC_COMPARE_TOOLTIP_LTE": "முதல் உள்ளீடு இரண்டாவதைவிட குறைவாக அல்ல சமமாக இருந்தால், மெய் பின்கொடு", - "LOGIC_COMPARE_TOOLTIP_GT": "முதல் உள்ளீடு இரண்டாவதைவிட அதிகமாக இருந்தால், மெய் பின்கொடு.", - "LOGIC_COMPARE_TOOLTIP_GTE": "முதல் உள்ளீடு இரண்டாவதைவிட அதிகமாக அல்ல சமமாக இருந்தால், மெய் பின்கொடு.", - "LOGIC_OPERATION_TOOLTIP_AND": "இரண்டு மாறியும் மெய் ஆனால், மெய் பின்கொடு.", - "LOGIC_OPERATION_AND": "மற்றும்", - "LOGIC_OPERATION_TOOLTIP_OR": "ஏதேனும் ஒரு மதிப்பு மெய் ஆனால், மெய் பின்கொடு", - "LOGIC_OPERATION_OR": "அல்லது", - "LOGIC_NEGATE_TITLE": "%1 இல்லை", - "LOGIC_NEGATE_TOOLTIP": "மெய் ஆனால், பொய் பின்கொடு. பொய் ஆனால், மெய் பின்கொடு.", - "LOGIC_BOOLEAN_TRUE": "மெய்", - "LOGIC_BOOLEAN_FALSE": "பொய்", - "LOGIC_BOOLEAN_TOOLTIP": "மெய், அல்லது பொய் பின்கொடு.", - "LOGIC_NULL": "பூஜியம்", - "LOGIC_NULL_TOOLTIP": "பூஜியம் பின்கொடு", - "LOGIC_TERNARY_CONDITION": "சோதனை", - "LOGIC_TERNARY_IF_TRUE": "மெய்யெனில்", - "LOGIC_TERNARY_IF_FALSE": "பொய்யெனில்", - "LOGIC_TERNARY_TOOLTIP": "'test' உள்ள நிபந்தனையை சரிபார்க்கவும், நிபந்தனை மெய்யானால்,'if true'வை பின்கொடுக்கும் இல்லையெனில் 'if false'வை பின்கொடுக்கும்.", - "MATH_NUMBER_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%8E%E0%AE%A3%E0%AF%8D", - "MATH_NUMBER_TOOLTIP": "ஒரு எண்.", - "MATH_ARITHMETIC_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%8E%E0%AE%A3%E0%AF%8D%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A4%E0%AE%AE%E0%AF%8D", - "MATH_ARITHMETIC_TOOLTIP_ADD": "இரு எண்களின் கூட்டை பின்கொடு", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "இரு எண்களின் கழிப்பை பின்கொடு", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "இரு எண்களின் பெருக்கலை பின்கொடு", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "இரு எண்களின் வகுத்தல் பின்கொடு", - "MATH_ARITHMETIC_TOOLTIP_POWER": "முதல் உள்ளீடு இரண்டாவது எண் அளவான அடுக்கு பெருக்கை கணித்து பின்கொடு.", - "MATH_SINGLE_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%B5%E0%AE%B0%E0%AF%8D%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AE%AE%E0%AF%82%E0%AE%B2%E0%AE%AE%E0%AF%8D", - "MATH_SINGLE_OP_ROOT": "வர்க்கமூலம்", - "MATH_SINGLE_TOOLTIP_ROOT": "ஒரு எண்ணின் வர்க்கமூலத்தைத் தரும்.", - "MATH_SINGLE_OP_ABSOLUTE": "தனித்த", - "MATH_SINGLE_TOOLTIP_ABS": "ஒரு எண்ணின் தனித்த மதிப்பை பின்கொடு", - "MATH_SINGLE_TOOLTIP_NEG": "ஒரு எண்ணின் எதிர்மறை மதிப்பை பின்கொடு", - "MATH_SINGLE_TOOLTIP_LN": "ஒரு எண்ணின் (இயற்கை) மடக்கை மதிப்பை பின்கொடு.", - "MATH_SINGLE_TOOLTIP_LOG10": "ஒரு எண்ணின் (10) மடக்கை மதிப்பை பின்கொடு.", - "MATH_SINGLE_TOOLTIP_EXP": "e-இன் எண் அடுக்கு பெருக்கை பின்கொடு.", - "MATH_SINGLE_TOOLTIP_POW10": "10-இன் எண் அடுக்கு பெருக்கை பின்கொடு.", - "MATH_TRIG_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%AE%E0%AF%81%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AF%8B%E0%AE%A3%E0%AE%B5%E0%AE%BF%E0%AE%AF%E0%AE%B2%E0%AF%8D_%E0%AE%9A%E0%AE%BE%E0%AE%B0%E0%AF%8D%E0%AE%AA%E0%AF%81%E0%AE%95%E0%AE%B3%E0%AF%8D", - "MATH_TRIG_TOOLTIP_SIN": "டிகிரீ சைன் மதிப்பை பின்கொடு.", - "MATH_TRIG_TOOLTIP_COS": "டிகிரீ கோசைன் மதிப்பை பின்கொடு", - "MATH_TRIG_TOOLTIP_TAN": "டிகிரீ டேஞ்சன்டு மதிப்பை பின்கொடு", - "MATH_TRIG_TOOLTIP_ASIN": "மதிப்பின் நேர்மாறு சைன் பின்கொடு", - "MATH_TRIG_TOOLTIP_ACOS": "மதிப்பின் நேர்மாறு கோசைன் பின்கொடு", - "MATH_TRIG_TOOLTIP_ATAN": "மதிப்பின் நேர்மாறு டேஞ்சன்டு பின்கொடு", - "MATH_CONSTANT_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A4_%E0%AE%AE%E0%AE%BE%E0%AE%B1%E0%AE%BF%E0%AE%B2%E0%AE%BF", - "MATH_CONSTANT_TOOLTIP": "ஒரு மாறிலியை பின்கொடு π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (முடிவிலி).", - "MATH_IS_EVEN": "2-ஆல் பகும்", - "MATH_IS_ODD": "2-ஆல் பகாத", - "MATH_IS_PRIME": "எண் பகாத்தனிதானதா?", - "MATH_IS_WHOLE": "எண் முழுதானதா?", - "MATH_IS_POSITIVE": "எண் நேர்ம முழுதானதா ?", - "MATH_IS_NEGATIVE": "எண் குறைவானதா ?", - "MATH_IS_DIVISIBLE_BY": "ஆல் வகுபடக் கூடியது", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "மாற்று %1 மூலம் %2", - "MATH_CHANGE_TOOLTIP": "எண்னை '%1' மதிப்பால் கூட்டு,", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "மேல்/கீழ் வழி முழு எண் ஆக மாற்று.", - "MATH_ROUND_OPERATOR_ROUND": "முழுமையாக்கு", - "MATH_ROUND_OPERATOR_ROUNDUP": "மேல்வழி முழுமையாக்கு", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "கீழ்வழி முழுமையாக்கு", - "MATH_ONLIST_OPERATOR_SUM": "பட்டியலின் கூட்டு", - "MATH_ONLIST_TOOLTIP_SUM": "முழு பட்டியலின் எண் சமம் பின்கொடு,", - "MATH_ONLIST_OPERATOR_MIN": "பட்டியலின் கறைவு", - "MATH_ONLIST_TOOLTIP_MIN": "பட்டியலின் குறைவான எண் பின்கொடு", - "MATH_ONLIST_OPERATOR_MAX": "பட்டியலின் மிகுதி", - "MATH_ONLIST_TOOLTIP_MAX": "பட்டியலின் அதிகமான எண் பின்கொடு", - "MATH_ONLIST_OPERATOR_AVERAGE": "பட்டியலின் எண் சராசரி", - "MATH_ONLIST_TOOLTIP_AVERAGE": "முழு பட்டியலின் எண் சராசரி பின்கொடு", - "MATH_ONLIST_OPERATOR_MEDIAN": "பட்டியலின் நடுக்கோடு", - "MATH_ONLIST_TOOLTIP_MEDIAN": "பட்டியலின் நடுக்கோடு பின்கொடு", - "MATH_ONLIST_OPERATOR_MODE": "பட்டியலின் பொதுவகைகள்", - "MATH_ONLIST_TOOLTIP_MODE": "பட்டியலின் பொதுவகைகள் பின்கொடு", - "MATH_ONLIST_OPERATOR_STD_DEV": "பட்டியலின் நியமவிலகல்", - "MATH_ONLIST_TOOLTIP_STD_DEV": "பட்டியலின் நியமவிலகலை பின்கொடு.", - "MATH_ONLIST_OPERATOR_RANDOM": "ஒரு பட்டியலில் இருந்து சீரற்ற உருப்படி", - "MATH_ONLIST_TOOLTIP_RANDOM": "ஒரு பட்டியலில் இருந்து சீரற்ற உருப்படி பின்கொடு", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2ன் மீதி", - "MATH_MODULO_TOOLTIP": "இரண்டு எண்கள் மூலம் பிரிவில் இருந்து எஞ்சியதை பின்கொடு.", - "MATH_CONSTRAIN_TITLE": "%1 மாறியை %2 மேலும் %3 கீழும் வற்புறுத்து", - "MATH_CONSTRAIN_TOOLTIP": "எண் மாறி வீசுகளம் உள்ளடங்கிய வாறு வற்புறுத்து", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "வீசுகளம் %1 இல் இருந்து %2 உள்ளடங்கிய வாறு சீரற்ற எண்", - "MATH_RANDOM_INT_TOOLTIP": "வீசுகளம் இல் இருந்த (உள்ளடங்கிய) வாறு சீரற்ற எண் பின்கொடு.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "சீரற்ற எண் பின்னம்", - "MATH_RANDOM_FLOAT_TOOLTIP": "சீரற்ற எண் பின்னம், 0.0 இல் இருந்து 1.0 உட்பட, பின்கொடு.", - "TEXT_TEXT_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%9A%E0%AE%B0%E0%AE%AE%E0%AF%8D_%28%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A9%E0%AE%BF%E0%AE%AF%E0%AE%BF%E0%AE%AF%E0%AE%B2%E0%AF%8D%29", - "TEXT_TEXT_TOOLTIP": "எழுத்து, சரம், சொல், அல்லது உரை சொற்தொடர்.", - "TEXT_JOIN_TITLE_CREATEWITH": "வைத்து உரை உருவாக்க", - "TEXT_JOIN_TOOLTIP": "பல பொருட்களை ஒன்றாக சேர்வதன் மூலம் உரை உருவாக்க.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "சேர்க்க", - "TEXT_CREATE_JOIN_TOOLTIP": "தொகுப்பு உரை திருத்துதம் செய்", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "உருபடியை உரையில் சேர்க்க.", - "TEXT_APPEND_TITLE": "இந்த மாறியிற்கு %1 உரை சேர்க்க %2", - "TEXT_APPEND_TOOLTIP": "'%1' மாறியில் உரையை சேர்", - "TEXT_LENGTH_TITLE": "%1ன் நீளம்", - "TEXT_LENGTH_TOOLTIP": "தொடரில் உள்ள எழுத்துக்களின் (இடைவெளிகளையும் சேர்த்து) எண்ணிகையை பின்கொடு.", - "TEXT_ISEMPTY_TITLE": "%1 காலியானது", - "TEXT_ISEMPTY_TOOLTIP": "காலியானது என்றால் மெய் மதிப்பை பின்கொடு", - "TEXT_INDEXOF_TOOLTIP": "இரண்டாவது உரையில் முதல் உரையின் முதல்/கடை இருக்கை குறிஎண்ணை பின்கொடு.", - "TEXT_INDEXOF_TITLE": "உரையில் %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "உரையில் முதல் தோற்ற இடத்தை பின்கொடு", - "TEXT_INDEXOF_OPERATOR_LAST": "உரையில் கடைசி தோற்ற இடத்தை பின்கொடு", - "TEXT_CHARAT_FROM_START": "# எழுத்தை எடு", - "TEXT_CHARAT_FROM_END": "முடிவில் இருந்து # எழுத்தை எடு", - "TEXT_CHARAT_FIRST": "முதல் எழுத்தைப் பெறுக", - "TEXT_CHARAT_LAST": "இறுதி எழுத்தைப் பெறுக", - "TEXT_CHARAT_RANDOM": "சமவாய்ப்புள்ள எழுத்தை எடு", - "TEXT_CHARAT_TOOLTIP": "கூறிய இடத்தில் உள்ள எழுத்தை எடு", - "TEXT_GET_SUBSTRING_TOOLTIP": "உரையின் குறியிடப்பட்ட சரம் பின்கொடு", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "உரையில்", - "TEXT_GET_SUBSTRING_START_FROM_START": "-இல் உட்கணம் # எழுத்திலிருந்து", - "TEXT_GET_SUBSTRING_START_FROM_END": "-இல் உட்கணம் கடைசி # எழுத்திலிருந்து", - "TEXT_GET_SUBSTRING_START_FIRST": "-இல் உட்கணம் முதல் எழுத்திலிருந்து", - "TEXT_GET_SUBSTRING_END_FROM_START": "எழுத்து # வரை", - "TEXT_GET_SUBSTRING_END_FROM_END": "எழுத்து கடைசியில் இருந்து # வரை", - "TEXT_GET_SUBSTRING_END_LAST": "கடைசி எழுத்து வரை", - "TEXT_CHANGECASE_TOOLTIP": "உரை நகல் எடுத்து பொரிய/சின்ன எழுத்து மாற்றி பின்கொடு.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "பொரிய எழுத்துக்கு மாற்று", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "சின்ன எழுத்துக்கு மாற்று", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "தலைப்பு எழுத்துக்கு மாற்று", - "TEXT_TRIM_TOOLTIP": "உரை நகல் எடுத்து இடைவெளி எழுத்து நீக்கி பின்கொடு.", - "TEXT_TRIM_OPERATOR_BOTH": "இரு பக்கத்திலும் இடைவெளி எழுத்து நேர்த்தி செய்.", - "TEXT_TRIM_OPERATOR_LEFT": "இடது பக்கத்தில் இடைவெளி எழுத்து நேர்த்தி செய்.", - "TEXT_TRIM_OPERATOR_RIGHT": "வலது பக்கத்தில் இடைவெளி எழுத்து நேர்த்தி செய்.", - "TEXT_PRINT_TITLE": "%1 அச்சிடுக", - "TEXT_PRINT_TOOLTIP": "மதிப்பை அச்சிடு", - "TEXT_PROMPT_TYPE_TEXT": "உரை கொண்டு உரை-உள்ளீடு தூண்டுதலை காட்டு", - "TEXT_PROMPT_TYPE_NUMBER": "உரை கொண்டு எண்-உள்ளீடு தூண்டுதலை காட்டு", - "TEXT_PROMPT_TOOLTIP_NUMBER": "எண்-உள்ளீடு தூண்டுதலை காட்டு", - "TEXT_PROMPT_TOOLTIP_TEXT": "உரை-உள்ளீடு தூண்டுதலை காட்டு", - "LISTS_CREATE_EMPTY_TITLE": "காலி பட்டியல் உருவாக்க", - "LISTS_CREATE_EMPTY_TOOLTIP": "காலி பட்டியல் பின்கொடு.", - "LISTS_CREATE_WITH_TOOLTIP": "இவ்வளவு உருப்படிகளை கொண்டு வேண்டுமாலும் ஒரு பட்டியலை உருவாக்கு.", - "LISTS_CREATE_WITH_INPUT_WITH": "வைத்து பட்டியல் உருவாக்க", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "பட்டியல்", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "கட்டளைகளை தொகுப்பு திருத்துதம் செய்", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "பட்டியலில் ஒரு பொருளை சேர்க்க.", - "LISTS_REPEAT_TOOLTIP": "கொடுக்க பட்ட மதிப்பை, கூறியுள்ள தடவைகள் உள்ளவாறு ஒரு பட்டியலை உருவாக்கு", - "LISTS_REPEAT_TITLE": "உருப்படி %1-யை, %2 தடவைகள் உள்ளவாறு ஒரு பட்டியலை உருவாக்கு", - "LISTS_LENGTH_TITLE": "%1 இன் நீளம்", - "LISTS_LENGTH_TOOLTIP": "பட்டியல் நீளம் பின்கொடு", - "LISTS_ISEMPTY_TITLE": "%1 காலியானது", - "LISTS_ISEMPTY_TOOLTIP": "பட்டியல் காலியானது மெய் பின்கொடு,", - "LISTS_INLIST": "பட்டியலில் உள்ள", - "LISTS_INDEX_OF_FIRST": "உரையில் முதல் தோற்ற இடத்தை காட்டு", - "LISTS_INDEX_OF_LAST": "உரையில் கடைசி தோற்ற இடத்தை காட்டு", - "LISTS_INDEX_OF_TOOLTIP": "பட்டியலில் மதிப்பின் முதல், கடைசி தோற்ற இடத்தை பின்கொடு. காணாவிட்டால் %1 பின்கொடு.", - "LISTS_GET_INDEX_GET": "எடு", - "LISTS_GET_INDEX_GET_REMOVE": "பெற்று நீக்குக", - "LISTS_GET_INDEX_REMOVE": "நீக்குக", - "LISTS_GET_INDEX_FROM_END": "கடைசியில் இருந்து #", - "LISTS_GET_INDEX_FIRST": "முதல்", - "LISTS_GET_INDEX_LAST": "கடைசி", - "LISTS_GET_INDEX_RANDOM": "ஏதோ ஒன்று", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 முதல் உருப்படி.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 கடைசி உருப்படி.ி", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "பட்டியலில் இடத்தில் உருப்படி பின்கொடு.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "பட்டியல் முதல் உருப்படியை பின்கொடு,", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "பட்டியல் கடைசி உருப்படியை பின்கொடு,", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "பட்டியல் சீரற்ற உருப்படியை பின்கொடு,", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "பட்டியலில் கேட்ட இடத்தின் உருப்படி நீக்கி பின்கொடு.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "பட்டியல் முதல் உருப்படியை நீக்கியபின் பின்கொடு,", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "பட்டியல் இறுதி உருப்படியை நீக்கியபின் பின்கொடு,", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "பட்டியல் சீரற்ற உருப்படியை நீக்கியபின் பின்கொடு,", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "பட்டியலில் கேட்ட இடத்தின் உருப்படி நீக்கு.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "பட்டியலில் முதல் உருப்படியை நீக்கு", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "பட்டியலில் கடைசி உருப்படியை நீக்கு", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "பட்டியல் சீரற்ற உருப்படியை நீக்கு,", - "LISTS_SET_INDEX_SET": "நியமி", - "LISTS_SET_INDEX_INSERT": "அவ்விடத்தில் நுழை", - "LISTS_SET_INDEX_INPUT_TO": "இதுபொல", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "பட்டியலில் கேட்ட இடத்தில் உருப்படியை வை.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "மதிப்பை பட்டியலில் முதல் உருப்படியில் வை", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "மதிப்பை பட்டியலில் கடைசி உருப்படியில் வை", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "மதிப்பை பட்டியலில் சீரற்ற உருப்படியில் வை", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "பட்டியலில் கேட்ட இடத்தில் உருப்படியை நுழை.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "மதிப்பை பட்டியலின் முதலில் நுழை", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "மதிப்பை பட்டியலின் முடிவில் நுழை", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "மதிப்பை பட்டியலின் சீற்ற இடத்தில் நுழை", - "LISTS_GET_SUBLIST_START_FROM_START": "பகுதி பட்டியலை # இடத்தில் இருந்து கொடு", - "LISTS_GET_SUBLIST_START_FROM_END": "# கடைசியில் இருந்து பகுதி பட்டியலை கொடு", - "LISTS_GET_SUBLIST_START_FIRST": "# முதலில் இருந்து பகுதி பட்டியலை கொடு", - "LISTS_GET_SUBLIST_END_FROM_START": "# வரை", - "LISTS_GET_SUBLIST_END_FROM_END": "முடிவில் இருந்து # வரை", - "LISTS_GET_SUBLIST_END_LAST": "முடிவு வரை", - "LISTS_GET_SUBLIST_TOOLTIP": "குறிப்பட்ட பகுதி பட்டியலின் நகலை கொடு", - "LISTS_SPLIT_LIST_FROM_TEXT": "உரையில் இருந்து பட்டியல் உருவாக்கு", - "LISTS_SPLIT_TEXT_FROM_LIST": "பட்டியலில் இருந்து உரை உருவாக்கு", - "LISTS_SPLIT_WITH_DELIMITER": "தடை எழுத்து", - "LISTS_SPLIT_TOOLTIP_SPLIT": "உரையை வரம்புச் சுட்டி கொண்டு துண்டாக்கு.", - "LISTS_SPLIT_TOOLTIP_JOIN": "வரம்புச் சுட்டியை இடையில் இட்டு, உரைதுண்டுகளை ஒன்று சேர்", - "VARIABLES_GET_TOOLTIP": "இந்த மாறி மதிப்பை பின்கொடு", - "VARIABLES_GET_CREATE_SET": "'%1 நியமி' உருவாக்கு", - "VARIABLES_SET": "நியமி %1 இந்த மாறியிற்கு %2", - "VARIABLES_SET_TOOLTIP": "மாறியின் மதிப்பாய் உள்ளீட்டு மதிப்பை வை.", - "VARIABLES_SET_CREATE_GET": "'எடு %1' உருவாக்கு", - "PROCEDURES_DEFNORETURN_TITLE": "இந்த மாறியிற்கு", - "PROCEDURES_DEFNORETURN_PROCEDURE": "கட்டளைகள் செய்ய (இடம்காட்டி)", - "PROCEDURES_BEFORE_PARAMS": "இத்துடன்", - "PROCEDURES_CALL_BEFORE_PARAMS": "இத்துடன்:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "வெளியீடு இல்லாத ஒரு செயல்பாடு உருவாக்குகிறது", - "PROCEDURES_DEFRETURN_RETURN": "பின்கொடு", - "PROCEDURES_DEFRETURN_TOOLTIP": "வெளியீடு உள்ள ஒரு செயல்பாடு உருவாக்குகிறது", - "PROCEDURES_ALLOW_STATEMENTS": "வாக்குமூலங்களை அனுமதிக்கவும்", - "PROCEDURES_DEF_DUPLICATE_WARNING": "எச்சரிக்கை: இந்த செயற்கூறில் போலியான அளபுருக்கள் உண்டு.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "பயனரின் '%1' செயற்கூற்றை ஓட்டு.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "பயனரின் '%1' செயற்கூற்றை ஓட்டி வரும் வெளியீட்டை பயன்படுத்து.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "உள்ளீடுகள்", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "செயல்கூறுகளின் உள்ளீட்டை சேர், நீக்கு, or மீண்டும் வரிசை செய்.", - "PROCEDURES_MUTATORARG_TITLE": "பெயரை உள்ளிடுக:", - "PROCEDURES_MUTATORARG_TOOLTIP": "செயல்கூறுக்கு ஒரு உள்ளீட்டை சேர்.", - "PROCEDURES_HIGHLIGHT_DEF": "நிரல்பாகத்தை விளக்கமாக காட்டு", - "PROCEDURES_CREATE_DO": "'%1' உருவாக்குக", - "PROCEDURES_IFRETURN_TOOLTIP": "மதிப்பு உண்மையானால், இரண்டாவது மதிப்பை பின்கொடு.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "ஏதாகினும் பகர்க..." -} diff --git a/lib/blockly/msg/json/tcy.json b/lib/blockly/msg/json/tcy.json deleted file mode 100644 index fa1883e..0000000 --- a/lib/blockly/msg/json/tcy.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Vishwanatha Badikana", - "Bharathesha Alasandemajalu", - "Kiranpoojary", - "BHARATHESHA ALASANDEMAJALU", - "Ravi Mundkur" - ] - }, - "VARIABLES_DEFAULT_NAME": "ವಸ್ತು", - "TODAY": "ಇನಿ", - "DUPLICATE_BLOCK": "ನಕಲ್", - "ADD_COMMENT": "ಟಿಪ್ಪಣಿ ಸೇರ್ಸಲೆ", - "REMOVE_COMMENT": "ಟಿಪ್ಪಣಿನ್ ದೆತ್ತ್‌ದ್ ಬುಡ್ಲೆ", - "EXTERNAL_INPUTS": "ಪಿದಯಿದ ಪರಿಪು", - "INLINE_INPUTS": "ಉಳಸಾಲ್‍ದ ಉಳಪರಿಪು", - "DELETE_BLOCK": "ಬ್ಲಾಕ್‍ನ್ ಮಾಜಾವು", - "DELETE_X_BLOCKS": "%1 ಬ್ಲಾಕ್‍ಲೆನ್ ಮಾಜಾವು", - "DELETE_ALL_BLOCKS": "ಮಾತ %1 ಬ್ಲಾಕ್‍ಲೆನ್ ದೆತ್ತ್‌ದ್ ಬುಡೊಡೆ?", - "CLEAN_UP": "ಬ್ಲಾಕ್‍ಲೆನ್ ಸ್ವೊಚ್ಚೊ ಮಲ್ಪುಲೆ", - "COLLAPSE_BLOCK": "ಎಲ್ಯೆ ಮಲ್ತ್‌ದ್ ತಡೆಲೆ", - "COLLAPSE_ALL": "ಮಾತಾ ತಡೆಕ್ಲೆನ ಮಾಹಿತಿನ್ ಎಲ್ಯ ಮಲ್ಪು", - "EXPAND_BLOCK": "ಬ್ಲಾಕ್‍ದ ಮಾಹಿತಿನ್ ಪರಡಾವು", - "EXPAND_ALL": "ಮಾತಾ ತಡೆಕ್ಲೆನ ಮಾಹಿತಿನ್ ಪರಡಾವು", - "DISABLE_BLOCK": "ಬ್ಲಾಕ್‍ನ್ ದೆತ್ತ್‌ಪಾಡ್", - "ENABLE_BLOCK": "ತಡೆನ್ ಸಕ್ರಿಯೊ ಮಲ್ಪು", - "HELP": "ಸಕಾಯೊ", - "UNDO": "ದುಂಬುದಲೆಕೊ", - "REDO": "ಕುಡ ಮಲ್ಪು", - "CHANGE_VALUE_TITLE": "ಮೌಲ್ಯೊನು ಬದಲ್ ಮಲ್ಪು", - "RENAME_VARIABLE": "ವ್ಯತ್ಯಯೊಗು ಕುಡೊರ ಪುದರ್ ದೀಲೆ", - "RENAME_VARIABLE_TITLE": "ಮಾತಾ '%1' ವ್ಯತ್ಯಯೊಲೆನ ಪುದರ್‌ನ್ ನೆಕ್ಕ್ ಬದಲ್ ಮಲ್ಪುಲೆ:", - "NEW_VARIABLE": "ವ್ಯತ್ಯಯೊನು ಉಂಡು ಮಲ್ಪುಲೆ", - "NEW_VARIABLE_TITLE": "ಪೊಸ ವ್ಯತ್ಯಯೊದ ಪುದರ್:", - "VARIABLE_ALREADY_EXISTS": "'%1' ಪನ್ಪಿ ಪುದರ್‌ದ ವ್ಯತ್ಯಯೊ ದುಂಬೆ ಅಸ್ತಿತ್ವೊಡು ಉಂಡು.", - "DELETE_VARIABLE_CONFIRMATION": "'%2' ವ್ಯತ್ಯಯೊದ %1 ಉಪಯೋಗೊಲೆನ್ ಮಾಜಾವೊಡೆ?", - "DELETE_VARIABLE": "'%1' ವ್ಯತ್ಯಯೊನು ಮಾಜಾಲೆ", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/ಬಣ್ಣೊ", - "COLOUR_PICKER_TOOLTIP": "ಬಣ್ಣೊ ಪಟೊಡ್ದು ಒಂಜಿ ಬಣ್ಣೊನು ಆಯ್ಕೆ ಮಲ್ಪುಲೆ.", - "COLOUR_RANDOM_TITLE": "ಒವ್ವೇ ಒಂಜಿ ಬಣ್ಣೊ", - "COLOUR_RANDOM_TOOLTIP": "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಬಣ್ಣೊನು ಆಯ್ಕೆ ಮಲ್ಪುಲೆ", - "COLOUR_RGB_TITLE": "ಬಣ್ಣೊದ", - "COLOUR_RGB_RED": "ಕೆಂಪು", - "COLOUR_RGB_GREEN": "ಪಚ್ಚೆ", - "COLOUR_RGB_BLUE": "ನೀಲಿ", - "COLOUR_RGB_TOOLTIP": "ತೊಜಪಾಯಿನ ಪ್ರಮಾಣೊದ ಕೆಂಪು, ಪಚ್ಚೆ ಬೊಕ್ಕ ನೀಲಿ ಬಣ್ಣೊಡ್ದು ಒಂಜಿ ಬಣ್ಣೊನು ಉಂಡು ಮಲ್ಪುಲೆ. ಮಾತಾ ಮೌಲ್ಯೊಲು 0 ಬುಕ್ಕೊ 100 ತ ನಡುಟೆ ಇಪ್ಪೊಡು.", - "COLOUR_BLEND_TITLE": "ಬೆರಕ್ಕೆ ಮಲ್ಪು", - "COLOUR_BLEND_COLOUR1": "ಬಣ್ಣೊ ೧(ಒಂಜಿ)", - "COLOUR_BLEND_COLOUR2": "ಬಣ್ಣೊ ೨(ರಡ್ಡ್)", - "COLOUR_BLEND_RATIO": "ಅನುಪಾತೊ", - "COLOUR_BLEND_TOOLTIP": "ಕೊರಿನ ಅನುಪಾತೊಡು (0.0- 1.0) ರಡ್ಡ್ ಬಣ್ಣೊಲೆನ್ ಬೆರಕೆ ಮಲ್ಪುಂಡು.", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": " %1 ಸರ್ತಿ ಕೂಡೊರ ಮಲ್ಪು", - "CONTROLS_REPEAT_INPUT_DO": "ಮಲ್ಪುಲೆ", - "CONTROLS_REPEAT_TOOLTIP": "ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಸ್ತ್ ಸರ್ತಿ ಮಲ್ಪು", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ಉಂದು ನಿಜ ಆಂಡ ಕುಡೊರ ಮಲ್ಪು:", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ಉಂದು ನಿಜ ಆಪಿಲೆಕೊ ಕುಡೊರ ಮಲ್ಪು:", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ಮೌಲ್ಯ ನಿಜ ಆದಿತ್ತ್ಂಡ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪು", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ಮೌಲ್ಯ ತಪ್ಪು ಆದಿತ್ತ್ಂಡ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪು", - "CONTROLS_FOR_TOOLTIP": "ನಿರ್ದಿಸ್ಟೊ ಮದ್ಯಂತರೊದ ಮೂಲಕೊ ದೆತೊಂದು '%1' ವ್ಯತ್ಯಯೊಡ್ ಸುರುತ್ತ ಅಂಕೆಡ್ದ್ ಕಡೆತ್ತ ಅಂಕೆ ಮುಟ್ಟದ ಮೌಲ್ಯೊನು ದೆತ್ತೊನಾವ್ ಬೊಕ್ಕ ನಿಗಂಟ್ ಮಲ್ತಿನ ತಡೆಕ್ಲೆನ್ ಮಲ್ಪು", - "CONTROLS_FOR_TITLE": "%2 ಡ್ದ್ %3 ಮುಟ %4 ಸರ್ತಿ %1 ದ ಒಟ್ಟುಗು ಗೆನ್ಪು", - "CONTROLS_FOREACH_TITLE": "%2 ಪಟ್ಟಿಡ್ ಪ್ರತಿ ಒಂಜಿ ವಿಸಯ %1 ಗ್", - "CONTROLS_FOREACH_TOOLTIP": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಪ್ರತಿ ವಿಸಯೊಗು, '%1' ವ್ಯತ್ಯಾಯೊನು ವಿಸಯೊಗು ಜೋಡಾಲೆ, ಬೊಕ್ಕ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪುಲೆ.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ಲೂಪ್ ಕಡಿಯುನಿ", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ಬೊಕ್ಕದ ಲೂಪ್ ಪುನರಾವರ್ತನೆದೊಟ್ಟುಗು ದುಂಬರಿಲೆ", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ಇತ್ತಿನ ಲೂಪ್‍ಡ್ದ್ ಪದಿಯಿ ಬಲೆ", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "ಈ ಲೂಪುನು ಅರ್ದೊಡೆ ಬುಡುದ್ ಬೊಕ್ಕ ನನತ್ತ ಪುನರಾವರ್ತನೆಗ್ ದುಂಬರಿಲೆ", - "CONTROLS_FLOW_STATEMENTS_WARNING": "ಎಚ್ಚರೊ: ಈ ತಡೆನ್ ಕಾಲಿ ಒಂಜಿ ಲೂಪುದುಲಯಿ ಮಾತ್ರ ಗಳಸೊಲಿ.", - "CONTROLS_IF_TOOLTIP_1": "ಮೌಲ್ಯ ನಿಜ ಆದಿತ್ತ್ಂಡ ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಲ್ಪು", - "CONTROLS_IF_TOOLTIP_2": "ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್‌ಂಡ, ಪಾತೆರೊಲೆನ ಸುರುತ್ತ ತಡೆ ಮಲ್ಪು. ಇಜ್ಜಿಂಡ ಪಾತೆರೊಲೆನ ರಡ್ಡನೆ ತಡೆ ಮಲ್ಪು.", - "CONTROLS_IF_TOOLTIP_3": "ಸುರುತ್ತ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್‌ಂಡ, ಪಾತೆರೊಲೆನ ಸುರುತ್ತ ತಡೆ ಮಲ್ಪು. ಇಜ್ಜಿಂಡ, ರಡ್ಡನೆ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್ಂಡ, ಪಾತೆರೊಲೆನ ರಡ್ಡನೆ ತಡೆ ಮಲ್ಪು.", - "CONTROLS_IF_TOOLTIP_4": "ಸುರುತ್ತ ಮೌಲ್ಯೊ ನಿಜವಾದಿತ್ತ್‌ಂಡ, ಪಾತೆರೊಲೆನ ಸುರುತ್ತ ತಡೆ ಮಲ್ಪು. ಇಜ್ಜಿಂಡ, ರಡ್ಡನೆದ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತ್ಂಡ, ಪಾತೆರೊಲೆನ ರಡ್ಡನೆ ತಡೆ ಮಲ್ಪು. ಒಂಜೇಲೆ ಒವ್ವೇ ಮೌಲ್ಯ ನಿಜವಾದಿತ್ತಿಜಿಂಡ, ಪಾತೆರೊಲೆನ ಕಡೆತ್ತ ತಡೆ ಮಲ್ಪು.", - "CONTROLS_IF_MSG_IF": "ಒಂಜಿ ವೇಲೆ", - "CONTROLS_IF_MSG_ELSEIF": "ಅತ್ತಂಡ", - "CONTROLS_IF_MSG_ELSE": "ಅತ್ತಂಡ", - "CONTROLS_IF_IF_TOOLTIP": "ಸೇರಾವ್, ದೆತ್ತ್‌ ಬುಡು, ಅತ್ತಂಡ ಈ 'ಒಂಜಿ ವೇಲೆ' ತಡೆನ್ ಕುಡ ಸಂರಚಣೆ ಮಲ್ಪೆರೆ ವಿಭಾಗೊಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "'ಒಂಜಿ ವೇಲೆ' ತಡೆಕ್ಕ್ ಒಂಜಿ ಶರ್ತನ್ ಸೇರಾವ್", - "CONTROLS_IF_ELSE_TOOLTIP": "'ಒಂಜಿ ವೇಲೆ' ತಡೆಕ್ಕ್ ಒಂಜಿ ಕಡೆತ್ತ ಮಾತೆನ್ಲಾ-ಪತ್ತ್ (catch-all) ಶರ್ತನ್ ಸೇರಾವ್", - "IOS_OK": "ಸರಿ", - "IOS_CANCEL": "ವಜಾ ಮಲ್ಪುಲೆ", - "IOS_ERROR": "ದೋಷ", - "IOS_PROCEDURES_INPUTS": "ಇನ್‌ಪುಟ್‌ಲು", - "IOS_PROCEDURES_ADD_INPUT": "+ ಇನ್‌ಪುಟ್ ಸೇರಾಲೆ", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "ಹೇಳಿಕೆಗ್ ಅವಕಾಸೊ", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "ಈ ಕಾರ್ಯೊಡು ಡುಪ್ಲಿಕೇಟ್ ಇನ್‌ಪುಟ್ ಉಂಡು.", - "IOS_VARIABLES_ADD_VARIABLE": "+ ವ್ಯತ್ಯಯೊನು ಸೇರಾಲೆ", - "IOS_VARIABLES_ADD_BUTTON": "ಸೇರಾಲೆ", - "IOS_VARIABLES_RENAME_BUTTON": "ಪೊಸ ಪುದರ್", - "IOS_VARIABLES_DELETE_BUTTON": "ಮಾಜಾಲೆ", - "IOS_VARIABLES_VARIABLE_NAME": "ವ್ಯತ್ಯಯೊದ ಪುದರ್", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "ವ್ಯತ್ಯಯೊದ ಪುದರ್‌ನ್ ಖಾಲಿ ಬುಡಿಯೆರೆ ಆಪುಜಿ", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "ರಡ್ದ್ ಇನ್‌ಪುಟ್‌ಲಾ ಸಮ ಇತ್ತ್ಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_COMPARE_TOOLTIP_NEQ": "ರಡ್ದ್ ಇನ್‌ಪುಟ್‌ಲಾ ಸಮ ಅತ್ತಾಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_COMPARE_TOOLTIP_LT": "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಎಲ್ಯ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_COMPARE_TOOLTIP_LTE": "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಎಲ್ಯ ಅತ್ತಂಡ ಅಯಿಕ್ಕ್ ಸಮ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_COMPARE_TOOLTIP_GT": "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಮಲ್ಲ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_COMPARE_TOOLTIP_GTE": "ಸುರುತ್ತ ಇನ್‌ಪುಟ್ ರಡ್ಡನೆ ಇನ್‌ಪುಟ್‌ಡ್ದ್ ಮಲ್ಲ ಅತ್ತಂಡ ಅಯಿಕ್ಕ್ ಸಮ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_OPERATION_TOOLTIP_AND": "ರಡ್ಡ್‌ಲಾ ಇನ್‌ಪುಟ್ ನಿಜ ಆದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು", - "LOGIC_OPERATION_AND": "ಬುಕ್ಕೊ", - "LOGIC_OPERATION_TOOLTIP_OR": "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಇನ್‌ಪುಟ್ ನಿಜ ಆಂಡಲಾ, 'ನಿಜ'ನ್ ಪಿರಕೊರು.", - "LOGIC_OPERATION_OR": "ಅತ್ತಂಡ", - "LOGIC_NEGATE_TITLE": "%1 ಅತ್ತ್", - "LOGIC_NEGATE_TOOLTIP": "ಇನ್‌ಪುಟ್ ಸುಲ್ಲಾದಿತ್ತ್ಂಡ, 'ನಿಜ'ನ್ ಪಿರಕೊರು. ಇನ್‌ಪುಟ್ ನಿಜ ಆದಿತ್ತ್ಂಡ, 'ಸುಲ್ಲು'ನ್ ಪಿರಕೊರು.", - "LOGIC_BOOLEAN_TRUE": "ಸತ್ಯೊ", - "LOGIC_BOOLEAN_FALSE": "ಸುಲ್ಲು", - "LOGIC_BOOLEAN_TOOLTIP": "ಒಂಜೆ ನಿಜ ಅತ್ತಂಡ ಸುಲ್ಲುನ್ ಪಿರಕೊರು", - "LOGIC_NULL": "ಸೊನ್ನೆ", - "LOGIC_NULL_TOOLTIP": "ಸೊನ್ನೆನ್ ಪಿರಕೊರ್ಪುಂಡು", - "LOGIC_TERNARY_CONDITION": "ಪರೀಕ್ಷೆ", - "LOGIC_TERNARY_IF_TRUE": "ಒಂಜಿ ವೇಲೆ ನಿಜ ಆಂಡ", - "LOGIC_TERNARY_IF_FALSE": "ಒಂಜಿ ವೇಲೆ ಸುಲ್ಲಾಂಡ", - "LOGIC_TERNARY_TOOLTIP": "'ಪರೀಕ್ಷೆ'ಡ್ ಶರ್ತನ್ ಸರಿತೂಲೆ. ಶರ್ತ ನಿಜವಾದಿತ್ತ್ಂಡ, 'ಒಂಜಿ ವೇಲೆ ನಿಜ ಆಂಡ' ಮೌಲ್ಯೊನು ಪಿರಕೊರ್ಪುಂಡು; ಇಜ್ಜಿಂಡ 'ಒಂಜಿ ವೇಲೆ ಸುಲ್ಲಾಂಡ' ಮೌಲ್ಯೊನು ಪಿರಕೊರ್ಪುಂಡು.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/ಸಂಖ್ಯೆ", - "MATH_NUMBER_TOOLTIP": "ಅ ನಂಬ್ರೊ", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/ಅಂಕಗಣಿತ", - "MATH_ARITHMETIC_TOOLTIP_ADD": "ರಡ್ಡ್ ಸಂಖ್ಯೆದ ಮೊತ್ತನ್ ಪಿರಕೊರು.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "ರಡ್ಡ ಸ್ಂಖ್ಯೆದ ವ್ಯತ್ಯಾಸೊನು ಪಿರಕೊರು.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "ಸಂಖ್ಯೆದ ಗುಣಲಬ್ಧೊನು ಪಿರಕೊರು.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "ಸಂಖ್ಯೆದ ಭಾಗಲಬ್ದೊನು ಪಿರಕೊರು.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "ಸುರುತ್ತ ಸಂಖ್ಯೆದ ಘಾತೊನು ರಡ್ಡನೆ ಸಂಖ್ಯೆಗ್ ಏರ್ಪಾದ್ ಪಿರಕೊರು.", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ", - "MATH_SINGLE_OP_ROOT": "ವರ್ಗಮೂಲೊ", - "MATH_SINGLE_TOOLTIP_ROOT": "ಸಂಖ್ಯೆದ ವರ್ಗಮೂಲೊನು ಪಿರಕೊರು.", - "MATH_SINGLE_OP_ABSOLUTE": "ಸಂಪೂರ್ನೊ", - "MATH_SINGLE_TOOLTIP_ABS": "ಸಂಖ್ಯೆದ ಸರಿಯಾಯಿನ ಮೌಲ್ಯೊನು ಕೊರು", - "MATH_SINGLE_TOOLTIP_NEG": "ಸಂಖ್ಯೆದ ನಿಷೇಧೊನು ಪಿರಕೊರು", - "MATH_SINGLE_TOOLTIP_LN": "ಸಂಖ್ಯೆದ ಪ್ರಾಕೃತಿಕ ಲಘುಗಣಕನ್ ಪಿರಕೊರು", - "MATH_SINGLE_TOOLTIP_LOG10": "ಸಂಖ್ಯೆದ ದಶಮಾನ ಲಘುಗಣಕನ್ ಪಿರಕೊರು", - "MATH_SINGLE_TOOLTIP_EXP": "ಒಂಜಿ ಸಂಖ್ಯೆದ ಘಾತೊಗು 'e'ನ್ ಪಿರಕೊರು.", - "MATH_SINGLE_TOOLTIP_POW10": "ಒಂಜಿ ಸಂಖ್ಯೆದ ಘಾತೊಗು ೧೦ನ್ ಪಿರಕೊರು", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/ತ್ರಿಕೋನಮಿತಿದ_ಕಾರ್ಯೊಲು", - "MATH_TRIG_TOOLTIP_SIN": "ಒಂಜಿ ಡಿಗ್ರಿದ ಸೈನ್ (sine) ಪಿರಕೊರು (ರೇಡಿಯನ್ ಅತ್ತ್).", - "MATH_TRIG_TOOLTIP_COS": "ಒಂಜಿ ಡಿಗ್ರಿದ ಕೊಸೈನ್ (cosine) ಪಿರಕೊರು (ರೇಡಿಯನ್ ಅತ್ತ್).", - "MATH_TRIG_TOOLTIP_TAN": "ಒಂಜಿ ಡಿಗ್ರಿದ ಟ್ಯಾನ್‌ಜೆಂಟ್ (tangent) ಪಿರಕೊರು (ರೇಡಿಯನ್ ಅತ್ತ್).", - "MATH_TRIG_TOOLTIP_ASIN": "ಒಂಜಿ ಸಂಖ್ಯೆದ ಆರ್ಕ್‌ಸೈನ್ ಪಿರಕೊರು.", - "MATH_TRIG_TOOLTIP_ACOS": "ಒಂಜಿ ಸಂಖ್ಯೆದ ಆರ್ಕ್‌‌ಕೊಸೈನ್ ಪಿರಕೊರು.", - "MATH_TRIG_TOOLTIP_ATAN": "ಒಂಜಿ ಸಂಖ್ಯೆದ ಆರ್ಕ್‌ಟ್ಯಾನ್‌ಜ್ಂಟ್ ಪಿರಕೊರು.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/ಗಣಿತ_ನಿರಂತರ", - "MATH_CONSTANT_TOOLTIP": "ಒಂಜಿ ಸಾಮಾನ್ಯ ಸ್ಥಿರಾಂಕೊನು ಪಿರಕೊರು: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", - "MATH_IS_EVEN": "ಸಮ ಸಂಖ್ಯೆ", - "MATH_IS_ODD": "ಬೆಸ ಸಂಖ್ಯೆ", - "MATH_IS_PRIME": "ಅವಿಭಾಜ್ಯ ಸಂಖ್ಯೆ", - "MATH_IS_WHOLE": "ಪೂರ್ಣ ಸಂಖ್ಯೆ", - "MATH_IS_POSITIVE": "ಧನ ಸಂಖ್ಯೆ", - "MATH_IS_NEGATIVE": "ಋಣ ಸಂಖ್ಯೆ", - "MATH_IS_DIVISIBLE_BY": "ಭಾಗಿಪೊಲಿ", - "MATH_IS_TOOLTIP": "ಒಂಜಿ ಸಂಖ್ಯೆ ಸಮನಾ, ಬೆಸನಾ, ಅವಿಭಾಜ್ಯನಾ, ಪೂರ್ಣನಾ, ಧನನಾ, ಋಣನಾ, ಅತ್ತಂಡ ಅವೆನ್ ಬೇತೆ ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಡ್ದ್ ಭಾಗಿಪೊಲಿಯಾ ಪಂದ್ ಪರೀಕ್ಷೆ ಮಲ್ಪು. ನಿಜ ಅತ್ತಂಡ ಸುಲ್ಲುನು ಪಿರಕೊರ್ಪುಂಡು.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "%1 ನ್ %2 ಟ್ ಬದಲ್ ಮಲ್ಪು", - "MATH_CHANGE_TOOLTIP": "'%1' ವ್ಯತ್ಯಯೊಗು ಒಂಜಿ ಸಂಖ್ಯೆನ್ ಸೇರಾವ್", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/ಪೂರ್ಣಾಂಕೊ", - "MATH_ROUND_TOOLTIP": "ಒಂಜಿ ಸಂಖ್ಯೆನ್ ಮಿತ್ತ್‌ಗ್ ಅತ್ತಂಡ ತಿರ್ತ್‌ಗ್ ರೌಂಡ್ ಮಲ್ಪು", - "MATH_ROUND_OPERATOR_ROUND": "ರೌಂಡ್", - "MATH_ROUND_OPERATOR_ROUNDUP": "ಮಿತ್ತ್‌ಗ್ ರೌಂಡ್", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ತಿರ್ತ್‌ಗ್ ರೌಂಡ್", - "MATH_ONLIST_OPERATOR_SUM": "ಪಟ್ಟಿದ ಮೊತ್ತ", - "MATH_ONLIST_TOOLTIP_SUM": "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಾತಾ ಸಂಖ್ಯೆಲೆನ ಮೊತ್ತನ್ ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_MIN": "ಪಟ್ಟಿಡ್ ಕಿಞ್ಞವ್", - "MATH_ONLIST_TOOLTIP_MIN": "ಪಟ್ಟಿಡುಪ್ಪುನ ಕಿಞ್ಞ ಸಂಕ್ಯೆನ್ ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_MAX": "ಪಟ್ಟಿಡ್ ಮಲ್ಲವ್", - "MATH_ONLIST_TOOLTIP_MAX": "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಲ್ಲ ಸಂಖ್ಯೆನ್ ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_AVERAGE": "ಪಟ್ಟಿದ ಸರಾಸರಿ", - "MATH_ONLIST_TOOLTIP_AVERAGE": "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಾತಾ ಸಂಖ್ಯೆಲೆನ ಸರಾಸರಿನ್ ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_MEDIAN": "ಪಟ್ಟಿದ ನಡುತ್ತವ್", - "MATH_ONLIST_TOOLTIP_MEDIAN": "ಪಟ್ಟಿಡುಪ್ಪುನ ನಡುತ್ತ ಸಂಖ್ಯೆನ್ ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_MODE": "ಪಟ್ಟಿದ ಮಸ್ತ್ ಸಾಮಾನ್ಯ ಮೌಲ್ಯ", - "MATH_ONLIST_TOOLTIP_MODE": "ಪಟ್ಟಿಡುಪ್ಪುನ ಮಸ್ತ್ ಸಾಮಾನ್ಯ ವಿಷಯೊನು ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_STD_DEV": "ಪಟ್ಟಿದ ಪ್ರಮಾಣಿತ ವಿಚಲನ", - "MATH_ONLIST_TOOLTIP_STD_DEV": "ಪಟ್ಟಿದ ಪ್ರಮಾಣಿತ ವಿಚಲನೊನು ಪಿರಕೊರು", - "MATH_ONLIST_OPERATOR_RANDOM": "ಪಟ್ಟಿದ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಷಯ", - "MATH_ONLIST_TOOLTIP_RANDOM": "ಪಟ್ಟಿದ ಒವ್ವಾಂಡಲ ಒಂಜಿ ಅಂಶೊನು ಪಿರಕೊರು.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/ಮೋಡ್ಯುಲೊ_ಒಪರೇಶನ್", - "MATH_MODULO_TITLE": " %1 ÷ %2 ತ ಶೇಷ", - "MATH_MODULO_TOOLTIP": "ರಡ್ಡ್ ಸಂಖ್ಯೆಲೆನ್ ಭಾಗ ಮಲ್ತ್‌ದ್ ಶೇಷೊನು ಪಿರಕೊರು.", - "MATH_CONSTRAIN_TITLE": "%2 ಕಮ್ಮಿ %3 ಜಾಸ್ತಿ %1 ನಿರ್ಬಂಧ ಮಲ್ಪು", - "MATH_CONSTRAIN_TOOLTIP": "ನಿಗದಿತ ಮಿತಿತ ನಡುಟು ಒಂಜಿ ಸಂಖ್ಯೆನ್ ನಿರ್ಬಂಧ ಮಲ್ಪು", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/ರಾಂಡಮ್_ನಂಬರ್_ಜನರೇಶನ್", - "MATH_RANDOM_INT_TITLE": " %1 ಡ್ದ್ %2 ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊ", - "MATH_RANDOM_INT_TOOLTIP": "ರಡ್ಡ್ ನಿಗದಿತ ಮಿತಿತ ನಡುತ್ತ ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊನು ಪಿರಕೊರು", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/ರಾಂಡಮ್_ನಂಬರ್_ಜನರೇಶನ್", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಭಿನ್ನರಾಶಿ", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (ಸೇರ್‌ದ್) ಬೊಕ್ಕ 1.0 (ಸೇರಂದೆ) ನಡುತ ಒವ್ವಾಂಡಲ ಒಂಜಿ ಭಿನ್ನರಾಶಿನ್ ಪಿರಕೊರು.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/ಸ್ಟ್ರಿಂಗ್_(ಕಂಪ್ಯೂಟರ್_ಸೈನ್ಸ್)", - "TEXT_TEXT_TOOLTIP": "ಒಂಜಿ ಅಕ್ಷರೊ, ಪದೊ ಅತ್ತಂಡ ಪಾಟೊದ ಒಂಜಿ ಸಾಲ್", - "TEXT_JOIN_TITLE_CREATEWITH": "ನೆಡ್ದ್ ಪಟ್ಯೊನು ಉಂಡು ಮಲ್ಪು", - "TEXT_JOIN_TOOLTIP": "ಏತಾಂಡಲ ವಿಷಯಲೆನ್ ಒಟ್ಟುಗು ಸೇರಾದ್ ಒಂಜಿ ಪಟ್ಯೊದ ತುಂಡುನು ಉಂಡುಮಲ್ಪು.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "ಸೇರಾವ್", - "TEXT_CREATE_JOIN_TOOLTIP": "ಈ ಪಠ್ಯ ತಡೆನ್ ಕುಡ ಸಂರಚಣೆ ಮಲ್ಪೆರೆ, ಸೇರಾವ್, ದೆತ್ತ್ ಬುಡು, ಅತ್ತಂಡ ವಿಭಾಗೊಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪು.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "ಪಟ್ಯೊಗು ಒಂಜಿ ವಿಷಯೊನು ಸೇರಾವ್", - "TEXT_APPEND_TITLE": "ಇಂದೆಕ್ %1 ಪಟ್ಯೊನು ಸೇರವೆ %2", - "TEXT_APPEND_TOOLTIP": "%1 ವ್ಯತ್ಯಯೊಗು ಕೆಲವು ಪಟ್ಯೊಲೆನ್ ಸೇರಾವ್", - "TEXT_LENGTH_TITLE": "%1 ಉದ್ದೊ", - "TEXT_LENGTH_TOOLTIP": "ಕೊರಿನ ಪಟ್ಯೊದ ಅಕ್ಷರೊಲೆನ (ಅಂತರೊಲು ಸೇರ್‌ದ್) ಸಂಖ್ಯೆನ್ ಪಿರಕೊರು.", - "TEXT_ISEMPTY_TITLE": "%1 ಖಾಲಿ", - "TEXT_ISEMPTY_TOOLTIP": "ಕೊರಿನ ಪಟ್ಯೊ ಖಾಲಿ ಇತ್ತ್ಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು.", - "TEXT_INDEXOF_TOOLTIP": "ರಡ್ಡನೆ ಪಟ್ಯೊಡು ಉಪ್ಪುನ ಸುರುತ ಪಟ್ಯೊ ಸುರುಕ್ಕು/ಅಕೇರಿಗ್ ಬತ್ತಿನೆತ್ತ ಸೂಚಿನ್ ಪಿರಕೊರು. ಪಟ್ಯೊ ತಿಕ್ಕಿಜ್ಜಾಂಡ %1 ನ್ ಪಿರಕೊರು.", - "TEXT_INDEXOF_TITLE": "ಪಟ್ಯೊಡು %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "ಪಟ್ಯೊ ಸುರುಕ್ಕು ಬತ್ತಿನೇನ್ ನಾಡ್", - "TEXT_INDEXOF_OPERATOR_LAST": "ಪಟ್ಯೊ ಅಕೇರಿಗ್ ಬತ್ತಿನೇನ್ ನಾಡ್", - "TEXT_CHARAT_TITLE": "%1 %2 ಪದೊಟ್ಟು", - "TEXT_CHARAT_FROM_START": "ಅಕ್ಸರೊ #ನ್ ದೆತ್ತೊನು", - "TEXT_CHARAT_FROM_END": "ಅಕೇರಿಡ್ದ್ ಅಕ್ಷರೊ #ನ್ ದೆತ್ತೊನು", - "TEXT_CHARAT_FIRST": "ಸುರುತ್ತ ಅಕ್ಷರೊನು ದೆತ್ತೊನು", - "TEXT_CHARAT_LAST": "ಅಕೇರಿದ ಅಕ್ಷರೊನು ದೆತ್ತೊನು", - "TEXT_CHARAT_RANDOM": "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಅಕ್ಷರೊನು ದೆತ್ತೊನು", - "TEXT_CHARAT_TOOLTIP": "ಅಕ್ಷರೊನು ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ಪಿರಕೊರ್ಪುಂಡು.", - "TEXT_GET_SUBSTRING_TOOLTIP": "ಪಟ್ಯೊದ ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಬಾಗೊನು ಪಿರಕೊರ್ಪುಂಡು.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ಪಟ್ಯೊಡು", - "TEXT_GET_SUBSTRING_START_FROM_START": "ಅಕ್ಷರೊ #ಡ್ದು ಉಪವಾಕ್ಯೊ ದೆತ್ತೊನು", - "TEXT_GET_SUBSTRING_START_FROM_END": "ಅಕೇರಿಡ್ದ್ ಅಕ್ಷರೊ #ಡ್ದು ಉಪವಾಕ್ಯೊನು ದೆತ್ತೊನು", - "TEXT_GET_SUBSTRING_START_FIRST": "ಸುರುತ್ತ ಅಕ್ಷರೊ #ಡ್ದು ಉಪವಾಕ್ಯೊನು ದೆತ್ತೊನು", - "TEXT_GET_SUBSTRING_END_FROM_START": "ಅಕ್ಷರೊ #ಗು", - "TEXT_GET_SUBSTRING_END_FROM_END": "ಅಕೇರಿಡ್ದ್ ಅಕ್ಷರೊ #ಗು", - "TEXT_GET_SUBSTRING_END_LAST": "ಅಕೇರಿದ ಅಕ್ಷರೊಗು", - "TEXT_CHANGECASE_TOOLTIP": "ಪಟ್ಯೊದ ಒಂಜಿ ನಕಲ್‍ನ್ ಬೇತೆ ನಮೂನೆಡ್ (case) ಪಿರಕೊರು.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "ಮಲ್ಲ ಅಕ್ಷರೊಗು", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "ಎಲ್ಯ ಅಕ್ಷರೊಗು", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "ತರೆಬರವುದ ಅಕ್ಷರೊಗು", - "TEXT_TRIM_TOOLTIP": "ಒಂಜಿ ಅತ್ತಂಡ ರಡ್ಡ್ ಕೊಡಿಡ್ದ್ ಅಂತರೊಲೆನ್ (space) ದೆತ್ತ್‌ದ್ ಪಟ್ಯೊದ ಪ್ರತಿನ್ ಪಿರಕೊರು.", - "TEXT_TRIM_OPERATOR_BOTH": "ರಡ್ಡ್ ಮೆಯಿತ್ತಲ ಅಂತರೊಲೆನ್ (space) ಕತ್ತೆರ್.", - "TEXT_TRIM_OPERATOR_LEFT": "ಎಡತ್ತ ಮೆಯಿತ್ತ ಅಂತರೊಲೆನ್ (space) ಕತ್ತೆರ್.", - "TEXT_TRIM_OPERATOR_RIGHT": "ಬಲತ್ತ ಮೆಯಿತ್ತ ಅಂತರೊಲೆನ್ (space) ಕತ್ತೆರ್.", - "TEXT_PRINT_TITLE": "%1 ಮುದ್ರಣ", - "TEXT_PRINT_TOOLTIP": "ನಿರ್ದಿಷ್ಟ ಪಟ್ಯೊ, ಸಂಖ್ಯೆ ಅತ್ತಂಡ ಬೇತೆ ಮೌಲ್ಯೊನು ಮುದ್ರಿಪುಲೆ.", - "TEXT_PROMPT_TYPE_TEXT": "ಸಂದೇಶೊದೊಟ್ಟುಗು ಪಟ್ಯೊಗು ಕೇನ್.", - "TEXT_PROMPT_TYPE_NUMBER": "ಸಂದೇಶೊದೊಟ್ಟುಗು ಸಂಕ್ಯೆನ್ ಕೇನ್", - "TEXT_PROMPT_TOOLTIP_NUMBER": "ಒಂಜಿ ಸಂಖ್ಯೆಗ್ ಸದಸ್ಯೆರೆನ್ ಕೇನ್", - "TEXT_PROMPT_TOOLTIP_TEXT": "ಕೆಲವು ಪಟ್ಯೊಗು ಸದಸ್ಯೆರೆನ್ ಕೇನ್.", - "LISTS_CREATE_EMPTY_TITLE": "ಕಾಲಿ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ", - "LISTS_CREATE_EMPTY_TOOLTIP": "ಒಂಜಿ ಪಟ್ಟಿ, ೦ ಉದ್ದೊದ, ಒವ್ವೇ ಮಾಹಿತಿ ದಾಂತಿನ ದಾಖಲೆ ಪಿರಕೊರು.", - "LISTS_CREATE_WITH_TOOLTIP": "ಏತೇ ವಿಸಯೊಲುಪ್ಪುನ ಒಂಜಿ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ", - "LISTS_CREATE_WITH_INPUT_WITH": "ಒಟ್ಟುಗು ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "ಪಟ್ಟಿ", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "ಈ ಪಟ್ಟಿ ತಡೆನ್ ಕುಡ ಸಂರಚನೆ ಮಲ್ಪೆರೆ ಸೇರಾಲೆ, ದೆತ್ತ್ ಬುಡುಲೆ, ಅತ್ತಂಡ ವಿಬಾಗೊಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "ಪಟ್ಟಿಗ್ ಒಂಜಿ ವಿಸಯೊನು ಸೇರಾಲೆ.", - "LISTS_REPEAT_TOOLTIP": "ಕೊರಿನ ಮೌಲ್ಯೊ ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಸಂಕ್ಯೆದಾತ್ ಸರ್ತಿ ಪುನರಾವರ್ತನೆ ಆದುಪ್ಪುನ ಒಂಜಿ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ.", - "LISTS_REPEAT_TITLE": "%1 ವಿಸಯೊ %2 ಸರ್ತಿ ಪುನರಾವರ್ತನೆ ಆದುಪ್ಪುನ ಪಟ್ಟಿನ್ ಉಂಡುಮಲ್ಪುಲೆ.", - "LISTS_LENGTH_TITLE": "%1 ಉದ್ದೊ", - "LISTS_LENGTH_TOOLTIP": "ಪಟ್ಟಿದ ಉದ್ದೊನು ಪಿರಕೊರು.", - "LISTS_ISEMPTY_TITLE": "%1 ಕಾಲಿ", - "LISTS_ISEMPTY_TOOLTIP": "ಪಟ್ಯೊ ಖಾಲಿ ಇತ್ತ್ಂಡ 'ನಿಜ'ನ್ ಪಿರಕೊರು.", - "LISTS_INLIST": "ಪಟ್ಟಿಡ್", - "LISTS_INDEX_OF_FIRST": "ವಿಸಯೊ ಸುರುಕ್ಕು ಬತ್ತಿನೇನ್ ನಾಡ್", - "LISTS_INDEX_OF_LAST": "ವಿಸಯೊ ಅಕೇರಿಗ್ ಬತ್ತಿನೇನ್ ನಾಡ್", - "LISTS_INDEX_OF_TOOLTIP": "ಪಟ್ಟಿಡುಪ್ಪುನ ವಿಸಯೊ ಸುರುಕ್ಕು/ಅಕೇರಿಗ್ ಬತ್ತಿನೆತ್ತ ಸೂಚಿನ್ ಪಿರಕೊರ್ಪುಂಡು. ವಿಸಯೊ ತಿಕ್ಕಿಜ್ಜಾಂಡ %1 ನ್ ಪಿರಕೊರ್ಪುಂಡು.", - "LISTS_GET_INDEX_GET": "ದೆತೊನು", - "LISTS_GET_INDEX_GET_REMOVE": "ದೆತ್ತೊನು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡು", - "LISTS_GET_INDEX_REMOVE": "ದೆಪ್ಪುಲೆ", - "LISTS_GET_INDEX_FROM_END": "ಅಕೇರಿಡ್ದ್ #", - "LISTS_GET_INDEX_FIRST": "ಸುರುತ", - "LISTS_GET_INDEX_LAST": "ಕಡೆತ", - "LISTS_GET_INDEX_RANDOM": "ಗೊತ್ತು ಗುರಿದಾಂತಿನ", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ಸುರುತ ವಿಸಯೊ", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ಅಕೇರಿತ ವಿಸಯೊ", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ಪಿರಕೊರ್ಪುಂಡು ಬೊಕ್ಕ ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ದೆತ್ತ್ ಬುಡ್ಪುಂಡು.", - "LISTS_SET_INDEX_SET": "ಸೆಟ್ ಮಲ್ಪು", - "LISTS_SET_INDEX_INSERT": "ಸೇರಾವ್", - "LISTS_SET_INDEX_INPUT_TO": "ಲೆಕ", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಸುರುತ್ತ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಅಕೇರಿದ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಸಯೊನು ಸೆಟ್ ಮಲ್ಪುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಡ್ ವಿಸಯೊನು ಸೇರಾವುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "ಒಂಜಿ ಪಟ್ಟಿದ ಸುರುಕ್ಕು ವಿಸಯೊನು ಸೇರಾವುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "ಒಂಜಿ ಪಟ್ಟಿದ ಅಕೇರಿಗ್ ವಿಸಯೊನು ಸೇರಾವುಂಡು.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "ಒಂಜಿ ಪಟ್ಟಿಡ್ ಓಲಾಂಡಲ ವಿಸಯೊನು ಸೇರಾವುಂಡು.", - "LISTS_GET_SUBLIST_START_FROM_START": "# ಡ್ದ್ ಉಪ-ಪಟ್ಟಿನ್ ದೆತ್ತೊನು", - "LISTS_GET_SUBLIST_START_FROM_END": "ಅಕೇರಿಡ್ದ್ # ಡ್ದ್ ಉಪ-ಪಟ್ಟಿನ್ ದೆತ್ತೊನು", - "LISTS_GET_SUBLIST_START_FIRST": "ಸುರುಡ್ದು ಉಪ-ಪಟ್ಟಿನ್ ದೆತ್ತೊನು", - "LISTS_GET_SUBLIST_END_FROM_START": "# ಗ್", - "LISTS_GET_SUBLIST_END_FROM_END": "ಅಕೇರಿಡ್ದ್ # ಗ್", - "LISTS_GET_SUBLIST_END_LAST": "ಅಕೇರಿಗ್", - "LISTS_GET_SUBLIST_TOOLTIP": "ಪಟ್ಯೊದ ನಿರ್ದಿಷ್ಟ ಬಾಗೊದ ಪ್ರತಿನ್ ಉಂಡುಮಲ್ಪುಂಡು.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "%1 %2 %3 ಇಂಗಡಿಪು", - "LISTS_SORT_TOOLTIP": "ಒಂಜಿ ಪಟ್ಟಿದ ಒಂಜಿ ಪ್ರತಿನ್ ಇಂಗಡಿಪು", - "LISTS_SORT_ORDER_ASCENDING": "ಏರುನು", - "LISTS_SORT_ORDER_DESCENDING": "ಜಪ್ಪುನು", - "LISTS_SORT_TYPE_NUMERIC": "ಸಂಖ್ಯೆ", - "LISTS_SORT_TYPE_TEXT": "ಅಕ್ಷರೊ", - "LISTS_SORT_TYPE_IGNORECASE": "ಅಕ್ಷರೊ, ನಮೂನೆ (case) ಅಲಕ್ಷ್ಯೊ ಮಲ್ಪುಲೆ", - "LISTS_SPLIT_LIST_FROM_TEXT": "ಪಟ್ಯೊಲೆ ಪಟ್ಟಿನ್ ತಯಾರ್ ಮಲ್ಪುಲೆ", - "LISTS_SPLIT_TEXT_FROM_LIST": "ಪಟ್ಟಿದ ಪಟ್ಯೊನು ತಯಾರ್ ಮಲ್ಪುಲೆ", - "LISTS_SPLIT_WITH_DELIMITER": "ಮಿತಿಸೂಚಕೊದ ಒಟ್ಟುಗು", - "LISTS_SPLIT_TOOLTIP_SPLIT": "ಪಟ್ಯೊಲೆನ್ ಪ್ರತಿ ಮಿತಿಸೂಚಕೊಡು ತುಂಡು ಮಲ್ತ್‌ದ್ ಪಟ್ಯೊಲೆನ ಒಂಜಿ ಪಟ್ಟಿಗ್ ಬಾಗೊ ಮಲ್ಪುಲೆ.", - "LISTS_SPLIT_TOOLTIP_JOIN": "ಪಟ್ಯೊಲೆನ ಒಂಜಿ ಪಟ್ಟಿನ್ ಮಿತಿಸೂಚಕೊದ ಮೂಲಕೊ ಬೇತೆ ಮಲ್ತ್‌ದ್ ಒಂಜಿ ಪಟ್ಯೊಗು ಸೇರಾಲೆ.", - "VARIABLES_GET_TOOLTIP": "ಈ ವ್ಯತ್ಯಯೊದ ಮೌಲ್ಯೊನು ಪಿರಕೊರು.", - "VARIABLES_GET_CREATE_SET": "'ಸೆಟ್ %1' ಉಂಡುಮಲ್ಪುಲೆ", - "VARIABLES_SET": "%1 ನ್ %2 ಕ್ಕ್ ಸೆಟ್ ಮಲ್ಪುಲೆ", - "VARIABLES_SET_TOOLTIP": "ಈ ವ್ಯತ್ಯಯೊನು ಇನ್‌ಪುಟ್‌ಗ್ ಸಮ ಆಪಿಲೆಕ ಸೆಟ್ ಮಲ್ಪುಂಡು.", - "VARIABLES_SET_CREATE_GET": "'ದೆತ್ತೊನು %1' ಉಂಡುಮಲ್ಪುಲೆ", - "PROCEDURES_DEFNORETURN_TITLE": "ಇಂದೆಕ್", - "PROCEDURES_DEFNORETURN_PROCEDURE": "ಎಂಚಿನಾಂಡಲ ಮಲ್ಪುಲೆ", - "PROCEDURES_BEFORE_PARAMS": "ಒಟ್ಟುಗು:", - "PROCEDURES_CALL_BEFORE_PARAMS": "ಒಟ್ಟುಗು:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "ಔಟ್‌ಪುಟ್ ದಾಂತಿನ ಕಾರ್ಯೊನು ಉಂಡುಮಲ್ಪುಂಡು.", - "PROCEDURES_DEFNORETURN_COMMENT": "ಈ ಕಾರ್ಯೊನು ಇವರಿಪುಲೆ...", - "PROCEDURES_DEFRETURN_RETURN": "ಪಿರಕೊರು", - "PROCEDURES_DEFRETURN_TOOLTIP": "ಔಟ್‌ಪುಟ್ ಇತ್ತಿನ ಕಾರ್ಯೊನು ಉಂಡುಮಲ್ಪುಂಡು.", - "PROCEDURES_ALLOW_STATEMENTS": "ಹೇಳಿಕೆಗ್ ಅವಕಾಸೊ", - "PROCEDURES_DEF_DUPLICATE_WARNING": "ಎಚ್ಚರಿಕೆ: ಈ ಕಾರ್ಯೊಡು ನಕಲಿ ಮಾನದಂಡೊ ಉಂಡು.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ", - "PROCEDURES_CALLNORETURN_TOOLTIP": "'%1' ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊನು ನಡಪಾಲೆ.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ", - "PROCEDURES_CALLRETURN_TOOLTIP": " ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊ '%1' ನು ನಡಪಾಲೆ ಬುಕ್ಕೊ ಅಯಿತ ಉತ್ಪಾದನೆನ್ ಗಲಸ್‌ಲೆ.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "ಉಲಪರಿಪು", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "ಸೇರಾಲೆ, ದೆತ್ತ್‌ ಬುಡುಲೆ, ಅತ್ತಂಡ ಈ ಕಾರ್ಯೊಗು ಉಲಪರಿಪುಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ.", - "PROCEDURES_MUTATORARG_TITLE": "ಉಲಪರಿಪುದ ಪುದರ್:", - "PROCEDURES_MUTATORARG_TOOLTIP": "ಕಾರ್ಯೊಗು ಒಂಜಿ ಉಲಪರಿಪುನು ಸೇರಲೆ.", - "PROCEDURES_HIGHLIGHT_DEF": "ದೆರ್ತ್ ತೋಜುನ ಕಾರ್ಯೊದ ವ್ಯಾಕ್ಯಾನೊ", - "PROCEDURES_CREATE_DO": " '%1'ನ್ ಉಂಡುಮಲ್ಪುಲೆ", - "PROCEDURES_IFRETURN_TOOLTIP": "ಮೌಲ್ಯೊ ಸತ್ಯೊ ಆಂಡ, ರಡ್ಡನೆ ಮೌಲ್ಯೊನು ಪಿರಕೊರು.", - "PROCEDURES_IFRETURN_WARNING": "ಎಚ್ಚರಿಕೆ: ಒಂಜಿ ಕಾರ್ಯ ವ್ಯಾಕ್ಯಾನೊದುಲಯಿ ಮಾತ್ರ ಈ ತಡೆನ್ ಗಲಸೊಲಿ." -} diff --git a/lib/blockly/msg/json/te.json b/lib/blockly/msg/json/te.json deleted file mode 100644 index cfd50cc..0000000 --- a/lib/blockly/msg/json/te.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Naidugari Jayanna", - "WP MANIKHANTA", - "Veeven" - ] - }, - "VARIABLES_DEFAULT_NAME": "అంశం", - "TODAY": "నేడు", - "DUPLICATE_BLOCK": "నకలు", - "ADD_COMMENT": "వ్యాఖ్య చేర్చు", - "REMOVE_COMMENT": "వ్యాఖ్యను తొలగించు", - "DELETE_BLOCK": "నిరోదన తొలగించు", - "DELETE_X_BLOCKS": "%1నిరోదనలను తోలగించు", - "DELETE_ALL_BLOCKS": "మెుత్తం %1నిరోదనలను తొలగించు?", - "CLEAN_UP": "నిరోదనలను శుభ్రపరుచు", - "COLLAPSE_BLOCK": "నరోదన కూల్చు", - "COLLAPSE_ALL": "నిరోదనలను కూల్చు", - "EXPAND_BLOCK": "నిరోదన విస్తరించు", - "EXPAND_ALL": "నిరోదనలను విస్తరించు", - "DISABLE_BLOCK": "నిరోదన పని చేయకుండా చేయు", - "ENABLE_BLOCK": "నిరోదన ప్రారంబించు", - "HELP": "సహాయం", - "UNDO": "రద్దుచెయ్యి", - "REDO": "మళ్ళీ చెయ్యి", - "CHANGE_VALUE_TITLE": "విలువ మార్చు", - "RENAME_VARIABLE": "పునఃనామకరణ వ్యత్యాసం...", - "RENAME_VARIABLE_TITLE": "మొత్తం వ్యత్యాసాలను '%1' దీనికి పునఃనామకరణించు:", - "NEW_VARIABLE": "కొత్త వ్యత్యాసం...", - "NEW_VARIABLE_TITLE": "కొత్త వ్యత్యాసం పేరు:", - "COLOUR_PICKER_HELPURL": "https://te.wikipedia.org/wiki/రంగు", - "COLOUR_PICKER_TOOLTIP": "చిత్రకారుడు ఉపయోగించే రంగుల నుండి ఒక దానిని ఎంచుకో.", - "COLOUR_RANDOM_TITLE": "యాదృచ్ఛిక రంగు", - "COLOUR_RANDOM_TOOLTIP": "యాదృచ్ఛికంగా ఒక రంగును ఎంచుకో.", - "COLOUR_RGB_TITLE": "తో రంగు", - "COLOUR_RGB_RED": "ఎరుపు", - "COLOUR_RGB_GREEN": "ఆకుపచ్చ", - "COLOUR_RGB_BLUE": "నీలం", - "COLOUR_RGB_TOOLTIP": "ఎరుపు,పచ్చ మరియు బులుగు రంగులను సమంగా ఉపయోగించి ఒక రంగును సృష్ఠించండి.అన్ని విలువలు 0 నుండి 100 మధ్యలో ఉండాలి.", - "COLOUR_BLEND_TITLE": "మిశ్రమం", - "COLOUR_BLEND_COLOUR1": "రంగు 1", - "COLOUR_BLEND_COLOUR2": "రంగు 2", - "COLOUR_BLEND_RATIO": "నిష్పత్తి", - "COLOUR_BLEND_TOOLTIP": "రెండు రంగులను (0.0 - 1.0) నిష్పత్తిలో మిశ్రమించాలి.", - "CONTROLS_REPEAT_HELPURL": "https://te.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 సార్లు మళ్ళీ కొనసాగించు", - "CONTROLS_REPEAT_INPUT_DO": "చేయు", - "CONTROLS_REPEAT_TOOLTIP": "కొన్ని నివేదికలు లేదా ప్రతిపాదనలు అనేక మార్లు చెయ్యండి.", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "అంతవరకు మళ్ళీ కొనసాగించండి", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ఒక వెల నిజమైనప్పుడు కొన్ని నివేదికలు లేదా ప్రతిపాదనలు చెయ్యండి.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ఒక వె తప్పైనప్పుడు కొన్ని నివేదికలు లేదా ప్రతిపాదనలు చెయ్యండి.", - "CONTROLS_FOR_TITLE": "దీనితో లెక్కించు %1 నుండి %2 వరకు %3 తో %4", - "CONTROLS_FOREACH_TITLE": "ఒక అంశం కోసం %1 జాబితా లో %2", - "CONTROLS_IF_MSG_IF": "అయితే", - "LOGIC_OPERATION_AND": "మరియు", - "LOGIC_OPERATION_OR": "లేదా", - "LOGIC_NEGATE_TITLE": "%1 కాదు", - "LOGIC_BOOLEAN_TRUE": "సత్యం", - "LOGIC_BOOLEAN_FALSE": "అసత్యం", - "LOGIC_NULL": "చెల్లని", - "LOGIC_TERNARY_CONDITION": "పరీక్షించు", - "LOGIC_TERNARY_IF_TRUE": "సత్యమైతే", - "LOGIC_TERNARY_IF_FALSE": "అసత్యమైతే", - "MATH_NUMBER_TOOLTIP": "ఒ సంఖ్య.", - "MATH_ARITHMETIC_HELPURL": "https://te.wikipedia.org/wiki/Arithmetic", - "MATH_ARITHMETIC_TOOLTIP_ADD": "రెండు సంఖ్యల మొత్తానికి తిరిగి వెళ్ళండి.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "రెండు సంఖ్యల తేడాకి తిరిగి వెళ్ళండి", - "MATH_IS_POSITIVE": "అనుకూలంగా ఉంది", - "MATH_IS_NEGATIVE": "ప్రతికూలంగా ఉంది", - "MATH_IS_DIVISIBLE_BY": "దీనితో భాగించబడును", - "MATH_ONLIST_OPERATOR_SUM": "జాబితా మొత్తం", - "MATH_ONLIST_OPERATOR_AVERAGE": "జాబితా సగటు", - "TEXT_CREATE_JOIN_TITLE_JOIN": "చేరు", - "TEXT_LENGTH_TITLE": "%1 పొడువు", - "TEXT_ISEMPTY_TITLE": "% 1 ఖాళీ", - "TEXT_CHARAT_FIRST": "మొదటి వర్ణాన్ని పొందు", - "TEXT_CHARAT_LAST": "చివరి వర్ణాన్ని పొందు", - "TEXT_CHARAT_RANDOM": "యాదృశ్చిక వర్ణాన్ని పొందు", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "జాబితా", - "LISTS_INLIST": "జాబితాలో", - "LISTS_GET_INDEX_GET": "పొందు", - "LISTS_GET_INDEX_GET_REMOVE": "పొందు మరియు తొలగించు", - "LISTS_GET_INDEX_REMOVE": "తొలగించు", - "LISTS_GET_INDEX_FROM_END": "#చివరి నుండి", - "LISTS_GET_INDEX_FIRST": "మొదటి", - "LISTS_GET_INDEX_LAST": "చివరి", - "LISTS_GET_INDEX_RANDOM": "యాదృచ్చిక", - "LISTS_SET_INDEX_INPUT_TO": "గా", - "LISTS_GET_SUBLIST_END_FROM_START": "# కు", - "LISTS_GET_SUBLIST_END_FROM_END": "చివరి నుండి # వరకు", - "LISTS_GET_SUBLIST_END_LAST": "తుదకు", - "PROCEDURES_DEFNORETURN_TITLE": "కు", - "PROCEDURES_DEFNORETURN_PROCEDURE": "ఏదో ఒకటి చేయి", - "PROCEDURES_BEFORE_PARAMS": "తో:", - "PROCEDURES_CALL_BEFORE_PARAMS": "తో:", - "PROCEDURES_DEFRETURN_RETURN": "తిరిగి వెళ్ళు" -} diff --git a/lib/blockly/msg/json/th.json b/lib/blockly/msg/json/th.json deleted file mode 100644 index 9008e42..0000000 --- a/lib/blockly/msg/json/th.json +++ /dev/null @@ -1,348 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Azpirin", - "Octahedron80", - "Horus", - "Roysheng", - "Aefgh39622", - "Nantapat", - "Trisorn Triboon", - "Karit" - ] - }, - "VARIABLES_DEFAULT_NAME": "รายการ", - "TODAY": "วันนี้", - "DUPLICATE_BLOCK": "ทำสำเนา", - "ADD_COMMENT": "ใส่คำอธิบาย", - "REMOVE_COMMENT": "เอาคำอธิบายออก", - "DUPLICATE_COMMENT": "ทำสำเนาความเห็น", - "EXTERNAL_INPUTS": "อินพุตภายนอก", - "INLINE_INPUTS": "อินพุตในบรรทัด", - "DELETE_BLOCK": "ลบบล็อก", - "DELETE_X_BLOCKS": "ลบ %1 บล็อก", - "DELETE_ALL_BLOCKS": "ลบ %1 บล็อกทั้งหมด?", - "CLEAN_UP": "จัดเรียงบล็อกให้เป็นแถว", - "COLLAPSE_BLOCK": "ย่อบล็อก", - "COLLAPSE_ALL": "ย่อบล็อก", - "EXPAND_BLOCK": "ขยายบล็อก", - "EXPAND_ALL": "ขยายบล็อก", - "DISABLE_BLOCK": "ปิดใช้งานบล็อก", - "ENABLE_BLOCK": "เปิดใช้งานบล็อก", - "HELP": "ช่วยเหลือ", - "UNDO": "ย้อนกลับ", - "REDO": "ทำซ้ำ", - "CHANGE_VALUE_TITLE": "เปลี่ยนค่า:", - "RENAME_VARIABLE": "เปลี่ยนชื่อตัวแปร...", - "RENAME_VARIABLE_TITLE": "เปลี่ยนชื่อตัวแปร '%1' ทั้งหมดเป็น:", - "NEW_VARIABLE": "สร้างตัวแปร...", - "NEW_STRING_VARIABLE": "สร้างตัวแปร string", - "NEW_NUMBER_VARIABLE": "สร้างตัวแปรจำนวน", - "NEW_COLOUR_VARIABLE": "สร้างตัวแปรสี", - "NEW_VARIABLE_TYPE_TITLE": "ชนิดตัวแปรใหม่", - "NEW_VARIABLE_TITLE": "ชื่อตัวแปรใหม่:", - "VARIABLE_ALREADY_EXISTS": "มีตัวแปรชื่อ '%1' อยู่แล้ว", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "ตัวแปรชื่อ '%1' มีอยู่แล้วสำหรับตัวแปรอื่นของชนิด: '%2'", - "DELETE_VARIABLE_CONFIRMATION": "ลบการใช้ตัวแปร %2 %1 ครั้งหรือไม่", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "ไม่สามารถลบตัวแปร '%1' ได้เนื่องจากเป็นส่วนหนึ่งของนิยามของฟังก์ชัน '%2'", - "DELETE_VARIABLE": "ลบตัวแปร '%1'", - "COLOUR_PICKER_HELPURL": "https://th.wikipedia.org/wiki/สี", - "COLOUR_PICKER_TOOLTIP": "เลือกสีจากจานสี", - "COLOUR_RANDOM_TITLE": "สุ่มสี", - "COLOUR_RANDOM_TOOLTIP": "เลือกสีแบบสุ่ม", - "COLOUR_RGB_TITLE": "สีที่ประกอบด้วย", - "COLOUR_RGB_RED": "ค่าสีแดง", - "COLOUR_RGB_GREEN": "ค่าสีเขียว", - "COLOUR_RGB_BLUE": "ค่าสีน้ำเงิน", - "COLOUR_RGB_TOOLTIP": "สร้างสีด้วยการกำหนดค่าสีแดง เขียว และน้ำเงิน ค่าทั้งหมดต้องอยู่ระหว่าง 0 ถึง 100", - "COLOUR_BLEND_TITLE": "ผสม", - "COLOUR_BLEND_COLOUR1": "สีที่ 1", - "COLOUR_BLEND_COLOUR2": "สีที่ 2", - "COLOUR_BLEND_RATIO": "อัตราส่วน", - "COLOUR_BLEND_TOOLTIP": "ผสมสองสีเข้าด้วยกันด้วยอัตราส่วน (0.0 - 1.0)", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "ทำซ้ำ %1 ครั้ง", - "CONTROLS_REPEAT_INPUT_DO": "ทำ", - "CONTROLS_REPEAT_TOOLTIP": "ทำซ้ำบางคำสั่งหลายครั้ง", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ทำซ้ำขณะที่", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ทำซ้ำจนกระทั่ง", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ขณะที่ค่าเป็นจริง ก็จะทำบางคำสั่ง", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ขณะที่ค่าเป็นเท็จ ก็จะทำบางคำสั่ง", - "CONTROLS_FOR_TOOLTIP": "ตัวแปร '%1' จะเริ่มจากจำนวนเริ่มต้น ไปจนถึงจำนวนสุดท้าย ตามระยะที่กำหนด และ ทำบล็อกที่กำหนดไว้", - "CONTROLS_FOR_TITLE": "นับด้วย %1 จาก %2 จนถึง %3 เปลี่ยนค่าทีละ %4", - "CONTROLS_FOREACH_TITLE": "จากทุกรายการ %1 ในรายชื่อ %2", - "CONTROLS_FOREACH_TOOLTIP": "จากทุกรายการในรายชื่อ ตั้งค่าตัวแปร \"%1\" เป็นรายการ และทำตามคำสั่งที่กำหนดไว้", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ออกจากการวนซ้ำ", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "เริ่มการวนซ้ำรอบต่อไป", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ออกจากการวนซ้ำที่อยู่", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "ข้ามคำสั่งที่เหลืออยู่ และเริ่มต้นวนซ้ำรอบต่อไป", - "CONTROLS_FLOW_STATEMENTS_WARNING": "คำเตือน: บล็อกนี้ใช้งานได้ภายในการวนซ้ำเท่านั้น", - "CONTROLS_IF_TOOLTIP_1": "ถ้าเงื่อนไขเป็นจริง ก็จะ \"ทำ\" ตามที่กำหนด", - "CONTROLS_IF_TOOLTIP_2": "ถ้าเงื่อนไขเป็นจริง ก็จะ \"ทำ\" ตามที่กำหนด แต่ถ้าเงื่อนไขเป็นเท็จก็จะทำ \"นอกเหนือจากนี้\"", - "CONTROLS_IF_TOOLTIP_3": "ถ้าเงื่อนไขแรกเป็นจริง ก็จะทำตามคำสั่งในบล็อกแรก แต่ถ้าไม่ก็จะไปตรวจเงื่อนไขที่สอง ถ้าเงื่อนไขที่สองเป็นจริง ก็จะทำตามเงื่อนไขในบล็อกที่สองนี้", - "CONTROLS_IF_TOOLTIP_4": "ถ้าเงื่อนไขแรกเป็นจริง ก็จะทำคำสั่งในบล็อกแรก จากนั้นจะข้ามคำสั่งในบล็อกที่เหลือ แต่ถ้าเงื่อนไขแรกเป็นเท็จ ก็จะทำการตรวจเงื่อนไขที่สอง ถ้าเงื่อนไขที่สองเป็นจริง ก็จะทำตามคำสั่งในบล็อกที่สอง จากนั้นจะข้ามคำสั่งในบล็อกที่เหลือ แต่ถ้าทั้งเงื่อนไขแรกและเงื่อนไขที่สองเป็นเท็จทั้งหมด ก็จะมาทำบล็อกที่สาม", - "CONTROLS_IF_MSG_IF": "ถ้า", - "CONTROLS_IF_MSG_ELSEIF": "นอกเหนือจากนี้ ถ้า", - "CONTROLS_IF_MSG_ELSE": "นอกเหนือจากนี้", - "CONTROLS_IF_IF_TOOLTIP": "เพิ่ม ลบ หรือจัดเรียงบล็อก \"ถ้า\" นี้ใหม่", - "CONTROLS_IF_ELSEIF_TOOLTIP": "กำหนดเงื่อนไขของบล็อก \"ถ้า\"", - "CONTROLS_IF_ELSE_TOOLTIP": "เพิ่มสิ่งสุดท้าย ที่จะตรวจจับความเป็นไปได้ทั้งหมดของบล็อก \"ถ้า\"", - "IOS_OK": "ตกลง", - "IOS_CANCEL": "ยกเลิก", - "IOS_ERROR": "ข้อผิดพลาด", - "IOS_PROCEDURES_INPUTS": "อินพุต", - "IOS_PROCEDURES_ADD_INPUT": "+ เพิ่มอินพุต", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "อนุญาตคำสั่ง", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "ฟังก์ชันนี้มีอินพุตที่ซ้ำกัน", - "IOS_VARIABLES_ADD_VARIABLE": "+ เพิ่มตัวแปร", - "IOS_VARIABLES_ADD_BUTTON": "เพิ่ม", - "IOS_VARIABLES_RENAME_BUTTON": "เปลี่ยนชื่อ", - "IOS_VARIABLES_DELETE_BUTTON": "ลบ", - "IOS_VARIABLES_VARIABLE_NAME": "ชื่อตัวแปร", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "คุณไม่สามารถใช้ชื่อตัวแปรที่ว่างเปล่าได้", - "LOGIC_COMPARE_HELPURL": "https://th.wikipedia.org/wiki/อสมการ", - "LOGIC_COMPARE_TOOLTIP_EQ": "คืนค่าเป็น \"จริง\" ถ้าค่าที่ใส่ทั้งสองค่านั้นเท่ากัน", - "LOGIC_COMPARE_TOOLTIP_NEQ": "คืนค่าเป็น \"จริง\" ถ้าค่าที่ใส่ทั้งสองค่านั้นไม่เท่ากัน", - "LOGIC_COMPARE_TOOLTIP_LT": "คืนค่าเป็น \"จริง\" ถ้าค่าแรกน้อยกว่าค่าที่สอง", - "LOGIC_COMPARE_TOOLTIP_LTE": "คืนค่าเป็น \"จริง\" ถ้าค่าแรกน้อยกว่าหรือเท่ากับค่าที่สอง", - "LOGIC_COMPARE_TOOLTIP_GT": "คืนค่าเป็น \"จริง\" ถ้าค่าแรกมากกว่าค่าที่สอง", - "LOGIC_COMPARE_TOOLTIP_GTE": "คืนค่าเป็น \"จริง\" ถ้าค่าแรกมากกว่าหรือเท่ากับค่าที่สอง", - "LOGIC_OPERATION_TOOLTIP_AND": "คืนค่าเป็น \"จริง\" ถ้าค่าทั้งสองค่าเป็นจริง", - "LOGIC_OPERATION_AND": "และ", - "LOGIC_OPERATION_TOOLTIP_OR": "คืนค่าเป็น \"จริง\" ถ้ามีอย่างน้อยหนึ่งค่าที่เป็นจริง", - "LOGIC_OPERATION_OR": "หรือ", - "LOGIC_NEGATE_TITLE": "ไม่ %1", - "LOGIC_NEGATE_TOOLTIP": "คืนค่าเป็น \"จริง\" ถ้าค่าที่ใส่เป็นเท็จ คืนค่าเป็น \"เท็จ\" ถ้าค่าที่ใส่เป็นจริง", - "LOGIC_BOOLEAN_TRUE": "จริง", - "LOGIC_BOOLEAN_FALSE": "เท็จ", - "LOGIC_BOOLEAN_TOOLTIP": "คืนค่าเป็นจริงหรือเท็จ", - "LOGIC_NULL": "ไม่กำหนด", - "LOGIC_NULL_TOOLTIP": "คืนค่า \"ไม่กำหนด\"", - "LOGIC_TERNARY_CONDITION": "ทดสอบ", - "LOGIC_TERNARY_IF_TRUE": "ถ้า เป็นจริง", - "LOGIC_TERNARY_IF_FALSE": "ถ้า เป็นเท็จ", - "LOGIC_TERNARY_TOOLTIP": "ตรวจสอบเงื่อนไขใน \"ทดสอบ\" ถ้าเงื่อนไขเป็นจริง จะคืนค่า \"ถ้า เป็นจริง\" ถ้าเงื่อนไขเป็นเท็จ จะคืนค่า \"ถ้า เป็นเท็จ\"", - "MATH_NUMBER_HELPURL": "https://th.wikipedia.org/wiki/จำนวน", - "MATH_NUMBER_TOOLTIP": "จำนวน", - "MATH_ARITHMETIC_HELPURL": "https://th.wikipedia.org/wiki/เลขคณิต", - "MATH_ARITHMETIC_TOOLTIP_ADD": "คืนค่าผลรวมของตัวเลขทั้งสองจำนวน", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "คืนค่าผลต่างของตัวเลขทั้งสองจำนวน", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "คืนค่าผลคูณของตัวเลขทั้งสองจำนวน", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "คืนค่าผลหารของตัวเลขทั้งสองจำนวน", - "MATH_ARITHMETIC_TOOLTIP_POWER": "คืนค่าผลการยกกำลัง โดยตัวเลขแรกเป็นฐาน และตัวเลขที่สองเป็นเลขชี้กำลัง", - "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", - "MATH_SINGLE_OP_ROOT": "รากที่สอง", - "MATH_SINGLE_TOOLTIP_ROOT": "คืนค่ารากที่สองของตัวเลข", - "MATH_SINGLE_OP_ABSOLUTE": "ค่าสัมบูรณ์", - "MATH_SINGLE_TOOLTIP_ABS": "คืนค่าค่าสัมบูรณ์ของตัวเลข", - "MATH_SINGLE_TOOLTIP_NEG": "คืนค่าติดลบของตัวเลข", - "MATH_SINGLE_TOOLTIP_LN": "คืนค่าลอการิทึมธรรมชาติของตัวเลข", - "MATH_SINGLE_TOOLTIP_LOG10": "คืนค่าลอการิทึมฐานสิบของตัวเลข", - "MATH_SINGLE_TOOLTIP_EXP": "คืนค่า e ยกกำลังด้วยตัวเลข", - "MATH_SINGLE_TOOLTIP_POW10": "คืนค่า 10 ยกกำลังด้วยตัวเลข", - "MATH_TRIG_HELPURL": "https://th.wikipedia.org/wiki/ฟังก์ชันตรีโกณมิติ", - "MATH_TRIG_TOOLTIP_SIN": "คืนค่า sine ขององศา (ไม่ใช่เรเดียน)", - "MATH_TRIG_TOOLTIP_COS": "คืนค่า cosine ขององศา (ไม่ใช่เรเดียน)", - "MATH_TRIG_TOOLTIP_TAN": "คืนค่า tangent ขององศา (ไม่ใช่เรเดียน)", - "MATH_TRIG_TOOLTIP_ASIN": "คืนค่า arcsine ของตัวเลข", - "MATH_TRIG_TOOLTIP_ACOS": "คืนค่า arccosine ของตัวเลข", - "MATH_TRIG_TOOLTIP_ATAN": "คืนค่า arctangent ของตัวเลข", - "MATH_CONSTANT_HELPURL": "https://th.wikipedia.org/wiki/ค่าคงตัวทางคณิตศาสตร์", - "MATH_CONSTANT_TOOLTIP": "คืนค่าคงตัวทางคณิตศาสตร์ที่พบบ่อยๆ เช่น π (3.141…), e (2.718…), φ (1.618…), รากที่สอง (1.414…), รากที่ ½ (0.707…), ∞ (อนันต์)", - "MATH_IS_EVEN": "เป็นจำนวนคู่", - "MATH_IS_ODD": "เป็นจำนวนคี่", - "MATH_IS_PRIME": "เป็นจำนวนเฉพาะ", - "MATH_IS_WHOLE": "เป็นเลขจำนวนเต็ม", - "MATH_IS_POSITIVE": "เป็นเลขบวก", - "MATH_IS_NEGATIVE": "เป็นเลขติดลบ", - "MATH_IS_DIVISIBLE_BY": "หารลงตัว", - "MATH_IS_TOOLTIP": "ตรวจว่าตัวเลขเป็นจำนวนคู่ จำนวนคี่ จำนวนเฉพาะ จำนวนเต็ม เลขบวก เลขติดลบ หรือหารด้วยเลขที่กำหนดลงตัวหรือไม่ คืนค่าเป็นจริงหรือเท็จ", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "เปลี่ยนค่า %1 เป็น %2", - "MATH_CHANGE_TOOLTIP": "เพิ่มค่าของตัวแปร \"%1\"", - "MATH_ROUND_HELPURL": "https://th.wikipedia.org/wiki/การปัดเศษ", - "MATH_ROUND_TOOLTIP": "ปัดเศษของตัวเลขขึ้นหรือลง", - "MATH_ROUND_OPERATOR_ROUND": "ปัดเศษ", - "MATH_ROUND_OPERATOR_ROUNDUP": "ปัดเศษขึ้น", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "ปัดเศษลง", - "MATH_ONLIST_OPERATOR_SUM": "ผลรวมของรายการ", - "MATH_ONLIST_TOOLTIP_SUM": "คืนค่าผลรวมของตัวเลขทั้งหมดในรายการ", - "MATH_ONLIST_OPERATOR_MIN": "น้อยที่สุดในรายการ", - "MATH_ONLIST_TOOLTIP_MIN": "คืนค่าตัวเลขที่น้อยที่สุดในรายการ", - "MATH_ONLIST_OPERATOR_MAX": "มากที่สุดในรายการ", - "MATH_ONLIST_TOOLTIP_MAX": "คืนค่าตัวเลขที่มากที่สุดในรายการ", - "MATH_ONLIST_OPERATOR_AVERAGE": "ค่าเฉลี่ยของรายการ", - "MATH_ONLIST_TOOLTIP_AVERAGE": "คืนค่าเฉลี่ยของรายการ", - "MATH_ONLIST_OPERATOR_MEDIAN": "ค่ามัธยฐานของรายการ", - "MATH_ONLIST_TOOLTIP_MEDIAN": "คืนค่ามัธยฐานของรายการ", - "MATH_ONLIST_OPERATOR_MODE": "ฐานนิยมของรายการ", - "MATH_ONLIST_TOOLTIP_MODE": "คืนค่าฐานนิยมของรายการ", - "MATH_ONLIST_OPERATOR_STD_DEV": "ส่วนเบี่ยงเบนมาตรฐานของรายการ", - "MATH_ONLIST_TOOLTIP_STD_DEV": "คืนค่าส่วนเบี่ยงเบนมาตรฐานของรายการ", - "MATH_ONLIST_OPERATOR_RANDOM": "สุ่มรายการ", - "MATH_ONLIST_TOOLTIP_RANDOM": "สุ่มคืนค่าสิ่งที่อยู่ในรายการ", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "เศษของ %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "คืนค่าเศษที่ได้จากการหารของตัวเลขทั้งสองจำนวน", - "MATH_CONSTRAIN_TITLE": "จำกัดค่า %1 ต่ำสุด %2 สูงสุด %3", - "MATH_CONSTRAIN_TOOLTIP": "จำกัดค่าของตัวเลขให้อยู่ในช่วงที่กำหนด", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "สุ่มเลขจำนวนเต็มตั้งแต่ %1 จนถึง %2", - "MATH_RANDOM_INT_TOOLTIP": "สุ่มเลขจำนวนเต็มจากช่วงที่กำหนด", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "สุ่มเลขเศษส่วน", - "MATH_RANDOM_FLOAT_TOOLTIP": "สุ่มเลขเศษส่วน ตั้งแต่ 0.0 แต่ไม่เกิน 1.0", - "MATH_ATAN2_TOOLTIP": "เปลี่ยนอาร์กแทนเจนต์ของชุด (X, Y) จากองศา 180 เป็น -180.", - "TEXT_TEXT_HELPURL": "https://th.wikipedia.org/wiki/สายอักขระ", - "TEXT_TEXT_TOOLTIP": "ตัวหนังสือ คำ หรือข้อความ", - "TEXT_JOIN_TITLE_CREATEWITH": "สร้างข้อความด้วย", - "TEXT_JOIN_TOOLTIP": "สร้างข้อความด้วยการรวมจำนวนของรายการเข้าด้วยกัน", - "TEXT_CREATE_JOIN_TITLE_JOIN": "รวม", - "TEXT_CREATE_JOIN_TOOLTIP": "เพิ่ม ลบ หรือจัดเรียงบล็อกข้อความนี้ใหม่", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "เพิ่มรายการเข้าไปในข้อความ", - "TEXT_APPEND_TITLE": "นำเอา %1 ต่อด้วยข้อความ %2", - "TEXT_APPEND_TOOLTIP": "ต่อข้อความให้ตัวแปร \"%1\"", - "TEXT_LENGTH_TITLE": "ความยาวของ %1", - "TEXT_LENGTH_TOOLTIP": "คืนค่าความยาวของข้อความ (รวมช่องว่าง)", - "TEXT_ISEMPTY_TITLE": "%1 ว่าง", - "TEXT_ISEMPTY_TOOLTIP": "คืนค่าจริง ถ้าข้อความยังว่างเปล่า", - "TEXT_INDEXOF_TOOLTIP": "คืนค่าตำแหน่งที่พบข้อความแรกอยู่ในข้อความที่สอง คืนค่า %1 ถ้าหาไม่พบ", - "TEXT_INDEXOF_TITLE": "ในข้อความ %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "หาข้อความแรกที่พบ", - "TEXT_INDEXOF_OPERATOR_LAST": "หาข้อความสุดท้ายที่พบ", - "TEXT_CHARAT_TITLE": "ในข้อความ %1 %2", - "TEXT_CHARAT_FROM_START": "ดึง ตัวอักษรตัวที่", - "TEXT_CHARAT_FROM_END": "ดึง ตัวอักษรตัวที่ # จากท้าย", - "TEXT_CHARAT_FIRST": "ดึง ตัวอักษรตัวแรก", - "TEXT_CHARAT_LAST": "ดึง ตัวอักษรตัวสุดท้าย", - "TEXT_CHARAT_RANDOM": "ถึงตัวอักษรแบบสุ่ม", - "TEXT_CHARAT_TOOLTIP": "คืนค่าตัวอักษรจากตำแหน่งที่ระบุ", - "TEXT_GET_SUBSTRING_TOOLTIP": "คืนค่าบางส่วนของข้อความ", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ในข้อความ", - "TEXT_GET_SUBSTRING_START_FROM_START": "แยกข้อความย่อยตั้งแต่ ตัวอักษรที่", - "TEXT_GET_SUBSTRING_START_FROM_END": "แยกข้อความย่อยตั้งแต่ ตัวอักษรที่ # จากท้าย", - "TEXT_GET_SUBSTRING_START_FIRST": "แยกข้อความย่อยตั้งแต่ ตัวอักษรแรก", - "TEXT_GET_SUBSTRING_END_FROM_START": "จนถึง ตัวอักษรที่", - "TEXT_GET_SUBSTRING_END_FROM_END": "จนถึง ตัวอักษรที่ # จากท้าย", - "TEXT_GET_SUBSTRING_END_LAST": "จนถึง ตัวอักษรสุดท้าย", - "TEXT_CHANGECASE_TOOLTIP": "คืนค่าสำเนาของข้อความในกรณีต่างๆ", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "เปลี่ยนเป็น ตัวพิมพ์ใหญ่", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "เปลี่ยนเป็น ตัวพิมพ์เล็ก", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "เปลี่ยนเป็น ตัวอักษรแรกเป็นตัวพิมพ์ใหญ่", - "TEXT_TRIM_TOOLTIP": "คืนค่าสำเนาของข้อความที่ลบเอาช่องว่างหน้าและหลังข้อความออกแล้ว", - "TEXT_TRIM_OPERATOR_BOTH": "ลบช่องว่างทั้งสองข้างของ", - "TEXT_TRIM_OPERATOR_LEFT": "ลบช่องว่างด้านหน้าของ", - "TEXT_TRIM_OPERATOR_RIGHT": "ลบช่องว่างข้างท้ายของ", - "TEXT_PRINT_TITLE": "พิมพ์ %1", - "TEXT_PRINT_TOOLTIP": "พิมพ์ข้อความ ตัวเลข หรือค่าอื่นๆ", - "TEXT_PROMPT_TYPE_TEXT": "แสดงหน้าต่างข้อความ", - "TEXT_PROMPT_TYPE_NUMBER": "แสดงหน้าต่างตัวเลข", - "TEXT_PROMPT_TOOLTIP_NUMBER": "แสดงหน้าต่างให้ผู้ใช้ใส่ตัวเลข", - "TEXT_PROMPT_TOOLTIP_TEXT": "แสดงหน้าต่างให้ผู้ใช้ใส่ข้อความ", - "TEXT_COUNT_MESSAGE0": "นับ %1 ภายใน %2", - "TEXT_COUNT_TOOLTIP": "นับจำนวนข้อความแรกที่พบอยู่ในข้อความที่สอง", - "TEXT_REPLACE_MESSAGE0": "แทนที่ %1 ด้วย %2 ใน %3", - "TEXT_REPLACE_TOOLTIP": "แทนที่ข้อความแรกทั้งหมดที่พบในข้อความที่สอง", - "TEXT_REVERSE_MESSAGE0": "เรียง %1 แบบย้อนกลับ", - "TEXT_REVERSE_TOOLTIP": "เรียงตัวอักษรทั้งหมดของข้อความแบบย้อนกลับ", - "LISTS_CREATE_EMPTY_TITLE": "สร้างรายการเปล่า", - "LISTS_CREATE_EMPTY_TOOLTIP": "สร้างรายการเปล่า (ความยาวเป็น 0) ยังไม่มีข้อมูลใดๆ อยู่", - "LISTS_CREATE_WITH_TOOLTIP": "สร้างรายการพร้อมด้วยไอเท็ม", - "LISTS_CREATE_WITH_INPUT_WITH": "สร้างข้อความด้วย", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "รายการ", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "เพิ่ม ลบ หรือจัดเรียงบล็อกรายการนี้ใหม่", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "เพิ่มไอเท็มเข้าไปในรายการ", - "LISTS_REPEAT_TOOLTIP": "สร้างรายการที่ประกอบด้วยค่าตามที่ระบุในจำนวนตามที่ต้องการ", - "LISTS_REPEAT_TITLE": "สร้างรายการที่มีไอเท็ม %1 จำนวน %2", - "LISTS_LENGTH_TITLE": "ความยาวของ %1", - "LISTS_LENGTH_TOOLTIP": "ส่งคืนค่าความยาวของรายการ", - "LISTS_ISEMPTY_TITLE": "%1 ว่างเปล่า", - "LISTS_ISEMPTY_TOOLTIP": "คืนค่าเป็นจริง ถ้ารายการยังว่างเปล่า", - "LISTS_INLIST": "ในรายการ", - "LISTS_INDEX_OF_FIRST": "หาอันแรกที่พบ", - "LISTS_INDEX_OF_LAST": "หาอันสุดท้ายที่พบ", - "LISTS_INDEX_OF_TOOLTIP": "คืนค่าตำแหน่งของไอเท็มอันแรก/สุดท้ายที่พบในรายการ คืนค่า %1 ถ้าหาไม่พบ", - "LISTS_GET_INDEX_GET": "เรียกดู", - "LISTS_GET_INDEX_GET_REMOVE": "เรียกดูและเอาออก", - "LISTS_GET_INDEX_REMOVE": "เอาออก", - "LISTS_GET_INDEX_FROM_END": "# จากท้าย", - "LISTS_GET_INDEX_FIRST": "แรกสุด", - "LISTS_GET_INDEX_LAST": "ท้ายสุด", - "LISTS_GET_INDEX_RANDOM": "สุ่ม", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 คือไอเท็มอันแรกสุด", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 คือไอเท็มอันท้ายสุด", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "คืนค่าเป็นไอเท็มตามตำแหน่งที่ระบุ", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "คืนค่าไอเท็มอันแรกในรายการ", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "คืนค่าไอเท็มอันสุดท้ายในรายการ", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "คืนค่าไอเท็มแบบสุ่มจากรายการ", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "เอาออก และคืนค่าไอเท็มในตำแหน่งที่ระบุจากรายการ", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "เอาออก และคืนค่าไอเท็มอันแรกในรายการ", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "เอาออก และคืนค่าไอเท็มอันสุดท้ายในรายการ", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "เอาออก และคืนค่าไอเท็มแบบสุ่มจากรายการ", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "คืนค่าเป็นไอเท็มตามตำแหน่งที่ระบุ", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "เอาไอเท็มแรกสุดในรายการออก", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "เอาไอเท็มอันท้ายสุดในรายการออก", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "เอาไอเท็มแบบสุ่มจากรายการออก", - "LISTS_SET_INDEX_SET": "กำหนด", - "LISTS_SET_INDEX_INSERT": "แทรกที่", - "LISTS_SET_INDEX_INPUT_TO": "เป็น", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "กำหนดไอเท็มในตำแหน่งที่ระบุในรายการ", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "กำหนดไอเท็มอันแรกในรายการ", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "กำหนดไอเท็มอันสุดท้ายในรายการ", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "กำหนดไอเท็มแบบสุ่มในรายการ", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "แทรกไอเท็มเข้าไปในตำแหน่งที่กำหนด", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "แทรกไอเท็มเข้าไปเป็นอันแรกสุดของรายการ", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "เพิ่มไอเท็มเข้าไปท้ายสุดของรายการ", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "เพิ่มไอเท็มเข้าไปในรายการแบบสุ่ม", - "LISTS_GET_SUBLIST_START_FROM_START": "ดึงรายการย่อยจาก #", - "LISTS_GET_SUBLIST_START_FROM_END": "ดึงรายการย่อยจาก # จากท้ายสุด", - "LISTS_GET_SUBLIST_START_FIRST": "ดึงรายการย่อยทั้งแต่แรกสุด", - "LISTS_GET_SUBLIST_END_FROM_START": "จนถึง #", - "LISTS_GET_SUBLIST_END_FROM_END": "ถึง # จากท้ายสุด", - "LISTS_GET_SUBLIST_END_LAST": "ถึง ท้ายสุด", - "LISTS_GET_SUBLIST_TOOLTIP": "สร้างสำเนารายการในช่วงที่กำหนด", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "เรียงลำดับ %1 %2 %3", - "LISTS_SORT_TOOLTIP": "เรียงลำดับสำเนาของรายชื่อ", - "LISTS_SORT_ORDER_ASCENDING": "น้อยไปหามาก", - "LISTS_SORT_ORDER_DESCENDING": "มากไปหาน้อย", - "LISTS_SORT_TYPE_NUMERIC": "ตัวเลข", - "LISTS_SORT_TYPE_TEXT": "ตัวอักษร", - "LISTS_SORT_TYPE_IGNORECASE": "ตัวอักษร", - "LISTS_SPLIT_LIST_FROM_TEXT": "สร้างรายการจากข้อความ", - "LISTS_SPLIT_TEXT_FROM_LIST": "สร้างข้อความจากรายการ", - "LISTS_SPLIT_WITH_DELIMITER": "ด้วยตัวคั่น", - "LISTS_SPLIT_TOOLTIP_SPLIT": "แบ่งข้อความเป็นรายการข้อความ แยกแต่ละรายการด้วยตัวคั่น", - "LISTS_SPLIT_TOOLTIP_JOIN": "รวมรายการข้อความเป็นข้อความเดียว แบ่งด้วยตัวคั่น", - "LISTS_REVERSE_MESSAGE0": "เรียง %1 แบบย้อนกลับ", - "LISTS_REVERSE_TOOLTIP": "เรียงลำดับสำเนาของรายชื่อแบบย้อนกลับ", - "VARIABLES_GET_TOOLTIP": "คืนค่าของตัวแปรนี้", - "VARIABLES_GET_CREATE_SET": "สร้าง \"กำหนด %1\"", - "VARIABLES_SET": "กำหนด %1 จนถึง %2", - "VARIABLES_SET_TOOLTIP": "กำหนดให้ตัวแปรนี้เท่ากับการป้อนข้อมูล", - "VARIABLES_SET_CREATE_GET": "สร้าง \"get %1\"", - "PROCEDURES_DEFNORETURN_TITLE": "ถึง", - "PROCEDURES_DEFNORETURN_PROCEDURE": "ทำอะไรบางอย่าง", - "PROCEDURES_BEFORE_PARAMS": "ด้วย:", - "PROCEDURES_CALL_BEFORE_PARAMS": "ด้วย:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "สร้างฟังก์ชันที่ไม่มีผลลัพธ์", - "PROCEDURES_DEFNORETURN_COMMENT": "อธิบายฟังก์ชันนี้", - "PROCEDURES_DEFRETURN_RETURN": "คืนค่า", - "PROCEDURES_DEFRETURN_TOOLTIP": "สร้างฟังก์ชันที่มีผลลัพธ์", - "PROCEDURES_ALLOW_STATEMENTS": "ข้อความที่ใช้ได้", - "PROCEDURES_DEF_DUPLICATE_WARNING": "ระวัง: ฟังก์ชันนี้มีพารามิเตอร์ที่มีชื่อซ้ำกัน", - "PROCEDURES_CALLNORETURN_HELPURL": "https://th.wikipedia.org/wiki/ซับรู้ทีน", - "PROCEDURES_CALLNORETURN_TOOLTIP": "เรียกใช้ฟังก์ชันที่สร้างโดยผู้ใช้ \"%1\"", - "PROCEDURES_CALLRETURN_HELPURL": "https://th.wikipedia.org/wiki/ซับรูทีน", - "PROCEDURES_CALLRETURN_TOOLTIP": "เรียกใช้ฟังก์ชันที่สร้างโดยผู้ใช้ \"%1\" และใช้ผลลัพธ์ของมัน", - "PROCEDURES_MUTATORCONTAINER_TITLE": "นำเข้า", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "เพิ่ม, ลบ, หรือจัดเรียง ข้อมูลที่ป้อนเข้าฟังก์ชันนี้", - "PROCEDURES_MUTATORARG_TITLE": "ชื่อนำเข้า:", - "PROCEDURES_MUTATORARG_TOOLTIP": "เพิ่มค่าป้อนเข้าฟังก์ชัน", - "PROCEDURES_HIGHLIGHT_DEF": "เน้นฟังก์ชันนิยาม", - "PROCEDURES_CREATE_DO": "สร้าง \"%1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "ถ้ามีค่าเป็นจริง ให้คืนค่าที่สอง", - "PROCEDURES_IFRETURN_WARNING": "ระวัง: บล็อกนี้ใช้เฉพาะในการสร้างฟังก์ชันเท่านั้น", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "เขียนอะไรสักอย่าง", - "COLLAPSED_WARNINGS_WARNING": "บล็อกที่ถูกพับมีคำเตือนอยู่ข้างใน." -} diff --git a/lib/blockly/msg/json/tl.json b/lib/blockly/msg/json/tl.json deleted file mode 100644 index fc643d3..0000000 --- a/lib/blockly/msg/json/tl.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "@metadata": { - "authors": [ - "아라" - ] - }, - "DUPLICATE_BLOCK": "Kaparehas", - "ADD_COMMENT": "Dagdag komento", - "EXTERNAL_INPUTS": "Panlabas na Inputs", - "INLINE_INPUTS": "Inline na Inputs", - "DELETE_BLOCK": "burahin ang bloke", - "DELETE_X_BLOCKS": "burahin %1 ng bloke", - "COLLAPSE_BLOCK": "bloke", - "COLLAPSE_ALL": "bloke", - "EXPAND_BLOCK": "Palawakin ang Block", - "EXPAND_ALL": "Palawakin ang Blocks", - "DISABLE_BLOCK": "Ipangwalang bisa ang Block", - "ENABLE_BLOCK": "Bigyan ng bisa ang Block", - "HELP": "Tulong", - "CHANGE_VALUE_TITLE": "pagbago ng value:", - "COLOUR_PICKER_TOOLTIP": "pagpili ng kulay sa paleta.", - "COLOUR_RANDOM_TITLE": "iba ibang kulay", - "COLOUR_RANDOM_TOOLTIP": "pagpili ng iba't ibang kulay.", - "COLOUR_RGB_TITLE": "kulayan ng", - "COLOUR_RGB_RED": "pula", - "COLOUR_RGB_GREEN": "berde", - "COLOUR_RGB_BLUE": "asul", - "COLOUR_RGB_TOOLTIP": "gumawa ng kulay ng may espisipikong dami ng kulay pula, berde, at asul. lahat ng halaga ay dapat sa pagitan ng 0 at 100.", - "COLOUR_BLEND_TITLE": "halo", - "COLOUR_BLEND_COLOUR1": "kulay 1", - "COLOUR_BLEND_COLOUR2": "kulay 2", - "COLOUR_BLEND_RATIO": "proporsyon", - "COLOUR_BLEND_TOOLTIP": "Paghalo ng dalawang kulay kasama ng ibinigay na proporsyon (0.0 - 1.0).", - "CONTROLS_REPEAT_TITLE": "ulitin %1 beses", - "CONTROLS_REPEAT_INPUT_DO": "gawin", - "CONTROLS_REPEAT_TOOLTIP": "gumawa ng ilang pangungusap ng ilang ulit.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ulitin habang", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ulitin hanggang", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Habang ang value ay true, gagawin ang ibang statements.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Habang ang value ay false, gagawin ang ibang statements.", - "CONTROLS_FOR_TOOLTIP": "Magkaroon ng mga variable na \"%1\" na tanggalin ng mga halaga mula sa simulang numero hanggang sa dulong numero, at bilangin sa pamamagitan ng tinukoy na agwat, at gawin ang mga tinukoy na mga blocks.", - "CONTROLS_FOR_TITLE": "bilangin %1 mula %2 hanggang %3 ng %4", - "CONTROLS_FOREACH_TITLE": "sa bawat bagay %1 sa listahan %2", - "CONTROLS_FOREACH_TOOLTIP": "Para sa bawat item sa isang list, i-set ang variable ng '%1' sa mga item, at pagkatapos ay gumawa ng ilang mga statements.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "putulin ang paulit ulit", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "Magpatuloy sa susunod na pag-ulit ng loop", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Hatiin ang nilalaman ng loop.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Laktawan ang natitirang bahagi ng loop, at magpatuloy sa susunod na pag-ulit.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Babala: Ang block ito ay maaari lamang magamit sa loob ng loop.", - "CONTROLS_IF_TOOLTIP_1": "kung ang value ay true, gagawin ang do statements.", - "CONTROLS_IF_TOOLTIP_2": "Kung ang value ay true, gagawin ang unang block ng do statements. Kung hindi, gagawin ang pangalawang block ng statement.", - "CONTROLS_IF_TOOLTIP_3": "Kung ang unang value ay true, gagawin ang first block ng statement. Kung hindi, kung ang second value ay true, gagawin ang second block ng statement.", - "CONTROLS_IF_TOOLTIP_4": "Kung ang first value ay true, gagawin ang first block ng statement. Kung hindi true ang second value, gagawin ang second block ng statement. Kung wala sa mga values ay true, gagawin ang last block ng statements.", - "CONTROLS_IF_MSG_IF": "kung", - "CONTROLS_IF_IF_TOOLTIP": "Mag Add, remove o kaya mag reorder ng sections para maayos ang if block.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Mag dagdag ng condition sa if block.", - "CONTROLS_IF_ELSE_TOOLTIP": "Mag Add ng final, kunin lahat ng condition sa if block.", - "LOGIC_COMPARE_TOOLTIP_EQ": "Nag babalik ng true kung ang pinasok ay parehong magkatumbas.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Return true if both inputs are not equal to each other.", - "LOGIC_COMPARE_TOOLTIP_LT": "Nag babalik ng true kung ang unang pinasok ay maliit kaysa sa pangalawang pinasok.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Nag babalik ng true kung ang unang pinasok ay maliit sa o katumbas sa pangalawang pinasok.", - "LOGIC_COMPARE_TOOLTIP_GT": "Nagbabalik ng true kung ang unang pinasok ay mas malaki kaysa pangalawang pinasok.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Nag babalik ng true kung ang unang pinasok ay mas malaki or katumbas ng pangalawang pinasok.", - "LOGIC_OPERATION_AND": "at", - "LOGIC_OPERATION_OR": "o", - "LOGIC_BOOLEAN_TRUE": "tama", - "LOGIC_BOOLEAN_FALSE": "mali", - "LOGIC_BOOLEAN_TOOLTIP": "Nag babalik ng true or false.", - "LOGIC_NULL": "blangko", - "LOGIC_TERNARY_IF_TRUE": "kung tama", - "LOGIC_TERNARY_IF_FALSE": "kung mali", - "MATH_IS_POSITIVE": "ay positibo", - "MATH_IS_NEGATIVE": "ay negatibo", - "MATH_CHANGE_TITLE": "baguhin %1 by %2", - "LISTS_CREATE_EMPTY_TITLE": "Gumawa ng walang laman na list", - "LISTS_CREATE_EMPTY_TOOLTIP": "Ibabalik ang list, na may haba na 0, nag lalaman ng walang data records", - "LISTS_CREATE_WITH_TOOLTIP": "Gumawa ng list na may kahit anong number ng items.", - "LISTS_CREATE_WITH_INPUT_WITH": "gumawa ng list kasama", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Magdagdag, mag tanggal or mag ayos ng sections para muling maayos ang listahan ng block.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Mag dagdag ng item sa list.", - "LISTS_REPEAT_TOOLTIP": "Pag gawa ng list na binubuo ng binigay na value at inulit na tinuloy na bilang ng beses.", - "LISTS_REPEAT_TITLE": "pag gawa ng list kasama ng item %1 inuulit %2 beses", - "LISTS_LENGTH_TITLE": "haba ng %1", - "LISTS_LENGTH_TOOLTIP": "Pag balik ng haba ng list.", - "LISTS_ISEMPTY_TITLE": "%1 ay walang laman", - "LISTS_ISEMPTY_TOOLTIP": "Nagbabalik ng true kung ang list ay walang laman.", - "LISTS_INLIST": "sa list", - "LISTS_INDEX_OF_FIRST": "Hanapin ang unang pangyayari ng item", - "LISTS_INDEX_OF_LAST": "hanapin ang huling pangyayari ng item", - "LISTS_INDEX_OF_TOOLTIP": "Pagbalik ng index ng una/huli pangyayari ng item sa list. Pagbalik ng %1 kung ang item ay hindi makita.", - "LISTS_GET_INDEX_GET": "kunin", - "LISTS_GET_INDEX_GET_REMOVE": "kunin at tanggalin", - "LISTS_GET_INDEX_REMOVE": "tanggalin", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# mula katapusan", - "LISTS_GET_INDEX_FIRST": "Una", - "LISTS_GET_INDEX_LAST": "huli", - "LISTS_GET_INDEX_RANDOM": "nang hindi pinipili", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ay ang unang item.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 ay ang huling item.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Ibalik ang item sa itinakdang posisyon sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Ibalik ang unang item sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Ibalik ang huling item sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Nag babalik ng hindi pinipiling item sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Nag tatanggal at nag babalik ng mga items sa tinukoy na posisyon sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Nag tatanggal at nag babalik ng mga unang item sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Nag tatanggal at nag babalik ng huling item sa list.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Nag tatanggal at nag babalik ng mga hindi pinipiling item sa list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Nag tatanggal ng item sa tinukoy na posisyon sa list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Nag tatanggal ng unang item sa list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Nag tatanggal ng huling item sa list.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Nag tatanggal ng item mula sa walang pinipiling list.", - "LISTS_SET_INDEX_INSERT": "isingit sa", - "LISTS_SET_INDEX_INPUT_TO": "gaya ng", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Pag set ng item sa tinukoy na position sa isang list.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Pag set ng unang item sa isang list.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Pag set sa huling item sa isang list.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Pag set ng walang pinipiling item sa isang list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Nag singit ng item sa tinukoy na posistion sa list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Nag singit ng item sa simula ng list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Idagdag ang item sa huli ng isang list.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Isingit ang item ng walang pinipili sa isang list.", - "LISTS_GET_SUBLIST_START_FROM_START": "pag kuha ng sub-list mula #", - "LISTS_GET_SUBLIST_START_FROM_END": "pag kuha ng sub-list mula sa # mula huli", - "LISTS_GET_SUBLIST_START_FIRST": "pag kuha ng sub-list mula sa una", - "LISTS_GET_SUBLIST_END_FROM_START": "mula #", - "LISTS_GET_SUBLIST_END_FROM_END": "mula # hanggang huli", - "LISTS_GET_SUBLIST_END_LAST": "hanggang huli", - "LISTS_GET_SUBLIST_TOOLTIP": "Gumagawa ng kopya ng tinukoy na bahagi ng list." -} diff --git a/lib/blockly/msg/json/tlh.json b/lib/blockly/msg/json/tlh.json deleted file mode 100644 index 4306c45..0000000 --- a/lib/blockly/msg/json/tlh.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "@metadata": { - "author": "Neil Fraser ", - "lastupdated": "2014-03-24 23:00:00.000000", - "locale": "tlh", - "messagedocumentation" : "qqq" - }, - "VARIABLES_DEFAULT_NAME": "Doch", - "TODAY": "DaHjaj", - "DUPLICATE_BLOCK": "velqa' chenmoH", - "ADD_COMMENT": "QInHom chel", - "REMOVE_COMMENT": "QInHom chelHa'", - "EXTERNAL_INPUTS": "Hur rar", - "INLINE_INPUTS": "qoD rar", - "DELETE_BLOCK": "ngogh Qaw'", - "DELETE_X_BLOCKS": "%1 ngoghmey Qaw'", - "DELETE_ALL_BLOCKS": "Hoch %1 ngoghmey Qaw'?", - "CLEAN_UP": "ngoghmeyvaD tlhegh rurmoH", - "COLLAPSE_BLOCK": "ngogh DejmoH", - "COLLAPSE_ALL": "ngoghmey DejmoH", - "EXPAND_BLOCK": "ngogh DejHa'moH", - "EXPAND_ALL": "ngoghmey DejHa'moH", - "DISABLE_BLOCK": "ngogh Qotlh", - "ENABLE_BLOCK": "ngogh QotlhHa'", - "HELP": "QaH", - "UNDO": "vangHa'", - "REDO": "vangqa'", - "CHANGE_VALUE_TITLE": "choH:", - "NEW_VARIABLE": "lIw chu'...", - "NEW_VARIABLE_TITLE": "lIw chu' pong:", - "RENAME_VARIABLE": "lIw pong choH...", - "RENAME_VARIABLE_TITLE": "Hoch \"%1\" lIwmey pongmey choH:", - "COLOUR_RANDOM_TITLE": "rItlh vISaHbe'", - "COLOUR_RGB_TITLE": "rItlh wIv", - "COLOUR_RGB_RED": "'Iw rItlh", - "COLOUR_RGB_GREEN": "tI rItlh", - "COLOUR_RGB_BLUE": "chal rItlh", - "COLOUR_BLEND_TITLE": "DuD", - "COLOUR_BLEND_COLOUR1": "rItlh wa'", - "COLOUR_BLEND_COLOUR2": "rItlh cha'", - "COLOUR_BLEND_RATIO": "'ar", - "CONTROLS_REPEAT_TITLE": "%1-logh qaSmoH", - "CONTROLS_REPEAT_INPUT_DO": "ruch", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "teHtaHvIS qaSmoH", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "teHpa' qaSmoH", - "CONTROLS_FOR_TITLE": "togh %1 mung %2 ghoch %3 Do %4", - "CONTROLS_FOREACH_TITLE": "ngIq Doch %1 ngaSbogh tetlh %2 nuDDI'", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "gho Haw'", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "gho taHqa'", - "CONTROLS_FLOW_STATEMENTS_WARNING": "yIqIm! ghoDaq neH ngoghvam lo'laH vay'.", - "CONTROLS_IF_MSG_IF": "teHchugh", - "CONTROLS_IF_MSG_ELSEIF": "pagh teHchugh", - "CONTROLS_IF_MSG_ELSE": "pagh", - "LOGIC_OPERATION_AND": "'ej", - "LOGIC_OPERATION_OR": "qoj", - "LOGIC_NEGATE_TITLE": "yoymoH %1", - "LOGIC_BOOLEAN_TRUE": "teH", - "LOGIC_BOOLEAN_FALSE": "teHbe'", - "LOGIC_NULL": "paghna'", - "LOGIC_TERNARY_CONDITION": "chov", - "LOGIC_TERNARY_IF_TRUE": "teHchugh", - "LOGIC_TERNARY_IF_FALSE": "teHbe'chugh", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "-", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "×", - "MATH_POWER_SYMBOL": "^", - "MATH_TRIG_SIN": "sin", - "MATH_TRIG_COS": "cos", - "MATH_TRIG_TAN": "tan", - "MATH_TRIG_ASIN": "asin", - "MATH_TRIG_ACOS": "acos", - "MATH_TRIG_ATAN": "atan", - "MATH_SINGLE_OP_ROOT": "cha'DIch wav", - "MATH_SINGLE_OP_ABSOLUTE": "Dung pagh choH", - "MATH_IS_EVEN": "lang'a' mI'", - "MATH_IS_ODD": "ror'a' mI'", - "MATH_IS_PRIME": "potlh'a' mI'", - "MATH_IS_WHOLE": "ngoHlaHbe''a'", - "MATH_IS_POSITIVE": "Dung pagh", - "MATH_IS_NEGATIVE": "bIng pagh", - "MATH_IS_DIVISIBLE_BY": "wav'a'", - "MATH_CHANGE_TITLE": "choH %1 chel %2", - "MATH_ROUND_OPERATOR_ROUND": "ngoH", - "MATH_ROUND_OPERATOR_ROUNDUP": "Dung ngoH", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "bIng ngoH", - "MATH_ONLIST_OPERATOR_SUM": "chelwI' SIm tetlh", - "MATH_ONLIST_OPERATOR_MIN": "machwI''a' SIm tetlh", - "MATH_ONLIST_OPERATOR_MAX": "tInwI''a' SIm tetlh", - "MATH_ONLIST_OPERATOR_AVERAGE": "beQwI' SIm tetlh", - "MATH_ONLIST_OPERATOR_MEDIAN": "beQwI'botlh SIm tetlh", - "MATH_ONLIST_OPERATOR_MODE": "beQwI' motlh SIm tetlh", - "MATH_ONLIST_OPERATOR_STD_DEV": "motlhbe'wI' SIm tetlh", - "MATH_ONLIST_OPERATOR_RANDOM": "SaHbe' SIm tetlh", - "MATH_MODULO_TITLE": "ratlwI' SIm %1 ÷ %2", - "MATH_CONSTRAIN_TITLE": "jon %1 bIng %2 Dung %3", - "MATH_RANDOM_INT_TITLE": "ngoH mI'SaHbe' bIng %1 Dung %2", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "mI'HomSaHbe'", - "TEXT_JOIN_TITLE_CREATEWITH": "ghItlh ghom", - "TEXT_CREATE_JOIN_TITLE_JOIN": "ghom", - "TEXT_APPEND_TITLE": "chel %1 ghItlh %2", - "TEXT_LENGTH_TITLE": "chuq %1", - "TEXT_ISEMPTY_TITLE": "%1 chIm'a'", - "TEXT_INDEXOF_TITLE": "ghItlhDaq %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "ghItlh wa'DIch Sam", - "TEXT_INDEXOF_OPERATOR_LAST": "ghItlh Qav Sam", - "TEXT_CHARAT_INPUT_INTEXT": "ghItlhDaq", - "TEXT_CHARAT_FROM_START": "mu'Hom #", - "TEXT_CHARAT_FROM_END": "mu'Hom # Qav", - "TEXT_CHARAT_FIRST": "mu'Hom wa'DIch", - "TEXT_CHARAT_LAST": "mu'Hom Qav", - "TEXT_CHARAT_RANDOM": "mu'Hom SaHbe'", - "TEXT_CHARAT_TAIL": "Suq", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ghItlhDaq", - "TEXT_GET_SUBSTRING_START_FROM_START": "ghItlhHom moHaq mu'Hom #", - "TEXT_GET_SUBSTRING_START_FROM_END": "ghItlhHom moHaq mu'Hom # Qav", - "TEXT_GET_SUBSTRING_START_FIRST": "ghItlhHom moHaq mu'Hom wa'DIch", - "TEXT_GET_SUBSTRING_END_FROM_START": "mojaq mu'Hom #", - "TEXT_GET_SUBSTRING_END_FROM_END": "mojaq mu'Hom # Qav", - "TEXT_GET_SUBSTRING_END_LAST": "mojaq mu'Hom Qav", - "TEXT_GET_SUBSTRING_TAIL": "Suq", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "tInchoH", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "machchoH", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "DojchoH", - "TEXT_TRIM_OPERATOR_BOTH": "poSnIHlogh pei", - "TEXT_TRIM_OPERATOR_LEFT": "poSlogh pei", - "TEXT_TRIM_OPERATOR_RIGHT": "nIHlogh pei", - "TEXT_PRINT_TITLE": "maq %1", - "TEXT_PROMPT_TYPE_TEXT": "ghItln tlhob 'ej maq", - "TEXT_PROMPT_TYPE_NUMBER": "mI' tlhob 'ej maq", - "LISTS_CREATE_EMPTY_TITLE": "tetlh chIm", - "LISTS_CREATE_WITH_INPUT_WITH": "tetlh ghom", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "tetlh", - "LISTS_REPEAT_TITLE": "tetlh ghom %2 Dochmey %1 pus", - "LISTS_LENGTH_TITLE": "chuq %1", - "LISTS_ISEMPTY_TITLE": "%1 chIm'a'", - "LISTS_INLIST": "tetlhDaq", - "LISTS_INDEX_OF_FIRST": "Doch sam wa'DIch", - "LISTS_INDEX_OF_LAST": "Doch sam Qav", - "LISTS_GET_INDEX_GET": "Suq", - "LISTS_GET_INDEX_GET_REMOVE": "Suq vaj pej", - "LISTS_GET_INDEX_REMOVE": "pej", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# Qav", - "LISTS_GET_INDEX_FIRST": "wa'DIch", - "LISTS_GET_INDEX_LAST": "Qav", - "LISTS_GET_INDEX_RANDOM": "Sahbe'", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_SET_INDEX_SET": "choH", - "LISTS_SET_INDEX_INSERT": "lIH", - "LISTS_SET_INDEX_INPUT_TO": "Dos", - "LISTS_GET_SUBLIST_START_FROM_START": "tetlhHom moHaq #", - "LISTS_GET_SUBLIST_START_FROM_END": "tetlhHom moHaq # Qav", - "LISTS_GET_SUBLIST_START_FIRST": "tetlhHom moHaq wa'DIch", - "LISTS_GET_SUBLIST_END_FROM_START": "mojaQ #", - "LISTS_GET_SUBLIST_END_FROM_END": "mojaQ # Qav", - "LISTS_GET_SUBLIST_END_LAST": "mojaQ Qav", - "LISTS_GET_SUBLIST_TAIL": "Suq", - "LISTS_SPLIT_LIST_FROM_TEXT": "tetlh ghermeH ghItlh wav", - "LISTS_SPLIT_TEXT_FROM_LIST": "ghItlh chenmoHmeH tetlh gherHa'", - "LISTS_SPLIT_WITH_DELIMITER": "rarwI'Hom lo'", - "ORDINAL_NUMBER_SUFFIX": "", - "VARIABLES_GET_CREATE_SET": "chel 'choH %1'", - "VARIABLES_SET": "choH %1 %2", - "VARIABLES_SET_CREATE_GET": "chel 'Suq %1'", - "PROCEDURES_DEFNORETURN_TITLE": "ruch", - "PROCEDURES_DEFNORETURN_PROCEDURE": "mIw", - "PROCEDURES_BEFORE_PARAMS": "qel:", - "PROCEDURES_CALL_BEFORE_PARAMS": "qel:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_COMMENT": "mIw yIDel...", - "PROCEDURES_DEFRETURN_RETURN": "chegh", - "PROCEDURES_ALLOW_STATEMENTS": "mu'tlhegh chaw'", - "PROCEDURES_DEF_DUPLICATE_WARNING": "ghuHmoHna': qelwI' cha'logh chen.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "qelwI'mey", - "PROCEDURES_MUTATORARG_TITLE": "pong:", - "PROCEDURES_HIGHLIGHT_DEF": "mIwna' wew", - "PROCEDURES_CREATE_DO": "chel '%1'", - "PROCEDURES_IFRETURN_WARNING": "ghoHmoHna': ngoghvam ngaSbe' mIwDaq." -} diff --git a/lib/blockly/msg/json/tr.json b/lib/blockly/msg/json/tr.json deleted file mode 100644 index 44eabbd..0000000 --- a/lib/blockly/msg/json/tr.json +++ /dev/null @@ -1,389 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Meelo", - "Joseph", - "WikiBronze", - "Mavrikant", - "아라", - "Watermelon juice", - "Uğurkent", - "McAang", - "Gurkanht", - "HakanIST", - "Imabadplayer", - "Kumkumuk", - "Alpkant", - "Bulgu", - "By erdo can", - "Azerhan Özen", - "Hedda", - "BaRaN6161 TURK" - ] - }, - "VARIABLES_DEFAULT_NAME": "öge", - "UNNAMED_KEY": "isimsiz", - "TODAY": "Bugün", - "DUPLICATE_BLOCK": "Yinelenen", - "ADD_COMMENT": "Yorum Ekle", - "REMOVE_COMMENT": "Yorumu Sil", - "DUPLICATE_COMMENT": "Yinelenen Yorum", - "EXTERNAL_INPUTS": "Harici Girişler", - "INLINE_INPUTS": "Satır içi girdiler", - "DELETE_BLOCK": "Bloğu Sil", - "DELETE_X_BLOCKS": "%1 Bloğu Sil", - "DELETE_ALL_BLOCKS": "Tüm %1 blok silinsin mi?", - "CLEAN_UP": "Blokları temizle", - "COLLAPSE_BLOCK": "Bloğu Daralt", - "COLLAPSE_ALL": "Blokları Daralt", - "EXPAND_BLOCK": "Bloğu Genişlet", - "EXPAND_ALL": "Blokları Genişlet", - "DISABLE_BLOCK": "Bloğu Devre Dışı Bırak", - "ENABLE_BLOCK": "Bloğu Etkinleştir", - "HELP": "Yardım", - "UNDO": "Geri al", - "REDO": "Yinele", - "CHANGE_VALUE_TITLE": "Değeri değiştir:", - "RENAME_VARIABLE": "Değişkeni yeniden adlandır...", - "RENAME_VARIABLE_TITLE": "Tüm '%1' değişkenini yeniden adlandır:", - "NEW_VARIABLE": "Değişken oluştur...", - "NEW_STRING_VARIABLE": "Dizi değişkeni oluştur...", - "NEW_NUMBER_VARIABLE": "Sayı değişkeni oluştur...", - "NEW_COLOUR_VARIABLE": "Renk değişkeni oluştur...", - "NEW_VARIABLE_TYPE_TITLE": "Yeni değişken tipi:", - "NEW_VARIABLE_TITLE": "Yeni değişken ismi :", - "VARIABLE_ALREADY_EXISTS": "'%1' isimli değişken adı zaten var.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%1' isimli değişken '%2' tipli başka bir değişkende tanımlı.", - "DELETE_VARIABLE_CONFIRMATION": "'%2' değişkeninin %1 kullanımını silmek istiyor musunuz?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "'%1' değişkeni, '%2' fonksiyonunun tanımının bir parçası olduğu için silinemez", - "DELETE_VARIABLE": "'%1' değişkenini silmek istiyor musunuz?", - "COLOUR_PICKER_HELPURL": "https://tr.wikipedia.org/wiki/Renk", - "COLOUR_PICKER_TOOLTIP": "Paletten bir renk seç.", - "COLOUR_RANDOM_TITLE": "rastgele renk", - "COLOUR_RANDOM_TOOLTIP": "Rastgele bir renk seç.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "renk değerleri", - "COLOUR_RGB_RED": "kırmızı", - "COLOUR_RGB_GREEN": "yeşil", - "COLOUR_RGB_BLUE": "mavi", - "COLOUR_RGB_TOOLTIP": "Kırmızı, yeşil ve mavinin belirtilen miktarıyla bir renk oluştur. Tüm değerler 0 ile 100 arasında olmalıdır.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "karıştır", - "COLOUR_BLEND_COLOUR1": "1. renk", - "COLOUR_BLEND_COLOUR2": "2. renk", - "COLOUR_BLEND_RATIO": "oran", - "COLOUR_BLEND_TOOLTIP": "Verilen bir orana (0.0 - 1.0) bağlı olarak iki rengi karıştırır.", - "CONTROLS_REPEAT_HELPURL": "https://tr.wikipedia.org/wiki/For_döngüsü", - "CONTROLS_REPEAT_TITLE": "%1 kez tekrarla", - "CONTROLS_REPEAT_INPUT_DO": "yap", - "CONTROLS_REPEAT_TOOLTIP": "Bazı işlemleri birkaç kez yap.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "tekrar ederken", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "kadar tekrarla", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Bir değer doğru olduğunda bazı beyanlarda bulun.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Bir değer yanlış olduğunda bazı beyanlarda bulun.", - "CONTROLS_FOR_TOOLTIP": "Başlangıç sayısından bitiş sayısına kadar belirtilen aralık ve belirtilen engeller ile devam eden değerler alan '%1' değişkeni oluştur.", - "CONTROLS_FOR_TITLE": "ile sayılır %1 %2 den %3 ye, her adımda %4 değişim", - "CONTROLS_FOREACH_TITLE": "her öğe için %1 listede %2", - "CONTROLS_FOREACH_TOOLTIP": "Bir listedeki her öğe için '%1' değişkenini maddeye atayın ve bundan sonra bazı açıklamalar yapın.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "döngüden çık", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "döngünün sonraki adımından devam et", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "İçeren döngüden çık.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Bu döngünün geri kalanını atlayın ve sonraki adım ile devam edin.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Uyarı: Bu blok sadece bir döngü içinde kullanılabilir.", - "CONTROLS_IF_TOOLTIP_1": "Eğer değişken true , yani gerçekleşmiş ise , ardından gelen işlemi yerine getir .", - "CONTROLS_IF_TOOLTIP_2": "Eğer değişken true, yani gerçekleşiyor ise ilk blok'taki işlemleri yerine getir, Aksi halde ikinci blok'taki işlemleri yerine getir.", - "CONTROLS_IF_TOOLTIP_3": "Eğer ilk değişken true, yani koşul gerçekleşmiş ise ilk blok içerisindeki işlem(ler)i gerçekleştir. Eğer ikinci değişken true ise, ikinci bloktaki işlem(ler)i gerçekleştir .", - "CONTROLS_IF_TOOLTIP_4": "Eğer ilk değer true, yani olumlu ise, ilk blok'taki işlem(ler)i gerçekleştir. İlk değer true değil ama ikinci değer true ise, ikinci bloktaki işlem(ler)i gerçekleştir. Eğer değerlerin hiçbiri true değil ise son blok'taki işlem(ler)i gerçekleştir.", - "CONTROLS_IF_MSG_IF": "eğer", - "CONTROLS_IF_MSG_ELSEIF": "değilse eğer", - "CONTROLS_IF_MSG_ELSE": "değilse", - "CONTROLS_IF_IF_TOOLTIP": "If bloğuna ekle, kaldır veya yeniden düzenleme yap.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "If bloğuna bir koşul ekleyin.", - "CONTROLS_IF_ELSE_TOOLTIP": "If bloğuna kalan durumları \"yakalayan\" bir son ekle.", - "IOS_OK": "OK", - "IOS_CANCEL": "İptal", - "IOS_ERROR": "Hata", - "IOS_PROCEDURES_INPUTS": "GİRDİLER", - "IOS_PROCEDURES_ADD_INPUT": "+ Giriş Ekle", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Açıklamalara izin ver", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Bu fonksiyonda mükerrer girdi tanımlı.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Değişkeni ekle", - "IOS_VARIABLES_ADD_BUTTON": "Ekle", - "IOS_VARIABLES_RENAME_BUTTON": "Yeniden adlandır", - "IOS_VARIABLES_DELETE_BUTTON": "Sil", - "IOS_VARIABLES_VARIABLE_NAME": "Değişken adı", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Değişken adı kısmı boş bırakılamaz.", - "LOGIC_COMPARE_HELPURL": "https://tr.wikipedia.org/wiki/E%C5%9Fitsizlikler", - "LOGIC_COMPARE_TOOLTIP_EQ": "Girilen iki değer birbirine eşitse \"True\" değerini verir.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Girilen iki değerde birbirine eşit değilse \"True\" değerini verir.", - "LOGIC_COMPARE_TOOLTIP_LT": "Girilen ilk değer ikinci değerden küçükse \"True\" değerini verir.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Girilen ilk değer ikinci değerden küçük veya eşitse \"True\" değerini verir.", - "LOGIC_COMPARE_TOOLTIP_GT": "Girilen ilk değer ikinci değerden daha büyükse \"True\" değerini verir.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Girilen ilk değer ikinci değerden büyük veya eşitse \"True\" değerini verir.", - "LOGIC_OPERATION_TOOLTIP_AND": "Girilen iki değerde doğruysa \"True\" değerini verir.", - "LOGIC_OPERATION_AND": "ve", - "LOGIC_OPERATION_TOOLTIP_OR": "Girilen iki değerden en az biri doğruysa \"True\" değerini verir.", - "LOGIC_OPERATION_OR": "veya", - "LOGIC_NEGATE_TITLE": "%1 değil", - "LOGIC_NEGATE_TOOLTIP": "Girilen değer yanlışsa \"True\" değerini verir.Girilen değer doğruysa \"False\" değerini verir.", - "LOGIC_BOOLEAN_TRUE": "Olumlu", - "LOGIC_BOOLEAN_FALSE": "false = Olumsuz", - "LOGIC_BOOLEAN_TOOLTIP": "Ya 'True' yada 'False' değerini verir.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "sıfır", - "LOGIC_NULL_TOOLTIP": "sıfır verir.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "test", - "LOGIC_TERNARY_IF_TRUE": "doğru ise", - "LOGIC_TERNARY_IF_FALSE": "yanlış ise", - "LOGIC_TERNARY_TOOLTIP": "'test'deki şartı test eder. Eğer şart doğru ise 'doğru' değeri döndürür, aksi halde 'yanlış' değeri döndürür.", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "Bir sayı.", - "MATH_ADDITION_SYMBOL": "+", - "MATH_SUBTRACTION_SYMBOL": "tire", - "MATH_DIVISION_SYMBOL": "÷", - "MATH_MULTIPLICATION_SYMBOL": "x", - "MATH_POWER_SYMBOL": "üst alma", - "MATH_TRIG_SIN": "Sinüs", - "MATH_TRIG_COS": "kosünüs", - "MATH_TRIG_TAN": "tanjant", - "MATH_TRIG_ASIN": "asinüs", - "MATH_TRIG_ACOS": "akosünüs", - "MATH_TRIG_ATAN": "atanjant", - "MATH_ARITHMETIC_HELPURL": "https://tr.wikipedia.org/wiki/Aritmetik", - "MATH_ARITHMETIC_TOOLTIP_ADD": "İki rakamın toplamını döndür.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "İki sayını farkını döndür.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "İki sayının çarpımını döndür.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "İki sayının bölümünü döndür.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "İlk sayinin ikincinin kuvvetine yükseltilmişini döndür.", - "MATH_SINGLE_HELPURL": "https://tr.wikipedia.org/wiki/Karek%C3%B6k", - "MATH_SINGLE_OP_ROOT": "Kare kök", - "MATH_SINGLE_TOOLTIP_ROOT": "Bir sayının karekökü nü döndür .", - "MATH_SINGLE_OP_ABSOLUTE": "Kesin", - "MATH_SINGLE_TOOLTIP_ABS": "Bir sayının tam değerini döndür .", - "MATH_SINGLE_TOOLTIP_NEG": "Bir sayıyı geçersiz olarak döndür .", - "MATH_SINGLE_TOOLTIP_LN": "Bir sayının doğal logaritmasını döndür .", - "MATH_SINGLE_TOOLTIP_LOG10": "Bir sayının 10 temelinde logaritmasını döndür .", - "MATH_SINGLE_TOOLTIP_EXP": "Bir sayının e ' inci kuvvetini döndür .", - "MATH_SINGLE_TOOLTIP_POW10": "Bir sayının 10. kuvvetini döndür .", - "MATH_TRIG_HELPURL": "https://tr.wikipedia.org/wiki/Trigonometrik_fonksiyonlar", - "MATH_TRIG_TOOLTIP_SIN": "Bir açının sinüsünü döndür(radyan olarak değil).", - "MATH_TRIG_TOOLTIP_COS": "Bir açının kosinüsünü döndür(radyan olarak değil).", - "MATH_TRIG_TOOLTIP_TAN": "Bir açının tanjantını döndür(radyan olarak değil).", - "MATH_TRIG_TOOLTIP_ASIN": "Bir sayının ters sinüsünü döndür .", - "MATH_TRIG_TOOLTIP_ACOS": "Bir sayının ters kosunusunu döndür .", - "MATH_TRIG_TOOLTIP_ATAN": "Bir sayının ters tanjantını döndür .", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Yaygın sabitlerden birini döndür:π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (sonsuz).", - "MATH_IS_EVEN": "çift", - "MATH_IS_ODD": "tek", - "MATH_IS_PRIME": "asal", - "MATH_IS_WHOLE": "Bütün olduğunu", - "MATH_IS_POSITIVE": "pozitif", - "MATH_IS_NEGATIVE": "negatif", - "MATH_IS_DIVISIBLE_BY": "bölünebilir", - "MATH_IS_TOOLTIP": "Bir sayinin çift mi tek mi , tam mı, asal mı , pozitif mi, negatif mi, veya tam bir sayıyla bölünebilirliğini kontrol et.'True' veya 'False' değerini döndür.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "%1'i %2 kadar değiştir", - "MATH_CHANGE_TOOLTIP": "'%1' değişkenine bir sayı ekle.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding Yuvarlama fonksiyonu için araştırma yapınız, sayfanın Türkçe çevirisi henüz mevcut değil.", - "MATH_ROUND_TOOLTIP": "Bir sayı yı yukarı yada aşağı yuvarla .", - "MATH_ROUND_OPERATOR_ROUND": "Yuvarla", - "MATH_ROUND_OPERATOR_ROUNDUP": "yukarı yuvarla", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "aşağı yuvarla", - "MATH_ONLIST_HELPURL": "", - "MATH_ONLIST_OPERATOR_SUM": "Listenin toplamı", - "MATH_ONLIST_TOOLTIP_SUM": "Listede ki tüm sayıların toplamını döndür.", - "MATH_ONLIST_OPERATOR_MIN": "Listenin en küçüğü", - "MATH_ONLIST_TOOLTIP_MIN": "Listenin en küçüğünü döndür.", - "MATH_ONLIST_OPERATOR_MAX": "en büyük sayı", - "MATH_ONLIST_TOOLTIP_MAX": "Listenin en büyüğünü döndür.", - "MATH_ONLIST_OPERATOR_AVERAGE": "listenin ortalaması", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Listedeki sayısal değerlerin ortalamasını (aritmetik anlamda) döndür.", - "MATH_ONLIST_OPERATOR_MEDIAN": "Listenin medyanı", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Listenin medyanını döndür.", - "MATH_ONLIST_OPERATOR_MODE": "Listenin modları", - "MATH_ONLIST_TOOLTIP_MODE": "Listede ki en yaygın öğe veya öğelerinin listesini döndür.", - "MATH_ONLIST_OPERATOR_STD_DEV": "Listenin standart sapması", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Listenin standart sapmasını döndür.", - "MATH_ONLIST_OPERATOR_RANDOM": "Listenin rastgele öğesi", - "MATH_ONLIST_TOOLTIP_RANDOM": "Listeden rastgele bir element döndür.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "%1 ÷ %2 nin kalanı", - "MATH_MODULO_TOOLTIP": "İki sayının bölümünden kalanı döndür.", - "MATH_CONSTRAIN_TITLE": "%1 i en düşük %2 en yüksek %3 ile sınırla", - "MATH_CONSTRAIN_TOOLTIP": "Bir sayıyı belirli iki sayı arasında sınırlandır(dahil).", - "MATH_RANDOM_INT_HELPURL": "https://tr.wikipedia.org/wiki/Rastgele_say%C4%B1_%C3%BCretimi", - "MATH_RANDOM_INT_TITLE": "%1 ile %2 arasında rastgele tam sayı üret", - "MATH_RANDOM_INT_TOOLTIP": "Herhangi iki sayı arasında , sayılar dahil olmak üzere , rastgele bir tam sayı döndür.", - "MATH_RANDOM_FLOAT_HELPURL": "https://tr.wikipedia.org/wiki/Rastgele_say%C4%B1_%C3%BCretimi", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Rast gele kesirli sayı , yada parça", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0(dahil) ve 1.0 (hariç) sayıları arasında bir sayı döndür .", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2, X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Noktanın (X, Y) arktanjantını -180 ila 180 derece arasında döndürün.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Metnin bir harfi,kelimesi veya satırı.", - "TEXT_JOIN_TITLE_CREATEWITH": "ile metin oluştur", - "TEXT_JOIN_TOOLTIP": "Herhangi bir sayıda ki öğeleri bir araya getirerek metnin bir parçasını oluştur.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "Katıl", - "TEXT_CREATE_JOIN_TOOLTIP": "Bu metin bloğunu düzenlemek için bölüm ekle,sil veya yeniden görevlendir.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Metine bir öğe ekle.", - "TEXT_APPEND_TITLE": "%1 için %2 metnini ekle.", - "TEXT_APPEND_TOOLTIP": "Değişken '%1' e bazı metinler ekleyin.", - "TEXT_LENGTH_TITLE": "%1 in uzunluğu", - "TEXT_LENGTH_TOOLTIP": "Yazı içerisinde verilen harflerin ( harf arasındaki boşluklar dahil) sayısını verir .", - "TEXT_ISEMPTY_TITLE": "%1 boş", - "TEXT_ISEMPTY_TOOLTIP": "Verilen metin boşsa true(doğru) değerini verir.", - "TEXT_INDEXOF_TOOLTIP": "İlk metnin ikinci metnin içindeki ilk ve son varoluşlarının indeksini döndürür.Metin bulunamadıysa %1 döndürür.", - "TEXT_INDEXOF_TITLE": "%1 metni içinde %2.kez %3 metnini bul.", - "TEXT_INDEXOF_OPERATOR_FIRST": "Metnin ilk varolduğu yeri bul", - "TEXT_INDEXOF_OPERATOR_LAST": "Metnin son varolduğu yeri bul", - "TEXT_CHARAT_TITLE": "%1 içinde %2", - "TEXT_CHARAT_FROM_START": "# harfini al", - "TEXT_CHARAT_FROM_END": "# dan sona harfleri al", - "TEXT_CHARAT_FIRST": "İlk harfini al", - "TEXT_CHARAT_LAST": "son harfi al", - "TEXT_CHARAT_RANDOM": "Rastgele bir harf al", - "TEXT_CHARAT_TAIL": "", - "TEXT_CHARAT_TOOLTIP": "Belirli pozisyonda ki bir harfi döndürür.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Metinin belirli bir kısmını döndürür.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "metinde", - "TEXT_GET_SUBSTRING_START_FROM_START": "n inci harften alt-string alma", - "TEXT_GET_SUBSTRING_START_FROM_END": "n inci harften sona kadar alt-string alma", - "TEXT_GET_SUBSTRING_START_FIRST": "ilk harften başlayarak alt-string alma", - "TEXT_GET_SUBSTRING_END_FROM_START": "# harfe", - "TEXT_GET_SUBSTRING_END_FROM_END": "Sondan # harfe", - "TEXT_GET_SUBSTRING_END_LAST": "son harfe", - "TEXT_GET_SUBSTRING_TAIL": "", - "TEXT_CHANGECASE_TOOLTIP": "Metnin bir kopyasını farklı bir harf durumunda (HEPSİ BÜYÜK - hepsi küçük) getirir.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "büyük harf", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "küçük harf", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Baş Harfler Büyük", - "TEXT_TRIM_TOOLTIP": "Metnin bir veya her iki sondan da boşlukları silinmiş şekilde kopyasını verir.", - "TEXT_TRIM_OPERATOR_BOTH": "iki tarafından da boşlukları temizle", - "TEXT_TRIM_OPERATOR_LEFT": "solundan boşlukları temizle", - "TEXT_TRIM_OPERATOR_RIGHT": "sağından boşlukları temizle", - "TEXT_PRINT_TITLE": "%1 ' i Yaz", - "TEXT_PRINT_TOOLTIP": "Belirli bir metni,sayıyı veya başka bir değeri yaz.", - "TEXT_PROMPT_TYPE_TEXT": "Kullanıcıdan yazım al , istek mesajıyla", - "TEXT_PROMPT_TYPE_NUMBER": "Kullanıcıdan sayı al , istek mesajı göstererek", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Kullanıcıdan sayı al .", - "TEXT_PROMPT_TOOLTIP_TEXT": "Kullanıcıdan Yazım al .", - "TEXT_COUNT_MESSAGE0": "%1 içinde %2 yi say.", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "Başka bir metnin içinde kaç kez metnin geçtiğini say.", - "TEXT_REPLACE_MESSAGE0": "%3 metni içinde %1 metnini %2 metni ile değiştir.", - "TEXT_REPLACE_TOOLTIP": "Metni başka bir metnin içindeki tüm yerlerde değiştir.", - "TEXT_REVERSE_MESSAGE0": "%1 karakterlerini ters çevir.", - "TEXT_REVERSE_TOOLTIP": "Metnin içindeki karakterlerin sıralarını ters çevirir.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "Boş liste oluştur", - "LISTS_CREATE_EMPTY_TOOLTIP": "Veri kaydı içermeyen uzunluğu 0 olan bir listeyi verir", - "LISTS_CREATE_WITH_TOOLTIP": "Herhangi sayıda nesne içeren bir liste oluştur.", - "LISTS_CREATE_WITH_INPUT_WITH": "İle liste oluşturma", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "liste", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Bu liste bloğunu yeniden yapılandırmak için bölüm ekle,kaldır veya yeniden çağır.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Listeye bir nesne ekle.", - "LISTS_REPEAT_TOOLTIP": "Verilen bir değerin , belirli bir sayıda tekrarlanmasından oluşan bir liste yaratır .", - "LISTS_REPEAT_TITLE": "%1 nesnenin %2 kez tekrarlandığı bir liste yarat", - "LISTS_LENGTH_TITLE": "%1'in uzunluğu", - "LISTS_LENGTH_TOOLTIP": "Bir listenin uzunluğunu verir.", - "LISTS_ISEMPTY_TITLE": "%1 boş", - "LISTS_ISEMPTY_TOOLTIP": "Eğer liste boş ise true döndürür .", - "LISTS_INLIST": "Listede", - "LISTS_INDEX_OF_FIRST": "Öğenin ilk varolduğu yeri bul", - "LISTS_INDEX_OF_LAST": "Öğenin son varolduğu yeri bul", - "LISTS_INDEX_OF_TOOLTIP": "Listedeki öğenin ilk/son oluşumunun indeksini döndürür. Eğer öğe bulunamaz ise %1 döndürür.", - "LISTS_GET_INDEX_GET": "Al", - "LISTS_GET_INDEX_GET_REMOVE": "al ve kaldır", - "LISTS_GET_INDEX_REMOVE": "kaldır", - "LISTS_GET_INDEX_FROM_START": "# Kare", - "LISTS_GET_INDEX_FROM_END": "# sonundan", - "LISTS_GET_INDEX_FIRST": "ilk", - "LISTS_GET_INDEX_LAST": "son", - "LISTS_GET_INDEX_RANDOM": "rastgele", - "LISTS_GET_INDEX_TAIL": "", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 ilk öğedir.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 son öğedir.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Listede belirli pozisyondaki bir öğeyi verir.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Listedeki ilk öğeyi verir.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Listedeki son öğeyi verir.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Listedeki rastgele bir öğeyi verir.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Kaldırır ve listede belirtilen konumdaki bir öğeyi döndürür.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Kaldırır ve listedeki ilk öğeyi döndürür.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Kaldırır ve listedeki son öğeyi döndürür.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Kaldırır ve listedeki rastgele bir öğeyi verir.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Bir liste içerisinde , tanımlanan pozisyonda ki öğeyi kaldırır.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Listedeki ilk nesneyi kaldırır.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Listedeki son nesneyi kaldırır.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Listedeki rastgele bir nesneyi kaldırır.", - "LISTS_SET_INDEX_SET": "yerleştir", - "LISTS_SET_INDEX_INSERT": "e yerleştir", - "LISTS_SET_INDEX_INPUT_TO": "olarak", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Bir öğeyi belirtilen yere göre listeye yerleştirir .", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Bir listenin ilk öğesini yerleştirir .", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Bir listedeki son öğeyi yerleştirir .", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Listeye rast gele bir öğe yerleştirir .", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Bir öğeyi belirtilen pozisyona göre listeye yerleştirir .", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Nesneyi listenin başlangıcına ekler.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Öğeyi listenin sonuna ekle .", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Bir öğeyi listeye rast gele ekler .", - "LISTS_GET_SUBLIST_START_FROM_START": "# dan alt liste al", - "LISTS_GET_SUBLIST_START_FROM_END": "# işaretinden sonra gelen ifadeye göre alt liste al , # sondan", - "LISTS_GET_SUBLIST_START_FIRST": "ilk öğeden alt liste al", - "LISTS_GET_SUBLIST_END_FROM_START": "#'a", - "LISTS_GET_SUBLIST_END_FROM_END": "Sondan #'a kadar", - "LISTS_GET_SUBLIST_END_LAST": "Sona kadar", - "LISTS_GET_SUBLIST_TAIL": "", - "LISTS_GET_SUBLIST_TOOLTIP": "Listenin belirli bir kısmının kopyasını yaratır.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "kısa %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Listenin kısa bir kopyası.", - "LISTS_SORT_ORDER_ASCENDING": "artan", - "LISTS_SORT_ORDER_DESCENDING": "azalan", - "LISTS_SORT_TYPE_NUMERIC": "sayısal", - "LISTS_SORT_TYPE_TEXT": "alfabetik", - "LISTS_SORT_TYPE_IGNORECASE": "alfabetik, gözardı et", - "LISTS_SPLIT_LIST_FROM_TEXT": "metinden liste yap", - "LISTS_SPLIT_TEXT_FROM_LIST": "listeden metin yap", - "LISTS_SPLIT_WITH_DELIMITER": "sınırlayıcı ile", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Her sınırlayıcıda kesen metinleri bir metin listesine ayır.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Bir sınırlayıcı tarafından kesilen metinlerin listesini bir metine ekle.", - "LISTS_REVERSE_MESSAGE0": "%1 kalemlerini ters çevir.", - "LISTS_REVERSE_TOOLTIP": "Bir listenin bir kopyasını tersine çevirin.", - "ORDINAL_NUMBER_SUFFIX": "", - "VARIABLES_GET_TOOLTIP": "Bu değişkenin değerini verir.", - "VARIABLES_GET_CREATE_SET": "'set %1' oluştur", - "VARIABLES_SET": "Atamak %1 e %2", - "VARIABLES_SET_TOOLTIP": "Bu değişkeni girilen değere eşitler.", - "VARIABLES_SET_CREATE_GET": "'get %1' oluştur", - "PROCEDURES_DEFNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFNORETURN_TITLE": "e", - "PROCEDURES_DEFNORETURN_PROCEDURE": "birşey yap", - "PROCEDURES_BEFORE_PARAMS": "ile :", - "PROCEDURES_CALL_BEFORE_PARAMS": "ile :", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Çıktı vermeyen bir fonksiyon yaratır .", - "PROCEDURES_DEFNORETURN_COMMENT": "Bu işlevi açıkla...", - "PROCEDURES_DEFRETURN_HELPURL": "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29", - "PROCEDURES_DEFRETURN_RETURN": "Geri dön", - "PROCEDURES_DEFRETURN_TOOLTIP": "Çıktı veren bir fonksiyon oluşturur.", - "PROCEDURES_ALLOW_STATEMENTS": "Eğer ifadelerine izin ver", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Uyarı: Bu fonksiyon yinelenen parametreler vardır.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Kullanıcı tanımlı fonksiyonu çalıştır '%1' .", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Kullanıcı tanımlı fonksiyonu çalıştır '%1' ve çıktısını kullan .", - "PROCEDURES_MUTATORCONTAINER_TITLE": "girdiler", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Bu işlevin girdilerini ekleyin, çıkarın, ya da yeniden sıralayın.", - "PROCEDURES_MUTATORARG_TITLE": "girdi adı:", - "PROCEDURES_MUTATORARG_TOOLTIP": "İşleve bir girdi ekleyin.", - "PROCEDURES_HIGHLIGHT_DEF": "Fonksiyon tanımı vurgulamak", - "PROCEDURES_CREATE_DO": "'%1' oluştur", - "PROCEDURES_IFRETURN_TOOLTIP": "Eğer değer doğruysa, ikinci değere geri dön.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Uyarı: Bu blok yalnızca bir fonksiyon tanımı içinde kullanılır.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Bir şeyler söyle...", - "COLLAPSED_WARNINGS_WARNING": "Daraltılmış bloklar uyarı içerir." -} diff --git a/lib/blockly/msg/json/ug-arab.json b/lib/blockly/msg/json/ug-arab.json deleted file mode 100644 index 9c9aebd..0000000 --- a/lib/blockly/msg/json/ug-arab.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "@metadata": { - "authors": [ - "HushBeg", - "Uzdil", - "چۈشكۈن" - ] - }, - "VARIABLES_DEFAULT_NAME": "تۈر", - "TODAY": "بۈگۈن", - "DUPLICATE_BLOCK": "كۆچۈرۈش", - "ADD_COMMENT": "ئىزاھات قوشۇش", - "REMOVE_COMMENT": "ئىزاھاتنى ئۆچۈرۈش", - "EXTERNAL_INPUTS": "سىرتقى كىرگۈزۈش", - "INLINE_INPUTS": "تاق قۇرلۇق كىرگۈزۈش", - "DELETE_BLOCK": "بۆلەك ئۆچۈرۈش", - "DELETE_X_BLOCKS": "بۆلەك %1 نى ئۆچۈرۈش", - "DELETE_ALL_BLOCKS": "ھەممىنى ئۆچۈرۈش %1 پارچىمۇ؟", - "CLEAN_UP": "بۆلەكنى رەتلەش", - "COLLAPSE_BLOCK": "قاتلىنىش بۆلىكى", - "COLLAPSE_ALL": "قاتلىنىش بۆلىكى", - "EXPAND_BLOCK": "ئېچىلىش بۆلىكى", - "EXPAND_ALL": "ئېچىلىش بۆلىكى", - "DISABLE_BLOCK": "چەكلەنگەن بۆلەك", - "ENABLE_BLOCK": "قوزغىتىلغان بۆلەك", - "HELP": "ياردەم", - "UNDO": "يېنىۋال", - "REDO": "قايتىلاش", - "CHANGE_VALUE_TITLE": "قىممەت ئۆزگەرتىش:", - "RENAME_VARIABLE": "ئۆزگەرگۈچى مىقدارغا قايتا نام قويۇش", - "RENAME_VARIABLE_TITLE": "بارلىق بۆلەك “%1\" ئۆزگەرگۈچى مىقدار قايتا ناملىنىپ :", - "NEW_VARIABLE": "ئۆزگەرگۈچى مىقدار ... قۇرۇش", - "NEW_VARIABLE_TITLE": "يېڭى ئۆزگەرگۈچى مىقدار نامى:", - "VARIABLE_ALREADY_EXISTS": "ئىسم مەۋجۇت “%1” ئۆزگەرگۈچى", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "ئىسىملىك“%1” ئۆزگەرگۈچى مىقدار مەۋجۇت بولۇپ تۇرىدۇ ، لېكىن يەنە بىر ئۆزگەرگۈچى مىقدار تىپى بولۇش سۈپىتى بىلەن “%2” مەۋجۇت .", - "DELETE_VARIABLE_CONFIRMATION": "ئۆچۈرۈش “%2” ئۆزگەرگۈچى مىقدار%1 ئىشلىتىلىش ئورنى بارمۇ؟", - "DELETE_VARIABLE": "“%1” ئۆزگەرگۈچى مىقدارنى ئۆچۈرۈش", - "COLOUR_PICKER_HELPURL": "https://zh.wikipedia.org/wiki/رەڭگى", - "COLOUR_PICKER_TOOLTIP": " تاختىدىن رەڭنى تاللاڭ", - "COLOUR_RANDOM_TITLE": "خالىغان رەڭ", - "COLOUR_RANDOM_TOOLTIP": "ئىختىيارىي بىر رەڭنى تاللاڭ", - "COLOUR_RGB_TITLE": "رەڭگى", - "COLOUR_RGB_RED": "قىزىل", - "COLOUR_RGB_GREEN": "يېشىل", - "COLOUR_RGB_BLUE": "كۆك", - "COLOUR_BLEND_TITLE": "ئارىلاش", - "COLOUR_BLEND_COLOUR1": "رەڭ 1", - "COLOUR_BLEND_COLOUR2": "رەڭ 2", - "COLOUR_BLEND_RATIO": "نىسبەت", - "CONTROLS_REPEAT_HELPURL": "https://zh.wikipedia.org/wiki/Forئايلىنىش", - "CONTROLS_REPEAT_TITLE": "تەكرار %1قېتىم", - "CONTROLS_REPEAT_INPUT_DO": "ئىجرا", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تەكرار بولۇش", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تەكرارلىقى", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ئۈزۈلۈپ ئايلىنىش", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": " كىيىنكى قېتىم داۋاملىق ئايلىنىشن", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ئۇنىڭ دەۋرىي ئۈزۈلۈش ئۆز ئىچىگە ئالىدۇ .", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "بۇ ئايلىنىشنىڭ قالغان قىسمى ئاتلاپ ئۆتۈپ كېتىدۇ ، ھەمدە داۋاملىق كېلەر قېتىملىق ئىتېراتسىيە .", - "CONTROLS_FLOW_STATEMENTS_WARNING": "ئاگاھلاندۇرۇش : بۇ پەقەت بىر ئايلىنىش دەۋرى ئىچىدە ئىشلىتىشكە بولىدۇ .", - "CONTROLS_IF_TOOLTIP_1": "ئەگەر قىممىتى ھەقىقەتەن ، بەزى جۈملە .", - "CONTROLS_IF_TOOLTIP_2": "ئەگەر قىممىتى ھەقىقەتەن ، ئۇنداقتا نىڭ بىر جۈملە . ئۇنداق بولمايدىكەن، ئىككىنچى جۈملىسى ئىجرا قىلىندى .", - "CONTROLS_IF_TOOLTIP_3": "ئەگەر تۇنجى قىممىتى ھەقىقەتەن ، ئۇنداقتا نىڭ بىر جۈملە . ئۇنداق بولمايدىكەن، ئەگەر ئىككىنچى قىممىتى ، ئۇنداقتا ئىككىنچى پارچىنىڭ جۈملە .", - "CONTROLS_IF_TOOLTIP_4": "ئەگەر تۇنجى قىممىتى ھەقىقەتەن ، ئۇنداقتا نىڭ بىر جۈملە . ئۇنداق بولمايدىكەن، ئەگەر ئىككىنچى قىممىتى ، بولسا ئىجرا قىلىش جۈملىسى ئىشككى پارچە . ئەگەر قىممىتى يوق ، ئۇنداقتا ئەڭ ئاخىرقى بىر جۈملىسى .", - "CONTROLS_IF_MSG_IF": "ئەگەر", - "CONTROLS_IF_MSG_ELSEIF": "ئۇنداق بولمىسا ئەگەر", - "CONTROLS_IF_MSG_ELSE": "ئۇنداق بولمىسا", - "CONTROLS_IF_IF_TOOLTIP": "كۆپۈيۈپ كىتىدۇ، ئۆچۈرۈش ياكى قايتا تىزىلغان بايرام « if ( سۆزىنىڭ پارچە قايتىدىن تەقسىملەش .", - "CONTROLS_IF_ELSEIF_TOOLTIP": "بۇ بىلمەيمىز جۈملە بۆلىكى قوشۇلۇپ بىر if شەرتى .", - "CONTROLS_IF_ELSE_TOOLTIP": "ئەڭ ئاخىرقى قوشۇش ، ھەممە ئەھۋالنى ئۆز ئىچىگە ئالىدۇ بايرىمىدا بىلمەيمىز ifپارچىلىرى .", - "IOS_OK": "ماقۇل", - "IOS_CANCEL": "ۋاز كەچ", - "IOS_ERROR": "خاتالىق", - "IOS_PROCEDURES_INPUTS": "كىرگۈزۈش", - "IOS_PROCEDURES_ADD_INPUT": "+ كىرگۈزۈپ قوشۇش", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "كېلىشىمگە قوشۇلۇش", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "بۇنىڭدا مەزمۇننى قايتا كىرگۈزۈش ئىقتىدارى بار .", - "IOS_VARIABLES_ADD_VARIABLE": "+ ئۆزگەرگۈچى مىقدار قوشۇش", - "IOS_VARIABLES_ADD_BUTTON": "قوشۇش", - "IOS_VARIABLES_RENAME_BUTTON": "ئىسىم ئۆزگەرتىش", - "IOS_VARIABLES_DELETE_BUTTON": "ئۆچۈرۈش", - "IOS_VARIABLES_VARIABLE_NAME": "ئۆزگەرگۈچى مىقدارنىڭ نامى", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "سىز ئۆزگەرگۈچى مىقدار نامى ئىشلىتىشكە بولمايدۇ .", - "LOGIC_COMPARE_HELPURL": "https://zh.wikipedia.org/wiki/ تەڭ ئەمەس", - "LOGIC_COMPARE_TOOLTIP_EQ": "ئەگەر ئىككى دانە كىرگۈزۈش نەتىجىسى تەڭ بولسا ، راستىنلا كەينىگە قايتسا.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "ئەگەر ئىككى دانە كىرگۈزۈش نەتىجىسى تەڭ بولمايدۇ ، بەك كەلدى .", - "LOGIC_COMPARE_TOOLTIP_LT": "ئەگەر تۇنجى كىرگۈزۈش نەتىجىدە ئىشككىنچى كىچىك بولسا راستىنلا كەينىگە قايتسا .", - "LOGIC_COMPARE_TOOLTIP_LTE": "ئەگەر تۇنجى كىرگۈزۈش نەتىجىسى ئىككىنچى كىرگۈزۈش نەتىجىسى تىن تۆۋەن ياكى شۇنىڭغا تەڭ بولسا راستىنلا كەينىگە قايتسا .", - "LOGIC_COMPARE_TOOLTIP_GT": "ئەگەر تۇنجى كىرگۈزۈش نەتىجىسى ئىشككىنچى چوڭ بولسا راستىنلا كەينىگە قايتسا .", - "LOGIC_COMPARE_TOOLTIP_GTE": "ئەگەر تۇنجى كىرگۈزۈش نەتىجىدە ئىشككىنچى كىچىك بولسا راستىنلا كەينىگە قايتسا .", - "LOGIC_OPERATION_AND": "ۋە", - "LOGIC_OPERATION_OR": "ياكى", - "LOGIC_NEGATE_TITLE": "ئەمەس%1", - "LOGIC_BOOLEAN_TRUE": "ھەقىقىي", - "LOGIC_BOOLEAN_FALSE": "يالغان", - "LOGIC_BOOLEAN_TOOLTIP": "راست ياكى يالغان قايتىش", - "LOGIC_NULL": "قۇرۇق", - "LOGIC_NULL_TOOLTIP": " نۆلگە قايتىش", - "LOGIC_TERNARY_CONDITION": "سىناق", - "LOGIC_TERNARY_IF_TRUE": "ئەگەر راست بولسا", - "LOGIC_TERNARY_IF_FALSE": "ئەگەر يالغان بولسا", - "MATH_NUMBER_HELPURL": "https://zh.wikipedia.org/wiki/سان", - "MATH_NUMBER_TOOLTIP": "بىر سان.", - "MATH_ARITHMETIC_HELPURL": "https://zh.wikipedia.org/wiki/ئارىفمېتىكىلىق", - "MATH_SINGLE_HELPURL": "https://zh.wikipedia.org/wiki/كۋادرات يىلتىز", - "MATH_SINGLE_OP_ROOT": " كۋادرات يىلتىز", - "MATH_SINGLE_OP_ABSOLUTE": "مۇتلەق", - "MATH_TRIG_HELPURL": "https://zh.wikipedia.org/wiki/ترىگونومېتىرىيىلىك فۇنكسىيە", - "MATH_CONSTANT_HELPURL": "https://zh.wikipedia.org/wiki/ماتېماتىكا تۇراقلىق سانى", - "MATH_IS_EVEN": "جۈپ سان", - "MATH_IS_ODD": " تاق سان", - "MATH_IS_PRIME": "تۈپ سان", - "MATH_IS_WHOLE": "پۈتۈن سان", - "MATH_IS_POSITIVE": "مۇسبەت", - "MATH_IS_NEGATIVE": " مەنپى", - "MATH_IS_DIVISIBLE_BY": "پۈتۈن بۆلۈنۈش", - "MATH_CHANGE_HELPURL": "https://zh.wikipedia.org/wiقوشۇش", - "MATH_CHANGE_TITLE": " ئۆزگەرتىش %1 دىن %2", - "MATH_ROUND_HELPURL": "https://zh.wikipedia.org/wiki/سانلىق قىممەت تۈزىتىش", - "MATH_ROUND_OPERATOR_ROUND": "تۆۋەنگە تارتىڭ", - "MATH_ROUND_OPERATOR_ROUNDUP": " تۆۋەنگە تارتىڭ", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "تۆۋەنگە تارتىڭ", - "MATH_ONLIST_OPERATOR_MIN": "جەدۋەل ئىچىدىكى ئەڭ كىچىك قىممەت", - "MATH_ONLIST_TOOLTIP_MIN": " جەدۋەلدىكى ئەڭ كىچىك سانغا قايتىش", - "MATH_ONLIST_OPERATOR_MAX": " جەدۋەلدىكى ئەڭ چوڭ قىممەت", - "MATH_ONLIST_OPERATOR_AVERAGE": "جەدۋەل ئىچىدىكى ئوتتۇرىچە سان", - "MATH_ONLIST_OPERATOR_MEDIAN": "جەدۋەلدىكى ئوتتۇرا سان", - "MATH_ONLIST_TOOLTIP_MEDIAN": " جەدۋەلدىكى ئوتتۇرا سانغا قايتىش", - "MATH_ONLIST_OPERATOR_MODE": " جەدۋەل ھالىتى", - "MATH_MODULO_HELPURL": "https://zh.wikipedia.org/wiki/مودېل ھېسابى", - "TEXT_CREATE_JOIN_TITLE_JOIN": " قوشۇش", - "LISTS_GET_INDEX_GET": "قولغا كەلتۈرۈش", - "LISTS_GET_INDEX_REMOVE": "چىقىرىۋىتىش", - "LISTS_GET_INDEX_FIRST": "تۇنجى", - "LISTS_GET_INDEX_LAST": "ئاخىرقى", - "LISTS_GET_INDEX_RANDOM": "خالىغانچە", - "LISTS_SET_INDEX_SET": "تەڭشەك", - "LISTS_SET_INDEX_INSERT": "قىستۇرۇڭ", - "LISTS_SORT_ORDER_ASCENDING": "يۇقىرىغا", - "LISTS_SORT_ORDER_DESCENDING": "تۆۋەنگە", - "LISTS_SORT_TYPE_NUMERIC": "سان بويىچە تىزىل", - "LISTS_SORT_TYPE_TEXT": " ھەرپ بويىچە تىزىل", - "LISTS_SORT_TYPE_IGNORECASE": "ھەرب بويىچە تىزىل، چوڭ كىچىك يېزىلىش ھېساپ قىلىنمايدۇ" -} diff --git a/lib/blockly/msg/json/uk.json b/lib/blockly/msg/json/uk.json deleted file mode 100644 index d9446aa..0000000 --- a/lib/blockly/msg/json/uk.json +++ /dev/null @@ -1,371 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Andriykopanytsia", - "Base", - "Igor Zavadsky", - "Lxlalexlxl", - "아라", - "Visem", - "Piramidion", - "SimondR", - "Movses", - "Gzhegozh" - ] - }, - "VARIABLES_DEFAULT_NAME": "елемент", - "UNNAMED_KEY": "без назви", - "TODAY": "Сьогодні", - "DUPLICATE_BLOCK": "Дублювати", - "ADD_COMMENT": "Додати коментар", - "REMOVE_COMMENT": "Видалити коментар", - "DUPLICATE_COMMENT": "Дублювати примітку", - "EXTERNAL_INPUTS": "Зовнішні входи", - "INLINE_INPUTS": "Вбудовані входи", - "DELETE_BLOCK": "Видалити блок", - "DELETE_X_BLOCKS": "Видалити %1 блоків", - "DELETE_ALL_BLOCKS": "Вилучити всі блоки %1?", - "CLEAN_UP": "Вирівняти блоки", - "COLLAPSE_BLOCK": "Згорнути блок", - "COLLAPSE_ALL": "Згорнути блоки", - "EXPAND_BLOCK": "Розгорнути блок", - "EXPAND_ALL": "Розгорнути блоки", - "DISABLE_BLOCK": "Вимкнути блок", - "ENABLE_BLOCK": "Увімкнути блок", - "HELP": "Довідка", - "UNDO": "Скасувати", - "REDO": "Повторити", - "CHANGE_VALUE_TITLE": "Змінити значення:", - "RENAME_VARIABLE": "Перейменувати змінну...", - "RENAME_VARIABLE_TITLE": "Перейменувати усі змінні \"%1\" до:", - "NEW_VARIABLE": "Створити змінну...", - "NEW_STRING_VARIABLE": "Створити рядкову змінну...", - "NEW_NUMBER_VARIABLE": "Створити числову змінну...", - "NEW_COLOUR_VARIABLE": "Створити колірну змінну...", - "NEW_VARIABLE_TYPE_TITLE": "Тип нової змінної:", - "NEW_VARIABLE_TITLE": "Нова назва змінної:", - "VARIABLE_ALREADY_EXISTS": "Змінна з назвою '%1' вже існує.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Змінна з назвою '%1' вже існує в іншому типі: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Вилучити %1 використання змінної '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Неможливо видалити змінну '%1', тому що це частина визначення функції '%2'", - "DELETE_VARIABLE": "Вилучити змінну '%1'", - "COLOUR_PICKER_HELPURL": "https://uk.wikipedia.org/wiki/Колір", - "COLOUR_PICKER_TOOLTIP": "Вибрати колір з палітри.", - "COLOUR_RANDOM_TITLE": "випадковий колір", - "COLOUR_RANDOM_TOOLTIP": "Вибрати колір навмання.", - "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", - "COLOUR_RGB_TITLE": "колір з", - "COLOUR_RGB_RED": "червоний", - "COLOUR_RGB_GREEN": "зелений", - "COLOUR_RGB_BLUE": "синій", - "COLOUR_RGB_TOOLTIP": "Створити колір зі вказаними рівнями червоного, зеленого та синього. Усі значення мають бути від 0 до 100.", - "COLOUR_BLEND_HELPURL": "http://meyerweb.com/eric/tools/color-blend/", - "COLOUR_BLEND_TITLE": "змішати", - "COLOUR_BLEND_COLOUR1": "колір 1", - "COLOUR_BLEND_COLOUR2": "колір 2", - "COLOUR_BLEND_RATIO": "співвідношення", - "COLOUR_BLEND_TOOLTIP": "Змішує два кольори разом у вказаному співвідношені (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://uk.wikipedia.org/wiki/Цикл_(програмування)#.D0.A6.D0.B8.D0.BA.D0.BB_.D0.B7_.D0.BB.D1.96.D1.87.D0.B8.D0.BB.D1.8C.D0.BD.D0.B8.D0.BA.D0.BE.D0.BC", - "CONTROLS_REPEAT_TITLE": "повторити %1 разів", - "CONTROLS_REPEAT_INPUT_DO": "виконати", - "CONTROLS_REPEAT_TOOLTIP": "Виконати певні дії декілька разів.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "повторювати поки", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "повторювати, доки не", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Поки значення істинне, виконувати певні дії.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Поки значення хибне, виконувати певні дії.", - "CONTROLS_FOR_TOOLTIP": "Наявна змінна \"%1\" набуває значень від початкового до кінцевого, враховуючи заданий інтервал, і виконуються вказані блоки.", - "CONTROLS_FOR_TITLE": "рахувати з %1 від %2 до %3 через %4", - "CONTROLS_FOREACH_TITLE": "для кожного елемента %1 у списку %2", - "CONTROLS_FOREACH_TOOLTIP": "Для кожного елемента в списку змінна '%1' отримує значення елемента, а потім виконуються певні дії.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "перервати цикл", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "продовжити з наступної ітерації циклу", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Перервати виконання циклу.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Пропустити залишок цього циклу і перейти до виконання наступної ітерації.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Попередження: цей блок може бути використаний тільки в межах циклу.", - "CONTROLS_IF_TOOLTIP_1": "Якщо значення істинне, то виконати певні дії.", - "CONTROLS_IF_TOOLTIP_2": "Якщо значення істинне, то виконується перший блок операторів. В іншому випадку виконується другий блок операторів.", - "CONTROLS_IF_TOOLTIP_3": "Якщо перше значення істинне, то виконується перший блок операторів. В іншому випадку, якщо друге значення істина, то виконується другий блок операторів.", - "CONTROLS_IF_TOOLTIP_4": "Якщо перше значення істинне, то виконується перший блок операторів. В іншому випадку, якщо друге значення істинне, то виконується другий блок операторів. Якщо жодне із значень не є істинним, то виконується останній блок операторів.", - "CONTROLS_IF_MSG_IF": "якщо", - "CONTROLS_IF_MSG_ELSEIF": "інакше якщо", - "CONTROLS_IF_MSG_ELSE": "інакше", - "CONTROLS_IF_IF_TOOLTIP": "Додайте, вилучіть або змініть порядок секцій, щоб переналаштувати цей блок 'якщо'.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Додайте умову до блока 'якщо'.", - "CONTROLS_IF_ELSE_TOOLTIP": "Додати остаточну, всеосяжну умову до блоку 'якщо'.", - "IOS_OK": "Готово", - "IOS_CANCEL": "Скасувати", - "IOS_ERROR": "Помилка", - "IOS_PROCEDURES_INPUTS": "ВХОДИ", - "IOS_PROCEDURES_ADD_INPUT": "+ Додати вхідну змінну", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Дозволити оператори", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "У цієї функції є вхідні змінні, що дублюються.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Додати змінну", - "IOS_VARIABLES_ADD_BUTTON": "Додати", - "IOS_VARIABLES_RENAME_BUTTON": "Перейменувати", - "IOS_VARIABLES_DELETE_BUTTON": "Видалити", - "IOS_VARIABLES_VARIABLE_NAME": "Назва змінної", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Ви не можете використовувати порожню назву змінної.", - "LOGIC_COMPARE_HELPURL": "https://uk.wikipedia.org/wiki/Нерівність", - "LOGIC_COMPARE_TOOLTIP_EQ": "Повертає істину, якщо обидва входи рівні один одному.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Повертає істину, якщо обидва входи не дорівнюють один одному.", - "LOGIC_COMPARE_TOOLTIP_LT": "Повертає істину, якщо перше вхідне значення менше, ніж друге.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Повертає істину, якщо перше вхідне значення менше або дорівнює другому.", - "LOGIC_COMPARE_TOOLTIP_GT": "Повертає істину, якщо перше вхідне значення більше, ніж друге.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Повертає істину, якщо перше вхідне значення більше або дорівнює другому.", - "LOGIC_OPERATION_TOOLTIP_AND": "Повертає істину, якщо обидва входи істинні.", - "LOGIC_OPERATION_AND": "та", - "LOGIC_OPERATION_TOOLTIP_OR": "Повертає істину, якщо принаймні один з входів істинний.", - "LOGIC_OPERATION_OR": "або", - "LOGIC_NEGATE_TITLE": "не %1", - "LOGIC_NEGATE_TOOLTIP": "Повертає істину, якщо вхідне значення хибне. Повертає хибність, якщо вхідне значення істинне.", - "LOGIC_BOOLEAN_TRUE": "істина", - "LOGIC_BOOLEAN_FALSE": "хибність", - "LOGIC_BOOLEAN_TOOLTIP": "Повертає значення істина або хибність.", - "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", - "LOGIC_NULL": "ніщо", - "LOGIC_NULL_TOOLTIP": "Повертає ніщо.", - "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", - "LOGIC_TERNARY_CONDITION": "тест", - "LOGIC_TERNARY_IF_TRUE": "якщо істина", - "LOGIC_TERNARY_IF_FALSE": "якщо хибність", - "LOGIC_TERNARY_TOOLTIP": "Перевіряє умову в 'тест'. Якщо умова істинна, то повертає значення 'якщо істина'; в іншому випадку повертає значення 'якщо хибність'.", - "MATH_NUMBER_HELPURL": "https://uk.wikipedia.org/wiki/Число", - "MATH_NUMBER_TOOLTIP": "Число.", - "MATH_ARITHMETIC_HELPURL": "https://uk.wikipedia.org/wiki/Арифметика", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Повертає суму двох чисел.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Повертає різницю двох чисел.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Повертає добуток двох чисел.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Повертає частку двох чисел.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Повертає перше число, піднесене до степеня, вираженого другим числом.", - "MATH_SINGLE_HELPURL": "https://uk.wikipedia.org/wiki/Квадратний_корінь", - "MATH_SINGLE_OP_ROOT": "квадратний корінь", - "MATH_SINGLE_TOOLTIP_ROOT": "Повертає квадратний корінь з числа.", - "MATH_SINGLE_OP_ABSOLUTE": "модуль", - "MATH_SINGLE_TOOLTIP_ABS": "Повертає модуль числа.", - "MATH_SINGLE_TOOLTIP_NEG": "Повертає протилежне число.", - "MATH_SINGLE_TOOLTIP_LN": "Повертає натуральний логарифм числа.", - "MATH_SINGLE_TOOLTIP_LOG10": "Повертає десятковий логарифм числа.", - "MATH_SINGLE_TOOLTIP_EXP": "Повертає e у степені.", - "MATH_SINGLE_TOOLTIP_POW10": "Повертає 10 у степені.", - "MATH_TRIG_HELPURL": "https://uk.wikipedia.org/wiki/Тригонометричні_функції", - "MATH_TRIG_TOOLTIP_SIN": "Повертає синус кута в градусах (не в радіанах).", - "MATH_TRIG_TOOLTIP_COS": "Повертає косинус кута в градусах (не в радіанах).", - "MATH_TRIG_TOOLTIP_TAN": "Повертає тангенс кута в градусах (не в радіанах).", - "MATH_TRIG_TOOLTIP_ASIN": "Повертає арксинус числа.", - "MATH_TRIG_TOOLTIP_ACOS": "Повертає арккосинус числа.", - "MATH_TRIG_TOOLTIP_ATAN": "Повертає арктангенс числа.", - "MATH_CONSTANT_HELPURL": "https://uk.wikipedia.org/wiki/Математична_константа", - "MATH_CONSTANT_TOOLTIP": "Повертає одну з поширених констант: π (3.141...), e (2.718...), φ (1,618...), sqrt(2) (1.414...), sqrt(½) (0.707...) або ∞ (нескінченність).", - "MATH_IS_EVEN": "парне", - "MATH_IS_ODD": "непарне", - "MATH_IS_PRIME": "просте", - "MATH_IS_WHOLE": "ціле", - "MATH_IS_POSITIVE": "додатне", - "MATH_IS_NEGATIVE": "від'ємне", - "MATH_IS_DIVISIBLE_BY": "ділиться на", - "MATH_IS_TOOLTIP": "Перевіряє, чи число парне, непарне, просте, ціле, додатне, від'ємне або чи воно ділиться на певне число без остачі. Повертає істину або хибність.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "змінити %1 на %2", - "MATH_CHANGE_TOOLTIP": "Додати число до змінної '%1'.", - "MATH_ROUND_HELPURL": "https://uk.wikipedia.org/wiki/Округлення", - "MATH_ROUND_TOOLTIP": "Округлення числа до більшого або до меншого.", - "MATH_ROUND_OPERATOR_ROUND": "округлити", - "MATH_ROUND_OPERATOR_ROUNDUP": "округлити до більшого", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "округлити до меншого", - "MATH_ONLIST_HELPURL": "http://www.mapleprimes.com/questions/100441-Applying-Function-To-List-Of-Numbers", - "MATH_ONLIST_OPERATOR_SUM": "сума списку", - "MATH_ONLIST_TOOLTIP_SUM": "Повертає суму всіх чисел у списку.", - "MATH_ONLIST_OPERATOR_MIN": "мінімум списку", - "MATH_ONLIST_TOOLTIP_MIN": "Повертає найменше число у списку.", - "MATH_ONLIST_OPERATOR_MAX": "максимум списку", - "MATH_ONLIST_TOOLTIP_MAX": "Повертає найбільше число у списку.", - "MATH_ONLIST_OPERATOR_AVERAGE": "середнє списку", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Повертає середнє (арифметичне) числових значень у списку.", - "MATH_ONLIST_OPERATOR_MEDIAN": "медіана списку", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Повертає медіану списку.", - "MATH_ONLIST_OPERATOR_MODE": "моди списку", - "MATH_ONLIST_TOOLTIP_MODE": "Повертає перелік найпоширеніших елементів у списку.", - "MATH_ONLIST_OPERATOR_STD_DEV": "стандартне відхилення списку", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Повертає стандартне відхилення списку.", - "MATH_ONLIST_OPERATOR_RANDOM": "випадковий елемент списку", - "MATH_ONLIST_TOOLTIP_RANDOM": "Повертає випадковий елемент зі списку.", - "MATH_MODULO_HELPURL": "https://uk.wikipedia.org/wiki/Ділення_з_остачею", - "MATH_MODULO_TITLE": "остача від %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Повертає остачу від ділення двох чисел.", - "MATH_CONSTRAIN_TITLE": "обмежити %1 від %2 до %3", - "MATH_CONSTRAIN_TOOLTIP": "Обмежує число вказаними межами (включно).", - "MATH_RANDOM_INT_HELPURL": "https://uk.wikipedia.org/wiki/Генерація_випадкових_чисел", - "MATH_RANDOM_INT_TITLE": "випадкове ціле число від %1 до %2", - "MATH_RANDOM_INT_TOOLTIP": "Повертає випадкове ціле число між двома заданими межами включно.", - "MATH_RANDOM_FLOAT_HELPURL": "https://uk.wikipedia.org/wiki/Генерація_випадкових_чисел", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "випадковий дріб", - "MATH_RANDOM_FLOAT_TOOLTIP": "Повертає випадковий дріб від 0,0 (включно) та 1.0 (не включно).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 по X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Повертає арктангенс точки (X, Y) у градусах від -180 до 180.", - "TEXT_TEXT_HELPURL": "https://uk.wikipedia.org/wiki/Рядок_(програмування)", - "TEXT_TEXT_TOOLTIP": "Символ, слово або рядок тексту.", - "TEXT_JOIN_HELPURL": "http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_8.html", - "TEXT_JOIN_TITLE_CREATEWITH": "створити текст з", - "TEXT_JOIN_TOOLTIP": "Створити фрагмент тексту шляхом з'єднування будь-якого числа елементів.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "приєднати", - "TEXT_CREATE_JOIN_TOOLTIP": "Додайте, вилучіть або змініть порядок секцій для переналаштування текстового блоку.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Додати елемент до тексту.", - "TEXT_APPEND_TITLE": "до %1 додати текст %2", - "TEXT_APPEND_TOOLTIP": "Додати деякий текст до змінної '%1'.", - "TEXT_LENGTH_TITLE": "довжина %1", - "TEXT_LENGTH_TOOLTIP": "Повертає число символів (включно з пропусками) у даному тексті.", - "TEXT_ISEMPTY_TITLE": "%1 є порожнім", - "TEXT_ISEMPTY_TOOLTIP": "Повертає істину, якщо вказаний текст порожній.", - "TEXT_INDEXOF_TOOLTIP": "Повертає індекс першого/останнього входження першого тексту в другий. Повертає %1, якщо текст не знайдено.", - "TEXT_INDEXOF_TITLE": "у тексті %1 %2 %3.", - "TEXT_INDEXOF_OPERATOR_FIRST": "знайти перше входження тексту", - "TEXT_INDEXOF_OPERATOR_LAST": "знайти останнє входження тексту", - "TEXT_CHARAT_HELPURL": "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", - "TEXT_CHARAT_TITLE": "з тексту %1 %2", - "TEXT_CHARAT_FROM_START": "отримати символ #", - "TEXT_CHARAT_FROM_END": "отримати символ # з кінця", - "TEXT_CHARAT_FIRST": "отримати перший символ", - "TEXT_CHARAT_LAST": "отримати останній символ", - "TEXT_CHARAT_RANDOM": "отримати випадковий символ", - "TEXT_CHARAT_TAIL": "-ий.", - "TEXT_CHARAT_TOOLTIP": "Повертає символ у зазначеній позиції.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Повертає заданий фрагмент тексту.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "у тексті", - "TEXT_GET_SUBSTRING_START_FROM_START": "отримати підрядок від символу #", - "TEXT_GET_SUBSTRING_START_FROM_END": "отримати підрядок від символу # з кінця", - "TEXT_GET_SUBSTRING_START_FIRST": "отримати підрядок від першого символу", - "TEXT_GET_SUBSTRING_END_FROM_START": "до символу #", - "TEXT_GET_SUBSTRING_END_FROM_END": "до символу # з кінця", - "TEXT_GET_SUBSTRING_END_LAST": "до останнього символу", - "TEXT_GET_SUBSTRING_TAIL": "-ого.", - "TEXT_CHANGECASE_TOOLTIP": "В іншому випадку повертає копію тексту.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "до ВЕРХНЬОГО регістру", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "до нижнього регістру", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Великі Перші Букви", - "TEXT_TRIM_TOOLTIP": "Повертає копію тексту з вилученими пропусками з одного або обох кінців.", - "TEXT_TRIM_OPERATOR_BOTH": "вилучити крайні пропуски з обох кінців", - "TEXT_TRIM_OPERATOR_LEFT": "вилучити пропуски з лівого боку", - "TEXT_TRIM_OPERATOR_RIGHT": "вилучити пропуски з правого боку", - "TEXT_PRINT_TITLE": "друк %1", - "TEXT_PRINT_TOOLTIP": "Надрукувати заданий текст, числа або інші значення.", - "TEXT_PROMPT_TYPE_TEXT": "запит тексту з повідомленням", - "TEXT_PROMPT_TYPE_NUMBER": "запит числа з повідомленням", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Запитати у користувача число.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Запитати у користувача деякий текст.", - "TEXT_COUNT_MESSAGE0": "кількість %1 в %2", - "TEXT_COUNT_TOOLTIP": "Підраховує, скільки разів деякий текст з'являється в іншому тексті.", - "TEXT_REPLACE_MESSAGE0": "замінити %1 на %2 в %3", - "TEXT_REPLACE_TOOLTIP": "Замінює всі входження деякого тексту іншим текстом.", - "TEXT_REVERSE_MESSAGE0": "розвернути %1", - "TEXT_REVERSE_TOOLTIP": "Змінює на протилежний порядок символів у тексті.", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "створити порожній список", - "LISTS_CREATE_EMPTY_TOOLTIP": "Повертає список, довжиною 0, що не містить записів даних", - "LISTS_CREATE_WITH_TOOLTIP": "Створює список з будь-якою кількістю елементів.", - "LISTS_CREATE_WITH_INPUT_WITH": "створити список з", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "список", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Додайте, вилучіть або змініть порядок секцій для переналаштування блока списку.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Додати елемент до списку.", - "LISTS_REPEAT_TOOLTIP": "Створює список, що складається з заданого значення повтореного задану кількість разів.", - "LISTS_REPEAT_TITLE": "створити список з елемента %1 повтореного %2 разів", - "LISTS_LENGTH_TITLE": "довжина %1", - "LISTS_LENGTH_TOOLTIP": "Повертає довжину списку.", - "LISTS_ISEMPTY_TITLE": "%1 є порожнім", - "LISTS_ISEMPTY_TOOLTIP": "Повертає істину, якщо список порожній.", - "LISTS_INLIST": "у списку", - "LISTS_INDEX_OF_FIRST": "знайти перше входження елемента", - "LISTS_INDEX_OF_LAST": "знайти останнє входження елемента", - "LISTS_INDEX_OF_TOOLTIP": "Повертає індекс першого/останнього входження елемента у списку. Повертає %1, якщо елемент не знайдено.", - "LISTS_GET_INDEX_GET": "отримати", - "LISTS_GET_INDEX_GET_REMOVE": "отримати і вилучити", - "LISTS_GET_INDEX_REMOVE": "вилучити", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "# з кінця", - "LISTS_GET_INDEX_FIRST": "перший", - "LISTS_GET_INDEX_LAST": "останній", - "LISTS_GET_INDEX_RANDOM": "випадковий", - "LISTS_GET_INDEX_TAIL": "-ий.", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 - це перший елемент.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 - це останній елемент.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Повертає елемент у заданій позиції у списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Повертає перший елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Повертає останній елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Повертає випадковий елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Видаляє і повертає елемент у заданій позиції у списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Видаляє і повертає перший елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Видаляє і повертає останній елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Видаляє і повертає випадковий елемент списоку.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Вилучає зі списку елемент у вказаній позиції.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Вилучає перший елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Вилучає останній елемент списку.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Вилучає випадковий елемент списку.", - "LISTS_SET_INDEX_SET": "встановити", - "LISTS_SET_INDEX_INSERT": "вставити в", - "LISTS_SET_INDEX_INPUT_TO": "як", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Задає елемент списку у вказаній позиції.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Задає перший елемент списку.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Задає останній елемент списку.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Задає випадковий елемент у списку.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Вставка елемента у вказану позицію списку.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Вставляє елемент на початок списку.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Додає елемент у кінці списку.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Випадковим чином вставляє елемент у список.", - "LISTS_GET_SUBLIST_START_FROM_START": "отримати вкладений список з #", - "LISTS_GET_SUBLIST_START_FROM_END": "отримати вкладений список від # з кінця", - "LISTS_GET_SUBLIST_START_FIRST": "отримати вкладений список з першого", - "LISTS_GET_SUBLIST_END_FROM_START": "до #", - "LISTS_GET_SUBLIST_END_FROM_END": "до # з кінця", - "LISTS_GET_SUBLIST_END_LAST": "до останнього", - "LISTS_GET_SUBLIST_TAIL": "символу.", - "LISTS_GET_SUBLIST_TOOLTIP": "Створює копію вказаної частини списку.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "сортувати %3 %1 %2", - "LISTS_SORT_TOOLTIP": "Сортувати копію списку.", - "LISTS_SORT_ORDER_ASCENDING": "за зростанням", - "LISTS_SORT_ORDER_DESCENDING": "за спаданням", - "LISTS_SORT_TYPE_NUMERIC": "як числа", - "LISTS_SORT_TYPE_TEXT": "за абеткою", - "LISTS_SORT_TYPE_IGNORECASE": "за абеткою, ігноруючи регістр", - "LISTS_SPLIT_LIST_FROM_TEXT": "зробити з тексту список", - "LISTS_SPLIT_TEXT_FROM_LIST": "зробити зі списку текст", - "LISTS_SPLIT_WITH_DELIMITER": "з розділювачем", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Поділити текст на список текстів, розриваючи на кожному розділювачі.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Злити список текстів у єдиний текст, відокремивши розділювачами.", - "LISTS_REVERSE_MESSAGE0": "розвернути %1", - "LISTS_REVERSE_TOOLTIP": "Змінити порядок копії списку на зворотний.", - "ORDINAL_NUMBER_SUFFIX": "-ий.", - "VARIABLES_GET_TOOLTIP": "Повертає значення цієї змінної.", - "VARIABLES_GET_CREATE_SET": "Створити 'встановити %1'", - "VARIABLES_SET": "встановити %1 до %2", - "VARIABLES_SET_TOOLTIP": "Задає цю змінну рівною входу.", - "VARIABLES_SET_CREATE_GET": "Створити 'отримати %1'", - "PROCEDURES_DEFNORETURN_HELPURL": "https://uk.wikipedia.org/wiki/Підпрограма", - "PROCEDURES_DEFNORETURN_TITLE": "до", - "PROCEDURES_DEFNORETURN_PROCEDURE": "щось зробити", - "PROCEDURES_BEFORE_PARAMS": "з:", - "PROCEDURES_CALL_BEFORE_PARAMS": "з:", - "PROCEDURES_DEFNORETURN_DO": "блок тексту", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Створює функцію без виводу.", - "PROCEDURES_DEFNORETURN_COMMENT": "Опишіть цю функцію...", - "PROCEDURES_DEFRETURN_HELPURL": "https://uk.wikipedia.org/wiki/Підпрограма", - "PROCEDURES_DEFRETURN_RETURN": "повернути", - "PROCEDURES_DEFRETURN_TOOLTIP": "Створює функцію з виводом.", - "PROCEDURES_ALLOW_STATEMENTS": "дозволити дії", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Увага: ця функція має дубльовані параметри.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://uk.wikipedia.org/wiki/Підпрограма", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Запустити користувацьку функцію \"%1\".", - "PROCEDURES_CALLRETURN_HELPURL": "https://uk.wikipedia.org/wiki/Підпрограма", - "PROCEDURES_CALLRETURN_TOOLTIP": "Запустити користувацьку функцію \"%1\" і використати її вивід.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "входи", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Додайте, вилучіть або змініть порядок вхідних параметрів для цієї функції.", - "PROCEDURES_MUTATORARG_TITLE": "назва входу:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Додати до функції вхідні параметри.", - "PROCEDURES_HIGHLIGHT_DEF": "Підсвітити визначення функції", - "PROCEDURES_CREATE_DO": "Створити \"%1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Якщо значення істинне, то повернути друге значення.", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Попередження: цей блок може використовуватися лише в межах визначення функції.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Скажіть щось...", - "COLLAPSED_WARNINGS_WARNING": "Звернуті блоки містять попередження." -} diff --git a/lib/blockly/msg/json/ur.json b/lib/blockly/msg/json/ur.json deleted file mode 100644 index e39e9a4..0000000 --- a/lib/blockly/msg/json/ur.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Abdulq", - "Obaid Raza", - "عثمان خان شاہ", - "محمد افضل", - "Sayam Asjad", - "NajeebKhan" - ] - }, - "VARIABLES_DEFAULT_NAME": "آئٹم", - "TODAY": "آج", - "DUPLICATE_BLOCK": "ڈپلیکیٹ", - "ADD_COMMENT": "کمنٹ کریں", - "REMOVE_COMMENT": "تبصرہ حذف کریں", - "DUPLICATE_COMMENT": " ہو بہو تبصرہ", - "EXTERNAL_INPUTS": "خارجی دخل اندازی", - "INLINE_INPUTS": "بین السطور داخل کریں", - "DELETE_BLOCK": "حذف بلاک", - "DELETE_X_BLOCKS": "%1 بلاکوں کو حذف کریں", - "DELETE_ALL_BLOCKS": "تمام%1 بلاکس کو حذف کریں؟", - "CLEAN_UP": "بلاکس صاف کریں", - "COLLAPSE_BLOCK": "بند کرو بلاک", - "COLLAPSE_ALL": "بند کرو بلاکس", - "EXPAND_BLOCK": "بلاک میں توسیع کریں", - "EXPAND_ALL": "بلاکوں میں توسیع کریں", - "DISABLE_BLOCK": "بلاک کو غیرفعال کریں", - "ENABLE_BLOCK": "بلاک کو فعال کریں", - "HELP": "معاونت", - "UNDO": "کیا ہوا کام کینسل کرے", - "REDO": "دہرائیں", - "CHANGE_VALUE_TITLE": "ویلیو تبدیل کریں:", - "RENAME_VARIABLE": "دوبار نام دیں ویریابل کو...", - "RENAME_VARIABLE_TITLE": "تمام %1 متغیروں کو دوبارہ نام دے:", - "NEW_VARIABLE": "متغیر بنائیں", - "NEW_STRING_VARIABLE": "متغیر بنائیں String", - "NEW_NUMBER_VARIABLE": "عدد متغیر بناییں", - "NEW_COLOUR_VARIABLE": "رنگ متغیر بنائیں", - "NEW_VARIABLE_TYPE_TITLE": " نئی متغیر قسم", - "NEW_VARIABLE_TITLE": "نیا ویریابل نام:", - "VARIABLE_ALREADY_EXISTS": "ایک متغیر نام '٪ 1' پہلے سے ہی موجود ہے.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "ایک متغیر نام '٪ 1' کسی دوسرے قسم کے لئے پہلے ہی موجود ہے: '٪ 2'.", - "DELETE_VARIABLE_CONFIRMATION": "'٪ 2' متغیر کے٪ 1 استعمال کو حذف کریں؟", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "متغیر '٪ 1' کو حذف نہیں کر سکتا کیونکہ یہ فنکشن کی تعریف کا حصہ ہے '٪ 2'", - "DELETE_VARIABLE": "'٪ 1' متغیر کو حذف کریں", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "پیلیٹ سے رنگ منتخب کریں", - "COLOUR_RANDOM_TITLE": "ناسیدھا رنگ", - "COLOUR_RANDOM_TOOLTIP": "کسی بھی رنگ کو منتجب کریں", - "COLOUR_RGB_TITLE": "کے ساتھ رنگ", - "COLOUR_RGB_RED": "سرخ", - "COLOUR_RGB_GREEN": "سبز", - "COLOUR_RGB_BLUE": "نیلا", - "COLOUR_RGB_TOOLTIP": "مخصوص، سرخ، سبز اور نیلے رنگ کے ساتھ ایک رنگ بنائیں. تمام اقدار 0 اور 100 کے درمیان ہونا ضروری ہے.", - "COLOUR_BLEND_TITLE": "مرکب", - "COLOUR_BLEND_COLOUR1": "رنگ 1", - "COLOUR_BLEND_COLOUR2": "رنگ 2", - "COLOUR_BLEND_RATIO": "ریشیو", - "COLOUR_BLEND_TOOLTIP": "دیئے گئے ریشیو میں دو رنگوں کو مرکب کریں (0.0-1.0)", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "%1 مرتبہ دہرائے", - "CONTROLS_REPEAT_INPUT_DO": "کریں", - "CONTROLS_REPEAT_TOOLTIP": "کچھ جملوں کو کہیں مرتبہ کریں۔", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "کے دوران دہرائے", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تک دہرائے", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "اگر ایک ویلیو صحیح ہے، تو کچھ سٹیٹمنٹ کریں", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "اگر ایک ویلیو صحیح ہے، تو کچھ سٹیٹمنٹ کریں", - "CONTROLS_FOR_TOOLTIP": "کیا چر '%1' ابتدا عدد سے اختتام عدد تک मानों کو لیتا ہے، निर्दिष्ट अंतराल کے تحت گنتی کرتا ہے، اور निर्दिष्ट रुकावटों کو کرتا ہے۔", - "CONTROLS_FOR_TITLE": "%1 سے %2 سے %3 تک %4 کے ساتھ گنتی کریں", - "CONTROLS_FOREACH_TITLE": "प्रत्येक چیز کیلئے %1 فہرست ميں %2", - "CONTROLS_FOREACH_TOOLTIP": "فہرست میں ہر آئٹم کے لئے، '%1' متغیر کو آئٹم پہ لگائے،اور پھر کچھ جملے کہے", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "لوپ سے باہر نکلنا", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "مشتمل لوپ کے باہر توڑ.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "انتباہ: اس بلاک کو صرف لوپ میں استعمال کیا جاسکتا ہے۔", - "CONTROLS_IF_TOOLTIP_1": "اگر ایک ویلیو صحیح ہے، تو کچھ سٹیٹمنٹ کریں", - "CONTROLS_IF_MSG_IF": "اگر", - "CONTROLS_IF_MSG_ELSEIF": "دوسراں اگر", - "CONTROLS_IF_MSG_ELSE": "دوسراں", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_OPERATION_AND": "اور", - "LOGIC_OPERATION_OR": "یا", - "LOGIC_NEGATE_TITLE": "%1 نہیں", - "LOGIC_BOOLEAN_TRUE": "سچ", - "LOGIC_BOOLEAN_FALSE": "غلط", - "LOGIC_TERNARY_CONDITION": "ٹیسٹ", - "LOGIC_TERNARY_IF_TRUE": "اگ سچ ہے", - "LOGIC_TERNARY_IF_FALSE": "اگر غلط ہے", - "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", - "MATH_NUMBER_TOOLTIP": "ایک نمبر.", - "MATH_ARITHMETIC_HELPURL": "https://en.wikipedia.org/wiki/Arithmetic", - "MATH_SINGLE_OP_ROOT": "اسکویر روٹ", - "MATH_SINGLE_OP_ABSOLUTE": "بالکل", - "TEXT_CHARAT_FROM_START": "# حرف حاصل کریں", - "LISTS_CREATE_WITH_INPUT_WITH": "کے ساتھ فہرست بنائیں", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "فہرست", - "LISTS_LENGTH_TITLE": "%1 کی لمبائی", - "LISTS_INLIST": "فہرست میں", - "LISTS_GET_INDEX_GET": "حاصل کریں", - "LISTS_GET_INDEX_REMOVE": "حذف کریں", - "LISTS_GET_INDEX_FROM_END": "آخر سے", - "LISTS_GET_INDEX_FIRST": "پہلا", - "LISTS_GET_INDEX_LAST": "آخری", - "LISTS_GET_INDEX_RANDOM": "غیرمتعین", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "پہلے آئٹم کو فہرست میں لوٹائے", - "LISTS_SET_INDEX_SET": "تعین کریں", - "LISTS_SET_INDEX_INSERT": "میں درج کریں", - "LISTS_SET_INDEX_INPUT_TO": "بطور", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "فہرست میں پہلا آئٹم کا تعین کریں", - "PROCEDURES_DEFNORETURN_TITLE": "کو", - "PROCEDURES_DEFNORETURN_PROCEDURE": "کچھ کرو", - "PROCEDURES_BEFORE_PARAMS": "سمیت:", - "PROCEDURES_CALL_BEFORE_PARAMS": "سمیت:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "بغیر آوٹ پٹ کا فنکشن بنائیں", - "PROCEDURES_DEFRETURN_RETURN": "واپس آ جائیں", - "PROCEDURES_DEFRETURN_TOOLTIP": "بغیر آوٹ پٹ کا فنکشن بنائیں" -} diff --git a/lib/blockly/msg/json/vi.json b/lib/blockly/msg/json/vi.json deleted file mode 100644 index e6d00c3..0000000 --- a/lib/blockly/msg/json/vi.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Baonguyen21022003", - "Espertus", - "Qneutron", - "Withoutaname", - "Dstream", - "Nguyenvanduocit", - "Leducthn", - "SierraNguyen" - ] - }, - "VARIABLES_DEFAULT_NAME": "vật", - "TODAY": "Hôm nay", - "DUPLICATE_BLOCK": "Tạo Bản Sao", - "ADD_COMMENT": "Thêm Chú Giải", - "REMOVE_COMMENT": "Xóa Chú Giải", - "DUPLICATE_COMMENT": "Bình luận trùng", - "EXTERNAL_INPUTS": "Chỗ Gắn Bên Ngoài", - "INLINE_INPUTS": "Chỗ Gắn Cùng Dòng", - "DELETE_BLOCK": "Xóa Mảnh Này", - "DELETE_X_BLOCKS": "Xóa %1 Mảnh", - "DELETE_ALL_BLOCKS": "Xóa hết %1 mảnh?", - "CLEAN_UP": "Sắp xếp lại các khối", - "COLLAPSE_BLOCK": "Thu Nhỏ Mảnh", - "COLLAPSE_ALL": "Thu Nhỏ Mọi Mảnh", - "EXPAND_BLOCK": "Mở Lớn Mảnh", - "EXPAND_ALL": "Mở Lớn Mọi Mảnh", - "DISABLE_BLOCK": "Ngưng Tác Dụng", - "ENABLE_BLOCK": "Phục Hồi Tác Dụng", - "HELP": "Trợ Giúp", - "UNDO": "Hoàn tác", - "REDO": "Làm lại", - "CHANGE_VALUE_TITLE": "Thay giá trị thành:", - "RENAME_VARIABLE": "Thay tên biến...", - "RENAME_VARIABLE_TITLE": "Thay tên tất cả các biến \"%1\" thành:", - "NEW_VARIABLE": "Tạo biến...", - "NEW_STRING_VARIABLE": "Tạo một giá trị dạng chuỗi...", - "NEW_NUMBER_VARIABLE": "Tạo một giá trị số...", - "NEW_COLOUR_VARIABLE": "Tạo một giá trị màu sắc...", - "NEW_VARIABLE_TYPE_TITLE": "Kiểu giá trị mới:", - "NEW_VARIABLE_TITLE": "Tên của biến mới:", - "VARIABLE_ALREADY_EXISTS": "Một biến có tên '%1' đã tồn tại.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Giá trị '%1' đã tồn tại dưới dạng: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Xóa %1 lần dùng của giá trị '%2'?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "Không thể xóa giá trị '%1' vì nó được bao gồm trong định nghĩa của chức năng '%2'", - "DELETE_VARIABLE": "Xóa giá trị '%1'", - "COLOUR_PICKER_HELPURL": "https://vi.wikipedia.org/wiki/M%C3%A0u_s%E1%BA%AFc", - "COLOUR_PICKER_TOOLTIP": "Chọn một màu từ bảng màu.", - "COLOUR_RANDOM_TITLE": "màu bất kỳ", - "COLOUR_RANDOM_TOOLTIP": "chọn một màu bất kỳ.", - "COLOUR_RGB_TITLE": "tạo màu từ", - "COLOUR_RGB_RED": "màu đỏ", - "COLOUR_RGB_GREEN": "màu xanh lá cây", - "COLOUR_RGB_BLUE": "màu xanh dương", - "COLOUR_RGB_TOOLTIP": "Tạo màu từ ba màu: đỏ, xanh lá cây, xanh dương với số lượng cụ thể. Mỗi số phải có giá trị từ 0 đến 100.", - "COLOUR_BLEND_TITLE": "pha", - "COLOUR_BLEND_COLOUR1": "màu 1", - "COLOUR_BLEND_COLOUR2": "màu 2", - "COLOUR_BLEND_RATIO": "tỉ lệ", - "COLOUR_BLEND_TOOLTIP": "Pha hai màu với nhau theo tỉ lệ (0 - 100).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "lặp lại %1 lần", - "CONTROLS_REPEAT_INPUT_DO": "thực hiện", - "CONTROLS_REPEAT_TOOLTIP": "Thực hiện các lệnh vài lần.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "lặp lại trong khi", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "lặp lại cho đến khi", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Miễn là điều kiện còn đúng, thì thực hiện các lệnh.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Miễn là điều kiện còn sai, thì thực hiện các lệnh. Khi điều kiện đúng thì ngưng.", - "CONTROLS_FOR_TOOLTIP": "Cho biến '%1' lấy các giá trị từ số bắt đầu đến số kết thúc, đếm theo khoảng thời gian đã chỉ định và thực hiện các khối được chỉ định.", - "CONTROLS_FOR_TITLE": "đếm theo %1 từ %2 đến %3 mỗi lần thêm %4", - "CONTROLS_FOREACH_TITLE": "với mỗi thành phần %1 trong danh sách %2", - "CONTROLS_FOREACH_TOOLTIP": "Trong một danh sách, lấy từng thành phần, gán vào biến \"%1\", rồi thực hiện một số lệnh.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "thoát", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "sang lần lặp tiếp theo", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Thoát khỏi vòng lặp hiện tại.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Bỏ qua phần còn lại trong vòng lặp này, và sang lần lặp tiếp theo.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Chú ý: Mảnh này chỉ có thế dùng trong các vòng lặp.", - "CONTROLS_IF_TOOLTIP_1": "Nếu điều kiện đúng, thực hiện các lệnh.", - "CONTROLS_IF_TOOLTIP_2": "Nếu điều kiện đúng, thực hiện các lệnh đầu. Nếu sai, thực hiện các lệnh sau.", - "CONTROLS_IF_TOOLTIP_3": "Nếu điều kiện đúng, thực hiện các lệnh đầu. Nếu không, nếu điều kiện thứ hai đúng, thực hiện các lệnh thứ hai.", - "CONTROLS_IF_TOOLTIP_4": "Nếu điều kiện đúng, thực hiện các lệnh đầu. Nếu không, nếu điều kiện thứ hai đúng, thực hiện các lệnh thứ hai. Nếu không điều kiện nào đúng, thực hiện các lệnh cuối cùng.", - "CONTROLS_IF_MSG_IF": "nếu", - "CONTROLS_IF_MSG_ELSEIF": "nếu không nếu", - "CONTROLS_IF_MSG_ELSE": "nếu không", - "CONTROLS_IF_IF_TOOLTIP": "Thêm, bỏ, hoặc đổi thứ tự các mảnh con để tạo cấu trúc mới cho mảnh nếu.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Thêm một điều kiện vào mảnh nếu.", - "CONTROLS_IF_ELSE_TOOLTIP": "Cuối cùng, khi không điều kiện nào đúng.", - "IOS_OK": "Đồng ý", - "IOS_CANCEL": "Hủy bỏ", - "IOS_ERROR": "Lỗi", - "IOS_PROCEDURES_INPUTS": "NHẬP VÀO", - "IOS_PROCEDURES_ADD_INPUT": "+ Thêm đầu vào", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Cho phép báo cáo", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Hàm này có chứa các input trùng nhau.", - "IOS_VARIABLES_ADD_VARIABLE": "+ Thêm biến", - "IOS_VARIABLES_ADD_BUTTON": "Thêm", - "IOS_VARIABLES_RENAME_BUTTON": "Đổi tên", - "IOS_VARIABLES_DELETE_BUTTON": "Xóa", - "IOS_VARIABLES_VARIABLE_NAME": "Tên biến", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "Bạn không thể không nhập tên biến.", - "LOGIC_COMPARE_HELPURL": "https://vi.wikipedia.org/wiki/B%E1%BA%A5t_%C4%91%E1%BA%B3ng_th%E1%BB%A9c", - "LOGIC_COMPARE_TOOLTIP_EQ": "Hoàn trả giá trị \"đúng\" (true) nếu giá trị hai đầu vào bằng nhau.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Hoàn trả giá trị \"đúng\" (true) nếu giá trị hai đầu vào không bằng nhau.", - "LOGIC_COMPARE_TOOLTIP_LT": "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất nhỏ hơn đầu vào thứ hai.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất nhỏ hơn hoặc bằng đầu vào thứ hai.", - "LOGIC_COMPARE_TOOLTIP_GT": "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất lớn hơn đầu vào thứ hai.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Hoàn trả giá trị \"đúng\" (true) nếu đầu vào thứ nhất lớn hơn hoặc bằng đầu vào thứ hai.", - "LOGIC_OPERATION_TOOLTIP_AND": "Hoàn trả \"đúng\" (true) nếu cả hai đầu vào đều đúng.", - "LOGIC_OPERATION_AND": "và", - "LOGIC_OPERATION_TOOLTIP_OR": "Hoàn trả \"đúng\" (true) nếu ít nhất một trong hai đầu vào đúng.", - "LOGIC_OPERATION_OR": "hoặc", - "LOGIC_NEGATE_TITLE": "không %1", - "LOGIC_NEGATE_TOOLTIP": "Hoàn trả \"đúng\" (true) nếu đầu vào sai. Hoàn trả \"sai\" (false) nếu đầu vào đúng.", - "LOGIC_BOOLEAN_TRUE": "đúng", - "LOGIC_BOOLEAN_FALSE": "sai", - "LOGIC_BOOLEAN_TOOLTIP": "Hoàn trả \"đúng\" hoặc \"sai\".", - "LOGIC_NULL": "trống không", - "LOGIC_NULL_TOOLTIP": "Hoàn trả trống không.", - "LOGIC_TERNARY_CONDITION": "kiểm tra", - "LOGIC_TERNARY_IF_TRUE": "nếu đúng", - "LOGIC_TERNARY_IF_FALSE": "nếu sai", - "LOGIC_TERNARY_TOOLTIP": "Kiểm tra điều kiện. Nếu điều kiện đúng, hoàn trả giá trị từ mệnh đề \"nếu đúng\" nếu không đúng, hoàn trả giá trị từ mệnh đề \"nếu sai\".", - "MATH_NUMBER_HELPURL": "https://vi.wikipedia.org/wiki/S%E1%BB%91", - "MATH_NUMBER_TOOLTIP": "Một con số.", - "MATH_ARITHMETIC_HELPURL": "https://vi.wikipedia.org/wiki/S%E1%BB%91_h%E1%BB%8Dc", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Hoàn trả tổng của hai con số.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Hoàn trả hiệu của hai con số.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Hoàn trả tích của hai con số.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Hoàn trả thương của hai con số.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Hoàn trả số lũy thừa với số thứ nhất là cơ số và số thứ hai là số mũ.", - "MATH_SINGLE_HELPURL": "https://vi.wikipedia.org/wiki/C%C4%83n_b%E1%BA%ADc_hai", - "MATH_SINGLE_OP_ROOT": "căn bật hai", - "MATH_SINGLE_TOOLTIP_ROOT": "Hoàn trả căn bật hai của số đầu vào.", - "MATH_SINGLE_OP_ABSOLUTE": "giá trị tuyệt đối", - "MATH_SINGLE_TOOLTIP_ABS": "Hoàn trả giá trị tuyệt đối của số đầu vào.", - "MATH_SINGLE_TOOLTIP_NEG": "Đổi dấu của số đầu vào: âm thành dương và dương thành âm, và hoàn trả số mới.", - "MATH_SINGLE_TOOLTIP_LN": "Hoàn trả lôgarit tự nhiên của số đầu vào.", - "MATH_SINGLE_TOOLTIP_LOG10": "Hoàn trả lôgarit cơ số 10 của số đầu vào.", - "MATH_SINGLE_TOOLTIP_EXP": "Hoàn trả lũy thừa của số e với số mũ đầu vào.", - "MATH_SINGLE_TOOLTIP_POW10": "Hoàn trả lũy thừa của số 10 với số mũ đầu vào.", - "MATH_TRIG_HELPURL": "https://vi.wikipedia.org/wiki/H%C3%A0m_l%C6%B0%E1%BB%A3ng_gi%C3%A1c", - "MATH_TRIG_TOOLTIP_SIN": "Hoàn trả Sin của một góc (theo độ).", - "MATH_TRIG_TOOLTIP_COS": "Hoàn trả Cos của một góc (theo độ).", - "MATH_TRIG_TOOLTIP_TAN": "Hoàn trả Tang của một góc (theo độ).", - "MATH_TRIG_TOOLTIP_ASIN": "Hoàn trả Arcsin của một góc (theo độ).", - "MATH_TRIG_TOOLTIP_ACOS": "Hoàn trả Arccos của một góc (theo độ).", - "MATH_TRIG_TOOLTIP_ATAN": "Hoàn trả Arctang của một góc (theo độ).", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Hoàn trả các đẳng số thường gặp: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (vô cực).", - "MATH_IS_EVEN": "là số chẵn", - "MATH_IS_ODD": "là số lẻ", - "MATH_IS_PRIME": "là số nguyên tố", - "MATH_IS_WHOLE": "là số nguyên", - "MATH_IS_POSITIVE": "là số dương", - "MATH_IS_NEGATIVE": "là số âm", - "MATH_IS_DIVISIBLE_BY": "chia hết cho", - "MATH_IS_TOOLTIP": "Kiểm tra con số xem nó có phải là số chẵn, lẻ, nguyên tố, nguyên, dương, âm, hay xem nó có chia hết cho số đầu vào hay không. Hoàn trả đúng hay sai.", - "MATH_CHANGE_HELPURL": "https://vi.wikipedia.org/wiki/Ph%C3%A9p_c%E1%BB%99ng", - "MATH_CHANGE_TITLE": "cộng vào %1 giá trị %2", - "MATH_CHANGE_TOOLTIP": "Cộng số đầu vào vào biến \"%1\".", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Làm tròn lên hoặc tròn xuống số đầu vào.", - "MATH_ROUND_OPERATOR_ROUND": "làm tròn", - "MATH_ROUND_OPERATOR_ROUNDUP": "làm tròn lên", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "làm tròn xuống", - "MATH_ONLIST_HELPURL": "", - "MATH_ONLIST_OPERATOR_SUM": "tổng của một danh sách", - "MATH_ONLIST_TOOLTIP_SUM": "Hoàn trả tổng số của tất cả các số trong danh sách.", - "MATH_ONLIST_OPERATOR_MIN": "số nhỏ nhất của một danh sách", - "MATH_ONLIST_TOOLTIP_MIN": "Hoàn trả số nhỏ nhất trong tất cả các số trong danh sách.", - "MATH_ONLIST_OPERATOR_MAX": "số lớn nhât của một danh sách", - "MATH_ONLIST_TOOLTIP_MAX": "Hoàn trả số lớn nhất trong tất cả các số trong danh sách.", - "MATH_ONLIST_OPERATOR_AVERAGE": "giá trị trung bình của một danh sách", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Hoàn trả giá trị trung bình từ của danh sách số.", - "MATH_ONLIST_OPERATOR_MEDIAN": "số trung vị của một danh sách", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Hoàn trả số trung vị của danh sách số.", - "MATH_ONLIST_OPERATOR_MODE": "các mode của một danh sách", - "MATH_ONLIST_TOOLTIP_MODE": "Hoàn trả các số có mặt nhiều nhất trong danh sách.", - "MATH_ONLIST_OPERATOR_STD_DEV": "độ lệch chuẩn của một danh sách", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Hoàn trả độ lệch chuẩn của danh sách số.", - "MATH_ONLIST_OPERATOR_RANDOM": "một số bất kỳ của một danh sách", - "MATH_ONLIST_TOOLTIP_RANDOM": "Hoàn trả một số bất kỳ từ các số trong danh sách.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "số dư của %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Chia số thứ nhất cho số thứ hai rồi hoàn trả số dư từ.", - "MATH_CONSTRAIN_TITLE": "giới hạn %1 không dưới %2 không hơn %3", - "MATH_CONSTRAIN_TOOLTIP": "Giới hạn số đầu vào để không dưới số thứ nhất và không hơn số thứ hai.", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "Một số nguyên bất kỳ từ %1 đến %2", - "MATH_RANDOM_INT_TOOLTIP": "Hoàn trả một số nguyên bất kỳ lớn hơn hoặc bằng số đầu và nhỏ hơn hoặc bằng số sau.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "phân số bất kỳ", - "MATH_RANDOM_FLOAT_TOOLTIP": "Hoàn trả một phân số bất kỳ không nhỏ hơn 0.0 và không lớn hơn 1.0.", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 của X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Trả về arctangent của điểm (X, Y) trong khoảng từ -180 độ đến 180 độ.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/string_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Một ký tự, một từ, hay một dòng.", - "TEXT_JOIN_HELPURL": "", - "TEXT_JOIN_TITLE_CREATEWITH": "tạo văn bản từ", - "TEXT_JOIN_TOOLTIP": "Tạo một văn bản từ các thành phần.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "kết nối", - "TEXT_CREATE_JOIN_TOOLTIP": "Thêm, bỏ, hoặc sắp xếp lại các thành phần để tạo dựng mảnh văn bản này.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "thêm vật mới vào văn bản.", - "TEXT_APPEND_TITLE": "ở cuối %1 thêm văn bản %2", - "TEXT_APPEND_TOOLTIP": "Thêm một mảng văn bản vào biến \"%1\".", - "TEXT_LENGTH_TITLE": "độ dài của %1", - "TEXT_LENGTH_TOOLTIP": "Hoàn trả số lượng ký tự (kể cả khoảng trắng) trong văn bản đầu vào.", - "TEXT_ISEMPTY_TITLE": "%1 trống không", - "TEXT_ISEMPTY_TOOLTIP": "Hoàn trả “đúng nếu văn bản không có ký tự nào.", - "TEXT_INDEXOF_TOOLTIP": "Hoàn trả vị trí xuất hiện đầu/cuối của văn bản thứ nhất trong văn bản thứ hai. Nếu không tìm thấy thì hoàn trả số %1.", - "TEXT_INDEXOF_TITLE": "trong văn bản %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "tìm sự có mặt đầu tiên của", - "TEXT_INDEXOF_OPERATOR_LAST": "tìm sự có mặt cuối cùng của", - "TEXT_CHARAT_TITLE": "trong văn bản %1 %2", - "TEXT_CHARAT_FROM_START": "lấy ký tự thứ", - "TEXT_CHARAT_FROM_END": "lấy từ phía cuối, ký tự thứ", - "TEXT_CHARAT_FIRST": "lấy ký tự đầu tiên", - "TEXT_CHARAT_LAST": "lấy ký tự cuối cùng", - "TEXT_CHARAT_RANDOM": "lấy ký tự bất kỳ", - "TEXT_CHARAT_TOOLTIP": "Hoàn trả ký tự ở vị trí đặt ra.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Hoàn trả một mảng ký tự ấn định từ trong văn bản.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "trong văn bản", - "TEXT_GET_SUBSTRING_START_FROM_START": "lấy từ ký tự thứ", - "TEXT_GET_SUBSTRING_START_FROM_END": "lấy từ phía cuối, ký tự thứ", - "TEXT_GET_SUBSTRING_START_FIRST": "lấy từ ký tự đầu tiên", - "TEXT_GET_SUBSTRING_END_FROM_START": "đến ký tự thứ", - "TEXT_GET_SUBSTRING_END_FROM_END": "đến từ phía cuối, ký tự thứ", - "TEXT_GET_SUBSTRING_END_LAST": "đến ký tự cuối cùng", - "TEXT_CHANGECASE_TOOLTIP": "Hoàn trả văn bản sau khi chuyển đổi chữ in hoa hay thường.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "thành CHỮ IN HOA", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "thành chữ thường", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "thành Chữ In Đầu Mỗi Từ", - "TEXT_TRIM_TOOLTIP": "Hoàn trả bản sao của văn bản sau khi xóa khoảng trắng từ một hoặc hai bên.", - "TEXT_TRIM_OPERATOR_BOTH": "cắt các không gian từ cả hai mặt của", - "TEXT_TRIM_OPERATOR_LEFT": "cắt các không gian từ bên trái của", - "TEXT_TRIM_OPERATOR_RIGHT": "cắt các không gian từ bên phải của", - "TEXT_PRINT_TITLE": "in lên màng hình %1", - "TEXT_PRINT_TOOLTIP": "In ra màng hình một văn bản, con số, hay một giá trị đầu vào khác.", - "TEXT_PROMPT_TYPE_TEXT": "Xin người dùng nhập vào văn bản với dòng hướng dẫn", - "TEXT_PROMPT_TYPE_NUMBER": "Xin người dùng nhập vào con số với dòng hướng dẫn", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Xin người dùng nhập vào một con số.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Xin người dùng nhập vào một văn bản.", - "TEXT_COUNT_MESSAGE0": "đến %1 trong %2", - "TEXT_COUNT_TOOLTIP": "Đếm số lần một đoạn văn bản xuất hiện trong một đoạn văn bản khác.", - "TEXT_REPLACE_MESSAGE0": "thay thế %1 bằng %2 trong %3", - "TEXT_REPLACE_TOOLTIP": "Thay thế tất cả các lần xuất hiện của văn bản bằng văn bản khác.", - "TEXT_REVERSE_MESSAGE0": "đảo ngược %1", - "TEXT_REVERSE_TOOLTIP": "Đảo ngược thứ tự của các chữ cái trong văn bản.", - "LISTS_CREATE_EMPTY_TITLE": "tạo danh sách trống", - "LISTS_CREATE_EMPTY_TOOLTIP": "Hoàn trả một danh sách, với độ dài 0, không có thành tố nào cả", - "LISTS_CREATE_WITH_TOOLTIP": "Tạo một danh sách bao gồm nhiều vậts, với một số lượng bất kỳ.", - "LISTS_CREATE_WITH_INPUT_WITH": "tạo danh sách gồm", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "danh sách", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Thêm, bỏ, hoặc sắp xếp lại các thành phần để tạo dựng mảnh danh sách này.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Thêm vật vào danh sách.", - "LISTS_REPEAT_TOOLTIP": "Tạo danh sách gồm một số lượng vật nhất định với mỗi vật đều giống nhau.", - "LISTS_REPEAT_TITLE": "tạo danh sách gồm một vật %1 lặp lại %2 lần", - "LISTS_LENGTH_TITLE": "độ dài của %1", - "LISTS_LENGTH_TOOLTIP": "Hoàn trả độ dài của một danh sách.", - "LISTS_ISEMPTY_TITLE": "%1 trống rỗng", - "LISTS_ISEMPTY_TOOLTIP": "Hoàn trả “đúng\" nếu danh sách không có thành tử nào.", - "LISTS_INLIST": "trong dánh sách", - "LISTS_INDEX_OF_FIRST": "tìm sự có mặt đầu tiên của vật", - "LISTS_INDEX_OF_LAST": "tìm sự có mặt cuối cùng của vật", - "LISTS_INDEX_OF_TOOLTIP": "Hoàn trả vị trí xuất hiện đầu tiên/cuối cùng của vật trong danh sách. Nếu không tìm thấy thì hoàn trả số %1.", - "LISTS_GET_INDEX_GET": "lấy thành tố", - "LISTS_GET_INDEX_GET_REMOVE": "lấy và xóa thành tố", - "LISTS_GET_INDEX_REMOVE": "xóa thành tố", - "LISTS_GET_INDEX_FROM_START": "thứ", - "LISTS_GET_INDEX_FROM_END": "(đếm từ cuối) thứ", - "LISTS_GET_INDEX_FIRST": "đầu tiên", - "LISTS_GET_INDEX_LAST": "cuối cùng", - "LISTS_GET_INDEX_RANDOM": "bất kỳ", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 là thành tố đầu tiên.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 là thành tố cuối cùng.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Hoàn trả thành tố trong danh sách ở vị trí ấn định.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Hoàn trả thành tố đầu tiên trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Hoàn trả thành tố cuối cùng trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Hoàn trả một thành tố bất kỳ trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Hoàn trả và xóa thành tố trong danh sách ở vị trí ấn định.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Hoàn trả và xóa thành tố đầu tiên trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Hoàn trả và xóa thành tố cuối cùng trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Hoàn trả và xóa mộtthành tố bất kỳ trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Xóa thành tố trong danh sách ở vị trí ấn định.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Xóa thành tố đầu tiên trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Xóa thành tố cuối cùng trong danh sách.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Xóa thành tố bất kỳ trong danh sách.", - "LISTS_SET_INDEX_SET": "đặt", - "LISTS_SET_INDEX_INSERT": "chèn vào vị trí", - "LISTS_SET_INDEX_INPUT_TO": "giá trị", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Đặt giá trị của thành tố ở vị trí ấn định trong một danh sách.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Đặt giá trị của thành tố đầu tiên trong danh sách.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Đặt giá trị của thành tố cuối cùng trong danh sách.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Đặt giá trị của thành tố ngẫu nhiên trong danh sách.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Chèn vật vào danh sách theo vị trí ấn định.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Chèn vật vào đầu danh sách.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Gắn thêm vật vào cuối danh sách.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Gắn chèn vật vào danh sách ở vị trí ngẫu nhiên.", - "LISTS_GET_SUBLIST_START_FROM_START": "lấy một danh sách con từ vị trí thứ", - "LISTS_GET_SUBLIST_START_FROM_END": "lấy một danh sách con từ (đếm từ cuối) từ vị trí thứ", - "LISTS_GET_SUBLIST_START_FIRST": "lấy một danh sách con từ đầu tiên", - "LISTS_GET_SUBLIST_END_FROM_START": "đến thứ", - "LISTS_GET_SUBLIST_END_FROM_END": "đến (đếm từ cuối) thứ", - "LISTS_GET_SUBLIST_END_LAST": "đến cuối cùng", - "LISTS_GET_SUBLIST_TOOLTIP": "Lấy một mảng của danh sách này để tạo danh sách con.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "sắp xếp %1 %2 %3", - "LISTS_SORT_TOOLTIP": "Sắp xếp một bản sao của một danh sách.", - "LISTS_SORT_ORDER_ASCENDING": "tăng dần", - "LISTS_SORT_ORDER_DESCENDING": "giảm dần", - "LISTS_SORT_TYPE_NUMERIC": "số", - "LISTS_SORT_TYPE_TEXT": "chữ cái", - "LISTS_SORT_TYPE_IGNORECASE": "chữ cái, không phân biệt hoa/thường", - "LISTS_SPLIT_LIST_FROM_TEXT": "tạo danh sách từ văn bản", - "LISTS_SPLIT_TEXT_FROM_LIST": "tạo văn bản từ danh sách", - "LISTS_SPLIT_WITH_DELIMITER": "với ký tự phân cách", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Tách văn bản thành một danh sách các văn bản nhỏ, ngắt bởi các ký tự phân cách.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Liên kết một danh sách các văn bản vào một văn bản, cách nhau bằng dấu phân cách.", - "LISTS_REVERSE_MESSAGE0": "đảo ngược %1", - "LISTS_REVERSE_TOOLTIP": "Đảo ngược bản sao chép của một danh sách.", - "VARIABLES_GET_TOOLTIP": "Hoàn trả giá trị của.", - "VARIABLES_GET_CREATE_SET": "Tạo mảnh \"đặt vào %1\"", - "VARIABLES_SET": "cho %1 bằng %2", - "VARIABLES_SET_TOOLTIP": "Đặt giá trị của biến này thành...", - "VARIABLES_SET_CREATE_GET": "Tạo mảnh \"lấy %1\"", - "PROCEDURES_DEFNORETURN_TITLE": "thủ tục để", - "PROCEDURES_DEFNORETURN_PROCEDURE": "làm gì đó", - "PROCEDURES_BEFORE_PARAMS": "với:", - "PROCEDURES_CALL_BEFORE_PARAMS": "với:", - "PROCEDURES_DEFNORETURN_DO": "", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Một thủ tục không có giá trị hoàn trả.", - "PROCEDURES_DEFNORETURN_COMMENT": "Mô tả hàm này...", - "PROCEDURES_DEFRETURN_RETURN": "hoàn trả", - "PROCEDURES_DEFRETURN_TOOLTIP": "Một thủ tục có giá trị hoàn trả.", - "PROCEDURES_ALLOW_STATEMENTS": "cho phép báo cáo", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Chú ý: Thủ tục này có lặp lại tên các tham số.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://vi.wikipedia.org/wiki/Ch%C6%B0%C6%A1ng_tr%C3%ACnh_con", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Chạy một thủ tục không có giá trị hoàn trả.", - "PROCEDURES_CALLRETURN_HELPURL": "https://vi.wikipedia.org/wiki/Ch%C6%B0%C6%A1ng_tr%C3%ACnh_con", - "PROCEDURES_CALLRETURN_TOOLTIP": "Chạy một thủ tục có giá trị hoàn trả.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "các tham số", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Thêm, xóa hoặc sắp xếp lại các đầu vào cho hàm này.", - "PROCEDURES_MUTATORARG_TITLE": "biến:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Thêm một đầu vào cho hàm.", - "PROCEDURES_HIGHLIGHT_DEF": "Làm nổi bật thủ tục", - "PROCEDURES_CREATE_DO": "Tạo mảnh \"thực hiện %1\"", - "PROCEDURES_IFRETURN_TOOLTIP": "Khi điều kiện đúng thì hoàn trả một giá trị.", - "PROCEDURES_IFRETURN_WARNING": "Chú ý: Mảnh này chỉ có thể dùng trong một thủ tục.", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Hãy nói gì đó...", - "COLLAPSED_WARNINGS_WARNING": "Các khối bị sập có chứa cảnh báo." -} diff --git a/lib/blockly/msg/json/xmf.json b/lib/blockly/msg/json/xmf.json deleted file mode 100644 index a34d866..0000000 --- a/lib/blockly/msg/json/xmf.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Silovan" - ] - }, - "VARIABLES_DEFAULT_NAME": "ელემენტი", - "TODAY": "ამდღა", - "DUPLICATE_BLOCK": "კოპირაფა", - "ADD_COMMENT": "კომენტარიშ გეძინა", - "REMOVE_COMMENT": "კომენტარიშ გოუქვაფა", - "EXTERNAL_INPUTS": "გალეშე დინოხუნაფა", - "INLINE_INPUTS": "დინოხოლე დინოხუნაფა", - "DELETE_BLOCK": "ბლოკიშ ლასუა", - "DELETE_X_BLOCKS": "%1 ბლოკიშ ლასუა", - "DELETE_ALL_BLOCKS": "არძა (%1) ბლოკი ბლასათო?", - "CLEAN_UP": "ბლოკეფიშ გოუქვაფა", - "COLLAPSE_BLOCK": "ბლოკიშ ტყობინაფა", - "COLLAPSE_ALL": "ბლოკეფიშ ინოკიჩუა", - "EXPAND_BLOCK": "ბლოკიშ გჷმოფაჩუა", - "EXPAND_ALL": "ბლოკეფიშ გჷმოფაჩუა", - "DISABLE_BLOCK": "ბლოკიშ თიშუა", - "ENABLE_BLOCK": "ბლოკიშ ჩართება", - "HELP": "მოხვარა", - "UNDO": "გოუქვაფა", - "REDO": "ოშხონაფა", - "CHANGE_VALUE_TITLE": "შანულობაშ თირუა:", - "RENAME_VARIABLE": "ჯოხოშ თირუა მათირეფონი…", - "RENAME_VARIABLE_TITLE": "არძა მათირეფონი '%1' ჯოხოშ თირუა -შა:", - "NEW_VARIABLE": "აკოქიმინი მათირეფონი...", - "NEW_VARIABLE_TITLE": "ახალი მათირეფონიშ ჯოხო:", - "VARIABLE_ALREADY_EXISTS": "მათირეფონი ჯოხოთი '%1' უკვე არსენებს.", - "DELETE_VARIABLE_CONFIRMATION": "'%2' მათირეფონიშ გჷმორინაფა %1 ბლასათო?", - "DELETE_VARIABLE": "'%1' მათირეფონიშ ლასუა", - "COLOUR_PICKER_HELPURL": "https://xmf.wikipedia.org/wiki/ფერი", - "COLOUR_PICKER_TOOLTIP": "გეგშაგორით ფერი პალიტრაშე.", - "COLOUR_RANDOM_TITLE": "შემთხვევითი ფერი", - "COLOUR_RANDOM_TOOLTIP": "ფერიშ შემთხვევითო გიშაგორუა.", - "COLOUR_RGB_TITLE": "ფერიː", - "COLOUR_RGB_RED": "ჭითა", - "COLOUR_RGB_GREEN": "წვანე", - "COLOUR_RGB_BLUE": "ლენი", - "COLOUR_RGB_TOOLTIP": "აკოქიმინით ფერი მოჩამილი ჭითა, წვანე დო ლენი ფერეფიშ პროპორციეფით. არძა შანულობა 0 დო 100 შქას ოკო რდას.", - "COLOUR_BLEND_TITLE": "ესვარუა", - "COLOUR_BLEND_COLOUR1": "ფერი 1", - "COLOUR_BLEND_COLOUR2": "ფერი 2", - "COLOUR_BLEND_RATIO": "ფერი 1-შ წილი", - "COLOUR_BLEND_TOOLTIP": "ჟირ ფერს ართიანს უწყორუანს მოჩამილი ზჷმათ (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://ru.wikipedia.org/wiki/ციკლი_(პროგრამირაფა)", - "CONTROLS_REPEAT_TITLE": "%1 შა გომაჟირაფა", - "CONTROLS_REPEAT_INPUT_DO": "რსულება", - "CONTROLS_REPEAT_TOOLTIP": "მუსხირენ ზოჯუაშ მუსხირენშა რსულება.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "გომაჟირაფა, სოიშახ", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "გომაჟირაფა, სოიშახ ვა", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "სოიშახ შანულობა ნანდული რე, ზოჯუეფიშ რსულება.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "სოიშახ შანულობა ტყურა რე, ზოჯუეფიშ რსულება", - "CONTROLS_FOR_TOOLTIP": "მათირეფონი '%1'-ის მითმურჩქინანს შანულობას მოჩამილი ბიჯგეფით დუდშე ბოლოშა დო მეწურაფილ ზოჯუეფს არსულენს.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ციკლშე გიშულა", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ციკლიშ გეჸვენჯი ბიჯგშა გინულა", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "თე ციკლიშ მეჭყორიდუა.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "ხვილაფა: თე ბლოკიშ გჷმორინაფა ხვალე ციკლიშ დინოხოლე შილებე.", - "CONTROLS_IF_TOOLTIP_1": "პიჯალეფი ნანდული ქორე-და, ზოჯუეფს არსულენს.", - "CONTROLS_IF_MSG_IF": "თუ", - "CONTROLS_IF_MSG_ELSEIF": "შხვანერო თუ", - "CONTROLS_IF_MSG_ELSE": "შხვანერო", - "IOS_OK": "OK", - "IOS_CANCEL": "გოუქვაფა", - "IOS_ERROR": "ჩილათა", - "IOS_PROCEDURES_INPUTS": "მიშულა", - "IOS_VARIABLES_ADD_BUTTON": "გეძინა", - "IOS_VARIABLES_RENAME_BUTTON": "ჯოხოშ თირუა", - "IOS_VARIABLES_DELETE_BUTTON": "ლასუა", - "LOGIC_OPERATION_AND": "დო", - "LOGIC_OPERATION_OR": "ვარდა", - "LOGIC_BOOLEAN_TRUE": "ნანდული", - "LOGIC_BOOLEAN_FALSE": "ტყურა", - "LOGIC_NULL": "მუთუნ ვარი", - "LOGIC_NULL_TOOLTIP": "დჷთმართინუანს მუთუნ ვარს.", - "MATH_NUMBER_HELPURL": "https://xmf.wikipedia.org/wiki/რიცხუ", - "MATH_NUMBER_TOOLTIP": "რიცხუ.", - "MATH_ARITHMETIC_HELPURL": "https://xmf.wikipedia.org/wiki/არითმეტიკა", - "MATH_SINGLE_OP_ROOT": "კვადრატული ჯინჯი", - "MATH_SINGLE_OP_ABSOLUTE": "მოდული", - "MATH_IS_EVEN": "ჭკობა რე", - "MATH_IS_ODD": "ცანდი რე", - "MATH_IS_PRIME": "უკაჭული რე", - "MATH_IS_WHOLE": "ნთელი რე", - "MATH_IS_POSITIVE": "დადებითი რე", - "MATH_IS_NEGATIVE": "უარყოფითი რე", - "LISTS_ISEMPTY_TITLE": "%1 ცარიელი რე" -} diff --git a/lib/blockly/msg/json/yo.json b/lib/blockly/msg/json/yo.json deleted file mode 100644 index 678a678..0000000 --- a/lib/blockly/msg/json/yo.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Mapmeld" - ] - }, - "VARIABLES_DEFAULT_NAME": "nkan", - "TODAY": "Loni", - "DUPLICATE_BLOCK": "Ṣe ẹẹda", - "ADD_COMMENT": "Ṣe afikun ọrọ iwoye", - "REMOVE_COMMENT": "Yọ afikun ọrọ iwoye", - "DUPLICATE_COMMENT": "Ṣe ẹẹda afikun ọrọ iwoye", - "EXTERNAL_INPUTS": "Awon afikun okeere", - "INLINE_INPUTS": "Afiku tẹle n tẹle", - "DELETE_BLOCK": "Paa Bulọọku rẹ", - "DELETE_X_BLOCKS": "Paa %1 awọn Bulọọku rẹ", - "DELETE_ALL_BLOCKS": "Paa gbogbo %1 bulọọku rẹ?", - "CLEAN_UP": "Nu Bulọọku kuro", - "COLLAPSE_BLOCK": "Bi Bulọọku ṣubu", - "COLLAPSE_ALL": "Bi awọn Bulọọku ṣubu", - "EXPAND_BLOCK": "Fẹ Bulọọku", - "EXPAND_ALL": "Fẹ awọn Bulọọku", - "DISABLE_BLOCK": "Sọ Bulọọku di alaiṣiṣẹ", - "ENABLE_BLOCK": "Muu Bulọọku ṣiṣẹ", - "HELP": "Iranwọ", - "UNDO": "Maa ṣe", - "REDO": "Tun ṣe", - "CHANGE_VALUE_TITLE": "Ṣe ayipada iye:", - "RENAME_VARIABLE": "Tun orukọ oniruuru kọ...", - "RENAME_VARIABLE_TITLE": "Tun orukọ gbogbo '%1' v oniruru kọ si:", - "NEW_VARIABLE": "Ṣe idasile oniruuru...", - "NEW_STRING_VARIABLE": "Ṣe idasile asopọ oniruru...", - "NEW_NUMBER_VARIABLE": "Ṣe idasile nọ́mbà oniruru...", - "NEW_COLOUR_VARIABLE": "Ṣe idasile awọ oniruuru...", - "NEW_VARIABLE_TYPE_TITLE": "Iru oniruuru tuntun:", - "NEW_VARIABLE_TITLE": "Orukọ oniruuru tuntun:", - "VARIABLE_ALREADY_EXISTS": "Oniruuru ti a darukọ '%1' ti wa tẹlẹtẹlẹ.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Oniruuru ti a darukọ '%1' ti wa tẹlẹtẹlẹ fun iru miran: '%2'.", - "DELETE_VARIABLE_CONFIRMATION": "Paa %1 lilo '%2' oniruuru rẹ?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "E ko lee paa Oniruuru rẹ ' %1' nitori wipe o je ara itumọ isise eto yi '%2'", - "DELETE_VARIABLE": "Paa awon '%1' Oniruuru rẹ", - "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", - "COLOUR_PICKER_TOOLTIP": "Yan awọ kan lati inu patako awọ.", - "COLOUR_RANDOM_TITLE": "awọ àrìnàkò", - "COLOUR_RANDOM_TOOLTIP": "Yan awọ kan ni ọna àrìnàkò.", - "COLOUR_RGB_TITLE": "awọ pelu:", - "COLOUR_RGB_RED": "awọ pupu", - "COLOUR_RGB_GREEN": "alawọ ewe", - "COLOUR_RGB_BLUE": "alawọ omi aro", - "COLOUR_RGB_TOOLTIP": "Ṣe idasile awọ kan pelu iye awọ pupu, alawọ ewe, ati alawọ omi aro. Gbogbo iye re gbọdọ je laarin 0 and 100.", - "COLOUR_BLEND_TITLE": "apapọ", - "COLOUR_BLEND_COLOUR1": "awọ 1", - "COLOUR_BLEND_COLOUR2": "awọ 2", - "COLOUR_BLEND_RATIO": "ipin", - "COLOUR_BLEND_TOOLTIP": "Da awo meji papo pelu ipin (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", - "CONTROLS_REPEAT_TITLE": "Iye igba %1 ti tun ṣe", - "CONTROLS_REPEAT_INPUT_DO": "ṣe", - "CONTROLS_REPEAT_TOOLTIP": "Ṣe awon alaye ni igba pupo.", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "tun ṣe nigbati", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "tun ṣe titi ti", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Nigbati iye kan ba je otito, tun awon koodu kan ṣe.", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Nigbati awon iye kan ba iro, tun awon koodu kan ṣe.", - "CONTROLS_FOR_TOOLTIP": "Ni awon oriṣiriṣi '%1' ṣe imulo lori iye kọọkan lati ori nọmba tio beere titi de eyin to pari nọmba, kaa ni pase aarin kan pato. Tun koodu yi se nigba kọọkan:", - "CONTROLS_FOR_TITLE": "iyipada %1 lati %2 si %3 fifi kun %4", - "CONTROLS_FOREACH_TITLE": "fun nigba kọọkan %1 ni akojọ %2", - "CONTROLS_FOREACH_TOOLTIP": "Fun nkan kọọkan ninu akojọ kan, ṣe eto oriṢiriṢi '%1' si nkan naa, ki o si tun koodu naa ṣe.", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ya kuro ninu lupu", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "beere pelu aṣiṣe lupu", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Ya kuro ninu akojọ lupu.", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Ṣe afoda awon lupu to ku yii, kii o si tesiwaju pelu awon aṣiṣe lupu.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "Ikilo: Bulọọku yii se lo ninu aṣiṣe lupu yii nikan.", - "CONTROLS_IF_TOOLTIP_1": "Bi iye yii ba je otito, lẹyinna ṣe awọn alaye.", - "CONTROLS_IF_TOOLTIP_2": "Bi iye yii ba je otito, lẹyinna ṣe alaye bulọọku akọkọ. Bibẹẹkọ, ṣe alaye akọkọ bulọọku keji.", - "CONTROLS_IF_TOOLTIP_3": "Bi iye akọkọ yii ba je otito, lẹyinna ṣe alaye bulọọku akọkọ. Bibẹẹkọ, Bi iye keji yii ba je otito, ṣe alaye akọkọ bulọọku keji.", - "CONTROLS_IF_TOOLTIP_4": "Bi iye akọkọ yii ba je otito, lẹyinna ṣe alaye bulọọku akọkọ. Bi iye keji yii ba je otito, ṣe alaye akọkọ bulọọku keji. Bi eyikeyi iye naa ko ba je otito, ṣe alaye akọkọ bulọọku ti o gbeyin.", - "CONTROLS_IF_MSG_IF": "bi", - "CONTROLS_IF_MSG_ELSEIF": "bibẹẹkọ bi", - "CONTROLS_IF_MSG_ELSE": "bibẹẹkọ", - "CONTROLS_IF_IF_TOOLTIP": "Ṣe afikun, se ayọkuro, tabi se a tun beere abala yii lati se a tun gbejade bulọọku yii.", - "CONTROLS_IF_ELSEIF_TOOLTIP": "Ṣe afikun si ipo yii bi bulọọku.", - "CONTROLS_IF_ELSE_TOOLTIP": "Ṣe afikun ipari, mu-gbogbo ipo si bulọọku.", - "IOS_OK": "O DARA", - "IOS_CANCEL": "Fagilee", - "IOS_ERROR": "Aṣiṣe", - "IOS_PROCEDURES_INPUTS": "SII", - "IOS_PROCEDURES_ADD_INPUT": "+ Fi afikun sii", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "Gba koodu laaye", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "Awon afikun okeere", - "IOS_VARIABLES_ADD_VARIABLE": "+ Ṣe afikun orisirisi", - "IOS_VARIABLES_ADD_BUTTON": "Ìròpọ̀", - "IOS_VARIABLES_RENAME_BUTTON": "Àtúnṣọlọ́rúkọ", - "IOS_VARIABLES_DELETE_BUTTON": "Paarẹ", - "IOS_VARIABLES_VARIABLE_NAME": "Oruko orisirisi", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "O ko le lo oruko orisirisi ti o sofo.", - "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", - "LOGIC_COMPARE_TOOLTIP_EQ": "Da otito pada b iafikun mejeji ba dogba bakanna.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Da otito pada bi afikun mejeji ko ba dogba bakanna.", - "LOGIC_COMPARE_TOOLTIP_LT": "Da otito pada bi afikun akooko ba kere ju afiku keji lo.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Da otito pada bi afikun akooko ba kere ju tabi dogba pelu afiku keji lo.", - "LOGIC_COMPARE_TOOLTIP_GT": "Da otito pada bi afikun akooko ba tobi ju afiku keji lo.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Da otito pada bi afikun akooko ba tobi ju tabi dogba pelu afiku keji lo.", - "LOGIC_OPERATION_TOOLTIP_AND": "Da otito pada bi afikun mejeji ba je otito.", - "LOGIC_OPERATION_AND": "ati", - "LOGIC_OPERATION_TOOLTIP_OR": "Da otitọ pada bi o kere ju afikun kan ba je otito.", - "LOGIC_OPERATION_OR": "tabi", - "LOGIC_NEGATE_TITLE": "kii ṣe %1", - "LOGIC_NEGATE_TOOLTIP": "Da otitọ pada bi afikun ba je irọ. Da iro pada bi afikun ba je otito.", - "LOGIC_BOOLEAN_TRUE": "otitọ", - "LOGIC_BOOLEAN_FALSE": "irọ", - "LOGIC_BOOLEAN_TOOLTIP": "Da pada bi o je otito tabi iro.", - "LOGIC_NULL": "ofo", - "LOGIC_NULL_TOOLTIP": "Da ofo pada.", - "LOGIC_TERNARY_CONDITION": "idanwo", - "LOGIC_TERNARY_IF_TRUE": "bi otitọ", - "LOGIC_TERNARY_IF_FALSE": "bi irọ", - "LOGIC_TERNARY_TOOLTIP": "Ṣe ayewo ipo naa ni 'idanwo'. Bi ipo nab a je otito, Da pada 'bi otito' iye; bibẹẹkọ da pada 'bi iro' iye.", - "MATH_NUMBER_HELPURL": "https://yo.wikipedia.org/wiki/Nọ́mbà", - "MATH_NUMBER_TOOLTIP": "Nọ́mbà kan.", - "MATH_ARITHMETIC_HELPURL": "https://yo.wikipedia.org/wiki/Ìṣírò", - "MATH_ARITHMETIC_TOOLTIP_ADD": "Da apapo awọn nọmba meji pada.", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "Da iyatọ awọn nọmba meji naa pada.", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Da abajade awọn nọmba meji naa pada.", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Da adarọ iye ti awọn nọmba meji pada.", - "MATH_ARITHMETIC_TOOLTIP_POWER": "Da nọmba akọkọ ti a gbe si agbara ti nọmba keji pada.", - "MATH_SINGLE_HELPURL": "https://yo.wikipedia.org/wiki/Gb%C3%B2ngb%C3%B2_al%C3%A1gb%C3%A1ram%C3%A9j%C3%AC", - "MATH_SINGLE_OP_ROOT": "Ipilẹ onihamẹrin", - "MATH_SINGLE_TOOLTIP_ROOT": "Da Ipilẹ onihamẹrin nọmba kan pada.", - "MATH_SINGLE_OP_ABSOLUTE": "patapata", - "MATH_SINGLE_TOOLTIP_ABS": "Da iye patapata ti nọmba kan pada.", - "MATH_SINGLE_TOOLTIP_NEG": "Da ilodisi ti nọmba kan pada", - "MATH_SINGLE_TOOLTIP_LN": "Da lọgaridimu adayeba ti nọmba kan pada.", - "MATH_SINGLE_TOOLTIP_LOG10": "Da ipilẹ 10 lọgaridimu nọmba kan pada.", - "MATH_SINGLE_TOOLTIP_EXP": "Da e pada si agbara ti nọmba kan.", - "MATH_SINGLE_TOOLTIP_POW10": "Da 10 pada si agbara nọmba kan.", - "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", - "MATH_TRIG_TOOLTIP_SIN": "Da sine ti digiri pada (kii ṣe Radian).", - "MATH_TRIG_TOOLTIP_COS": "Da cosine ti digiri pada (kii ṣe Radian).", - "MATH_TRIG_TOOLTIP_TAN": "Da tangent ti digiri pada (kii ṣe Radian).", - "MATH_TRIG_TOOLTIP_ASIN": "Da arcsine ti digiri pada.", - "MATH_TRIG_TOOLTIP_ACOS": "Da arccosine ti digiri pada.", - "MATH_TRIG_TOOLTIP_ATAN": "Da arctangent ti digiri pada.", - "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", - "MATH_CONSTANT_TOOLTIP": "Da ọkan ninu awọn aiyipada ti o wọpọ pada: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (ailopin).", - "MATH_IS_EVEN": "je se e pin", - "MATH_IS_ODD": "je ai se e pin", - "MATH_IS_PRIME": "je nọ́mbà àkọ́kọ́", - "MATH_IS_WHOLE": "je odidi", - "MATH_IS_POSITIVE": "je di dara", - "MATH_IS_NEGATIVE": "je ai dara", - "MATH_IS_DIVISIBLE_BY": "je sisee pin pẹlu", - "MATH_IS_TOOLTIP": "Ṣe ayẹwo boya nọmba jẹ eyi to se pin, ai se pin, akori, odidi, ti o dara, ti ko dara, tabi ti o ba se e pin pelu nọmba kan. Pada otitọ tabi irọ.", - "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", - "MATH_CHANGE_TITLE": "iyipada %1 nipasẹ %2", - "MATH_CHANGE_TOOLTIP": "Se afiku si nọmba orisirisi '%1'.", - "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", - "MATH_ROUND_TOOLTIP": "Pa oju nọmba de soke tabi si isalẹ.", - "MATH_ROUND_OPERATOR_ROUND": "pa ju de", - "MATH_ROUND_OPERATOR_ROUNDUP": "pa ju de soke", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "pa ju de si isalẹ", - "MATH_ONLIST_OPERATOR_SUM": "apao akojọ", - "MATH_ONLIST_TOOLTIP_SUM": "Da apapo gbogbo awọn nọmba inu akojọ pada.", - "MATH_ONLIST_OPERATOR_MIN": "akojọ ti o kere ju", - "MATH_ONLIST_TOOLTIP_MIN": "Da nọmba ti o kere julọ ninu akojọ pada.", - "MATH_ONLIST_OPERATOR_MAX": "akojọ ti o pọ ju", - "MATH_ONLIST_TOOLTIP_MAX": "Da nọmba ti o tobi julọ ninu akojọ pada.", - "MATH_ONLIST_OPERATOR_AVERAGE": "idameji akojọ", - "MATH_ONLIST_TOOLTIP_AVERAGE": "Da idameji pada (ipin isiro) ti awọn nọmba iye inu akojọ.", - "MATH_ONLIST_OPERATOR_MEDIAN": "agbedemeji akojọ", - "MATH_ONLIST_TOOLTIP_MEDIAN": "Da agbedemeji nọmba inu akojọ pada.", - "MATH_ONLIST_OPERATOR_MODE": "awọn ipo ti akojọ", - "MATH_ONLIST_TOOLTIP_MODE": "Da akojọ ti eyi ti o wọpọ julọ ninu akojọ.", - "MATH_ONLIST_OPERATOR_STD_DEV": "iṣiro deede ti akojọ", - "MATH_ONLIST_TOOLTIP_STD_DEV": "Da iṣiro deede ti akojọ pada.", - "MATH_ONLIST_OPERATOR_RANDOM": "àrìnàkò nkan ti akojọ", - "MATH_ONLIST_TOOLTIP_RANDOM": "Da àrìnàkò ida ipilẹ nkan lati inu akojọ.", - "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", - "MATH_MODULO_TITLE": "iyokù %1 ÷ %2", - "MATH_MODULO_TOOLTIP": "Da iyokù lati pinpin awọn nọmba meji pada.", - "MATH_CONSTRAIN_TITLE": "atokọ %1 kukuru %2 giga %3", - "MATH_CONSTRAIN_TOOLTIP": "Ṣe atokọ nọmba laarin awọn nọmba kukuru ati giga. (ini afikun).", - "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_INT_TITLE": "oniruru abala lati %1 si %2", - "MATH_RANDOM_INT_TOOLTIP": "Da àrìnàkò abala laarin awon opin pato meji pada, ini afikun.", - "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "oniruru ipin", - "MATH_RANDOM_FLOAT_TOOLTIP": "Da àrìnàkò ida pada laarin 0.0 (ini afikun) ati 1.0 (iyasọtọ).", - "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "atan2 X:%1 Y:%2", - "MATH_ATAN2_TOOLTIP": "Da ojuami arctangent pada (X, Y) ni awon digiri lati -180 si 180.", - "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", - "TEXT_TEXT_TOOLTIP": "Lẹta, ọrọ, tabi ila ọrọ.", - "TEXT_JOIN_TITLE_CREATEWITH": "ṣẹ ẹda ọrọ pẹlu", - "TEXT_JOIN_TOOLTIP": "Ṣẹda ọrọ kan nipa ṣiṣepọ gbogbo awọn ohun kan.", - "TEXT_CREATE_JOIN_TITLE_JOIN": "darapọ", - "TEXT_CREATE_JOIN_TOOLTIP": "Fikun, yọ kuro, tabi ṣe atunṣe awọn apakan lati se atunkọ ọrọ bulooku yii.", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Ṣe afikun nkan si ọrọ naa.", - "TEXT_APPEND_TITLE": "si %1 fikun ọrọ %2", - "TEXT_APPEND_TOOLTIP": "Ṣe afikun awon ọrọ oniruru '%1'.", - "TEXT_LENGTH_TITLE": "Gigun ti %1", - "TEXT_LENGTH_TOOLTIP": "Da nọmba awọn lẹta pada (pẹlu awọn alafo) ninu ọrọ ti a pese.", - "TEXT_ISEMPTY_TITLE": "%1 je isofo", - "TEXT_ISEMPTY_TOOLTIP": "Da otitọ pada ti ọrọ ti a pese ba ṣofo.", - "TEXT_INDEXOF_TOOLTIP": "Da atọka ti akọkọ / iṣẹlẹ to kẹhin ti akojọ. Da %1 akojọ pada ti o ko ba ri.", - "TEXT_INDEXOF_TITLE": "ninu %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "wa isele akọkọ ti o wa ninu ọrọ", - "TEXT_INDEXOF_OPERATOR_LAST": "wa isele igbeyin ti o wa ninu ọrọ", - "TEXT_CHARAT_TITLE": "ninu %1 %2", - "TEXT_CHARAT_FROM_START": "gba lẹta #", - "TEXT_CHARAT_FROM_END": "gba lẹta # lati opin", - "TEXT_CHARAT_FIRST": "gba lẹta akọkọ", - "TEXT_CHARAT_LAST": "gba lẹta ti o kẹhin", - "TEXT_CHARAT_RANDOM": "gba lẹta àrìnàkò", - "TEXT_CHARAT_TOOLTIP": "Da lẹta naa pada si ipo ti a ti sọ tẹlẹ.", - "TEXT_GET_SUBSTRING_TOOLTIP": "Da ipin kan pato ti ọrọ naa pada.", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ninu", - "TEXT_GET_SUBSTRING_START_FROM_START": "gba substring lati lẹta #", - "TEXT_GET_SUBSTRING_START_FROM_END": "gba substring lati lẹta # lati opin", - "TEXT_GET_SUBSTRING_START_FIRST": "gba substring lati lẹta akọkọ", - "TEXT_GET_SUBSTRING_END_FROM_START": "si lẹta #", - "TEXT_GET_SUBSTRING_END_FROM_END": "si lẹta # lati opin", - "TEXT_GET_SUBSTRING_END_LAST": "si lẹta kẹhin", - "TEXT_CHANGECASE_TOOLTIP": "aa <-> AA", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "si ALFABETI NLA", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "si alfabeti kekere", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "si Alfabeti Aarin", - "TEXT_TRIM_TOOLTIP": "Da ẹda ti ọrọ naa pada pẹlu awọn alafo miiran ti o kuro lati ọkan tabi awọn opin mejeeji.", - "TEXT_TRIM_OPERATOR_BOTH": "ge awọn alafo lati awọn igun mejeji ti", - "TEXT_TRIM_OPERATOR_LEFT": "ge awọn alafo lati apa osi ti", - "TEXT_TRIM_OPERATOR_RIGHT": "ge awọn alafo lati apa otun ti", - "TEXT_PRINT_TITLE": "tẹ ọrọ %1", - "TEXT_PRINT_TOOLTIP": "Tẹ ọrọ kan pato, nọmba tabi iye awon miiran.", - "TEXT_PROMPT_TYPE_TEXT": "kiakia fun ọrọ pẹlu ifiranṣẹ", - "TEXT_PROMPT_TYPE_NUMBER": "kiakia fun nọmba pẹlu ifiranṣẹ", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Kiakia fun olumulo fun nọmba.", - "TEXT_PROMPT_TOOLTIP_TEXT": "Kiakia fun olumulo fun awon ifiranṣẹ.", - "TEXT_COUNT_MESSAGE0": "ka %1 ni %2", - "TEXT_COUNT_TOOLTIP": "Ka iye igba diẹ ninu awọn ọrọ kan waye laarin awọn ọrọ miiran.", - "TEXT_REPLACE_MESSAGE0": "Ṣe iropọ %1 pelu %2 in %3", - "TEXT_REPLACE_TOOLTIP": "Ṣe iropo gbogbo awọn iṣẹlẹ ti o sele ninu awọn ọrọ laarin awọn ọrọ miiran.", - "TEXT_REVERSE_MESSAGE0": "Ṣe iyipada %1", - "TEXT_REVERSE_TOOLTIP": "Ṣe iyipada aṣẹ awọn ohun kikọ inu ọrọ naa.", - "LISTS_CREATE_EMPTY_TITLE": "Ṣẹda akojọ aṣayan tio ṣofo", - "LISTS_CREATE_EMPTY_TOOLTIP": "Da akojọ pada, ti gigun 0, ko ni awon akosile alaye", - "LISTS_CREATE_WITH_TOOLTIP": "Ṣẹda akojọ pẹlu nọmba eyikeyi ti awọn akojo.", - "LISTS_CREATE_WITH_INPUT_WITH": "ṣẹda akojọ", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "akojọ", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Fikun, yọ, tabi yọ, tunṣe awọn apakan lati akojọ bulooku yii.", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Fi nkan kun akojọ.", - "LISTS_REPEAT_TOOLTIP": "Ṣẹda akojọ kan ti o wa fun iye tun nọmba kan pato ti akoko ti a ti yan.", - "LISTS_REPEAT_TITLE": "ṣẹda akojọ pẹlu nkan %1 tun ṣe %2 igba", - "LISTS_LENGTH_TITLE": "gigun ti %1", - "LISTS_LENGTH_TOOLTIP": "Da gigun ti akojo pada.", - "LISTS_ISEMPTY_TITLE": "%1 je ofo", - "LISTS_ISEMPTY_TOOLTIP": "Da otitọ pada nigbati akojọ ba ṣofo.", - "LISTS_INLIST": "ni akojọ", - "LISTS_INDEX_OF_FIRST": "wa awon nkan akọkọ ti o sele", - "LISTS_INDEX_OF_LAST": "wa iṣẹlẹ ti o kẹhin ti akojọ", - "LISTS_INDEX_OF_TOOLTIP": "Da atọka ti akọkọ / iṣẹlẹ to kẹhin ti akojọ. Da %1 akojọ pada ti o ko ba ri.", - "LISTS_GET_INDEX_GET": "gba", - "LISTS_GET_INDEX_GET_REMOVE": "gba ati yọ", - "LISTS_GET_INDEX_REMOVE": "yọ", - "LISTS_GET_INDEX_FROM_END": "# lati opin", - "LISTS_GET_INDEX_FIRST": "àkọ́kọ́", - "LISTS_GET_INDEX_LAST": "tógbẹ̀yìn", - "LISTS_GET_INDEX_RANDOM": "àrìnàkò", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 jẹ ohun akọkọ.", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 jẹ ohun ti o kẹhin.", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Returns the item at the specified position in a list.", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Da akojọ akọkọ pada.", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Da akojọ ti o kẹhin pada.", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Da ohun àrìnàkò kan pada ninu akojọ", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Yọ ki o si da akojọ naa pada kuro ni ipo kan pato ti o wa.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "Yọ ki o si da akojọ kuro ni akọkọ pada.", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "Yọ ki o si da akojọ ti o kẹhin pada", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "Yọ ki o si da akojọ ti o kẹhin àrìnàkò pada", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "Yọ ki o si da akojọ naa pada kuro ni ipo kan pato ti o wa.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "Da akojọ akọkọ pada.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "Da akojọ ti o kẹhin pada.", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "Da ohun àrìnàkò kan pada ninu akojọ", - "LISTS_SET_INDEX_SET": "ṣeto", - "LISTS_SET_INDEX_INSERT": "fi sii ni", - "LISTS_SET_INDEX_INPUT_TO": "bii", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Ṣeto ohun akọkọ sii ipo kan pato ti a ti yan ni akojọ.", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Fi ohun kan sii ni ibẹrẹ akojọ.", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Fi ohun kan kun si opin akojọ.", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Fi ohun kan kun si àrìnàkò akojọ.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Fi ohun kan sii ipo kan pato ti a ti yan ni akojọ.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Fi ohun kan sii ni ibẹrẹ akojọ.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Fi ohun kan kun si opin akojọ.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Fi ohun kan kun si àrìnàkò akojọ.", - "LISTS_GET_SUBLIST_START_FROM_START": "gba ipin -akojọ lati #", - "LISTS_GET_SUBLIST_START_FROM_END": "gba ipin -akojọ lati # lati opin", - "LISTS_GET_SUBLIST_START_FIRST": "gba ipin -akojọ lati akọkọ", - "LISTS_GET_SUBLIST_END_FROM_START": "sii #", - "LISTS_GET_SUBLIST_END_FROM_END": "sii # lati opin", - "LISTS_GET_SUBLIST_END_LAST": "sii opin", - "LISTS_GET_SUBLIST_TOOLTIP": "Ṣẹda ẹda ti apa kan ti o wa ninu akojọ.", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "to %1 %2 %3", - "LISTS_SORT_TOOLTIP": "To ẹda akojọ lẹsẹẹsẹ.", - "LISTS_SORT_ORDER_ASCENDING": "si oke", - "LISTS_SORT_ORDER_DESCENDING": "si isalẹ", - "LISTS_SORT_TYPE_NUMERIC": "awọn nọmba", - "LISTS_SORT_TYPE_TEXT": "awon alfabeti", - "LISTS_SORT_TYPE_IGNORECASE": "awon alfabeti, fojufo irufe", - "LISTS_SPLIT_LIST_FROM_TEXT": "ṣe akojọ lati inu ọrọ", - "LISTS_SPLIT_TEXT_FROM_LIST": "ṣe ọrọ lati akojọ", - "LISTS_SPLIT_WITH_DELIMITER": "pẹlu dẹlimita", - "LISTS_SPLIT_TOOLTIP_SPLIT": "Pin ọrọ sinu akojọ awọn ọrọ kan, fọ ni dẹlimita kọọkan.", - "LISTS_SPLIT_TOOLTIP_JOIN": "Darapọ mọ akojọ awọn ọrọ sinu ọrọ kan, ti a pin nipase delimita.", - "LISTS_REVERSE_MESSAGE0": "Ṣe iyipada %1", - "LISTS_REVERSE_TOOLTIP": "Ṣe iyipada ẹda ti akojọ kan.", - "VARIABLES_GET_TOOLTIP": "Da iye orisirisi yii pada.", - "VARIABLES_GET_CREATE_SET": "Ṣe idasile 'ṣeto %1'", - "VARIABLES_SET": "ṣeto %1 sii %2", - "VARIABLES_SET_TOOLTIP": "Ṣeto oniruru yii lati je bakanna sii igbasilẹ.", - "VARIABLES_SET_CREATE_GET": "Ṣe idasile 'gba %1'", - "PROCEDURES_DEFNORETURN_TITLE": "sii", - "PROCEDURES_DEFNORETURN_PROCEDURE": "Ṣe awon alaye ni igba pupo.", - "PROCEDURES_BEFORE_PARAMS": "pẹlu:", - "PROCEDURES_CALL_BEFORE_PARAMS": "pẹlu:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "Ṣẹda iṣẹ kan lai si iṣagbejade.", - "PROCEDURES_DEFNORETURN_COMMENT": "Ṣe apejuwe iṣẹ yii...", - "PROCEDURES_DEFRETURN_RETURN": "tun tẹ", - "PROCEDURES_DEFRETURN_TOOLTIP": "Ṣẹda iṣẹ pẹlu iṣagbejade kan.", - "PROCEDURES_ALLOW_STATEMENTS": "gba alaye laaye", - "PROCEDURES_DEF_DUPLICATE_WARNING": "Ikilo: Isẹ yii ni awọn ẹda odiwọn.", - "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLNORETURN_TOOLTIP": "Ṣe ṣalaye-iṣẹ ti olumulo '%1'.", - "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/Subroutine", - "PROCEDURES_CALLRETURN_TOOLTIP": "Ṣe ṣalaye-iṣẹ ti olumulo '%1' kii o sii lo iṣagbejade rẹ.", - "PROCEDURES_MUTATORCONTAINER_TITLE": "igbewọle", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Fikun, yọ kuro, tabi tun beere awọn igbewọle si iṣẹ yii.", - "PROCEDURES_MUTATORARG_TITLE": "igbewọle orukọ:", - "PROCEDURES_MUTATORARG_TOOLTIP": "Ṣe afikun kan sii igbewọle si iṣẹ yii.", - "PROCEDURES_HIGHLIGHT_DEF": "Ṣafihan iṣẹ isọtunmọ", - "PROCEDURES_CREATE_DO": "Ṣe idasile '%1'", - "PROCEDURES_IFRETURN_TOOLTIP": "Ti iye ba jẹ otitọ, lẹhinna da iye keji pada.", - "PROCEDURES_IFRETURN_WARNING": "Ikilo: Bulọọki yii le ṣee lo nikan laarin itumọ iṣẹ kan", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "Sọ nkankan..." -} diff --git a/lib/blockly/msg/json/zh-hans.json b/lib/blockly/msg/json/zh-hans.json deleted file mode 100644 index 7338d61..0000000 --- a/lib/blockly/msg/json/zh-hans.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Espertus", - "Liuxinyu970226", - "Luotiancheng", - "Qiyue2001", - "Xiaomingyan", - "Yfdyh000", - "아라", - "Hudafu", - "Shatteredwind", - "Duzc2", - "Tonylianlong", - "WindWood", - "Deathkon", - "Muhaoying", - "佛壁灯", - "Htq110219891", - "Ambeta", - "A Chinese Wikipedian" - ] - }, - "VARIABLES_DEFAULT_NAME": "项目", - "UNNAMED_KEY": "匿名", - "TODAY": "今天", - "DUPLICATE_BLOCK": "复制", - "ADD_COMMENT": "添加注释", - "REMOVE_COMMENT": "删除注释", - "DUPLICATE_COMMENT": "复制注释", - "EXTERNAL_INPUTS": "外部输入", - "INLINE_INPUTS": "单行输入", - "DELETE_BLOCK": "删除块", - "DELETE_X_BLOCKS": "删除 %1 个块", - "DELETE_ALL_BLOCKS": "删除所有 %1 个块吗?", - "CLEAN_UP": "整理块", - "COLLAPSE_BLOCK": "折叠块", - "COLLAPSE_ALL": "折叠块", - "EXPAND_BLOCK": "展开块", - "EXPAND_ALL": "展开块", - "DISABLE_BLOCK": "禁用块", - "ENABLE_BLOCK": "启用块", - "HELP": "帮助", - "UNDO": "撤销", - "REDO": "重做", - "CHANGE_VALUE_TITLE": "更改值:", - "RENAME_VARIABLE": "重命名变量...", - "RENAME_VARIABLE_TITLE": "将所有“%1”变量重命名为:", - "NEW_VARIABLE": "创建变量...", - "NEW_STRING_VARIABLE": "创建字符串变量...", - "NEW_NUMBER_VARIABLE": "创建数字变量...", - "NEW_COLOUR_VARIABLE": "创建颜色变量...", - "NEW_VARIABLE_TYPE_TITLE": "新变量的类型:", - "NEW_VARIABLE_TITLE": "新变量的名称:", - "VARIABLE_ALREADY_EXISTS": "名字叫“%1”的变量已经存在了。", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "名字叫“%1”的变量已经有了另一个类型:“%2”。", - "DELETE_VARIABLE_CONFIRMATION": "要删除对变量“%2”的%1个引用吗?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "不能删除变量“%1”,因为它是函数“%2”定义的一部分", - "DELETE_VARIABLE": "删除变量“%1”", - "COLOUR_PICKER_HELPURL": "https://zh.wikipedia.org/wiki/颜色", - "COLOUR_PICKER_TOOLTIP": "从调色板中选择一种颜色。", - "COLOUR_RANDOM_TITLE": "随机颜色", - "COLOUR_RANDOM_TOOLTIP": "随机选择一种颜色。", - "COLOUR_RGB_TITLE": "颜色", - "COLOUR_RGB_RED": "红色", - "COLOUR_RGB_GREEN": "绿色", - "COLOUR_RGB_BLUE": "蓝色", - "COLOUR_RGB_TOOLTIP": "通过指定红色、绿色和蓝色的量创建一种颜色。所有的值必须在0和100之间。", - "COLOUR_BLEND_TITLE": "混合", - "COLOUR_BLEND_COLOUR1": "颜色1", - "COLOUR_BLEND_COLOUR2": "颜色2", - "COLOUR_BLEND_RATIO": "比例", - "COLOUR_BLEND_TOOLTIP": "把两种颜色以一个给定的比例(0.0-1.0)进行混合。", - "CONTROLS_REPEAT_HELPURL": "https://zh.wikipedia.org/wiki/For循环", - "CONTROLS_REPEAT_TITLE": "重复 %1 次", - "CONTROLS_REPEAT_INPUT_DO": "执行", - "CONTROLS_REPEAT_TOOLTIP": "多次执行一些语句。", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "当条件满足时重复", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "重复直到条件满足", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "只要值为真,执行一些语句。", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "只要值为假,执行一些语句。", - "CONTROLS_FOR_TOOLTIP": "用变量%1记录从开始数值到终止数值之间的数值,数值按指定间隔增加,并执行指定的块。", - "CONTROLS_FOR_TITLE": "变量 %1 从 %2 数到 %3 每次增加 %4", - "CONTROLS_FOREACH_TITLE": "为列表 %2 里的每一项 %1", - "CONTROLS_FOREACH_TOOLTIP": "遍历列表中的每一项,将变量“%1”设为所选项,并执行一些语句。", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "跳出循环", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "继续下一轮循环", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "跳出包含它的循环。", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "跳过本轮循环的剩余部分,并继进行续下一轮迭代。", - "CONTROLS_FLOW_STATEMENTS_WARNING": "警告:这个块只能在循环内使用。", - "CONTROLS_IF_TOOLTIP_1": "如果值为真,执行一些语句。", - "CONTROLS_IF_TOOLTIP_2": "如果值为真,则执行第一块语句。否则,则执行第二块语句。", - "CONTROLS_IF_TOOLTIP_3": "如果第一个值为真,则执行第一块的语句。否则,如果第二个值为真,则执行第二块的语句。", - "CONTROLS_IF_TOOLTIP_4": "如果第一个值为真,则执行第一块对语句。否则,如果第二个值为真,则执行语句的第二块。如果没有值为真,则执行最后一块的语句。", - "CONTROLS_IF_MSG_IF": "如果", - "CONTROLS_IF_MSG_ELSEIF": "否则如果", - "CONTROLS_IF_MSG_ELSE": "否则", - "CONTROLS_IF_IF_TOOLTIP": "增加、删除或重新排列各节来重新配置这个if语句块。", - "CONTROLS_IF_ELSEIF_TOOLTIP": "在这个if语句块中增加一个条件。", - "CONTROLS_IF_ELSE_TOOLTIP": "在这个if语句块中添加一个最终的,包括所有其余情况的条件。", - "IOS_OK": "确定", - "IOS_CANCEL": "取消", - "IOS_ERROR": "错误", - "IOS_PROCEDURES_INPUTS": "输入", - "IOS_PROCEDURES_ADD_INPUT": "+添加输入", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "允许的语句", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "这个函数有多个输入。", - "IOS_VARIABLES_ADD_VARIABLE": "+添加变量", - "IOS_VARIABLES_ADD_BUTTON": "添加", - "IOS_VARIABLES_RENAME_BUTTON": "重命名", - "IOS_VARIABLES_DELETE_BUTTON": "删除", - "IOS_VARIABLES_VARIABLE_NAME": "变量名", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "你不能使用空白的变量名。", - "LOGIC_COMPARE_HELPURL": "https://zh.wikipedia.org/wiki/不等", - "LOGIC_COMPARE_TOOLTIP_EQ": "如果两个输入结果相等,则返回真。", - "LOGIC_COMPARE_TOOLTIP_NEQ": "如果两个输入结果不相等,则返回真。", - "LOGIC_COMPARE_TOOLTIP_LT": "如果第一个输入结果比第二个小,则返回真。", - "LOGIC_COMPARE_TOOLTIP_LTE": "如果第一个输入结果小于或等于第二个输入结果,则返回真。", - "LOGIC_COMPARE_TOOLTIP_GT": "如果第一个输入结果比第二个大,则返回真。", - "LOGIC_COMPARE_TOOLTIP_GTE": "如果第一个输入结果大于或等于第二个输入结果,则返回真。", - "LOGIC_OPERATION_TOOLTIP_AND": "如果两个输入结果都为真,则返回真。", - "LOGIC_OPERATION_AND": "并且", - "LOGIC_OPERATION_TOOLTIP_OR": "如果至少有一个输入结果为真,则返回真。", - "LOGIC_OPERATION_OR": "或", - "LOGIC_NEGATE_HELPURL": "https://github.com/google/blockly/wiki/Logic#not", - "LOGIC_NEGATE_TITLE": "非%1", - "LOGIC_NEGATE_TOOLTIP": "如果输入结果为假,则返回真;如果输入结果为真,则返回假。", - "LOGIC_BOOLEAN_TRUE": "真", - "LOGIC_BOOLEAN_FALSE": "假", - "LOGIC_BOOLEAN_TOOLTIP": "返回真或假。", - "LOGIC_NULL": "空", - "LOGIC_NULL_TOOLTIP": "返回空值。", - "LOGIC_TERNARY_HELPURL": "https://zh.wikipedia.org/wiki/条件运算符", - "LOGIC_TERNARY_CONDITION": "断言", - "LOGIC_TERNARY_IF_TRUE": "如果为真", - "LOGIC_TERNARY_IF_FALSE": "如果为假", - "LOGIC_TERNARY_TOOLTIP": "检查“断言”里的条件语句。如果条件为真,则返回“如果为真”的值,否则,则返回“如果为假”的值。", - "MATH_NUMBER_HELPURL": "https://zh.wikipedia.org/wiki/数", - "MATH_NUMBER_TOOLTIP": "一个数值。", - "MATH_ARITHMETIC_HELPURL": "https://zh.wikipedia.org/wiki/算术", - "MATH_ARITHMETIC_TOOLTIP_ADD": "返回两个数值的和。", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "返回两个数值的差值。", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "返回两个数值的乘积。", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "返回两个数值的商。", - "MATH_ARITHMETIC_TOOLTIP_POWER": "返回以第一个数值为底数,以第二个数值为幂的结果。", - "MATH_SINGLE_HELPURL": "https://zh.wikipedia.org/wiki/平方根", - "MATH_SINGLE_OP_ROOT": "平方根", - "MATH_SINGLE_TOOLTIP_ROOT": "返回一个数的平方根。", - "MATH_SINGLE_OP_ABSOLUTE": "绝对值", - "MATH_SINGLE_TOOLTIP_ABS": "返回一个数值的绝对值。", - "MATH_SINGLE_TOOLTIP_NEG": "返回一个数值的相反数。", - "MATH_SINGLE_TOOLTIP_LN": "返回一个数值的自然对数。", - "MATH_SINGLE_TOOLTIP_LOG10": "返回一个数值的以10为底的对数。", - "MATH_SINGLE_TOOLTIP_EXP": "返回一个数值的e次幂。", - "MATH_SINGLE_TOOLTIP_POW10": "返回一个数值的10次幂。", - "MATH_TRIG_HELPURL": "https://zh.wikipedia.org/wiki/三角函数", - "MATH_TRIG_TOOLTIP_SIN": "返回指定角度的正弦值(非弧度)。", - "MATH_TRIG_TOOLTIP_COS": "返回指定角度的余弦值(非弧度)。", - "MATH_TRIG_TOOLTIP_TAN": "返回指定角度的正切值(非弧度)。", - "MATH_TRIG_TOOLTIP_ASIN": "返回一个数值的反正弦值。", - "MATH_TRIG_TOOLTIP_ACOS": "返回一个数值的反余弦值。", - "MATH_TRIG_TOOLTIP_ATAN": "返回一个数值的反正切值。", - "MATH_CONSTANT_HELPURL": "https://zh.wikipedia.org/wiki/数学常数", - "MATH_CONSTANT_TOOLTIP": "返回一个常见常量:π (3.141…)、e (2.718…)、φ (1.618…)、平方根 (1.414…)、开平方根 (0.707…)或∞ (无限大)。", - "MATH_IS_EVEN": "是偶数", - "MATH_IS_ODD": "是奇数", - "MATH_IS_PRIME": "是质数", - "MATH_IS_WHOLE": "是整数", - "MATH_IS_POSITIVE": "是正数", - "MATH_IS_NEGATIVE": "是负数", - "MATH_IS_DIVISIBLE_BY": "可被整除", - "MATH_IS_TOOLTIP": "检查一个数值是否是偶数、奇数、质数、自然数、正数、负数或者是否能被某数整除。返回真或假。", - "MATH_CHANGE_HELPURL": "https://zh.wikipedia.org/wiki/加法", - "MATH_CHANGE_TITLE": "将 %1 增加 %2", - "MATH_CHANGE_TOOLTIP": "为变量“%1”增加一个数值。", - "MATH_ROUND_HELPURL": "https://zh.wikipedia.org/wiki/数值修约", - "MATH_ROUND_TOOLTIP": "数字向上或向下舍入。", - "MATH_ROUND_OPERATOR_ROUND": "四舍五入", - "MATH_ROUND_OPERATOR_ROUNDUP": "向上舍入", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "向下舍入", - "MATH_ONLIST_OPERATOR_SUM": "列表中数值的和", - "MATH_ONLIST_TOOLTIP_SUM": "返回列表中的所有数值的和。", - "MATH_ONLIST_OPERATOR_MIN": "列表最小值", - "MATH_ONLIST_TOOLTIP_MIN": "返回列表中最小值。", - "MATH_ONLIST_OPERATOR_MAX": "列表最大值", - "MATH_ONLIST_TOOLTIP_MAX": "返回列表中最大值。", - "MATH_ONLIST_OPERATOR_AVERAGE": "列表平均值", - "MATH_ONLIST_TOOLTIP_AVERAGE": "返回列表中的数值的平均值。", - "MATH_ONLIST_OPERATOR_MEDIAN": "列表中位数", - "MATH_ONLIST_TOOLTIP_MEDIAN": "返回列表中数值的中位数。", - "MATH_ONLIST_OPERATOR_MODE": "列表中的众数", - "MATH_ONLIST_TOOLTIP_MODE": "返回列表中的出现次数最多的项的列表。", - "MATH_ONLIST_OPERATOR_STD_DEV": "列表的标准差", - "MATH_ONLIST_TOOLTIP_STD_DEV": "返回列表的标准差。", - "MATH_ONLIST_OPERATOR_RANDOM": "列表随机项", - "MATH_ONLIST_TOOLTIP_RANDOM": "从列表中返回一个随机的元素。", - "MATH_MODULO_HELPURL": "https://zh.wikipedia.org/wiki/模除", - "MATH_MODULO_TITLE": "取 %1 ÷ %2 的余数", - "MATH_MODULO_TOOLTIP": "返回这两个数字相除后的余数。", - "MATH_CONSTRAIN_TITLE": "将 %1 限制在 最低 %2 到最高 %3 之间", - "MATH_CONSTRAIN_TOOLTIP": "将一个数值限制在两个指定的数值范围(含边界)之间。", - "MATH_RANDOM_INT_HELPURL": "https://zh.wikipedia.org/wiki/随机数生成器", - "MATH_RANDOM_INT_TITLE": "从 %1 到 %2 范围内的随机整数", - "MATH_RANDOM_INT_TOOLTIP": "返回一个限制在两个指定数值的范围(含边界)之间的随机整数。", - "MATH_RANDOM_FLOAT_HELPURL": "https://zh.wikipedia.org/wiki/随机数生成器", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "随机小数", - "MATH_RANDOM_FLOAT_TOOLTIP": "返回一个介于0.0到1.0之间(含边界)的随机数。", - "MATH_ATAN2_HELPURL": "https://zh.wikipedia.org/wiki/反正切2", - "MATH_ATAN2_TITLE": "点(x:%1,y:%2)的方位角", - "MATH_ATAN2_TOOLTIP": "返回点(X,Y)的反正切值,范围为-180到180度。", - "TEXT_TEXT_HELPURL": "https://zh.wikipedia.org/wiki/字符串", - "TEXT_TEXT_TOOLTIP": "一个字、词语或一行文本。", - "TEXT_JOIN_TITLE_CREATEWITH": "建立文本从", - "TEXT_JOIN_TOOLTIP": "通过串起任意数量的项以建立一段文本。", - "TEXT_CREATE_JOIN_TITLE_JOIN": "加入", - "TEXT_CREATE_JOIN_TOOLTIP": "添加、移除或重新排列各节来重新配置这个文本块。", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "将一个项添加到文本中。", - "TEXT_APPEND_TITLE": "向%1附加文本%2", - "TEXT_APPEND_TOOLTIP": "将一些文本追加到变量“%1”里。", - "TEXT_LENGTH_TITLE": "%1的长度", - "TEXT_LENGTH_TOOLTIP": "返回给定文本的字母数(包括空格)。", - "TEXT_ISEMPTY_TITLE": "%1是空的", - "TEXT_ISEMPTY_TOOLTIP": "如果给定的文本为空,则返回真。", - "TEXT_INDEXOF_TOOLTIP": "返回第一个文本段在第二个文本段中的第一/最后一个匹配项的起始位置。如果未找到,则返回%1。", - "TEXT_INDEXOF_TITLE": "在文本 %1 里 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "寻找第一次出现的文本", - "TEXT_INDEXOF_OPERATOR_LAST": "寻找最后一次出现的文本", - "TEXT_CHARAT_TITLE": "在文本%1 里 %2", - "TEXT_CHARAT_FROM_START": "获取字符从#", - "TEXT_CHARAT_FROM_END": "获取字符从倒数#", - "TEXT_CHARAT_FIRST": "寻找第一个字母", - "TEXT_CHARAT_LAST": "寻找最后一个字母", - "TEXT_CHARAT_RANDOM": "寻找随机的字母", - "TEXT_CHARAT_TAIL": "-", - "TEXT_CHARAT_TOOLTIP": "返回位于指定位置的字母。", - "TEXT_GET_SUBSTRING_TOOLTIP": "返回文本中指定的一部分。", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "从文本", - "TEXT_GET_SUBSTRING_START_FROM_START": "取得子串自#", - "TEXT_GET_SUBSTRING_START_FROM_END": "取得子串自倒数#", - "TEXT_GET_SUBSTRING_START_FIRST": "取得子串自第一个字符", - "TEXT_GET_SUBSTRING_END_FROM_START": "至字符#", - "TEXT_GET_SUBSTRING_END_FROM_END": "到最后一个字符#", - "TEXT_GET_SUBSTRING_END_LAST": "到最后一个字符", - "TEXT_GET_SUBSTRING_TAIL": "-", - "TEXT_CHANGECASE_TOOLTIP": "用不同的大小写模式复制并返回这段文字。", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "转为大写", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "转为小写", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "转为首字母大写", - "TEXT_TRIM_TOOLTIP": "从某一端或同时从两端删除多余的空白,并返回这段文字的一个副本。", - "TEXT_TRIM_OPERATOR_BOTH": "消除其两侧的空白", - "TEXT_TRIM_OPERATOR_LEFT": "消除其左侧的空白", - "TEXT_TRIM_OPERATOR_RIGHT": "消除其右侧的空白", - "TEXT_PRINT_TITLE": "输出%1", - "TEXT_PRINT_TOOLTIP": "输出指定的文字、数字或其他值。", - "TEXT_PROMPT_TYPE_TEXT": "要求输入文本,并显示提示消息", - "TEXT_PROMPT_TYPE_NUMBER": "要求输入数字,并显示提示消息", - "TEXT_PROMPT_TOOLTIP_NUMBER": "要求用户输入数字。", - "TEXT_PROMPT_TOOLTIP_TEXT": "要求用户输入一些文本。", - "TEXT_COUNT_MESSAGE0": "计算%1在%2里出现的次数", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "计算在一段文本中,某个部分文本重复出现了多少次。", - "TEXT_REPLACE_MESSAGE0": "在%3中,将%1替换为%2", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "在一段文本中,将出现过的某部分文本都替换掉。", - "TEXT_REVERSE_MESSAGE0": "翻转文本%1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "将文本中各个字符的顺序倒转。", - "LISTS_CREATE_EMPTY_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-empty-list", - "LISTS_CREATE_EMPTY_TITLE": "创建空列表", - "LISTS_CREATE_EMPTY_TOOLTIP": "返回一个列表,长度为 0,不包含任何数据记录", - "LISTS_CREATE_WITH_HELPURL": "https://github.com/google/blockly/wiki/Lists#create-list-with", - "LISTS_CREATE_WITH_TOOLTIP": "建立一个具有任意数量项目的列表。", - "LISTS_CREATE_WITH_INPUT_WITH": "建立列表从", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "列表", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "增加、删除或重新排列各部分以此重新配置这个列表块。", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "将一个项添加到列表中。", - "LISTS_REPEAT_TOOLTIP": "建立包含指定重复次数的值的列表。", - "LISTS_REPEAT_TITLE": "建立列表使用项 %1 重复 %2 次", - "LISTS_LENGTH_TITLE": "%1的长度", - "LISTS_LENGTH_TOOLTIP": "返回列表的长度。", - "LISTS_ISEMPTY_TITLE": "%1是空的", - "LISTS_ISEMPTY_TOOLTIP": "如果改列表为空,则返回真。", - "LISTS_INLIST": "在列表中", - "LISTS_INDEX_OF_FIRST": "寻找第一次出现的项", - "LISTS_INDEX_OF_LAST": "寻找最后一次出现的项", - "LISTS_INDEX_OF_TOOLTIP": "返回在列表中的第一/最后一个匹配项的索引值。如果找不到项目则返回%1。", - "LISTS_GET_INDEX_GET": "取得", - "LISTS_GET_INDEX_GET_REMOVE": "取得并移除", - "LISTS_GET_INDEX_REMOVE": "移除", - "LISTS_GET_INDEX_FROM_START": "#", - "LISTS_GET_INDEX_FROM_END": "倒数第#", - "LISTS_GET_INDEX_FIRST": "第一个", - "LISTS_GET_INDEX_LAST": "最后一个", - "LISTS_GET_INDEX_RANDOM": "随机的", - "LISTS_GET_INDEX_TAIL": "-", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1是第一项。", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1是最后一项。", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "返回在列表中的指定位置的项。", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "返回列表中的第一项。", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "返回列表中的最后一项。", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "返回列表中的随机一项。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "移除并返回列表中的指定位置的项。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "移除并返回列表中的第一项。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "移除并返回列表中的最后一项。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "移除并返回列表中的随机一项。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "移除在列表中的指定位置的项。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "移除列表中的第一项", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "移除列表中的最后一项", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "删除列表中的随机一项。", - "LISTS_SET_INDEX_SET": "设置", - "LISTS_SET_INDEX_INSERT": "插入在", - "LISTS_SET_INDEX_INPUT_TO": "值为", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "设置在列表中指定位置的项。", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "设置列表中的第一项。", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "设置列表中的最后一项。", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "设置列表中的随机一项。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "插入在列表中指定位置的项。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "在列表的起始处添加该项。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "在列表的末尾处添加该项。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "在列表的随机位置插入该项。", - "LISTS_GET_SUBLIST_START_FROM_START": "获取子列表从#", - "LISTS_GET_SUBLIST_START_FROM_END": "获取子列表从最后一个#", - "LISTS_GET_SUBLIST_START_FIRST": "获取子列表从第一个", - "LISTS_GET_SUBLIST_END_FROM_START": "到#", - "LISTS_GET_SUBLIST_END_FROM_END": "到倒数第#", - "LISTS_GET_SUBLIST_END_LAST": "到最后", - "LISTS_GET_SUBLIST_TAIL": "-", - "LISTS_GET_SUBLIST_TOOLTIP": "复制列表中指定的部分。", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "排序%1 %2 %3", - "LISTS_SORT_TOOLTIP": "排序一个列表的拷贝。", - "LISTS_SORT_ORDER_ASCENDING": "升序", - "LISTS_SORT_ORDER_DESCENDING": "降序", - "LISTS_SORT_TYPE_NUMERIC": "按数字排序", - "LISTS_SORT_TYPE_TEXT": "按字母排序", - "LISTS_SORT_TYPE_IGNORECASE": "按字母排序,忽略大小写", - "LISTS_SPLIT_HELPURL": "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", - "LISTS_SPLIT_LIST_FROM_TEXT": "从文本制作列表", - "LISTS_SPLIT_TEXT_FROM_LIST": "从列表拆出文本", - "LISTS_SPLIT_WITH_DELIMITER": "用分隔符", - "LISTS_SPLIT_TOOLTIP_SPLIT": "拆分文本到文本列表,按每个分隔符拆分。", - "LISTS_SPLIT_TOOLTIP_JOIN": "加入文本列表至一个文本,由分隔符分隔。", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "倒转%1", - "LISTS_REVERSE_TOOLTIP": "倒转一个列表的拷贝。", - "ORDINAL_NUMBER_SUFFIX": "-", - "VARIABLES_GET_TOOLTIP": "返回此变量的值。", - "VARIABLES_GET_CREATE_SET": "创建“设定%1”", - "VARIABLES_SET": "赋值 %1 为 %2", - "VARIABLES_SET_TOOLTIP": "设置此变量,以使它和输入值相等。", - "VARIABLES_SET_CREATE_GET": "创建“获得%1”", - "PROCEDURES_DEFNORETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程序", - "PROCEDURES_DEFNORETURN_TITLE": "至", - "PROCEDURES_DEFNORETURN_PROCEDURE": "做点什么", - "PROCEDURES_BEFORE_PARAMS": "与:", - "PROCEDURES_CALL_BEFORE_PARAMS": "与:", - "PROCEDURES_DEFNORETURN_DO": "-", - "PROCEDURES_DEFNORETURN_TOOLTIP": "创建一个不带输出值的函数。", - "PROCEDURES_DEFNORETURN_COMMENT": "描述该功能...", - "PROCEDURES_DEFRETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程序", - "PROCEDURES_DEFRETURN_RETURN": "返回", - "PROCEDURES_DEFRETURN_TOOLTIP": "创建一个有输出值的函数。", - "PROCEDURES_ALLOW_STATEMENTS": "允许声明", - "PROCEDURES_DEF_DUPLICATE_WARNING": "警告:此函数具有重复参数。", - "PROCEDURES_CALLNORETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程序", - "PROCEDURES_CALLNORETURN_TOOLTIP": "运行用户定义的函数“%1”。", - "PROCEDURES_CALLRETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程序", - "PROCEDURES_CALLRETURN_TOOLTIP": "运行用户定义的函数“%1”,并使用它的输出值。", - "PROCEDURES_MUTATORCONTAINER_TITLE": "输入", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "添加、移除或重新排此函数的输入。", - "PROCEDURES_MUTATORARG_TITLE": "输入名称:", - "PROCEDURES_MUTATORARG_TOOLTIP": "添加函数输入。", - "PROCEDURES_HIGHLIGHT_DEF": "突出显示函数定义", - "PROCEDURES_CREATE_DO": "创建“%1”", - "PROCEDURES_IFRETURN_TOOLTIP": "如果值为真,则返回第二个值。", - "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "警告:这个块只能在函数内部使用。", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "说点什么...", - "COLLAPSED_WARNINGS_WARNING": "已收起的信息块内包含警告。" -} diff --git a/lib/blockly/msg/json/zh-hant.json b/lib/blockly/msg/json/zh-hant.json deleted file mode 100644 index 547c22e..0000000 --- a/lib/blockly/msg/json/zh-hant.json +++ /dev/null @@ -1,361 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Gasolin", - "Wehwei", - "Liuxinyu970226", - "LNDDYL", - "Cwlin0416", - "Kasimtan", - "Kly", - "Dnowba", - "Dnow", - "和平至上", - "Jessica1213" - ] - }, - "VARIABLES_DEFAULT_NAME": "項目", - "UNNAMED_KEY": "未命名", - "TODAY": "今天", - "DUPLICATE_BLOCK": "複製", - "ADD_COMMENT": "加入註解", - "REMOVE_COMMENT": "移除註解", - "DUPLICATE_COMMENT": "複製註解", - "EXTERNAL_INPUTS": "外部輸入", - "INLINE_INPUTS": "單行輸入", - "DELETE_BLOCK": "刪除區塊", - "DELETE_X_BLOCKS": "刪除%1個積木", - "DELETE_ALL_BLOCKS": "刪除全部 %1 個區塊?", - "CLEAN_UP": "整理積木", - "COLLAPSE_BLOCK": "收合區塊", - "COLLAPSE_ALL": "收合積木", - "EXPAND_BLOCK": "展開區塊", - "EXPAND_ALL": "展開積木", - "DISABLE_BLOCK": "停用區塊", - "ENABLE_BLOCK": "啟用積木", - "HELP": "說明", - "UNDO": "還原", - "REDO": "重做", - "CHANGE_VALUE_TITLE": "修改值:", - "RENAME_VARIABLE": "重新命名變數...", - "RENAME_VARIABLE_TITLE": "將所有「%1」變數重新命名為:", - "NEW_VARIABLE": "建立變數…", - "NEW_STRING_VARIABLE": "建立字串變數……", - "NEW_NUMBER_VARIABLE": "建立數值變數……", - "NEW_COLOUR_VARIABLE": "建立顏色變數……", - "NEW_VARIABLE_TYPE_TITLE": "新變數類型:", - "NEW_VARIABLE_TITLE": "新變數名稱:", - "VARIABLE_ALREADY_EXISTS": "已存在變數「%1」。", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "已存在名為「%1」,且用於其它類型「%2」的變數。", - "DELETE_VARIABLE_CONFIRMATION": "刪除使用%1次的「%2」變數?", - "CANNOT_DELETE_VARIABLE_PROCEDURE": "無法刪除變數「%1」,因為這是功能「%2」定義的一部份內容", - "DELETE_VARIABLE": "刪除變數「%1」", - "COLOUR_PICKER_HELPURL": "https://zh.wikipedia.org/wiki/顏色", - "COLOUR_PICKER_TOOLTIP": "從調色板中選擇一種顏色。", - "COLOUR_RANDOM_TITLE": "隨機顏色", - "COLOUR_RANDOM_TOOLTIP": "隨機選擇一種顏色。", - "COLOUR_RGB_TITLE": "顏色", - "COLOUR_RGB_RED": "紅", - "COLOUR_RGB_GREEN": "綠", - "COLOUR_RGB_BLUE": "藍", - "COLOUR_RGB_TOOLTIP": "透過指定紅、綠、 藍色的值來建立一種顏色。所有的值必須介於 0 和 100 之間。", - "COLOUR_BLEND_TITLE": "混合", - "COLOUR_BLEND_COLOUR1": "顏色 1", - "COLOUR_BLEND_COLOUR2": "顏色 2", - "COLOUR_BLEND_RATIO": "比例", - "COLOUR_BLEND_TOOLTIP": "用一個給定的比率(0.0-1.0)混合兩種顏色。", - "CONTROLS_REPEAT_HELPURL": "https://zh.wikipedia.org/wiki/For迴圈", - "CONTROLS_REPEAT_TITLE": "重複%1次", - "CONTROLS_REPEAT_INPUT_DO": "執行", - "CONTROLS_REPEAT_TOOLTIP": "重複執行指定的陳述式多次。", - "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "重複,當", - "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "重複直到", - "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "當值為 true 時,執行一些陳述式。", - "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "當值為 false 時,執行一些陳述式。", - "CONTROLS_FOR_TOOLTIP": "從起始數到結尾數中取出變數「%1」的值,按指定的時間間隔,執行指定的區塊。", - "CONTROLS_FOR_TITLE": "循環計數 %1 從 %2 到 %3 每次增加 %4", - "CONTROLS_FOREACH_TITLE": "為列表 %2 裡的每一項 %1", - "CONTROLS_FOREACH_TOOLTIP": "遍歷每個清單中的項目,將變數「%1」設定到該項目中,然後執行某些陳述式。", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "中斷循環", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "繼續下一個循環", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "中斷當前的循環。", - "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "跳過這個循環的其餘步驟,並繼續下一次的循環。", - "CONTROLS_FLOW_STATEMENTS_WARNING": "警告:此區塊僅可用於循環內。", - "CONTROLS_IF_TOOLTIP_1": "當值為 true 時,執行一些陳述式。", - "CONTROLS_IF_TOOLTIP_2": "當值為 true 時,執行第一個陳述式。否則,執行第二個陳述式。", - "CONTROLS_IF_TOOLTIP_3": "如果第一個值為 true,則執行第一個陳述式。否則,當第二個值為 true 時,則執行第二個陳述式。", - "CONTROLS_IF_TOOLTIP_4": "如果第一個值為 true,則執行第一個陳述式。否則當第二個值為 true 時,則執行第二個陳述式。如果前幾個敘述都不為 ture,則執行最後一個陳述式。", - "CONTROLS_IF_MSG_IF": "如果", - "CONTROLS_IF_MSG_ELSEIF": "否則,如果", - "CONTROLS_IF_MSG_ELSE": "否則", - "CONTROLS_IF_IF_TOOLTIP": "添加、刪除或重新排列各部份以重新配置這個「如果」區塊。", - "CONTROLS_IF_ELSEIF_TOOLTIP": "添加條件到「如果」積木。", - "CONTROLS_IF_ELSE_TOOLTIP": "加入一個最終、所有條件都執行的部份到「如果」區塊中。", - "IOS_OK": "確定", - "IOS_CANCEL": "取消", - "IOS_ERROR": "錯誤", - "IOS_PROCEDURES_INPUTS": "輸入", - "IOS_PROCEDURES_ADD_INPUT": "+ 添加輸入", - "IOS_PROCEDURES_ALLOW_STATEMENTS": "允許加入陳述式", - "IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR": "此功能有多個輸入內容。", - "IOS_VARIABLES_ADD_VARIABLE": "+ 添加變數", - "IOS_VARIABLES_ADD_BUTTON": "添加", - "IOS_VARIABLES_RENAME_BUTTON": "重新命名", - "IOS_VARIABLES_DELETE_BUTTON": "刪除", - "IOS_VARIABLES_VARIABLE_NAME": "變數名稱", - "IOS_VARIABLES_EMPTY_NAME_ERROR": "您不能使用空的變數名稱。", - "LOGIC_COMPARE_HELPURL": "https://zh.wikipedia.org/wiki/不等", - "LOGIC_COMPARE_TOOLTIP_EQ": "如果這兩個輸入區塊的結果相等,返回 true。", - "LOGIC_COMPARE_TOOLTIP_NEQ": "如果這兩個輸入區塊的結果不相等,返回 true。", - "LOGIC_COMPARE_TOOLTIP_LT": "如果第一個輸入結果比第二個小,返回 true。", - "LOGIC_COMPARE_TOOLTIP_LTE": "如果第一個輸入結果小於或等於第二個,返回 true。", - "LOGIC_COMPARE_TOOLTIP_GT": "如果第一個輸入結果大於第二個,返回 true。", - "LOGIC_COMPARE_TOOLTIP_GTE": "如果第一個輸入結果大於或等於第二個,返回 true。", - "LOGIC_OPERATION_TOOLTIP_AND": "如果兩個輸入結果都為 true,則返回 true。", - "LOGIC_OPERATION_AND": "和", - "LOGIC_OPERATION_TOOLTIP_OR": "如果至少一個輸入結果為 true,返回 true。", - "LOGIC_OPERATION_OR": "或", - "LOGIC_NEGATE_TITLE": "%1 不成立", - "LOGIC_NEGATE_TOOLTIP": "如果輸入結果是 false,則返回 true。如果輸入結果是 true,則返回 false。", - "LOGIC_BOOLEAN_TRUE": "真", - "LOGIC_BOOLEAN_FALSE": "假", - "LOGIC_BOOLEAN_TOOLTIP": "返回真或假。", - "LOGIC_NULL": "空", - "LOGIC_NULL_TOOLTIP": "返回空值。", - "LOGIC_TERNARY_HELPURL": "https://zh.wikipedia.org/wiki/條件運算符", - "LOGIC_TERNARY_CONDITION": "測試", - "LOGIC_TERNARY_IF_TRUE": "如果為真", - "LOGIC_TERNARY_IF_FALSE": "如果為假", - "LOGIC_TERNARY_TOOLTIP": "檢查「測試」中的條件。如果條件為真,將返回「如果為真」的值;否則,返回「如果為假」的值。", - "MATH_NUMBER_HELPURL": "https://zh.wikipedia.org/wiki/數", - "MATH_NUMBER_TOOLTIP": "一個數字。", - "MATH_ARITHMETIC_HELPURL": "https://zh.wikipedia.org/wiki/算術", - "MATH_ARITHMETIC_TOOLTIP_ADD": "返回兩個數字的總和。", - "MATH_ARITHMETIC_TOOLTIP_MINUS": "返回兩個數字的差。", - "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "返回兩個數字的乘積。", - "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "返回兩個數字的商。", - "MATH_ARITHMETIC_TOOLTIP_POWER": "返回第二個數字的指數的第一個數字。", - "MATH_SINGLE_HELPURL": "https://zh.wikipedia.org/wiki/平方根", - "MATH_SINGLE_OP_ROOT": "開根號", - "MATH_SINGLE_TOOLTIP_ROOT": "返回指定數字的平方根。", - "MATH_SINGLE_OP_ABSOLUTE": "絕對值", - "MATH_SINGLE_TOOLTIP_ABS": "返回指定數字的絕對值。", - "MATH_SINGLE_TOOLTIP_NEG": "返回指定數字的相反數。", - "MATH_SINGLE_TOOLTIP_LN": "返回指定數字的自然對數。", - "MATH_SINGLE_TOOLTIP_LOG10": "返回指定數字的對數。", - "MATH_SINGLE_TOOLTIP_EXP": "返回指定數字指數的e的冪次。", - "MATH_SINGLE_TOOLTIP_POW10": "返回指定數字指數的10的冪次。", - "MATH_TRIG_HELPURL": "https://zh.wikipedia.org/wiki/三角函數", - "MATH_TRIG_TOOLTIP_SIN": "返回指定角度的正弦值(非弧度)。", - "MATH_TRIG_TOOLTIP_COS": "返回指定角度的餘弦值(非弧度)。", - "MATH_TRIG_TOOLTIP_TAN": "返回指定角度的正切值(非弧度)。", - "MATH_TRIG_TOOLTIP_ASIN": "返回指定角度的反正弦值(非弧度)。", - "MATH_TRIG_TOOLTIP_ACOS": "返回指定角度的反餘弦值(非弧度)。", - "MATH_TRIG_TOOLTIP_ATAN": "返回指定角度的反正切值。", - "MATH_CONSTANT_HELPURL": "https://zh.wikipedia.org/wiki/數學常數", - "MATH_CONSTANT_TOOLTIP": "返回一個的常見常量: π (3.141......),e (2.718...)、 φ (1.618...)、 開方(2) (1.414......)、 開方(½) (0.707......) 或 ∞ (無窮大)。", - "MATH_IS_EVEN": "是偶數", - "MATH_IS_ODD": "是奇數", - "MATH_IS_PRIME": "是質數", - "MATH_IS_WHOLE": "是整數", - "MATH_IS_POSITIVE": "是正值", - "MATH_IS_NEGATIVE": "是負數", - "MATH_IS_DIVISIBLE_BY": "可被整除", - "MATH_IS_TOOLTIP": "如果數字是偶數,奇數,非負整數,正數、 負數,或如果它是可被某數字整除,則返回 true 或 false。", - "MATH_CHANGE_HELPURL": "https://zh.wikipedia.org/wiki/加法", - "MATH_CHANGE_TITLE": "修改 %1 自 %2", - "MATH_CHANGE_TOOLTIP": "將數字加到變數「%1」。", - "MATH_ROUND_HELPURL": "https://zh.wikipedia.org/wiki/數值簡化", - "MATH_ROUND_TOOLTIP": "將數字無條件進位或無條件捨去。", - "MATH_ROUND_OPERATOR_ROUND": "四捨五入", - "MATH_ROUND_OPERATOR_ROUNDUP": "無條件進位", - "MATH_ROUND_OPERATOR_ROUNDDOWN": "無條件捨去", - "MATH_ONLIST_OPERATOR_SUM": "數字總和 自清單", - "MATH_ONLIST_TOOLTIP_SUM": "返回清單中的所有數字的總和。", - "MATH_ONLIST_OPERATOR_MIN": "最小值 自清單", - "MATH_ONLIST_TOOLTIP_MIN": "返回清單項目中最小的數字。", - "MATH_ONLIST_OPERATOR_MAX": "最大值 自清單", - "MATH_ONLIST_TOOLTIP_MAX": "返回清單項目中最大的數字。", - "MATH_ONLIST_OPERATOR_AVERAGE": "平均數 自清單", - "MATH_ONLIST_TOOLTIP_AVERAGE": "返回清單中數值的平均值(算術平均值)。", - "MATH_ONLIST_OPERATOR_MEDIAN": "中位數 自清單", - "MATH_ONLIST_TOOLTIP_MEDIAN": "返回清單中數值的中位數。", - "MATH_ONLIST_OPERATOR_MODE": "比較眾數 自清單", - "MATH_ONLIST_TOOLTIP_MODE": "返回一個清單中的最常見的項目。", - "MATH_ONLIST_OPERATOR_STD_DEV": "標準差 自清單", - "MATH_ONLIST_TOOLTIP_STD_DEV": "返回清單中數字的標準差。", - "MATH_ONLIST_OPERATOR_RANDOM": "隨機抽取 自清單", - "MATH_ONLIST_TOOLTIP_RANDOM": "從清單中返回一個隨機的項目。", - "MATH_MODULO_HELPURL": "https://zh.wikipedia.org/wiki/模除", - "MATH_MODULO_TITLE": "%1 除以 %2 的餘數", - "MATH_MODULO_TOOLTIP": "回傳兩個數字相除的餘數。", - "MATH_CONSTRAIN_TITLE": "限制數字 %1 介於(低)%2 到(高)%3", - "MATH_CONSTRAIN_TOOLTIP": "限制數字介於兩個指定的數字之間(包含)。", - "MATH_RANDOM_INT_HELPURL": "https://zh.wikipedia.org/wiki/隨機數生成器", - "MATH_RANDOM_INT_TITLE": "隨機取數 %1 到 %2", - "MATH_RANDOM_INT_TOOLTIP": "在指定二個數之間隨機取一個數(包含)。", - "MATH_RANDOM_FLOAT_HELPURL": "https://zh.wikipedia.org/wiki/隨機數生成器", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "隨機取分數", - "MATH_RANDOM_FLOAT_TOOLTIP": "在 0.0(包含)和 1.0(不包含)之間隨機取一個數。", - "MATH_ATAN2_HELPURL": "https://zh.wikipedia.org/wiki/Atan2", - "MATH_ATAN2_TITLE": "X:%1 Y:%2 的 Atan2", - "MATH_ATAN2_TOOLTIP": "回傳點(X,Y)從 -180 至 180 度的反正切值。", - "TEXT_TEXT_HELPURL": "https://zh.wikipedia.org/wiki/字串", - "TEXT_TEXT_TOOLTIP": "一個字元、一個單詞,或一串文字。", - "TEXT_JOIN_TITLE_CREATEWITH": "字串組合", - "TEXT_JOIN_TOOLTIP": "通過連接任意數量的項目來建立一串文字。", - "TEXT_CREATE_JOIN_TITLE_JOIN": "加入", - "TEXT_CREATE_JOIN_TOOLTIP": "添加、刪除或重新排列各部份以重新配置這個文字區塊。", - "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "添加一個項目到字串中。", - "TEXT_APPEND_TITLE": "至 %1 套用文字 %2", - "TEXT_APPEND_TOOLTIP": "添加一些文字到變數「%1」之後。", - "TEXT_LENGTH_TITLE": "長度 %1", - "TEXT_LENGTH_TOOLTIP": "返回這串文字的字元數(包含空格)。", - "TEXT_ISEMPTY_TITLE": "%1 為空", - "TEXT_ISEMPTY_TOOLTIP": "如果提供的字串為空,則返回 true。", - "TEXT_INDEXOF_TOOLTIP": "在字串1中檢索是否有包含字串2,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。", - "TEXT_INDEXOF_TITLE": "在文字 %1 %2 %3", - "TEXT_INDEXOF_OPERATOR_FIRST": "從 最前面 索引字串", - "TEXT_INDEXOF_OPERATOR_LAST": "從 最後面 索引字串", - "TEXT_CHARAT_TITLE": "在文字 %1 %2", - "TEXT_CHARAT_FROM_START": "取得 字元 #", - "TEXT_CHARAT_FROM_END": "取得 倒數第 # 個字元", - "TEXT_CHARAT_FIRST": "取得 第一個字元", - "TEXT_CHARAT_LAST": "取得 最後一個字元", - "TEXT_CHARAT_RANDOM": "取得 任意字元", - "TEXT_CHARAT_TOOLTIP": "返回位於指定位置的字元。", - "TEXT_GET_SUBSTRING_TOOLTIP": "返回指定的部分文字。", - "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "在字串", - "TEXT_GET_SUBSTRING_START_FROM_START": "取得 字元 #", - "TEXT_GET_SUBSTRING_START_FROM_END": "取得 倒數第 # 個字元", - "TEXT_GET_SUBSTRING_START_FIRST": "取得 第一個字元", - "TEXT_GET_SUBSTRING_END_FROM_START": "到 字元 #", - "TEXT_GET_SUBSTRING_END_FROM_END": "到 倒數第 # 個字元", - "TEXT_GET_SUBSTRING_END_LAST": "到 最後一個字元", - "TEXT_CHANGECASE_TOOLTIP": "使用不同的大小寫複製這段文字。", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "轉成 英文大寫", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "轉成 英文小寫", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": "轉成 英文首字大寫", - "TEXT_TRIM_TOOLTIP": "複製這段文字,同時刪除兩端多餘的空格。", - "TEXT_TRIM_OPERATOR_BOTH": "消除兩側空格", - "TEXT_TRIM_OPERATOR_LEFT": "消除左側空格", - "TEXT_TRIM_OPERATOR_RIGHT": "消除右側空格", - "TEXT_PRINT_TITLE": "輸出 %1", - "TEXT_PRINT_TOOLTIP": "輸出指定的文字、 數字或其他值。", - "TEXT_PROMPT_TYPE_TEXT": "輸入 文字 並顯示提示訊息", - "TEXT_PROMPT_TYPE_NUMBER": "輸入 數字 並顯示提示訊息", - "TEXT_PROMPT_TOOLTIP_NUMBER": "輸入數字", - "TEXT_PROMPT_TOOLTIP_TEXT": "輸入文字", - "TEXT_COUNT_MESSAGE0": "在%2計算%1", - "TEXT_COUNT_HELPURL": "https://github.com/google/blockly/wiki/Text#counting-substrings", - "TEXT_COUNT_TOOLTIP": "計算某些文字在內容裡的出現次數。", - "TEXT_REPLACE_MESSAGE0": "在%3以%2取代%1", - "TEXT_REPLACE_HELPURL": "https://github.com/google/blockly/wiki/Text#replacing-substrings", - "TEXT_REPLACE_TOOLTIP": "取代在內容裡的全部某些文字。", - "TEXT_REVERSE_MESSAGE0": "反轉%1", - "TEXT_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Text#reversing-text", - "TEXT_REVERSE_TOOLTIP": "反轉排序在文字裡的字元。", - "LISTS_CREATE_EMPTY_TITLE": "建立空的清單", - "LISTS_CREATE_EMPTY_TOOLTIP": "返回一個長度(項目數量)為 0 的清單,不包含任何資料記錄", - "LISTS_CREATE_WITH_TOOLTIP": "建立一個具備任意數量項目的清單。", - "LISTS_CREATE_WITH_INPUT_WITH": "使用這些值建立清單", - "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "清單", - "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "添加、刪除或重新排列各部份以重新配置這個清單區塊。", - "LISTS_CREATE_WITH_ITEM_TOOLTIP": "添加一個項目到清單裡。", - "LISTS_REPEAT_TOOLTIP": "建立一個清單,項目中包含指定重複次數的值。", - "LISTS_REPEAT_TITLE": "建立清單使用項目 %1 重複 %2 次", - "LISTS_LENGTH_TITLE": "長度 %1", - "LISTS_LENGTH_TOOLTIP": "返回清單的長度(項目數)。", - "LISTS_ISEMPTY_TITLE": "%1 值為空", - "LISTS_ISEMPTY_TOOLTIP": "如果該清單為空,則返回 true。", - "LISTS_INLIST": "自清單", - "LISTS_INDEX_OF_FIRST": "從 最前面 索引項目", - "LISTS_INDEX_OF_LAST": "從 最後面 索引項目", - "LISTS_INDEX_OF_TOOLTIP": "在清單中檢索是否有包含項目,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。", - "LISTS_GET_INDEX_GET": "取得", - "LISTS_GET_INDEX_GET_REMOVE": "取得並移除", - "LISTS_GET_INDEX_REMOVE": "移除", - "LISTS_GET_INDEX_FROM_END": "倒數第 # 筆", - "LISTS_GET_INDEX_FIRST": "第一筆", - "LISTS_GET_INDEX_LAST": "最後一筆", - "LISTS_GET_INDEX_RANDOM": "隨機", - "LISTS_INDEX_FROM_START_TOOLTIP": "%1 是第一個項目。", - "LISTS_INDEX_FROM_END_TOOLTIP": "%1 是最後一個項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "返回在清單中指定位置的項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "返回清單中的第一個項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "返回清單中的最後一個項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "返回清單中隨機一個項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "移除並返回清單中的指定位置的項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "移除並返回清單中的第一個項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "移除並返回清單中的最後一個項目。", - "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "移除並返回清單中的隨機項目。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "移除在清單中指定位置的項目。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "移除清單中的第一個項目。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "移除清單中的最後一個項目。", - "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "移除清單中隨機一個項目。", - "LISTS_SET_INDEX_SET": "設定", - "LISTS_SET_INDEX_INSERT": "添加", - "LISTS_SET_INDEX_INPUT_TO": "為", - "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "設定清單中指定位置的項目。", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "設定清單中的第一個項目。", - "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "設定清單中的最後一個項目。", - "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "設定清單中隨機一個項目。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "添加一個項目到清單中的指定位置。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "添加一個項目到清單中的第一個位置。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "添加一個項目到清單中的最後一個位置。", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "添加一個項目到清單中的隨機位置。", - "LISTS_GET_SUBLIST_START_FROM_START": "取得子清單 從 #", - "LISTS_GET_SUBLIST_START_FROM_END": "取得子清單 從 # 倒數", - "LISTS_GET_SUBLIST_START_FIRST": "取得子清單 從 最前面", - "LISTS_GET_SUBLIST_END_FROM_START": "到 #", - "LISTS_GET_SUBLIST_END_FROM_END": "到 # 倒數", - "LISTS_GET_SUBLIST_END_LAST": "到 最後面", - "LISTS_GET_SUBLIST_TOOLTIP": "複製清單中指定的部分。", - "LISTS_SORT_HELPURL": "https://github.com/google/blockly/wiki/Lists#sorting-a-list", - "LISTS_SORT_TITLE": "排列 %1 %2 %3", - "LISTS_SORT_TOOLTIP": "排序清單的複製內容。", - "LISTS_SORT_ORDER_ASCENDING": "升序", - "LISTS_SORT_ORDER_DESCENDING": "降序", - "LISTS_SORT_TYPE_NUMERIC": "依數字", - "LISTS_SORT_TYPE_TEXT": "依字母", - "LISTS_SORT_TYPE_IGNORECASE": "依字母排序,忽略大小寫", - "LISTS_SPLIT_LIST_FROM_TEXT": "從文本製作清單", - "LISTS_SPLIT_TEXT_FROM_LIST": "從清單拆出文本", - "LISTS_SPLIT_WITH_DELIMITER": "用分隔符", - "LISTS_SPLIT_TOOLTIP_SPLIT": "將文本變成清單項目,按分隔符號拆分。", - "LISTS_SPLIT_TOOLTIP_JOIN": "串起清單項目成一個文本,並用分隔符號分開。", - "LISTS_REVERSE_HELPURL": "https://github.com/google/blockly/wiki/Lists#reversing-a-list", - "LISTS_REVERSE_MESSAGE0": "反轉%1", - "LISTS_REVERSE_TOOLTIP": "反轉清單的複製內容。", - "VARIABLES_GET_TOOLTIP": "返回此變數的值。", - "VARIABLES_GET_CREATE_SET": "建立「賦值 %1」", - "VARIABLES_SET": "賦值 %1 成 %2", - "VARIABLES_SET_TOOLTIP": "設定此變數,好和輸入結果相等。", - "VARIABLES_SET_CREATE_GET": "建立「取得 %1」", - "PROCEDURES_DEFNORETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程式", - "PROCEDURES_DEFNORETURN_TITLE": "到", - "PROCEDURES_DEFNORETURN_PROCEDURE": "做些什麼", - "PROCEDURES_BEFORE_PARAMS": "與:", - "PROCEDURES_CALL_BEFORE_PARAMS": "與:", - "PROCEDURES_DEFNORETURN_TOOLTIP": "創建一個無回傳值的函式。", - "PROCEDURES_DEFNORETURN_COMMENT": "描述此函式...", - "PROCEDURES_DEFRETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程式", - "PROCEDURES_DEFRETURN_RETURN": "返回", - "PROCEDURES_DEFRETURN_TOOLTIP": "創建一個有回傳值的的函式。", - "PROCEDURES_ALLOW_STATEMENTS": "允許陳述式", - "PROCEDURES_DEF_DUPLICATE_WARNING": "警告: 此函式中有重複的參數。", - "PROCEDURES_CALLNORETURN_HELPURL": "https://zh.wikipedia.org/wiki/子程式", - "PROCEDURES_CALLNORETURN_TOOLTIP": "執行使用者定義的函式「%1」。", - "PROCEDURES_CALLRETURN_HELPURL": "https://zh.wikipedia.org/wiki/%E5%AD%90%E7%A8%8B%E5%BA%8F", - "PROCEDURES_CALLRETURN_TOOLTIP": "執行使用者定義的函式「%1」,並使用它的回傳值。", - "PROCEDURES_MUTATORCONTAINER_TITLE": "輸入", - "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "添加、刪除或重新排列此函式的輸入。", - "PROCEDURES_MUTATORARG_TITLE": "輸入名稱:", - "PROCEDURES_MUTATORARG_TOOLTIP": "添加一個輸入區塊到函式。", - "PROCEDURES_HIGHLIGHT_DEF": "反白顯示函式定義", - "PROCEDURES_CREATE_DO": "建立「%1」", - "PROCEDURES_IFRETURN_TOOLTIP": "如果值為 true,則返回第二個值。", - "PROCEDURES_IFRETURN_WARNING": "警告:這個區塊只可以在定義函式時使用。", - "WORKSPACE_COMMENT_DEFAULT_TEXT": "來說些事情...", - "COLLAPSED_WARNINGS_WARNING": "收合含有警告的區塊。" -} diff --git a/lib/blockly/msg/messages.js b/lib/blockly/msg/messages.js deleted file mode 100644 index 2cb5c3e..0000000 --- a/lib/blockly/msg/messages.js +++ /dev/null @@ -1,1636 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview English strings. - * @author fraser@google.com (Neil Fraser) - * - * After modifying this file, either run "build.py" from the parent directory, - * or run (from this directory): - * ../i18n/js_to_json.py - * to regenerate json/{en,qqq,synonyms}.json. - * - * To convert all of the json files to .js files, run: - * ../i18n/create_messages.py json/*.json - */ -'use strict'; - - -/** - * Due to the frequency of long strings, the 80-column wrap rule need not apply - * to message files. - */ - -/** - * Each message is preceded with a triple-slash comment that becomes the - * message descriptor. The build process extracts these descriptors, adds - * them to msg/json/qqq.json, and they show up in the translation console. - */ - -/** @type {string} */ -/// {{Notranslate}} Hue value for all logic blocks. -Blockly.Msg.LOGIC_HUE = '210'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all loop blocks. -Blockly.Msg.LOOPS_HUE = '120'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all math blocks. -Blockly.Msg.MATH_HUE = '230'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all text blocks. -Blockly.Msg.TEXTS_HUE = '160'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all list blocks. -Blockly.Msg.LISTS_HUE = '260'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all colour blocks. -Blockly.Msg.COLOUR_HUE = '20'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all variable blocks. -Blockly.Msg.VARIABLES_HUE = '330'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all variable dynamic blocks. -Blockly.Msg.VARIABLES_DYNAMIC_HUE = '310'; -/** @type {string} */ -/// {{Notranslate}} Hue value for all procedure blocks. -Blockly.Msg.PROCEDURES_HUE = '290'; - -/** @type {string} */ -/// default name - A simple, general default name for a variable, preferably short. -/// For more context, see -/// [[Translating:Blockly#infrequent_message_types]].\n{{Identical|Item}} -Blockly.Msg.VARIABLES_DEFAULT_NAME = 'item'; -/** @type {string} */ -/// default name - A simple, default name for an unnamed function or variable. Preferably indicates that the item is unnamed. -Blockly.Msg.UNNAMED_KEY = 'unnamed'; -/** @type {string} */ -/// button text - Button that sets a calendar to today's date.\n{{Identical|Today}} -Blockly.Msg.TODAY = 'Today'; - -// Context menus. -/** @type {string} */ -/// context menu - Make a copy of the selected block (and any blocks it contains).\n{{Identical|Duplicate}} -Blockly.Msg.DUPLICATE_BLOCK = 'Duplicate'; -/** @type {string} */ -/// context menu - Add a descriptive comment to the selected block. -Blockly.Msg.ADD_COMMENT = 'Add Comment'; -/** @type {string} */ -/// context menu - Remove the descriptive comment from the selected block. -Blockly.Msg.REMOVE_COMMENT = 'Remove Comment'; -/** @type {string} */ -/// context menu - Make a copy of the selected workspace comment.\n{{Identical|Duplicate}} -Blockly.Msg.DUPLICATE_COMMENT = 'Duplicate Comment'; -/** @type {string} */ -/// context menu - Change from 'external' to 'inline' mode for displaying blocks used as inputs to the selected block. See [[Translating:Blockly#context_menus]]. -Blockly.Msg.EXTERNAL_INPUTS = 'External Inputs'; -/** @type {string} */ -/// context menu - Change from 'internal' to 'external' mode for displaying blocks used as inputs to the selected block. See [[Translating:Blockly#context_menus]]. -Blockly.Msg.INLINE_INPUTS = 'Inline Inputs'; -/** @type {string} */ -/// context menu - Permanently delete the selected block. -Blockly.Msg.DELETE_BLOCK = 'Delete Block'; -/** @type {string} */ -/// context menu - Permanently delete the %1 selected blocks.\n\nParameters:\n* %1 - an integer greater than 1. -Blockly.Msg.DELETE_X_BLOCKS = 'Delete %1 Blocks'; -/** @type {string} */ -/// confirmation prompt - Question the user if they really wanted to permanently delete all %1 blocks.\n\nParameters:\n* %1 - an integer greater than 1. -Blockly.Msg.DELETE_ALL_BLOCKS = 'Delete all %1 blocks?'; -/** @type {string} */ -/// context menu - Reposition all the blocks so that they form a neat line. -Blockly.Msg.CLEAN_UP = 'Clean up Blocks'; -/** @type {string} */ -/// context menu - Make the appearance of the selected block smaller by hiding some information about it. -Blockly.Msg.COLLAPSE_BLOCK = 'Collapse Block'; -/** @type {string} */ -/// context menu - Make the appearance of all blocks smaller by hiding some information about it. Use the same terminology as in the previous message. -Blockly.Msg.COLLAPSE_ALL = 'Collapse Blocks'; -/** @type {string} */ -/// context menu - Restore the appearance of the selected block by showing information about it that was hidden (collapsed) earlier. -Blockly.Msg.EXPAND_BLOCK = 'Expand Block'; -/** @type {string} */ -/// context menu - Restore the appearance of all blocks by showing information about it that was hidden (collapsed) earlier. Use the same terminology as in the previous message. -Blockly.Msg.EXPAND_ALL = 'Expand Blocks'; -/** @type {string} */ -/// context menu - Make the selected block have no effect (unless reenabled). -Blockly.Msg.DISABLE_BLOCK = 'Disable Block'; -/** @type {string} */ -/// context menu - Make the selected block have effect (after having been disabled earlier). -Blockly.Msg.ENABLE_BLOCK = 'Enable Block'; -/** @type {string} */ -/// context menu - Provide helpful information about the selected block.\n{{Identical|Help}} -Blockly.Msg.HELP = 'Help'; -/** @type {string} */ -/// context menu - Undo the previous action.\n{{Identical|Undo}} -Blockly.Msg.UNDO = 'Undo'; -/** @type {string} */ -/// context menu - Undo the previous undo action.\n{{Identical|Redo}} -Blockly.Msg.REDO = 'Redo'; - -// Variable renaming. -/** @type {string} */ -/// prompt - This message is only seen in the Opera browser. With most browsers, users can edit numeric values in blocks by just clicking and typing. Opera does not allows this, so we have to open a new window and prompt users with this message to chanage a value. -Blockly.Msg.CHANGE_VALUE_TITLE = 'Change value:'; -/** @type {string} */ -/// dropdown choice - When the user clicks on a variable block, this is one of the dropdown menu choices. It is used to rename the current variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu]. -Blockly.Msg.RENAME_VARIABLE = 'Rename variable...'; -/** @type {string} */ -/// prompt - Prompts the user to enter the new name for the selected variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu].\n\nParameters:\n* %1 - the name of the variable to be renamed. -Blockly.Msg.RENAME_VARIABLE_TITLE = 'Rename all "%1" variables to:'; - -// Variable creation -/** @type {string} */ -/// button text - Text on the button used to launch the variable creation dialogue. -Blockly.Msg.NEW_VARIABLE = 'Create variable...'; -/** @type {string} */ -/// button text - Text on the button used to launch the variable creation dialogue. -Blockly.Msg.NEW_STRING_VARIABLE = 'Create string variable...'; -/** @type {string} */ -/// button text - Text on the button used to launch the variable creation dialogue. -Blockly.Msg.NEW_NUMBER_VARIABLE = 'Create number variable...'; -/** @type {string} */ -/// button text - Text on the button used to launch the variable creation dialogue. -Blockly.Msg.NEW_COLOUR_VARIABLE = 'Create colour variable...'; -/** @type {string} */ -/// prompt - Prompts the user to enter the type for a variable. -Blockly.Msg.NEW_VARIABLE_TYPE_TITLE = 'New variable type:'; -/** @type {string} */ -/// prompt - Prompts the user to enter the name for a new variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu]. -Blockly.Msg.NEW_VARIABLE_TITLE = 'New variable name:'; -/** @type {string} */ -/// alert - Tells the user that the name they entered is already in use. -Blockly.Msg.VARIABLE_ALREADY_EXISTS = 'A variable named "%1" already exists.'; -/** @type {string} */ -/// alert - Tells the user that the name they entered is already in use for another type. -Blockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE = 'A variable named "%1" already exists for another type: "%2".'; - -// Variable deletion. -/** @type {string} */ -/// confirm - Ask the user to confirm their deletion of multiple uses of a variable. -Blockly.Msg.DELETE_VARIABLE_CONFIRMATION = 'Delete %1 uses of the "%2" variable?'; -/** @type {string} */ -/// alert - Tell the user that they can't delete a variable because it's part of the definition of a function. -Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE = 'Can\'t delete the variable "%1" because it\'s part of the definition of the function "%2"'; -/** @type {string} */ -/// dropdown choice - Delete the currently selected variable. -Blockly.Msg.DELETE_VARIABLE = 'Delete the "%1" variable'; - -// Colour Blocks. -/** @type {string} */ -/// {{Optional}} url - Information about colour. -Blockly.Msg.COLOUR_PICKER_HELPURL = 'https://en.wikipedia.org/wiki/Color'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Colour#picking-a-colour-from-a-palette https://github.com/google/blockly/wiki/Colour#picking-a-colour-from-a-palette]. -Blockly.Msg.COLOUR_PICKER_TOOLTIP = 'Choose a colour from the palette.'; -/** @type {string} */ -/// {{Optional}} url - A link that displays a random colour each time you visit it. -Blockly.Msg.COLOUR_RANDOM_HELPURL = 'http://randomcolour.com'; -/** @type {string} */ -/// block text - Title of block that generates a colour at random. -Blockly.Msg.COLOUR_RANDOM_TITLE = 'random colour'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Colour#generating-a-random-colour https://github.com/google/blockly/wiki/Colour#generating-a-random-colour]. -Blockly.Msg.COLOUR_RANDOM_TOOLTIP = 'Choose a colour at random.'; -/** @type {string} */ -/// {{Optional}} url - A link for colour codes with percentages (0-100%) for each component, instead of the more common 0-255, which may be more difficult for beginners. -Blockly.Msg.COLOUR_RGB_HELPURL = 'https://www.december.com/html/spec/colorpercompact.html'; -/** @type {string} */ -/// block text - Title of block for [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components]. -Blockly.Msg.COLOUR_RGB_TITLE = 'colour with'; -/** @type {string} */ -/// block input text - The amount of red (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].\n{{Identical|Red}} -Blockly.Msg.COLOUR_RGB_RED = 'red'; -/** @type {string} */ -/// block input text - The amount of green (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components]. -Blockly.Msg.COLOUR_RGB_GREEN = 'green'; -/** @type {string} */ -/// block input text - The amount of blue (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].\n{{Identical|Blue}} -Blockly.Msg.COLOUR_RGB_BLUE = 'blue'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components]. -Blockly.Msg.COLOUR_RGB_TOOLTIP = 'Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.'; -/** @type {string} */ -/// {{Optional}} url - A useful link that displays blending of two colours. -Blockly.Msg.COLOUR_BLEND_HELPURL = 'https://meyerweb.com/eric/tools/color-blend/#:::rgbp'; -/** @type {string} */ -/// block text - A verb for blending two shades of paint. -Blockly.Msg.COLOUR_BLEND_TITLE = 'blend'; -/** @type {string} */ -/// block input text - The first of two colours to [https://github.com/google/blockly/wiki/Colour#blending-colours blend]. -Blockly.Msg.COLOUR_BLEND_COLOUR1 = 'colour 1'; -/** @type {string} */ -/// block input text - The second of two colours to [https://github.com/google/blockly/wiki/Colour#blending-colours blend]. -Blockly.Msg.COLOUR_BLEND_COLOUR2 = 'colour 2'; -/** @type {string} */ -/// block input text - The proportion of the [https://github.com/google/blockly/wiki/Colour#blending-colours blend] containing the first colour; the remaining proportion is of the second colour. For example, if the first colour is red and the second colour blue, a ratio of 1 would yield pure red, a ratio of .5 would yield purple (equal amounts of red and blue), and a ratio of 0 would yield pure blue.\n{{Identical|Ratio}} -Blockly.Msg.COLOUR_BLEND_RATIO = 'ratio'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Colour#blending-colours https://github.com/google/blockly/wiki/Colour#blending-colours]. -Blockly.Msg.COLOUR_BLEND_TOOLTIP = 'Blends two colours together with a given ratio (0.0 - 1.0).'; - -// Loop Blocks. -/** @type {string} */ -/// {{Optional}} url - Describes 'repeat loops' in computer programs; consider using the translation of the page [https://en.wikipedia.org/wiki/Control_flow https://en.wikipedia.org/wiki/Control_flow]. -Blockly.Msg.CONTROLS_REPEAT_HELPURL = 'https://en.wikipedia.org/wiki/For_loop'; -/** @type {string} */ -/// block input text - Title of [https://github.com/google/blockly/wiki/Loops#repeat repeat block].\n\nParameters:\n* %1 - the number of times the body of the loop should be repeated. -Blockly.Msg.CONTROLS_REPEAT_TITLE = 'repeat %1 times'; -/** @type {string} */ -/// block text - Preceding the blocks in the body of the loop. See [https://github.com/google/blockly/wiki/Loops https://github.com/google/blockly/wiki/Loops].\n{{Identical|Do}} -Blockly.Msg.CONTROLS_REPEAT_INPUT_DO = 'do'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Loops#repeat https://github.com/google/blockly/wiki/Loops#repeat]. -Blockly.Msg.CONTROLS_REPEAT_TOOLTIP = 'Do some statements several times.'; -/** @type {string} */ -/// {{Optional}} url - Describes 'while loops' in computer programs; consider using the translation of [https://en.wikipedia.org/wiki/While_loop https://en.wikipedia.org/wiki/While_loop], if present, or [https://en.wikipedia.org/wiki/Control_flow https://en.wikipedia.org/wiki/Control_flow]. -Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL = 'https://github.com/google/blockly/wiki/Loops#repeat'; -/** @type {string} */ -Blockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO; -/** @type {string} */ -/// dropdown - Specifies that a loop should [https://github.com/google/blockly/wiki/Loops#repeat-while repeat while] the following condition is true. -Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE = 'repeat while'; -/** @type {string} */ -/// dropdown - Specifies that a loop should [https://github.com/google/blockly/wiki/Loops#repeat-until repeat until] the following condition becomes true. -Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL = 'repeat until'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Loops#repeat-while Loops#repeat-while https://github.com/google/blockly/wiki/Loops#repeat-while Loops#repeat-while]. -Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE = 'While a value is true, then do some statements.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Loops#repeat-until https://github.com/google/blockly/wiki/Loops#repeat-until]. -Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL = 'While a value is false, then do some statements.'; - -/** @type {string} */ -/// {{Optional}} url - Describes 'for loops' in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/For_loop https://en.wikipedia.org/wiki/For_loop], if present. -Blockly.Msg.CONTROLS_FOR_HELPURL = 'https://github.com/google/blockly/wiki/Loops#count-with'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Loops#count-with https://github.com/google/blockly/wiki/Loops#count-with].\n\nParameters:\n* %1 - the name of the loop variable. -Blockly.Msg.CONTROLS_FOR_TOOLTIP = 'Have the variable "%1" take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.'; -/** @type {string} */ -/// block text - Repeatedly counts a variable (%1) -/// starting with a (usually lower) number in a range (%2), -/// ending with a (usually higher) number in a range (%3), and counting the -/// iterations by a number of steps (%4). As in -/// [https://github.com/google/blockly/wiki/Loops#count-with -/// https://github.com/google/blockly/wiki/Loops#count-with]. -/// [[File:Blockly-count-with.png]] -Blockly.Msg.CONTROLS_FOR_TITLE = 'count with %1 from %2 to %3 by %4'; -/** @type {string} */ -Blockly.Msg.CONTROLS_FOR_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO; - -/** @type {string} */ -/// {{Optional}} url - Describes 'for-each loops' in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/Foreach https://en.wikipedia.org/wiki/Foreach] if present. -Blockly.Msg.CONTROLS_FOREACH_HELPURL = 'https://github.com/google/blockly/wiki/Loops#for-each'; -/** @type {string} */ -/// block text - Title of [https://github.com/google/blockly/wiki/Loops#for-each for each block]. -/// Sequentially assigns every item in array %2 to the valiable %1. -Blockly.Msg.CONTROLS_FOREACH_TITLE = 'for each item %1 in list %2'; -/** @type {string} */ -Blockly.Msg.CONTROLS_FOREACH_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO; -/** @type {string} */ -/// block text - Description of [https://github.com/google/blockly/wiki/Loops#for-each for each blocks].\n\nParameters:\n* %1 - the name of the loop variable. -Blockly.Msg.CONTROLS_FOREACH_TOOLTIP = 'For each item in a list, set the variable "%1" to the item, and then do some statements.'; - -/** @type {string} */ -/// {{Optional}} url - Describes control flow in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/Control_flow https://en.wikipedia.org/wiki/Control_flow], if it exists. -Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL = 'https://github.com/google/blockly/wiki/Loops#loop-termination-blocks'; -/** @type {string} */ -/// dropdown - The current loop should be exited. See [https://github.com/google/blockly/wiki/Loops#break https://github.com/google/blockly/wiki/Loops#break]. -Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK = 'break out of loop'; -/** @type {string} */ -/// dropdown - The current iteration of the loop should be ended and the next should begin. See [https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration]. -Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE = 'continue with next iteration of loop'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Loops#break-out-of-loop https://github.com/google/blockly/wiki/Loops#break-out-of-loop]. -Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK = 'Break out of the containing loop.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration https://github.com/google/blockly/wiki/Loops#continue-with-next-iteration]. -Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE = 'Skip the rest of this loop, and continue with the next iteration.'; -/** @type {string} */ -/// warning - The user has tried placing a block outside of a loop (for each, while, repeat, etc.), but this type of block may only be used within a loop. See [https://github.com/google/blockly/wiki/Loops#loop-termination-blocks https://github.com/google/blockly/wiki/Loops#loop-termination-blocks]. -Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING = 'Warning: This block may only be used within a loop.'; - -// Logic Blocks. -/** @type {string} */ -/// {{Optional}} url - Describes conditional statements (if-then-else) in computer programs. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_else https://en.wikipedia.org/wiki/If_else], if present. -Blockly.Msg.CONTROLS_IF_HELPURL = 'https://github.com/google/blockly/wiki/IfElse'; -/** @type {string} */ -/// tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-blocks 'if' blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present. -Blockly.Msg.CONTROLS_IF_TOOLTIP_1 = 'If a value is true, then do some statements.'; -/** @type {string} */ -/// tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-else-blocks if-else blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present. -Blockly.Msg.CONTROLS_IF_TOOLTIP_2 = 'If a value is true, then do the first block of statements. Otherwise, do the second block of statements.'; -/** @type {string} */ -/// tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-else-if-blocks if-else-if blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present. -Blockly.Msg.CONTROLS_IF_TOOLTIP_3 = 'If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.'; -/** @type {string} */ -/// tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#if-else-if-else-blocks if-else-if-else blocks]. Consider using your language's translation of [https://en.wikipedia.org/wiki/If_statement https://en.wikipedia.org/wiki/If_statement], if present. -Blockly.Msg.CONTROLS_IF_TOOLTIP_4 = 'If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/IfElse https://github.com/google/blockly/wiki/IfElse]. -/// It is recommended, but not essential, that this have text in common with the translation of 'else if'\n{{Identical|If}} -Blockly.Msg.CONTROLS_IF_MSG_IF = 'if'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/IfElse https://github.com/google/blockly/wiki/IfElse]. The English words "otherwise if" would probably be clearer than "else if", but the latter is used because it is traditional and shorter. -Blockly.Msg.CONTROLS_IF_MSG_ELSEIF = 'else if'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/IfElse https://github.com/google/blockly/wiki/IfElse]. The English word "otherwise" would probably be superior to "else", but the latter is used because it is traditional and shorter. -Blockly.Msg.CONTROLS_IF_MSG_ELSE = 'else'; -/** @type {string} */ -Blockly.Msg.CONTROLS_IF_MSG_THEN = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO; -/** @type {string} */ -Blockly.Msg.CONTROLS_IF_IF_TITLE_IF = Blockly.Msg.CONTROLS_IF_MSG_IF; -/** @type {string} */ -/// tooltip - Describes [https://github.com/google/blockly/wiki/IfElse#block-modification if block modification]. -Blockly.Msg.CONTROLS_IF_IF_TOOLTIP = 'Add, remove, or reorder sections to reconfigure this if block.'; -/** @type {string} */ -Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF = Blockly.Msg.CONTROLS_IF_MSG_ELSEIF; -/** @type {string} */ -/// tooltip - Describes the 'else if' subblock during [https://github.com/google/blockly/wiki/IfElse#block-modification if block modification]. -Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP = 'Add a condition to the if block.'; -/** @type {string} */ -Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE = Blockly.Msg.CONTROLS_IF_MSG_ELSE; -/** @type {string} */ -/// tooltip - Describes the 'else' subblock during [https://github.com/google/blockly/wiki/IfElse#block-modification if block modification]. -Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP = 'Add a final, catch-all condition to the if block.'; - -/** @type {string} */ -/// button text - Text on a button inside a dialogue window, which will accept or acknowledge the contents of the dialogue when pressed.\n{{Identical|OK}} -Blockly.Msg.IOS_OK = 'OK'; -/** @type {string} */ -/// button text - Text on a button inside a dialogue window, which will close or cancel the dialogue when pressed.\n{{Identical|Cancel}} -Blockly.Msg.IOS_CANCEL = 'Cancel'; -/** @type {string} */ -/// alert - Title text for an error dialogue.\n{{Identical|Error}} -Blockly.Msg.IOS_ERROR = 'Error'; -/** @type {string} */ -/// header text - Title of a section that displays a list of parameters (aka. "inputs") that have been defined for a procedure. This is used inside a dialogue window to configure a procedure.\n{{Identical|Input}} -Blockly.Msg.IOS_PROCEDURES_INPUTS = 'INPUTS'; -/** @type {string} */ -/// button text - Text on a button which will add a parameter (aka. "input") to a procedure. This is used inside a dialogue window to configure a procedure. NOTE: The "+" should be preserved at the beginning of the text. -Blockly.Msg.IOS_PROCEDURES_ADD_INPUT = '+ Add Input'; -/** @type {string} */ -/// option text - Text describing an option to allow statements to be added within a procedure. This is used inside a dialogue window to configure a procedure. -Blockly.Msg.IOS_PROCEDURES_ALLOW_STATEMENTS = 'Allow statements'; -/** @type {string} */ -/// alert - Error message when duplicate parameters (aka. "inputs") have been defined on a procedure. This is used inside a dialogue window to configure procedure parameters. -Blockly.Msg.IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR = 'This function has duplicate inputs.'; -/** @type {string} */ -/// button text - Text on a button which will open a variable creation dialogue when pressed. NOTE: The "+" should be preserved at the beginning of the text. -Blockly.Msg.IOS_VARIABLES_ADD_VARIABLE = '+ Add Variable'; -/** @type {string} */ -/// button text - Text on a button inside a variable creation dialogue, which will add a variable when pressed.\n{{Identical|Add}} -Blockly.Msg.IOS_VARIABLES_ADD_BUTTON = 'Add'; -/** @type {string} */ -/// button text - Text on a button inside a variable rename dialogue, which will rename a variable when pressed.\n{{Identical|Rename}} -Blockly.Msg.IOS_VARIABLES_RENAME_BUTTON = 'Rename'; -/** @type {string} */ -/// button text - Text on a button inside a variable deletion dialogue, which will delete a variable when pressed.\n{{Identical|Delete}} -Blockly.Msg.IOS_VARIABLES_DELETE_BUTTON = 'Delete'; -/** @type {string} */ -/// placeholder text - Placeholder text used inside a text input, where a variable name should be entered. -Blockly.Msg.IOS_VARIABLES_VARIABLE_NAME = 'Variable name'; -/** @type {string} */ -/// alert - Error message that is displayed when the user attempts to create a variable without a name. -Blockly.Msg.IOS_VARIABLES_EMPTY_NAME_ERROR = 'You can\'t use an empty variable name.'; - -/** @type {string} */ -/// {{Optional}} url - Information about comparisons. -Blockly.Msg.LOGIC_COMPARE_HELPURL = 'https://en.wikipedia.org/wiki/Inequality_(mathematics)'; -/** @type {string} */ -/// tooltip - Describes the equals (=) block. -Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ = 'Return true if both inputs equal each other.'; -/** @type {string} */ -/// tooltip - Describes the not equals (≠) block. -Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ = 'Return true if both inputs are not equal to each other.'; -/** @type {string} */ -/// tooltip - Describes the less than (<) block. -Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT = 'Return true if the first input is smaller than the second input.'; -/** @type {string} */ -/// tooltip - Describes the less than or equals (≤) block. -Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE = 'Return true if the first input is smaller than or equal to the second input.'; -/** @type {string} */ -/// tooltip - Describes the greater than (>) block. -Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT = 'Return true if the first input is greater than the second input.'; -/** @type {string} */ -/// tooltip - Describes the greater than or equals (≥) block. -Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE = 'Return true if the first input is greater than or equal to the second input.'; - -/** @type {string} */ -/// {{Optional}} url - Information about the Boolean conjunction ("and") and disjunction ("or") operators. Consider using the translation of [https://en.wikipedia.org/wiki/Boolean_logic https://en.wikipedia.org/wiki/Boolean_logic], if it exists in your language. -Blockly.Msg.LOGIC_OPERATION_HELPURL = 'https://github.com/google/blockly/wiki/Logic#logical-operations'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Logical_conjunction https://en.wikipedia.org/wiki/Logical_conjunction]. -Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND = 'Return true if both inputs are true.'; -/** @type {string} */ -/// block text - See [https://en.wikipedia.org/wiki/Logical_conjunction https://en.wikipedia.org/wiki/Logical_conjunction].\n{{Identical|And}} -Blockly.Msg.LOGIC_OPERATION_AND = 'and'; -/** @type {string} */ -/// block text - See [https://en.wikipedia.org/wiki/Disjunction https://en.wikipedia.org/wiki/Disjunction]. -Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR = 'Return true if at least one of the inputs is true.'; -/** @type {string} */ -/// block text - See [https://en.wikipedia.org/wiki/Disjunction https://en.wikipedia.org/wiki/Disjunction].\n{{Identical|Or}} -Blockly.Msg.LOGIC_OPERATION_OR = 'or'; - -/** @type {string} */ -/// {{Optional}} url - Information about logical negation. The translation of [https://en.wikipedia.org/wiki/Logical_negation https://en.wikipedia.org/wiki/Logical_negation] is recommended if it exists in the target language. -Blockly.Msg.LOGIC_NEGATE_HELPURL = 'https://github.com/google/blockly/wiki/Logic#not'; -/** @type {string} */ -/// block text - This is a unary operator that returns ''false'' when the input is ''true'', and ''true'' when the input is ''false''. -/// \n\nParameters:\n* %1 - the input (which should be either the value "true" or "false") -Blockly.Msg.LOGIC_NEGATE_TITLE = 'not %1'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Logical_negation https://en.wikipedia.org/wiki/Logical_negation]. -Blockly.Msg.LOGIC_NEGATE_TOOLTIP = 'Returns true if the input is false. Returns false if the input is true.'; - -/** @type {string} */ -/// {{Optional}} url - Information about the logic values ''true'' and ''false''. Consider using the translation of [https://en.wikipedia.org/wiki/Truth_value https://en.wikipedia.org/wiki/Truth_value] if it exists in your language. -Blockly.Msg.LOGIC_BOOLEAN_HELPURL = 'https://github.com/google/blockly/wiki/Logic#values'; -/** @type {string} */ -/// block text - The word for the [https://en.wikipedia.org/wiki/Truth_value logical value] ''true''.\n{{Identical|True}} -Blockly.Msg.LOGIC_BOOLEAN_TRUE = 'true'; -/** @type {string} */ -/// block text - The word for the [https://en.wikipedia.org/wiki/Truth_value logical value] ''false''.\n{{Identical|False}} -Blockly.Msg.LOGIC_BOOLEAN_FALSE = 'false'; -/** @type {string} */ -/// tooltip - Indicates that the block returns either of the two possible [https://en.wikipedia.org/wiki/Truth_value logical values]. -Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP = 'Returns either true or false.'; - -/** @type {string} */ -/// {{Optional}} url - Provide a link to the translation of [https://en.wikipedia.org/wiki/Nullable_type https://en.wikipedia.org/wiki/Nullable_type], if it exists in your language; otherwise, do not worry about translating this advanced concept. -Blockly.Msg.LOGIC_NULL_HELPURL = 'https://en.wikipedia.org/wiki/Nullable_type'; -/** @type {string} */ -/// block text - In computer languages, ''null'' is a special value that indicates that no value has been set. You may use your language's word for "nothing" or "invalid".\n{{Identical|Null}} -Blockly.Msg.LOGIC_NULL = 'null'; -/** @type {string} */ -/// tooltip - This should use the word from the previous message. -Blockly.Msg.LOGIC_NULL_TOOLTIP = 'Returns null.'; - -/** @type {string} */ -/// {{Optional}} url - Describes the programming language operator known as the ''ternary'' or ''conditional'' operator. It is recommended that you use the translation of [https://en.wikipedia.org/wiki/%3F: https://en.wikipedia.org/wiki/%3F:] if it exists. -Blockly.Msg.LOGIC_TERNARY_HELPURL = 'https://en.wikipedia.org/wiki/%3F:'; -/** @type {string} */ -/// block input text - Label for the input whose value determines which of the other two inputs is returned. In some programming languages, this is called a ''''predicate''''. -Blockly.Msg.LOGIC_TERNARY_CONDITION = 'test'; -/** @type {string} */ -/// block input text - Indicates that the following input should be returned (used as output) if the test input is true. Remember to try to keep block text terse (short). -Blockly.Msg.LOGIC_TERNARY_IF_TRUE = 'if true'; -/** @type {string} */ -/// block input text - Indicates that the following input should be returned (used as output) if the test input is false. -Blockly.Msg.LOGIC_TERNARY_IF_FALSE = 'if false'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/%3F: https://en.wikipedia.org/wiki/%3F:]. -Blockly.Msg.LOGIC_TERNARY_TOOLTIP = 'Check the condition in "test". If the condition is true, returns the "if true" value; otherwise returns the "if false" value.'; - -// Math Blocks. -/** @type {string} */ -/// {{Optional}} url - Information about (real) numbers. -Blockly.Msg.MATH_NUMBER_HELPURL = 'https://en.wikipedia.org/wiki/Number'; -/** @type {string} */ -/// tooltip - Any positive or negative number, not necessarily an integer. -Blockly.Msg.MATH_NUMBER_TOOLTIP = 'A number.'; - -/** @type {string} */ -/// {{Optional}} math - The symbol for the binary operation addition. -Blockly.Msg.MATH_ADDITION_SYMBOL = '+'; -/** @type {string} */ -/// {{Optional}} math - The symbol for the binary operation indicating that the right operand should be -/// subtracted from the left operand. -Blockly.Msg.MATH_SUBTRACTION_SYMBOL = '-'; -/** @type {string} */ -/// {{Optional}} math - The binary operation indicating that the left operand should be divided by -/// the right operand. -Blockly.Msg.MATH_DIVISION_SYMBOL = '÷'; -/** @type {string} */ -/// {{Optional}} math - The symbol for the binary operation multiplication. -Blockly.Msg.MATH_MULTIPLICATION_SYMBOL = '×'; -/** @type {string} */ -/// {{Optional}} math - The symbol for the binary operation exponentiation. Specifically, if the -/// value of the left operand is L and the value of the right operand (the exponent) is -/// R, multiply L by itself R times. (Fractional and negative exponents are also legal.) -Blockly.Msg.MATH_POWER_SYMBOL = '^'; - -/** @type {string} */ -/// math - The short name of the trigonometric function -/// [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent sine]. -Blockly.Msg.MATH_TRIG_SIN = 'sin'; -/** @type {string} */ -/// math - The short name of the trigonometric function -/// [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent cosine]. -Blockly.Msg.MATH_TRIG_COS = 'cos'; -/** @type {string} */ -/// math - The short name of the trigonometric function -/// [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent tangent]. -Blockly.Msg.MATH_TRIG_TAN = 'tan'; -/** @type {string} */ -/// math - The short name of the ''inverse of'' the trigonometric function -/// [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent sine]. -Blockly.Msg.MATH_TRIG_ASIN = 'asin'; -/** @type {string} */ -/// math - The short name of the ''inverse of'' the trigonometric function -/// [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent cosine]. -Blockly.Msg.MATH_TRIG_ACOS = 'acos'; -/** @type {string} */ -/// math - The short name of the ''inverse of'' the trigonometric function -/// [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent tangent]. -Blockly.Msg.MATH_TRIG_ATAN = 'atan'; - -/** @type {string} */ -/// {{Optional}} url - Information about addition, subtraction, multiplication, division, and exponentiation. -Blockly.Msg.MATH_ARITHMETIC_HELPURL = 'https://en.wikipedia.org/wiki/Arithmetic'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Addition https://en.wikipedia.org/wiki/Addition]. -Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD = 'Return the sum of the two numbers.'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Subtraction https://en.wikipedia.org/wiki/Subtraction]. -Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS = 'Return the difference of the two numbers.'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Multiplication https://en.wikipedia.org/wiki/Multiplication]. -Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY = 'Return the product of the two numbers.'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Division_(mathematics) https://en.wikipedia.org/wiki/Division_(mathematics)]. -Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE = 'Return the quotient of the two numbers.'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Exponentiation https://en.wikipedia.org/wiki/Exponentiation]. -Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER = 'Return the first number raised to the power of the second number.'; - -/** @type {string} */ -/// {{Optional}} url - Information about the square root operation. -Blockly.Msg.MATH_SINGLE_HELPURL = 'https://en.wikipedia.org/wiki/Square_root'; -/** @type {string} */ -/// dropdown - This computes the positive [https://en.wikipedia.org/wiki/Square_root square root] of its input. For example, the square root of 16 is 4. -Blockly.Msg.MATH_SINGLE_OP_ROOT = 'square root'; -/** @type {string} */ -/// tooltip - Please use the same term as in the previous message. -Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT = 'Return the square root of a number.'; -/** @type {string} */ -/// dropdown - This leaves positive numeric inputs changed and inverts negative inputs. For example, the absolute value of 5 is 5; the absolute value of -5 is also 5. For more information, see [https://en.wikipedia.org/wiki/Absolute_value https://en.wikipedia.org/wiki/Absolute_value]. -Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE = 'absolute'; -/** @type {string} */ -/// tooltip - Please use the same term as in the previous message. -Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS = 'Return the absolute value of a number.'; - -/** @type {string} */ -/// tooltip - Calculates '''0-n''', where '''n''' is the single numeric input. -Blockly.Msg.MATH_SINGLE_TOOLTIP_NEG = 'Return the negation of a number.'; -/** @type {string} */ -/// tooltip - Calculates the [https://en.wikipedia.org/wiki/Natural_logarithm|natural logarithm] of its single numeric input. -Blockly.Msg.MATH_SINGLE_TOOLTIP_LN = 'Return the natural logarithm of a number.'; -/** @type {string} */ -/// tooltip - Calculates the [https://en.wikipedia.org/wiki/Common_logarithm common logarithm] of its single numeric input. -Blockly.Msg.MATH_SINGLE_TOOLTIP_LOG10 = 'Return the base 10 logarithm of a number.'; -/** @type {string} */ -/// tooltip - Multiplies [https://en.wikipedia.org/wiki/E_(mathematical_constant) e] by itself n times, where n is the single numeric input. -Blockly.Msg.MATH_SINGLE_TOOLTIP_EXP = 'Return e to the power of a number.'; -/** @type {string} */ -/// tooltip - Multiplies 10 by itself n times, where n is the single numeric input. -Blockly.Msg.MATH_SINGLE_TOOLTIP_POW10 = 'Return 10 to the power of a number.'; - -/** @type {string} */ -/// {{Optional}} url - Information about the trigonometric functions sine, cosine, tangent, and their inverses (ideally using degrees, not radians). -Blockly.Msg.MATH_TRIG_HELPURL = 'https://en.wikipedia.org/wiki/Trigonometric_functions'; -/** @type {string} */ -/// tooltip - Return the [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent sine] of an [https://en.wikipedia.org/wiki/Degree_(angle) angle in degrees], not radians. -Blockly.Msg.MATH_TRIG_TOOLTIP_SIN = 'Return the sine of a degree (not radian).'; -/** @type {string} */ -/// tooltip - Return the [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent cosine] of an [https://en.wikipedia.org/wiki/Degree_(angle) angle in degrees], not radians. -Blockly.Msg.MATH_TRIG_TOOLTIP_COS = 'Return the cosine of a degree (not radian).'; -/** @type {string} */ -/// tooltip - Return the [https://en.wikipedia.org/wiki/Trigonometric_functions#Sine.2C_cosine_and_tangent tangent] of an [https://en.wikipedia.org/wiki/Degree_(angle) angle in degrees], not radians. -Blockly.Msg.MATH_TRIG_TOOLTIP_TAN = 'Return the tangent of a degree (not radian).'; -/** @type {string} */ -/// tooltip - The [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions inverse] of the [https://en.wikipedia.org/wiki/Cosine#Sine.2C_cosine_and_tangent sine function], using [https://en.wikipedia.org/wiki/Degree_(angle) degrees], not radians. -Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN = 'Return the arcsine of a number.'; -/** @type {string} */ -/// tooltip - The [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions inverse] of the [https://en.wikipedia.org/wiki/Cosine#Sine.2C_cosine_and_tangent cosine] function, using [https://en.wikipedia.org/wiki/Degree_(angle) degrees], not radians. -Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS = 'Return the arccosine of a number.'; -/** @type {string} */ -/// tooltip - The [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions inverse] of the [https://en.wikipedia.org/wiki/Cosine#Sine.2C_cosine_and_tangent tangent] function, using [https://en.wikipedia.org/wiki/Degree_(angle) degrees], not radians. -Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN = 'Return the arctangent of a number.'; - -/** @type {string} */ -/// {{Optional}} url - Information about the mathematical constants Pi (π), e, the golden ratio (φ), √ 2, √ 1/2, and infinity (∞). -Blockly.Msg.MATH_CONSTANT_HELPURL = 'https://en.wikipedia.org/wiki/Mathematical_constant'; -/** @type {string} */ -/// tooltip - Provides the specified [https://en.wikipedia.org/wiki/Mathematical_constant mathematical constant]. -Blockly.Msg.MATH_CONSTANT_TOOLTIP = 'Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).'; -/** @type {string} */ -/// dropdown - A number is '''even''' if it is a multiple of 2. For example, 4 is even (yielding true), but 3 is not (false). -Blockly.Msg.MATH_IS_EVEN = 'is even'; -/** @type {string} */ -/// dropdown - A number is '''odd''' if it is not a multiple of 2. For example, 3 is odd (yielding true), but 4 is not (false). The opposite of "odd" is "even". -Blockly.Msg.MATH_IS_ODD = 'is odd'; -/** @type {string} */ -/// dropdown - A number is [https://en.wikipedia.org/wiki/Prime prime] if it cannot be evenly divided by any positive integers except for 1 and itself. For example, 5 is prime, but 6 is not because 2 × 3 = 6. -Blockly.Msg.MATH_IS_PRIME = 'is prime'; -/** @type {string} */ -/// dropdown - A number is '''whole''' if it is an [https://en.wikipedia.org/wiki/Integer integer]. For example, 5 is whole, but 5.1 is not. -Blockly.Msg.MATH_IS_WHOLE = 'is whole'; -/** @type {string} */ -/// dropdown - A number is '''positive''' if it is greater than 0. (0 is neither negative nor positive.) -Blockly.Msg.MATH_IS_POSITIVE = 'is positive'; -/** @type {string} */ -/// dropdown - A number is '''negative''' if it is less than 0. (0 is neither negative nor positive.) -Blockly.Msg.MATH_IS_NEGATIVE = 'is negative'; -/** @type {string} */ -/// dropdown - A number x is divisible by y if y goes into x evenly. For example, 10 is divisible by 5, but 10 is not divisible by 3. -Blockly.Msg.MATH_IS_DIVISIBLE_BY = 'is divisible by'; -/** @type {string} */ -/// tooltip - This block lets the user specify via a dropdown menu whether to check if the numeric input is even, odd, prime, whole, positive, negative, or divisible by a given value. -Blockly.Msg.MATH_IS_TOOLTIP = 'Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.'; - -/** @type {string} */ -/// {{Optional}} url - Information about incrementing (increasing the value of) a variable. -/// For other languages, just use the translation of the Wikipedia page about -/// addition ([https://en.wikipedia.org/wiki/Addition https://en.wikipedia.org/wiki/Addition]). -Blockly.Msg.MATH_CHANGE_HELPURL = 'https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter'; -/** @type {string} */ -/// - As in: ''change'' [the value of variable] ''item'' ''by'' 1 (e.g., if the variable named 'item' had the value 5, change it to 6). -/// %1 is a variable name. -/// %2 is the amount of change. -Blockly.Msg.MATH_CHANGE_TITLE = 'change %1 by %2'; -/** @type {string} */ -Blockly.Msg.MATH_CHANGE_TITLE_ITEM = Blockly.Msg.VARIABLES_DEFAULT_NAME; -/** @type {string} */ -/// tooltip - This updates the value of the variable by adding to it the following numeric input.\n\nParameters:\n* %1 - the name of the variable whose value should be increased. -Blockly.Msg.MATH_CHANGE_TOOLTIP = 'Add a number to variable "%1".'; - -/** @type {string} */ -/// {{Optional}} url - Information about how numbers are rounded to the nearest integer -Blockly.Msg.MATH_ROUND_HELPURL = 'https://en.wikipedia.org/wiki/Rounding'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Rounding https://en.wikipedia.org/wiki/Rounding]. -Blockly.Msg.MATH_ROUND_TOOLTIP = 'Round a number up or down.'; -/** @type {string} */ -/// dropdown - This rounds its input to the nearest whole number. For example, 3.4 is rounded to 3. -Blockly.Msg.MATH_ROUND_OPERATOR_ROUND = 'round'; -/** @type {string} */ -/// dropdown - This rounds its input up to the nearest whole number. For example, if the input was 2.2, the result would be 3. -Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP = 'round up'; -/** @type {string} */ -/// dropdown - This rounds its input down to the nearest whole number. For example, if the input was 3.8, the result would be 3. -Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN = 'round down'; - -/** @type {string} */ -/// {{Optional}} url - Information about applying a function to a list of numbers. (We were unable to find such information in English. Feel free to skip this and any other URLs that are difficult.) -Blockly.Msg.MATH_ONLIST_HELPURL = ''; -/** @type {string} */ -/// dropdown - This computes the sum of the numeric elements in the list. For example, the sum of the list {1, 4} is 5. -Blockly.Msg.MATH_ONLIST_OPERATOR_SUM = 'sum of list'; -/** @type {string} */ -/// tooltip - Please use the same term for "sum" as in the previous message. -Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM = 'Return the sum of all the numbers in the list.'; -/** @type {string} */ -/// dropdown - This finds the smallest (minimum) number in a list. For example, the smallest number in the list [-5, 0, 3] is -5. -Blockly.Msg.MATH_ONLIST_OPERATOR_MIN = 'min of list'; -/** @type {string} */ -/// tooltip - Please use the same term for "min" or "minimum" as in the previous message. -Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN = 'Return the smallest number in the list.'; -/** @type {string} */ -/// dropdown - This finds the largest (maximum) number in a list. For example, the largest number in the list [-5, 0, 3] is 3. -Blockly.Msg.MATH_ONLIST_OPERATOR_MAX = 'max of list'; -/** @type {string} */ -/// tooltip -Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX = 'Return the largest number in the list.'; -/** @type {string} */ -/// dropdown - This adds up all of the numbers in a list and divides the sum by the number of elements in the list. For example, the [https://en.wikipedia.org/wiki/Arithmetic_mean average] of the list [1, 2, 3, 4] is 2.5 (10/4). -Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE = 'average of list'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Arithmetic_mean https://en.wikipedia.org/wiki/Arithmetic_mean] for more informatin. -Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE = 'Return the average (arithmetic mean) of the numeric values in the list.'; -/** @type {string} */ -/// dropdown - This finds the [https://en.wikipedia.org/wiki/Median median] of the numeric values in a list. For example, the median of the list {1, 2, 7, 12, 13} is 7. -Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN = 'median of list'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Median median https://en.wikipedia.org/wiki/Median median] for more information. -Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN = 'Return the median number in the list.'; -/** @type {string} */ -/// dropdown - This finds the most common numbers ([https://en.wikipedia.org/wiki/Mode_(statistics) modes]) in a list. For example, the modes of the list {1, 3, 9, 3, 9} are {3, 9}. -Blockly.Msg.MATH_ONLIST_OPERATOR_MODE = 'modes of list'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Mode_(statistics) https://en.wikipedia.org/wiki/Mode_(statistics)] for more information. -Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE = 'Return a list of the most common item(s) in the list.'; -/** @type {string} */ -/// dropdown - This finds the [https://en.wikipedia.org/wiki/Standard_deviation standard deviation] of the numeric values in a list. -Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV = 'standard deviation of list'; -/** @type {string} */ -/// tooltip - See [https://en.wikipedia.org/wiki/Standard_deviation https://en.wikipedia.org/wiki/Standard_deviation] for more information. -Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV = 'Return the standard deviation of the list.'; -/** @type {string} */ -/// dropdown - This choose an element at random from a list. Each element is chosen with equal probability. -Blockly.Msg.MATH_ONLIST_OPERATOR_RANDOM = 'random item of list'; -/** @type {string} */ -/// tooltip - Please use same term for 'random' as in previous entry. -Blockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM = 'Return a random element from the list.'; - -/** @type {string} */ -/// {{Optional}} url - information about the modulo (remainder) operation. -Blockly.Msg.MATH_MODULO_HELPURL = 'https://en.wikipedia.org/wiki/Modulo_operation'; -/** @type {string} */ -/// block text - Title of block providing the remainder when dividing the first numerical input by the second. For example, the remainder of 10 divided by 3 is 1.\n\nParameters:\n* %1 - the dividend (10, in our example)\n* %2 - the divisor (3 in our example). -Blockly.Msg.MATH_MODULO_TITLE = 'remainder of %1 ÷ %2'; -/** @type {string} */ -/// tooltip - For example, the remainder of 10 divided by 3 is 1. -Blockly.Msg.MATH_MODULO_TOOLTIP = 'Return the remainder from dividing the two numbers.'; - -/** @type {string} */ -/// {{Optional}} url - Information about constraining a numeric value to be in a specific range. (The English URL is not ideal. Recall that translating URLs is the lowest priority.) -Blockly.Msg.MATH_CONSTRAIN_HELPURL = 'https://en.wikipedia.org/wiki/Clamping_(graphics)'; -/** @type {string} */ -/// block text - The title of the block that '''constrain'''s (forces) a number to be in a given range. -///For example, if the number 150 is constrained to be between 5 and 100, the result will be 100. -///\n\nParameters:\n* %1 - the value to constrain (e.g., 150)\n* %2 - the minimum value (e.g., 5)\n* %3 - the maximum value (e.g., 100). -Blockly.Msg.MATH_CONSTRAIN_TITLE = 'constrain %1 low %2 high %3'; -/** @type {string} */ -/// tooltip - This compares a number ''x'' to a low value ''L'' and a high value ''H''. If ''x'' is less then ''L'', the result is ''L''. If ''x'' is greater than ''H'', the result is ''H''. Otherwise, the result is ''x''. -Blockly.Msg.MATH_CONSTRAIN_TOOLTIP = 'Constrain a number to be between the specified limits (inclusive).'; - -/** @type {string} */ -/// {{Optional}} url - Information about how computers generate random numbers. -Blockly.Msg.MATH_RANDOM_INT_HELPURL = 'https://en.wikipedia.org/wiki/Random_number_generation'; -/** @type {string} */ -/// block text - The title of the block that generates a random integer (whole number) in the specified range. For example, if the range is from 5 to 7, this returns 5, 6, or 7 with equal likelihood. %1 is a placeholder for the lower number, %2 is the placeholder for the larger number. -Blockly.Msg.MATH_RANDOM_INT_TITLE = 'random integer from %1 to %2'; -/** @type {string} */ -/// tooltip - Return a random integer between two values specified as inputs. For example, if one input was 7 and another 9, any of the numbers 7, 8, or 9 could be produced. -Blockly.Msg.MATH_RANDOM_INT_TOOLTIP = 'Return a random integer between the two specified limits, inclusive.'; - -/** @type {string} */ -/// {{Optional}} url - Information about how computers generate random numbers (specifically, numbers in the range from 0 to just below 1). -Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL = 'https://en.wikipedia.org/wiki/Random_number_generation'; -/** @type {string} */ -/// block text - The title of the block that generates a random number greater than or equal to 0 and less than 1. -Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM = 'random fraction'; -/** @type {string} */ -/// tooltip - Return a random fraction between 0 and 1. The value may be equal to 0 but must be less than 1. -Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP = 'Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).'; - -/** @type {string} */ -/// {{Optional}} url - Information about how to calculate atan2. -Blockly.Msg.MATH_ATAN2_HELPURL = 'https://en.wikipedia.org/wiki/Atan2'; -/** @type {string} */ -/// block text - The title of the block that calculates atan2 of point (X, Y). For example, if the point is (-1, -1), this returns -135. %1 is a placeholder for the X coordinate, %2 is the placeholder for the Y coordinate. -Blockly.Msg.MATH_ATAN2_TITLE = 'atan2 of X:%1 Y:%2'; -/** @type {string} */ -/// tooltip - Return the arctangent of point (X, Y) in degrees from -180 to 180. For example, if the point is (-1, -1) this returns -135. -Blockly.Msg.MATH_ATAN2_TOOLTIP = 'Return the arctangent of point (X, Y) in degrees from -180 to 180.'; - -// Text Blocks. -/** @type {string} */ -/// {{Optional}} url - Information about how computers represent text (sometimes referred to as ''string''s). -Blockly.Msg.TEXT_TEXT_HELPURL = 'https://en.wikipedia.org/wiki/String_(computer_science)'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text https://github.com/google/blockly/wiki/Text]. -Blockly.Msg.TEXT_TEXT_TOOLTIP = 'A letter, word, or line of text.'; - -/** @type {string} */ -/// {{Optional}} url - Information on concatenating/appending pieces of text. -Blockly.Msg.TEXT_JOIN_HELPURL = 'https://github.com/google/blockly/wiki/Text#text-creation'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation]. -Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH = 'create text with'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#text-creation create text with] for more information. -Blockly.Msg.TEXT_JOIN_TOOLTIP = 'Create a piece of text by joining together any number of items.'; - -/** @type {string} */ -/// block text - This is shown when the programmer wants to change the number of pieces of text being joined together. See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation], specifically the last picture in the 'Text creation' section.\n{{Identical|Join}} -Blockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN = 'join'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation], specifically the last picture in the 'Text creation' section. -Blockly.Msg.TEXT_CREATE_JOIN_TOOLTIP = 'Add, remove, or reorder sections to reconfigure this text block.'; -/** @type {string} */ -Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM = Blockly.Msg.VARIABLES_DEFAULT_NAME; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Text#text-creation https://github.com/google/blockly/wiki/Text#text-creation], specifically the last picture in the 'Text creation' section. -Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP = 'Add an item to the text.'; - -/** @type {string} */ -/// {{Optional}} url - This and the other text-related URLs are going to be hard to translate. As always, it is okay to leave untranslated or paste in the English-language URL. For these URLs, you might also consider a general URL about how computers represent text (such as the translation of [https://en.wikipedia.org/wiki/String_(computer_science) this Wikipedia page]). -Blockly.Msg.TEXT_APPEND_HELPURL = 'https://github.com/google/blockly/wiki/Text#text-modification'; -/** @type {string} */ -/// block input text - Message that the variable name at %1 will have the item at %2 appended to it. -/// [[File:blockly-append-text.png]] -Blockly.Msg.TEXT_APPEND_TITLE = 'to %1 append text %2'; -/** @type {string} */ -Blockly.Msg.TEXT_APPEND_VARIABLE = Blockly.Msg.VARIABLES_DEFAULT_NAME; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#text-modification https://github.com/google/blockly/wiki/Text#text-modification] for more information.\n\nParameters:\n* %1 - the name of the variable to which text should be appended -Blockly.Msg.TEXT_APPEND_TOOLTIP = 'Append some text to variable "%1".'; - -/** @type {string} */ -/// {{Optional}} url - Information about text on computers (usually referred to as 'strings'). -Blockly.Msg.TEXT_LENGTH_HELPURL = 'https://github.com/google/blockly/wiki/Text#text-modification'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Text#text-length https://github.com/google/blockly/wiki/Text#text-length]. -/// \n\nParameters:\n* %1 - the piece of text to take the length of -Blockly.Msg.TEXT_LENGTH_TITLE = 'length of %1'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#text-length https://github.com/google/blockly/wiki/Text#text-length]. -Blockly.Msg.TEXT_LENGTH_TOOLTIP = 'Returns the number of letters (including spaces) in the provided text.'; - -/** @type {string} */ -/// {{Optional}} url - Information about empty pieces of text on computers (usually referred to as 'empty strings'). -Blockly.Msg.TEXT_ISEMPTY_HELPURL = 'https://github.com/google/blockly/wiki/Text#checking-for-empty-text'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Text#checking-for-empty-text https://github.com/google/blockly/wiki/Text#checking-for-empty-text]. -/// \n\nParameters:\n* %1 - the piece of text to test for emptiness -Blockly.Msg.TEXT_ISEMPTY_TITLE = '%1 is empty'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#checking-for-empty-text https://github.com/google/blockly/wiki/Text#checking-for-empty-text]. -Blockly.Msg.TEXT_ISEMPTY_TOOLTIP = 'Returns true if the provided text is empty.'; - -/** @type {string} */ -/// {{Optional}} url - Information about finding a character in a piece of text. -Blockly.Msg.TEXT_INDEXOF_HELPURL = 'https://github.com/google/blockly/wiki/Text#finding-text'; -/** @type {string} */ -/// tooltip - %1 will be replaced by either the number 0 or -1 depending on the indexing mode. See [https://github.com/google/blockly/wiki/Text#finding-text https://github.com/google/blockly/wiki/Text#finding-text]. -Blockly.Msg.TEXT_INDEXOF_TOOLTIP = 'Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found.'; -/** @type {string} */ -/// block text - Title of blocks allowing users to find text. See -/// [https://github.com/google/blockly/wiki/Text#finding-text -/// https://github.com/google/blockly/wiki/Text#finding-text]. -/// [[File:Blockly-find-text.png]]. -/// In English the expanded message is "in text %1 find (first|last) occurance of text %3" -/// where %1 and %3 are added by the user. See TEXT_INDEXOF_OPERATOR_FIRST and -/// TEXT_INDEXOF_OPERATOR_LAST for the dropdown text that replaces %2. -Blockly.Msg.TEXT_INDEXOF_TITLE = 'in text %1 %2 %3'; -/** @type {string} */ -/// dropdown - See [https://github.com/google/blockly/wiki/Text#finding-text -/// https://github.com/google/blockly/wiki/Text#finding-text]. -/// [[File:Blockly-find-text.png]]. -Blockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST = 'find first occurrence of text'; -/** @type {string} */ -/// dropdown - See [https://github.com/google/blockly/wiki/Text#finding-text -/// https://github.com/google/blockly/wiki/Text#finding-text]. This would -/// replace "find first occurrence of text" below. (For more information on -/// how common text is factored out of dropdown menus, see -/// [https://translatewiki.net/wiki/Translating:Blockly#Drop-Down_Menus -/// https://translatewiki.net/wiki/Translating:Blockly#Drop-Down_Menus)].) -/// [[File:Blockly-find-text.png]]. -Blockly.Msg.TEXT_INDEXOF_OPERATOR_LAST = 'find last occurrence of text'; -/** @type {string} */ - -/// {{Optional}} url - Information about extracting characters (letters, number, symbols, etc.) from text. -Blockly.Msg.TEXT_CHARAT_HELPURL = 'https://github.com/google/blockly/wiki/Text#extracting-text'; -/** @type {string} */ -/// block text - Text for a block to extract a letter (or number, -/// punctuation character, etc.) from a string, as shown below. %1 is added by -/// the user and %2 is replaced by a dropdown of options, possibly followed by -/// another user supplied string. TEXT_CHARAT_TAIL is then added to the end. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_TITLE = 'in text %1 %2'; -/** @type {string} */ -/// dropdown - Indicates that the letter (or number, punctuation character, etc.) with the -/// specified index should be obtained from the preceding piece of text. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_FROM_START = 'get letter #'; -/** @type {string} */ -/// block text - Indicates that the letter (or number, punctuation character, etc.) with the -/// specified index from the end of a given piece of text should be obtained. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_FROM_END = 'get letter # from end'; -/** @type {string} */ -/// block text - Indicates that the first letter of the following piece of text should be -/// retrieved. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_FIRST = 'get first letter'; -/** @type {string} */ -/// block text - Indicates that the last letter (or number, punctuation mark, etc.) of the -/// following piece of text should be retrieved. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_LAST = 'get last letter'; -/** @type {string} */ -/// block text - Indicates that any letter (or number, punctuation mark, etc.) in the -/// following piece of text should be randomly selected. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_RANDOM = 'get random letter'; -/** @type {string} */ -/// block text - Text that goes after the rightmost block/dropdown when getting a single letter from -/// a piece of text, as in [https://blockly-demo.appspot.com/static/apps/code/index.html#3m23km these -/// blocks] or shown below. For most languages, this will be blank. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_TAIL = ''; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character -/// https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. -/// [[File:Blockly-text-get.png]] -Blockly.Msg.TEXT_CHARAT_TOOLTIP = 'Returns the letter at the specified position.'; - -/** @type {string} */ -/// See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP = 'Returns a specified portion of the text.'; -/** @type {string} */ -/// {{Optional}} url - Information about extracting characters from text. Reminder: urls are the -/// lowest priority translations. Feel free to skip. -Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL = 'https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text'; -/** @type {string} */ -/// block text - Precedes a piece of text from which a portion should be extracted. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT = 'in text'; -/** @type {string} */ -/// dropdown - Indicates that the following number specifies the position (relative to the start -/// position) of the beginning of the region of text that should be obtained from the preceding -/// piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START = 'get substring from letter #'; -/** @type {string} */ -/// dropdown - Indicates that the following number specifies the position (relative to the end -/// position) of the beginning of the region of text that should be obtained from the preceding -/// piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -/// Note: If {{msg-blockly|ORDINAL_NUMBER_SUFFIX}} is defined, it will -/// automatically appear ''after'' this and any other -/// [https://translatewiki.net/wiki/Translating:Blockly#Ordinal_numbers ordinal numbers] -/// on this block. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END = 'get substring from letter # from end'; -/** @type {string} */ -/// block text - Indicates that a region starting with the first letter of the preceding piece -/// of text should be extracted. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST = 'get substring from first letter'; -/** @type {string} */ -/// dropdown - Indicates that the following number specifies the position (relative to -/// the start position) of the end of the region of text that should be obtained from the -/// preceding piece of text. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START = 'to letter #'; -/** @type {string} */ -/// dropdown - Indicates that the following number specifies the position (relative to the -/// end position) of the end of the region of text that should be obtained from the preceding -/// piece of text. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END = 'to letter # from end'; -/** @type {string} */ -/// block text - Indicates that a region ending with the last letter of the preceding piece -/// of text should be extracted. See -/// [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST = 'to last letter'; -/** @type {string} */ -/// block text - Text that should go after the rightmost block/dropdown when -/// [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text -/// extracting a region of text]. In most languages, this will be the empty string. -/// [[File:Blockly-get-substring.png]] -Blockly.Msg.TEXT_GET_SUBSTRING_TAIL = ''; - -/** @type {string} */ -/// {{Optional}} url - Information about the case of letters (upper-case and lower-case). -Blockly.Msg.TEXT_CHANGECASE_HELPURL = 'https://github.com/google/blockly/wiki/Text#adjusting-text-case'; -/** @type {string} */ -/// tooltip - Describes a block to adjust the case of letters. For more information on this block, -/// see [https://github.com/google/blockly/wiki/Text#adjusting-text-case -/// https://github.com/google/blockly/wiki/Text#adjusting-text-case]. -Blockly.Msg.TEXT_CHANGECASE_TOOLTIP = 'Return a copy of the text in a different case.'; -/** @type {string} */ -/// block text - Indicates that all of the letters in the following piece of text should be -/// capitalized. If your language does not use case, you may indicate that this is not -/// applicable to your language. For more information on this block, see -/// [https://github.com/google/blockly/wiki/Text#adjusting-text-case -/// https://github.com/google/blockly/wiki/Text#adjusting-text-case]. -Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE = 'to UPPER CASE'; -/** @type {string} */ -/// block text - Indicates that all of the letters in the following piece of text should be converted to lower-case. If your language does not use case, you may indicate that this is not applicable to your language. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case]. -Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE = 'to lower case'; -/** @type {string} */ -/// block text - Indicates that the first letter of each of the following words should be capitalized and the rest converted to lower-case. If your language does not use case, you may indicate that this is not applicable to your language. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case]. -Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE = 'to Title Case'; - -/** @type {string} */ -/// {{Optional}} url - Information about trimming (removing) text off the beginning and ends of pieces of text. -Blockly.Msg.TEXT_TRIM_HELPURL = 'https://github.com/google/blockly/wiki/Text#trimming-removing-spaces'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces -/// https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. -Blockly.Msg.TEXT_TRIM_TOOLTIP = 'Return a copy of the text with spaces removed from one or both ends.'; -/** @type {string} */ -/// dropdown - Removes spaces from the beginning and end of a piece of text. See -/// [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces -/// https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. Note that neither -/// this nor the other options modify the original piece of text (that follows); -/// the block just returns a version of the text without the specified spaces. -Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH = 'trim spaces from both sides of'; -/** @type {string} */ -/// dropdown - Removes spaces from the beginning of a piece of text. See -/// [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces -/// https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. -/// Note that in right-to-left scripts, this will remove spaces from the right side. -Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT = 'trim spaces from left side of'; -/** @type {string} */ -/// dropdown - Removes spaces from the end of a piece of text. See -/// [https://github.com/google/blockly/wiki/Text#trimming-removing-spaces -/// https://github.com/google/blockly/wiki/Text#trimming-removing-spaces]. -/// Note that in right-to-left scripts, this will remove spaces from the left side. -Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT = 'trim spaces from right side of'; - -/** @type {string} */ -/// {{Optional}} url - Information about displaying text on computers. -Blockly.Msg.TEXT_PRINT_HELPURL = 'https://github.com/google/blockly/wiki/Text#printing-text'; -/** @type {string} */ -/// block text - Display the input on the screen. See -/// [https://github.com/google/blockly/wiki/Text#printing-text -/// https://github.com/google/blockly/wiki/Text#printing-text]. -/// \n\nParameters:\n* %1 - the value to print -Blockly.Msg.TEXT_PRINT_TITLE = 'print %1'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text#printing-text -/// https://github.com/google/blockly/wiki/Text#printing-text]. -Blockly.Msg.TEXT_PRINT_TOOLTIP = 'Print the specified text, number or other value.'; -/** @type {string} */ -/// {{Optional}} url - Information about getting text from users. -Blockly.Msg.TEXT_PROMPT_HELPURL = 'https://github.com/google/blockly/wiki/Text#getting-input-from-the-user'; -/** @type {string} */ -/// dropdown - Specifies that a piece of text should be requested from the user with -/// the following message. See [https://github.com/google/blockly/wiki/Text#printing-text -/// https://github.com/google/blockly/wiki/Text#printing-text]. -Blockly.Msg.TEXT_PROMPT_TYPE_TEXT = 'prompt for text with message'; -/** @type {string} */ -/// dropdown - Specifies that a number should be requested from the user with the -/// following message. See [https://github.com/google/blockly/wiki/Text#printing-text -/// https://github.com/google/blockly/wiki/Text#printing-text]. -Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER = 'prompt for number with message'; -/** @type {string} */ -/// dropdown - Precedes the message with which the user should be prompted for -/// a number. See [https://github.com/google/blockly/wiki/Text#printing-text -/// https://github.com/google/blockly/wiki/Text#printing-text]. -Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER = 'Prompt for user for a number.'; -/** @type {string} */ -/// dropdown - Precedes the message with which the user should be prompted for some text. -/// See [https://github.com/google/blockly/wiki/Text#printing-text -/// https://github.com/google/blockly/wiki/Text#printing-text]. -Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT = 'Prompt for user for some text.'; - -/** @type {string} */ -/// block text - Title of a block that counts the number of instances of -/// a smaller pattern (%1) inside a longer string (%2). -Blockly.Msg.TEXT_COUNT_MESSAGE0 = 'count %1 in %2'; -/** @type {string} */ -/// {{Optional}} url - Information about counting how many times a string appears in another string. -Blockly.Msg.TEXT_COUNT_HELPURL = 'https://github.com/google/blockly/wiki/Text#counting-substrings'; -/** @type {string} */ -/// tooltip - Short description of a block that counts how many times some text occurs within some other text. -Blockly.Msg.TEXT_COUNT_TOOLTIP = 'Count how many times some text occurs within some other text.'; - -/** @type {string} */ -/// block text - Title of a block that returns a copy of text (%3) with all -/// instances of some smaller text (%1) replaced with other text (%2). -Blockly.Msg.TEXT_REPLACE_MESSAGE0 = 'replace %1 with %2 in %3'; -/** @type {string} */ -/// {{Optional}} url - Information about replacing each copy text (or string, in computer lingo) with other text. -Blockly.Msg.TEXT_REPLACE_HELPURL = 'https://github.com/google/blockly/wiki/Text#replacing-substrings'; -/** @type {string} */ -/// tooltip - Short description of a block that replaces copies of text in a large text with other text. -Blockly.Msg.TEXT_REPLACE_TOOLTIP = 'Replace all occurances of some text within some other text.'; - -/** @type {string} */ -/// block text - Title of block that returns a copy of text (%1) with the order -/// of letters and characters reversed. -Blockly.Msg.TEXT_REVERSE_MESSAGE0 = 'reverse %1'; -/** @type {string} */ -/// {{Optional}} url - Information about reversing a letters/characters in text. -Blockly.Msg.TEXT_REVERSE_HELPURL = 'https://github.com/google/blockly/wiki/Text#reversing-text'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Text]. -Blockly.Msg.TEXT_REVERSE_TOOLTIP = 'Reverses the order of the characters in the text.'; - -// Lists Blocks. -/** @type {string} */ -/// {{Optional}} url - Information on empty lists. -Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL = 'https://github.com/google/blockly/wiki/Lists#create-empty-list'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Lists#create-empty-list https://github.com/google/blockly/wiki/Lists#create-empty-list]. -Blockly.Msg.LISTS_CREATE_EMPTY_TITLE = 'create empty list'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Lists#create-empty-list https://github.com/google/blockly/wiki/Lists#create-empty-list]. -Blockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP = 'Returns a list, of length 0, containing no data records'; - -/** @type {string} */ -/// {{Optional}} url - Information on building lists. -Blockly.Msg.LISTS_CREATE_WITH_HELPURL = 'https://github.com/google/blockly/wiki/Lists#create-list-with'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#create-list-with https://github.com/google/blockly/wiki/Lists#create-list-with]. -Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP = 'Create a list with any number of items.'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Lists#create-list-with https://github.com/google/blockly/wiki/Lists#create-list-with]. -Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH = 'create list with'; -/** @type {string} */ -/// block text - This appears in a sub-block when [https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs changing the number of inputs in a ''''create list with'''' block].\n{{Identical|List}} -Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD = 'list'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs]. -Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP = 'Add, remove, or reorder sections to reconfigure this list block.'; -/** @type {string} */ -Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE = Blockly.Msg.VARIABLES_DEFAULT_NAME; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs https://github.com/google/blockly/wiki/Lists#changing-number-of-inputs]. -Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP = 'Add an item to the list.'; - -/** @type {string} */ -/// {{Optional}} url - Information about [https://github.com/google/blockly/wiki/Lists#create-list-with creating a list with multiple copies of a single item]. -Blockly.Msg.LISTS_REPEAT_HELPURL = 'https://github.com/google/blockly/wiki/Lists#create-list-with'; -/** @type {string} */ -/// {{Optional}} url - See [https://github.com/google/blockly/wiki/Lists#create-list-with creating a list with multiple copies of a single item]. -Blockly.Msg.LISTS_REPEAT_TOOLTIP = 'Creates a list consisting of the given value repeated the specified number of times.'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Lists#create-list-with -/// https://github.com/google/blockly/wiki/Lists#create-list-with]. -///\n\nParameters:\n* %1 - the item (text) to be repeated\n* %2 - the number of times to repeat it -Blockly.Msg.LISTS_REPEAT_TITLE = 'create list with item %1 repeated %2 times'; - -/** @type {string} */ -/// {{Optional}} url - Information about how the length of a list is computed (i.e., by the total number of elements, not the number of different elements). -Blockly.Msg.LISTS_LENGTH_HELPURL = 'https://github.com/google/blockly/wiki/Lists#length-of'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Lists#length-of https://github.com/google/blockly/wiki/Lists#length-of]. -/// \n\nParameters:\n* %1 - the list whose length is desired -Blockly.Msg.LISTS_LENGTH_TITLE = 'length of %1'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#length-of https://github.com/google/blockly/wiki/Lists#length-of Blockly:Lists:length of]. -Blockly.Msg.LISTS_LENGTH_TOOLTIP = 'Returns the length of a list.'; - -/** @type {string} */ -/// {{Optional}} url - See [https://github.com/google/blockly/wiki/Lists#is-empty https://github.com/google/blockly/wiki/Lists#is-empty]. -Blockly.Msg.LISTS_ISEMPTY_HELPURL = 'https://github.com/google/blockly/wiki/Lists#is-empty'; -/** @type {string} */ -/// block text - See [https://github.com/google/blockly/wiki/Lists#is-empty -/// https://github.com/google/blockly/wiki/Lists#is-empty]. -/// \n\nParameters:\n* %1 - the list to test -Blockly.Msg.LISTS_ISEMPTY_TITLE = '%1 is empty'; -/** @type {string} */ -/// block tooltip - See [https://github.com/google/blockly/wiki/Lists#is-empty -/// https://github.com/google/blockly/wiki/Lists#is-empty]. -Blockly.Msg.LISTS_ISEMPTY_TOOLTIP = 'Returns true if the list is empty.'; - -/** @type {string} */ -/// block text - Title of blocks operating on [https://github.com/google/blockly/wiki/Lists lists]. -Blockly.Msg.LISTS_INLIST = 'in list'; - -/** @type {string} */ -/// {{Optional}} url - See [https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list -/// https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list]. -Blockly.Msg.LISTS_INDEX_OF_HELPURL = 'https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list'; -/** @type {string} */ -Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST; -/** @type {string} */ -/// dropdown - See [https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list -/// Lists#finding-items-in-a-list]. -/// [[File:Blockly-list-find.png]] -Blockly.Msg.LISTS_INDEX_OF_FIRST = 'find first occurrence of item'; -/** @type {string} */ -/// dropdown - See [https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list -/// https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list]. -/// [[File:Blockly-list-find.png]] -Blockly.Msg.LISTS_INDEX_OF_LAST = 'find last occurrence of item'; -/** @type {string} */ -/// tooltip - %1 will be replaced by either the number 0 or -1 depending on the indexing mode. See [https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list -/// https://github.com/google/blockly/wiki/Lists#finding-items-in-a-list]. -/// [[File:Blockly-list-find.png]] -Blockly.Msg.LISTS_INDEX_OF_TOOLTIP = 'Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found.'; - -/** @type {string} */ -Blockly.Msg.LISTS_GET_INDEX_HELPURL = Blockly.Msg.LISTS_INDEX_OF_HELPURL; -/** @type {string} */ -/// dropdown - Indicates that the user wishes to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item -/// get an item from a list] without removing it from the list. -Blockly.Msg.LISTS_GET_INDEX_GET = 'get'; -/** @type {string} */ -/// dropdown - Indicates that the user wishes to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item -/// get and remove an item from a list], as opposed to merely getting -/// it without modifying the list. -Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE = 'get and remove'; -/** @type {string} */ -/// dropdown - Indicates that the user wishes to -/// [https://github.com/google/blockly/wiki/Lists#removing-an-item -/// remove an item from a list].\n{{Identical|Remove}} -Blockly.Msg.LISTS_GET_INDEX_REMOVE = 'remove'; -/** @type {string} */ -/// dropdown - Indicates that an index relative to the front of the list should be used to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item get and/or remove -/// an item from a list]. Note: If {{msg-blockly|ORDINAL_NUMBER_SUFFIX}} is defined, it will -/// automatically appear ''after'' this number (and any other ordinal numbers on this block). -/// See [[Translating:Blockly#Ordinal_numbers]] for more information on ordinal numbers in Blockly. -/// [[File:Blockly-list-get-item.png]] -Blockly.Msg.LISTS_GET_INDEX_FROM_START = '#'; -/** @type {string} */ -/// dropdown - Indicates that an index relative to the end of the list should be used -/// to [https://github.com/google/blockly/wiki/Lists#getting-a-single-item access an item in a list]. -/// [[File:Blockly-list-get-item.png]] -Blockly.Msg.LISTS_GET_INDEX_FROM_END = '# from end'; -/** @type {string} */ -/// dropdown - Indicates that the '''first''' item should be -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. -/// [[File:Blockly-list-get-item.png]] -Blockly.Msg.LISTS_GET_INDEX_FIRST = 'first'; -/** @type {string} */ -/// dropdown - Indicates that the '''last''' item should be -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. -/// [[File:Blockly-list-get-item.png]] -Blockly.Msg.LISTS_GET_INDEX_LAST = 'last'; -/** @type {string} */ -/// dropdown - Indicates that a '''random''' item should be -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. -/// [[File:Blockly-list-get-item.png]] -Blockly.Msg.LISTS_GET_INDEX_RANDOM = 'random'; -/** @type {string} */ -/// block text - Text that should go after the rightmost block/dropdown when -/// [https://github.com/google/blockly/wiki/Lists#getting-a-single-item -/// accessing an item from a list]. In most languages, this will be the empty string. -/// [[File:Blockly-list-get-item.png]] -Blockly.Msg.LISTS_GET_INDEX_TAIL = ''; -/** @type {string} */ -Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST; -/** @type {string} */ -/// tooltip - Indicates the ordinal number that the first item in a list is referenced by. %1 will be replaced by either "#0" or "#1" depending on the indexing mode. -Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP = '%1 is the first item.'; -/** @type {string} */ -/// tooltip - Indicates the ordinal number that the last item in a list is referenced by. %1 will be replaced by either "#0" or "#1" depending on the indexing mode. -Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP = '%1 is the last item.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM = 'Returns the item at the specified position in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FIRST = 'Returns the first item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_LAST = 'Returns the last item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM = 'Returns a random item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for '#' or '# from end'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM = 'Removes and returns the item at the specified position in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'first'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST = 'Removes and returns the first item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'last'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST = 'Removes and returns the last item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'random'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM = 'Removes and returns a random item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for '#' or '# from end'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM = 'Removes the item at the specified position in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'first'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST = 'Removes the first item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'last'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST = 'Removes the last item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-and-removing-an-item] (for remove and return) and [https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for 'random'. -Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM = 'Removes a random item in a list.'; -/** @type {string} */ -/// {{Optional}} url - Information about putting items in lists. -Blockly.Msg.LISTS_SET_INDEX_HELPURL = 'https://github.com/google/blockly/wiki/Lists#in-list--set'; -/** @type {string} */ -Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST; -/** @type {string} */ -/// block text - [https://github.com/google/blockly/wiki/Lists#in-list--set -/// Replaces an item in a list]. -/// [[File:Blockly-in-list-set-insert.png]] -Blockly.Msg.LISTS_SET_INDEX_SET = 'set'; -/** @type {string} */ -/// block text - [https://github.com/google/blockly/wiki/Lists#in-list--insert-at -/// Inserts an item into a list]. -/// [[File:Blockly-in-list-set-insert.png]] -Blockly.Msg.LISTS_SET_INDEX_INSERT = 'insert at'; -/** @type {string} */ -/// block text - The word(s) after the position in the list and before the item to be set/inserted. -/// [[File:Blockly-in-list-set-insert.png]] -Blockly.Msg.LISTS_SET_INDEX_INPUT_TO = 'as'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "set" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FROM = 'Sets the item at the specified position in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "set" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FIRST = 'Sets the first item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "set" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_LAST = 'Sets the last item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "set" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM = 'Sets a random item in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "insert" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM = 'Inserts the item at the specified position in a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "insert" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST = 'Inserts the item at the start of a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "insert" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST = 'Append the item to the end of a list.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item} (even though the page describes the "get" block, the idea is the same for the "insert" block). -Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM = 'Inserts the item randomly in a list.'; - -/** @type {string} */ -/// {{Optional}} url - Information describing extracting a sublist from an existing list. -Blockly.Msg.LISTS_GET_SUBLIST_HELPURL = 'https://github.com/google/blockly/wiki/Lists#getting-a-sublist'; -/** @type {string} */ -Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST; -/** @type {string} */ -/// dropdown - Indicates that an index relative to the front of the list should be used -/// to specify the beginning of the range from which to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. -/// [[File:Blockly-get-sublist.png]] -/// Note: If {{msg-blockly|ORDINAL_NUMBER_SUFFIX}} is defined, it will -/// automatically appear ''after'' this number (and any other ordinal numbers on this block). -/// See [[Translating:Blockly#Ordinal_numbers]] for more information on ordinal numbers in Blockly. -Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START = 'get sub-list from #'; -/** @type {string} */ -/// dropdown - Indicates that an index relative to the end of the list should be used -/// to specify the beginning of the range from which to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. -Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END = 'get sub-list from # from end'; -/** @type {string} */ -/// dropdown - Indicates that the -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist sublist to extract] -/// should begin with the list's first item. -Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST = 'get sub-list from first'; -/** @type {string} */ -/// dropdown - Indicates that an index relative to the front of the list should be -/// used to specify the end of the range from which to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. -/// [[File:Blockly-get-sublist.png]] -Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START = 'to #'; -/** @type {string} */ -/// dropdown - Indicates that an index relative to the end of the list should be -/// used to specify the end of the range from which to -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist get a sublist]. -/// [[File:Blockly-get-sublist.png]] -Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END = 'to # from end'; -/** @type {string} */ -/// dropdown - Indicates that the '''last''' item in the given list should be -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist the end -/// of the selected sublist]. -/// [[File:Blockly-get-sublist.png]] -Blockly.Msg.LISTS_GET_SUBLIST_END_LAST = 'to last'; -/** @type {string} */ -/// block text - This appears in the rightmost position ("tail") of the -/// sublist block, as described at -/// [https://github.com/google/blockly/wiki/Lists#getting-a-sublist -/// https://github.com/google/blockly/wiki/Lists#getting-a-sublist]. -/// In English and most other languages, this is the empty string. -/// [[File:Blockly-get-sublist.png]] -Blockly.Msg.LISTS_GET_SUBLIST_TAIL = ''; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-sublist -/// https://github.com/google/blockly/wiki/Lists#getting-a-sublist] for more information. -/// [[File:Blockly-get-sublist.png]] -Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP = 'Creates a copy of the specified portion of a list.'; - -/** @type {string} */ -/// {{Optional}} url - Information describing sorting a list. -Blockly.Msg.LISTS_SORT_HELPURL = 'https://github.com/google/blockly/wiki/Lists#sorting-a-list'; -/** @type {string} */ -/// Sort as type %1 (numeric or alphabetic) in order %2 (ascending or descending) a list of items %3.\n{{Identical|Sort}} -Blockly.Msg.LISTS_SORT_TITLE = 'sort %1 %2 %3'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#sorting-a-list]. -Blockly.Msg.LISTS_SORT_TOOLTIP = 'Sort a copy of a list.'; -/** @type {string} */ -/// sorting order or direction from low to high value for numeric, or A-Z for alphabetic.\n{{Identical|Ascending}} -Blockly.Msg.LISTS_SORT_ORDER_ASCENDING = 'ascending'; -/** @type {string} */ -/// sorting order or direction from high to low value for numeric, or Z-A for alphabetic.\n{{Identical|Descending}} -Blockly.Msg.LISTS_SORT_ORDER_DESCENDING = 'descending'; -/** @type {string} */ -/// sort by treating each item as a number. -Blockly.Msg.LISTS_SORT_TYPE_NUMERIC = 'numeric'; -/** @type {string} */ -/// sort by treating each item alphabetically, case-sensitive. -Blockly.Msg.LISTS_SORT_TYPE_TEXT = 'alphabetic'; -/** @type {string} */ -/// sort by treating each item alphabetically, ignoring differences in case. -Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE = 'alphabetic, ignore case'; - -/** @type {string} */ -/// {{Optional}} url - Information describing splitting text into a list, or joining a list into text. -Blockly.Msg.LISTS_SPLIT_HELPURL = 'https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists'; -/** @type {string} */ -/// dropdown - Indicates that text will be split up into a list (e.g. "a-b-c" -> ["a", "b", "c"]). -Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT = 'make list from text'; -/** @type {string} */ -/// dropdown - Indicates that a list will be joined together to form text (e.g. ["a", "b", "c"] -> "a-b-c"). -Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST = 'make text from list'; -/** @type {string} */ -/// block text - Prompts for a letter to be used as a separator when splitting or joining text. -Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER = 'with delimiter'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#make-list-from-text -/// https://github.com/google/blockly/wiki/Lists#make-list-from-text] for more information. -Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT = 'Split text into a list of texts, breaking at each delimiter.'; -/** @type {string} */ -/// tooltip - See [https://github.com/google/blockly/wiki/Lists#make-text-from-list -/// https://github.com/google/blockly/wiki/Lists#make-text-from-list] for more information. -Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN = 'Join a list of texts into one text, separated by a delimiter.'; - -/** @type {string} */ -/// {{Optional}} url - Information describing reversing a list. -Blockly.Msg.LISTS_REVERSE_HELPURL = 'https://github.com/google/blockly/wiki/Lists#reversing-a-list'; -/** @type {string} */ -/// block text - Title of block that returns a copy of a list (%1) with the order of items reversed. -Blockly.Msg.LISTS_REVERSE_MESSAGE0 = 'reverse %1'; -/** @type {string} */ -/// tooltip - Short description for a block that reverses a copy of a list. -Blockly.Msg.LISTS_REVERSE_TOOLTIP = 'Reverse a copy of a list.'; - -/** @type {string} */ -/// grammar - Text that follows an ordinal number (a number that indicates -/// position relative to other numbers). In most languages, such text appears -/// before the number, so this should be blank. An exception is Hungarian. -/// See [[Translating:Blockly#Ordinal_numbers]] for more information. -Blockly.Msg.ORDINAL_NUMBER_SUFFIX = ''; - -// Variables Blocks. -/** @type {string} */ -/// {{Optional}} url - Information about ''variables'' in computer programming. Consider using your language's translation of [https://en.wikipedia.org/wiki/Variable_(computer_science) https://en.wikipedia.org/wiki/Variable_(computer_science)], if it exists. -Blockly.Msg.VARIABLES_GET_HELPURL = 'https://github.com/google/blockly/wiki/Variables#get'; -/** @type {string} */ -/// tooltip - This gets the value of the named variable without modifying it. -Blockly.Msg.VARIABLES_GET_TOOLTIP = 'Returns the value of this variable.'; -/** @type {string} */ -/// context menu - Selecting this creates a block to set (change) the value of this variable. -/// \n\nParameters:\n* %1 - the name of the variable. -Blockly.Msg.VARIABLES_GET_CREATE_SET = 'Create "set %1"'; - -/** @type {string} */ -/// {{Optional}} url - Information about ''variables'' in computer programming. Consider using your language's translation of [https://en.wikipedia.org/wiki/Variable_(computer_science) https://en.wikipedia.org/wiki/Variable_(computer_science)], if it exists. -Blockly.Msg.VARIABLES_SET_HELPURL = 'https://github.com/google/blockly/wiki/Variables#set'; -/** @type {string} */ -/// block text - Change the value of a mathematical variable: '''set [the value of] x to 7'''.\n\nParameters:\n* %1 - the name of the variable.\n* %2 - the value to be assigned. -Blockly.Msg.VARIABLES_SET = 'set %1 to %2'; -/** @type {string} */ -/// tooltip - This initializes or changes the value of the named variable. -Blockly.Msg.VARIABLES_SET_TOOLTIP = 'Sets this variable to be equal to the input.'; -/** @type {string} */ -/// context menu - Selecting this creates a block to get (change) the value of -/// this variable.\n\nParameters:\n* %1 - the name of the variable. -Blockly.Msg.VARIABLES_SET_CREATE_GET = 'Create "get %1"'; - -// Procedures Blocks. -/** @type {string} */ -/// {{Optional}} url - Information about defining [https://en.wikipedia.org/wiki/Subroutine functions] that do not have return values. -Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL = 'https://en.wikipedia.org/wiki/Subroutine'; -/** @type {string} */ -/// block text - This precedes the name of the function when defining it. See -/// [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#c84aoc this sample -/// function definition]. -Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE = 'to'; -/** @type {string} */ -/// default name - This acts as a placeholder for the name of a function on a -/// function definition block, as shown on -/// [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#w7cfju this block]. -/// The user will replace it with the function's name. -Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE = 'do something'; -/** @type {string} */ -/// block text - This precedes the list of parameters on a function's definition block. See -/// [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#voztpd this sample -/// function with parameters]. -Blockly.Msg.PROCEDURES_BEFORE_PARAMS = 'with:'; -/** @type {string} */ -/// block text - This precedes the list of parameters on a function's caller block. See -/// [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#voztpd this sample -/// function with parameters]. -Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS = 'with:'; -/** @type {string} */ -/// block text - This appears next to the function's "body", the blocks that should be -/// run when the function is called, as shown in -/// [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#voztpd this sample -/// function definition]. -Blockly.Msg.PROCEDURES_DEFNORETURN_DO = ''; -/** @type {string} */ -/// tooltip -Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP = 'Creates a function with no output.'; -/** @type {string} */ -/// Placeholder text that the user is encouraged to replace with a description of what their function does. -Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT = 'Describe this function...'; -/** @type {string} */ -/// {{Optional}} url - Information about defining [https://en.wikipedia.org/wiki/Subroutine functions] that have return values. -Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL = 'https://en.wikipedia.org/wiki/Subroutine'; -/** @type {string} */ -Blockly.Msg.PROCEDURES_DEFRETURN_TITLE = Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE; -/** @type {string} */ -Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE = Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE; -/** @type {string} */ -Blockly.Msg.PROCEDURES_DEFRETURN_DO = Blockly.Msg.PROCEDURES_DEFNORETURN_DO; -/** @type {string} */ -Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT = Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT; -/** @type {string} */ -/// block text - This imperative or infinite verb precedes the value that is used as the return value -/// (output) of this function. See -/// [https://blockly-demo.appspot.com/static/apps/code/index.html?lang=en#6ot5y5 this sample -/// function that returns a value]. -Blockly.Msg.PROCEDURES_DEFRETURN_RETURN = 'return'; -/** @type {string} */ -/// tooltip -Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP = 'Creates a function with an output.'; -/** @type {string} */ -/// Label for a checkbox that controls if statements are allowed in a function. -Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS = 'allow statements'; - -/** @type {string} */ -/// alert - The user has created a function with two parameters that have the same name. Every parameter must have a different name. -Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING = 'Warning: This function has duplicate parameters.'; - -/** @type {string} */ -/// {{Optional}} url - Information about calling [https://en.wikipedia.org/wiki/Subroutine functions] that do not return values. -Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL = 'https://en.wikipedia.org/wiki/Subroutine'; -/** @type {string} */ -/// tooltip - This block causes the body (blocks inside) of the named function definition to be run. -Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP = 'Run the user-defined function "%1".'; - -/** @type {string} */ -/// {{Optional}} url - Information about calling [https://en.wikipedia.org/wiki/Subroutine functions] that return values. -Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL = 'https://en.wikipedia.org/wiki/Subroutine'; -/** @type {string} */ -/// tooltip - This block causes the body (blocks inside) of the named function definition to be run.\n\nParameters:\n* %1 - the name of the function. -Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP = 'Run the user-defined function "%1" and use its output.'; - -/** @type {string} */ -/// block text - This text appears on a block in a window that appears when the user clicks -/// on the plus sign or star on a function definition block. It refers to the set of parameters -/// (referred to by the simpler term "inputs") to the function. See -/// [[Translating:Blockly#function_definitions]].\n{{Identical|Input}} -Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE = 'inputs'; -/** @type {string} */ -/// tooltip -Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP = 'Add, remove, or reorder inputs to this function.'; -/** @type {string} */ -/// block text - This text appears on a block in a window that appears when the user clicks -/// on the plus sign or star on a function definition block]. It appears on the block for -/// adding an individual parameter (referred to by the simpler term "inputs") to the function. -/// See [[Translating:Blockly#function_definitions]]. -Blockly.Msg.PROCEDURES_MUTATORARG_TITLE = 'input name:'; -/** @type {string} */ -/// tooltip -Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP = 'Add an input to the function.'; - -/** @type {string} */ -/// context menu - This appears on the context menu for function calls. Selecting -/// it causes the corresponding function definition to be highlighted (as shown at -/// [[Translating:Blockly#context_menus]]. -Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF = 'Highlight function definition'; -/** @type {string} */ -/// context menu - This appears on the context menu for function definitions. -/// Selecting it creates a block to call the function.\n\nParameters:\n* %1 - the name of the function.\n{{Identical|Create}} -Blockly.Msg.PROCEDURES_CREATE_DO = 'Create "%1"'; - -/** @type {string} */ -/// tooltip - If the first value is true, this causes the second value to be returned -/// immediately from the enclosing function. -Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP = 'If a value is true, then return a second value.'; -/** @type {string} */ -/// {{Optional}} url - Information about guard clauses. -Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = 'http://c2.com/cgi/wiki?GuardClause'; -/** @type {string} */ -/// warning - This appears if the user tries to use this block outside of a function definition. -Blockly.Msg.PROCEDURES_IFRETURN_WARNING = 'Warning: This block may be used only within a function definition.'; - -/** @type {string} */ -/// comment text - This text appears in a new workspace comment, to hint that -/// the user can type here. -Blockly.Msg.WORKSPACE_COMMENT_DEFAULT_TEXT = 'Say something...'; - -/** @type {string} */ -/// warning - This appears if the user collapses a block, and blocks inside -/// that block have warnings attached to them. It should inform the user that the -/// block they collapsed contains blocks that have warnings. -Blockly.Msg.COLLAPSED_WARNINGS_WARNING = 'Collapsed blocks contain warnings.'; diff --git a/lib/blockly/package-lock.json b/lib/blockly/package-lock.json deleted file mode 100644 index 90fc95c..0000000 --- a/lib/blockly/package-lock.json +++ /dev/null @@ -1,6921 +0,0 @@ -{ - "name": "blockly", - "version": "3.20191014.4", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.0.tgz", - "integrity": "sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ==", - "dev": true - }, - "@wdio/config": { - "version": "5.13.0-alpha.0", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-5.13.0-alpha.0.tgz", - "integrity": "sha512-rcwtVtvmvN/F0HXhxVVv5YxPdJrrOODIZDmk/ftkwbwzpmPyIuP787YSGNgrVflLdXaDy0yIoew0rb5hPAq3bw==", - "dev": true, - "requires": { - "@wdio/logger": "^5.12.1", - "deepmerge": "^4.0.0", - "glob": "^7.1.2" - } - }, - "@wdio/logger": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-5.12.1.tgz", - "integrity": "sha512-KUmdS0Scj0T5UQGtcWFiQRqc0NpFLQ/vSvRxlDzzkoeGwwPINqTRkLT103KL7Lyitlm9uLfaFfYc2KSzynTung==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^5.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "@wdio/protocols": { - "version": "5.13.0-alpha.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-5.13.0-alpha.0.tgz", - "integrity": "sha512-1/7PhkRv3dCB8P+/yVVMXubus3xVcLh30wPcxSJS//rvcu9EU6hU4XEzJro3Ja0ixCFP4WIqnKda7Vre5EaOoQ==", - "dev": true - }, - "@wdio/repl": { - "version": "5.13.0-alpha.0", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-5.13.0-alpha.0.tgz", - "integrity": "sha512-yjMMhfqX58Drha6OsQuFUGdRwx58F4E42zp8M4DLJU1sD9Mg0uqRjmF8TPSUoYn3QqUNCclhL+UHU5lEuAWlSg==", - "dev": true, - "requires": { - "@wdio/config": "^5.13.0-alpha.0" - } - }, - "@wdio/utils": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-5.13.0.tgz", - "integrity": "sha512-SUzI694Vu8a8IMRgVpglyOlJ2JzSSrZT+YnbSgk+A1QpT/Azv1xnGJ6t48bpK3XrxpYBGOajADdOWoOydO86pg==", - "dev": true, - "requires": { - "@wdio/logger": "^5.12.1", - "deepmerge": "^4.0.0" - } - }, - "abab": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.1.tgz", - "integrity": "sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw==" - }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - } - }, - "acorn-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", - "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", - "dev": true - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archiver": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", - "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^2.6.3", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.2" - }, - "dependencies": { - "bl": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz", - "integrity": "sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==", - "dev": true, - "requires": { - "readable-stream": "^3.0.1" - } - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "tar-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", - "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", - "dev": true, - "requires": { - "bl": "^3.0.0", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "binaryextensions": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==", - "dev": true - }, - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", - "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compress-commons": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", - "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "concurrently": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.1.2.tgz", - "integrity": "sha512-Kim9SFrNr2jd8/0yNYqDTFALzUX1tvimmwFWxmp/D4mRI+kbqIIwE2RkBDrxS2ic25O1UgQMI5AtBqdtX3ynYg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "date-fns": "^1.30.1", - "lodash": "^4.17.15", - "read-pkg": "^4.0.1", - "rxjs": "^6.5.2", - "spawn-command": "^0.0.2-1", - "supports-color": "^4.5.0", - "tree-kill": "^1.2.1", - "yargs": "^12.0.5" - }, - "dependencies": { - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - } - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "requires": { - "buffer": "^5.1.0" - } - }, - "crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "css-value": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", - "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=", - "dev": true - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "requires": { - "cssom": "0.3.x" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.0.0.tgz", - "integrity": "sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww==", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", - "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", - "dev": true - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editions": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.2.tgz", - "integrity": "sha512-gUSUszrsxlDnUbUwEI9Oygyrk4ZEWtVaHQc+uZHphVeNxl+qeqMV/jDWoTkjN1RmGlZ5QWAP7o458p/JMlikQg==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", - "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.0.0", - "string.prototype.trimright": "^2.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.51", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz", - "integrity": "sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz", - "integrity": "sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ==", - "dev": true, - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.51" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - } - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.0.0" - } - }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true - }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - } - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "google-closure-compiler": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20190618.0.0.tgz", - "integrity": "sha512-f5zJQSWnlawuQlGo9TxcuprBGxIS5ksikj/pjDxdlRTXWt3dOKqEFA3CN8QshNYDl6oEjtO/ehiNx64fqEgkUA==", - "dev": true, - "requires": { - "chalk": "2.x", - "google-closure-compiler-java": "^20190618.0.0", - "google-closure-compiler-js": "^20190618.0.0", - "google-closure-compiler-linux": "^20190618.0.0", - "google-closure-compiler-osx": "^20190618.0.0", - "google-closure-compiler-windows": "^20190618.0.0", - "minimist": "1.x", - "vinyl": "2.x", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "google-closure-compiler-java": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20190618.0.0.tgz", - "integrity": "sha512-y6gAyJHMH5k2SM0qj/lyErEjmFGMvcT3glcx5Lsrl99CGwImJY0gDi+Cy9S0pczZvLG+wUW33AEfEW9MtdRZ6A==", - "dev": true - }, - "google-closure-compiler-js": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-js/-/google-closure-compiler-js-20190618.0.0.tgz", - "integrity": "sha512-Xc/84uN00GLUzRwWx25Lg11VuSTz/1odWy0d+pM3F/26fXqi16ZhhkVoe6VVFklSSMVDyGTPAH0ZkyfZhinKhA==", - "dev": true - }, - "google-closure-compiler-linux": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20190618.0.0.tgz", - "integrity": "sha512-idWJ/sFmOSYfCmDbCVMcaBX2NCUCxukjt2UzT5PJmpoVLmJuwwoVbpQZVfvgRvEH4bLzvvcvJRfn5nIiODjjaQ==", - "dev": true, - "optional": true - }, - "google-closure-compiler-osx": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20190618.0.0.tgz", - "integrity": "sha512-OzXMW+hKq76NJt9MIRQhV7pHTzHISCXtg+LZUPcqNT+V/tcvOlrSaflokmvyJPzEVk889QArYp8JgZ7mqHuY5g==", - "dev": true, - "optional": true - }, - "google-closure-compiler-windows": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20190618.0.0.tgz", - "integrity": "sha512-2qzY/fQneEg+zFvRGoNeJkAY6VU5OcmBT37l+xTBGQvy/AauCLWltSGcOYNEi7Qd3OEBVIcAJ+CzNOV9s3jfwA==", - "dev": true, - "optional": true - }, - "google-closure-library": { - "version": "20190618.0.0", - "resolved": "https://registry.npmjs.org/google-closure-library/-/google-closure-library-20190618.0.0.tgz", - "integrity": "sha512-V0RbatvAmCfdOTeTXXbXklGU1hgPus8YkpjyaMBmoCcajgtk9vL+SsRhD1Ntk6QNkbzD9WGKLdyovMw7NJ8VnA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "requires": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" - } - }, - "gulp-insert": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/gulp-insert/-/gulp-insert-0.5.0.tgz", - "integrity": "sha1-MjE/E+SiPPWsylzl8MCAkjx3hgI=", - "dev": true, - "requires": { - "readable-stream": "^1.0.26-4", - "streamqueue": "0.0.6" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "gulp-rename": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", - "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", - "dev": true - }, - "gulp-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", - "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", - "dev": true, - "requires": { - "istextorbinary": "2.2.1", - "readable-stream": "^2.0.1", - "replacestream": "^4.0.0" - } - }, - "gulp-series": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/gulp-series/-/gulp-series-1.0.2.tgz", - "integrity": "sha1-gWGZA1AXh13QDUiIklBP659jCgs=", - "dev": true - }, - "gulp-shell": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.7.1.tgz", - "integrity": "sha512-5dKf1eJDdBiUS4LKCt4tm9IkDnWeXKGCKjQG5EJj/bVeVOisAPse5RLxccGh1OtfbzQdOWCywu936DTB8isZRw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "fancy-log": "^1.3.3", - "lodash.template": "^4.4.0", - "plugin-error": "^1.0.1", - "through2": "^3.0.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } - } - } - }, - "gulp-umd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-umd/-/gulp-umd-2.0.0.tgz", - "integrity": "sha512-zA0RDIITdOwpVUBQ6vy2R+iCsTXwDImPnWreNBmVJQAg3nDGefowV7KYwWoIeEVoxyHZT2CR50nEF6ovUh5/2A==", - "dev": true, - "requires": { - "concat-stream": "^1.6.2", - "lodash.template": "^4.4.0", - "through2": "^2.0.3" - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", - "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istextorbinary": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", - "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", - "dev": true, - "requires": { - "binaryextensions": "2", - "editions": "^1.3.3", - "textextensions": "2" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } - } - }, - "js2xmlparser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", - "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", - "dev": true, - "requires": { - "xmlcreate": "^2.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", - "dev": true, - "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", - "catharsis": "^0.8.11", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", - "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", - "taffydb": "2.6.2", - "underscore": "~1.9.1" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - } - } - }, - "jsdom": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.1.1.tgz", - "integrity": "sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ==", - "requires": { - "abab": "^2.0.0", - "acorn": "^6.1.1", - "acorn-globals": "^4.3.2", - "array-equal": "^1.0.0", - "cssom": "^0.3.6", - "cssstyle": "^1.2.2", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.1", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.4", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.7", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^7.0.0", - "xml-name-validator": "^3.0.0" - } - }, - "jshint": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.2.tgz", - "integrity": "sha512-e7KZgCSXMJxznE/4WULzybCMNXNAd/bf5TSrvVEq78Q/K8ZwFpmBqQeDtNiHc3l49nV4E/+YeHU/JZjSUIrLAA==", - "dev": true, - "requires": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "~4.17.11", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "dependencies": { - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - } - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "loglevel": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz", - "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==", - "dev": true - }, - "loglevel-plugin-prefix": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", - "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", - "dev": true - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - } - } - }, - "markdown-it-anchor": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz", - "integrity": "sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A==", - "dev": true - }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", - "dev": true - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nwsapi": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", - "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "dev": true, - "requires": { - "pngjs": "^3.0.0" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "requires": { - "lodash": "^4.17.11" - } - }, - "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "requires": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "resq": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/resq/-/resq-1.6.0.tgz", - "integrity": "sha512-8A4CsNY52RoSU4rpSfnEGPK2mkMO9kz0hi+SYhbKnSq7AFYxZFPTb2C7u6aEchD3vzFjotuCLnDfS81K/UsAmg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rgb2hex": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.9.tgz", - "integrity": "sha512-32iuQzhOjyT+cv9aAFRBJ19JgHwzQwbjUhH3Fj2sWW2EEGAW8fpFrDFP5ndoKDxJaLO06x1hE3kyuIFrUQtybQ==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "requires": { - "xmlchars": "^2.1.1" - } - }, - "selenium-standalone": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-6.16.0.tgz", - "integrity": "sha512-tl7HFH2FOxJD1is7Pzzsl0pY4vuePSdSWiJdPn+6ETBkpeJDiuzou8hBjvWYWpD+eIVcOrmy3L0R3GzkdHLzDw==", - "dev": true, - "requires": { - "async": "^2.6.2", - "commander": "^2.19.0", - "cross-spawn": "^6.0.5", - "debug": "^4.1.1", - "lodash": "^4.17.11", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "progress": "2.0.3", - "request": "2.88.0", - "tar-stream": "2.0.0", - "urijs": "^1.19.1", - "which": "^1.3.1", - "yauzl": "^2.10.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "serialize-error": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-4.1.0.tgz", - "integrity": "sha512-5j9GgyGsP9vV9Uj1S0lDCvlsd+gc2LEPVK7HHHte7IyPwOD4lVQFeaX143gx3U5AnoCi+wbcb3mvaxVysjpxEw==", - "dev": true, - "requires": { - "type-fest": "^0.3.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "streamqueue": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/streamqueue/-/streamqueue-0.0.6.tgz", - "integrity": "sha1-ZvX17JTpuK8knkrsLdH3Qb/pTeM=", - "dev": true, - "requires": { - "readable-stream": "^1.0.26-2" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - } - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "tar-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.0.0.tgz", - "integrity": "sha512-n2vtsWshZOVr/SY4KtslPoUlyNh06I2SGgAOCZmquCEjlbV/LjY2CY80rDtdQRHFOYXNlgBDo6Fr3ww2CWPOtA==", - "dev": true, - "requires": { - "bl": "^2.2.0", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "textextensions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz", - "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript-closure-tools": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/typescript-closure-tools/-/typescript-closure-tools-0.0.7.tgz", - "integrity": "sha512-trz9OhHC8d96c8aqlolk7ckNWlxqqgLPkeSqwi4PuEPu5zMjQqTg8m0E2gNpS3uUPyL0wwBTQOVB/rigFCPJPw==", - "dev": true, - "requires": { - "colors": "*", - "doctrine": "github:fivetran/doctrine", - "escodegen": "*", - "esprima": "*", - "jsdoc": "*", - "mkdirp": "*" - }, - "dependencies": { - "doctrine": { - "version": "github:fivetran/doctrine#169ebc1cbf23492363f9442543d1e78e1df9c3d5", - "from": "github:fivetran/doctrine", - "dev": true - } - } - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urijs": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz", - "integrity": "sha512-xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg==", - "dev": true - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "requires": { - "browser-process-hrtime": "^0.1.2" - } - }, - "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - } - }, - "webdriver": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-5.13.1.tgz", - "integrity": "sha512-Gvsf2o8jrfZMgLWIC9C9bcT5T0OZvNHq7WO5PhNSB2pbg3ypSj4kk4zJZSyP331FTgib+qxneRtg7r/3Ea7mLw==", - "dev": true, - "requires": { - "@wdio/config": "^5.13.0-alpha.0", - "@wdio/logger": "^5.12.1", - "@wdio/protocols": "^5.13.0-alpha.0", - "@wdio/utils": "^5.13.0", - "lodash.merge": "^4.6.1", - "request": "^2.83.0" - } - }, - "webdriverio": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-5.13.1.tgz", - "integrity": "sha512-Orx521tRUPqGGJH5fPbZLZ7ipm6RRpCg9s/puaFkl79cIQoNaO7wcbDCktr6jGNGbihNxwj8f6qaSmDYNE6Ang==", - "dev": true, - "requires": { - "@wdio/config": "^5.13.0-alpha.0", - "@wdio/logger": "^5.12.1", - "@wdio/repl": "^5.13.0-alpha.0", - "@wdio/utils": "^5.13.0", - "archiver": "^3.0.0", - "css-value": "^0.0.1", - "grapheme-splitter": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "lodash.isobject": "^3.0.2", - "lodash.isplainobject": "^4.0.6", - "lodash.zip": "^4.2.0", - "resq": "^1.6.0", - "rgb2hex": "^0.1.0", - "serialize-error": "^4.1.0", - "webdriver": "^5.13.1" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "ws": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz", - "integrity": "sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==", - "requires": { - "async-limiter": "^1.0.0" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xmlcreate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", - "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.0.0.tgz", - "integrity": "sha512-ssa5JuRjMeZEUjg7bEL99AwpitxU/zWGAGpdj0di41pOEmJti8NR6kyUIJBkR78DTYNPZOU08luUo0GTHuB+ow==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "dependencies": { - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "zip-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.2.tgz", - "integrity": "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^2.1.1", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - } - } -} diff --git a/lib/blockly/package.json b/lib/blockly/package.json deleted file mode 100644 index 3fa62d6..0000000 --- a/lib/blockly/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "blockly", - "version": "3.20191014.4", - "description": "Blockly is a library for building visual programming editors.", - "keywords": [ - "blockly" - ], - "repository": { - "type": "git", - "url": "https://github.com/google/blockly.git" - }, - "bugs": { - "url": "https://github.com/google/blockly/issues" - }, - "homepage": "https://developers.google.com/blockly/", - "author": { - "name": "Neil Fraser" - }, - "scripts": { - "build": "gulp build", - "build:debug": "gulp build-core --verbose > build-debug.log 2>&1", - "lint": "eslint .", - "package": "gulp package", - "prepare": "npm run package", - "release": "gulp release", - "test": "concurrently 'npm run test:prepare' 'sleep 5 && npm run test:run'", - "test:run": "tests/run_all_tests.sh", - "test:prepare": "npm run test:setupselenium && npm run test:startselenium", - "test:setupselenium": "selenium-standalone install --config=./tests/scripts/selenium-config.js", - "test:startselenium": "selenium-standalone start --config=./tests/scripts/selenium-config.js", - "typings": "gulp typings" - }, - "main": "./index.js", - "umd": "./blockly.min.js", - "unpkg": "./blockly.min.js", - "types": "./blockly.d.ts", - "browser": { - "./node.js": "./browser.js", - "./core.js": "./core-browser.js", - "./blockly-node.js": "./blockly.js" - }, - "license": "Apache-2.0", - "devDependencies": { - "chai": "^4.2.0", - "concurrently": "^4.1.2", - "eslint": "^5.13.0", - "fs": "0.0.1-security", - "google-closure-compiler": "^20190618.0.0", - "google-closure-library": "^20190618.0.0", - "gulp": "^4.0.2", - "gulp-concat": "^2.6.1", - "gulp-insert": "^0.5.0", - "gulp-series": "^1.0.2", - "gulp-shell": "^0.7.1", - "gulp-rename": "^1.4.0", - "gulp-replace": "^1.0.0", - "gulp-umd": "^2.0.0", - "jshint": "^2.10.2", - "mocha": "^6.1.4", - "pixelmatch": "^4.0.2", - "pngjs": "^3.4.0", - "selenium-standalone": "^6.16.0", - "rimraf": "^2.6.3", - "typescript-closure-tools": "^0.0.7", - "webdriverio": "^5.11.5", - "yargs": "^14.0.0" - }, - "jshintConfig": { - "globalstrict": true, - "predef": [ - "Blockly", - "goog", - "window", - "document", - "soy", - "XMLHttpRequest" - ], - "sub": true, - "undef": true, - "unused": true - }, - "dependencies": { - "jsdom": "^15.1.1" - } -} diff --git a/lib/blockly/package/README.md b/lib/blockly/package/README.md deleted file mode 100644 index b4f0cf3..0000000 --- a/lib/blockly/package/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Blockly - -Google's Blockly is a web-based, visual programming editor. Users can drag -blocks together to build programs. All code is free and open source. - -The source for this module is in the [Blockly repo](http://github.com/google/blockly). - -## Installation - -You can install this package either via ``npm`` or ``unpkg``. - -### npm -```bash -npm install blockly -``` - -### unpkg -```html - -``` - -## Example Usage - -```js -import Blockly from 'blockly'; -Blockly.inject('blocklyDiv', { - ... -}) -``` - -## Samples - -For samples on how to integrate Blockly into your project, view the list of samples at [blockly-samples](https://github.com/google/blockly-samples). - - -### Importing Blockly - -When you import Blockly with ``import * as Blockly from 'blockly';`` you'll get the default modules: -Blockly core, Blockly built-in blocks, the JavaScript generator and the English lang files. - -If you need more flexibility, you'll want to define your imports more carefully: - -#### Blockly Core - -```js -import * as Blockly from 'blockly/core'; -``` - -#### Blockly built in blocks - -```js -import 'blockly/blocks'; -``` - -#### Blockly Generators -If your application needs to generate code from the Blockly blocks, you'll want to include a generator. - -```js -import 'blockly/python'; -``` -to include the Python generator, you can also import ``blockly/javascript``, ``blockly/php``, ``blockly/dart`` and ``blockly/lua``. - -#### Blockly Languages - -```js -import * as Fr from 'blockly/msg/fr'; -Blockly.setLocale(Fr); -``` - -To import the French lang files. Once you've imported the specific lang module, you'll also want to set the locale in Blockly. - -For a full list of supported Blockly locales, see: [https://github.com/google/blockly/tree/master/msg/js](https://github.com/google/blockly/tree/master/msg/js) - - -## License - -Apache 2.0 diff --git a/lib/blockly/package/browser/core.js b/lib/blockly/package/browser/core.js deleted file mode 100644 index 3dde181..0000000 --- a/lib/blockly/package/browser/core.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly core module for the browser. It includes blockly.js - * and adds a helper method for setting the locale. - */ - -/* eslint-disable */ -'use strict'; - -// Add a helper method to set the Blockly locale. -Blockly.setLocale = function (locale) { - Blockly.Msg = Blockly.Msg || {}; - Object.keys(locale).forEach(function (k) { - Blockly.Msg[k] = locale[k]; - }); -}; diff --git a/lib/blockly/package/browser/index.js b/lib/blockly/package/browser/index.js deleted file mode 100644 index 32fac24..0000000 --- a/lib/blockly/package/browser/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly module for the browser. This includes Blockly core - * and built in blocks, the JavaScript code generator and the English block - * localization files. - */ - -/* eslint-disable */ -'use strict'; - -// Include the EN Locale by default. -Blockly.setLocale(En); - -Blockly.Blocks = Blockly.Blocks || {}; -Object.keys(BlocklyBlocks).forEach(function (k) { - Blockly.Blocks[k] = BlocklyBlocks[k]; -}); - -Blockly.JavaScript = BlocklyJS; \ No newline at end of file diff --git a/lib/blockly/package/index.js b/lib/blockly/package/index.js deleted file mode 100644 index 0b5658e..0000000 --- a/lib/blockly/package/index.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly module. - */ - -/* eslint-disable */ -'use strict'; \ No newline at end of file diff --git a/lib/blockly/package/node/core.js b/lib/blockly/package/node/core.js deleted file mode 100644 index 41d6ff6..0000000 --- a/lib/blockly/package/node/core.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly core module for Node. It includes blockly-node.js - * and adds a helper method for setting the locale. - */ - -/* eslint-disable */ -'use strict'; - -// Add a helper method to set the Blockly locale. -Blockly.setLocale = function (locale) { - Blockly.Msg = Blockly.Msg || {}; - Object.keys(locale).forEach(function (k) { - Blockly.Msg[k] = locale[k]; - }); -}; diff --git a/lib/blockly/package/node/index.js b/lib/blockly/package/node/index.js deleted file mode 100644 index 003e5bf..0000000 --- a/lib/blockly/package/node/index.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly module for Node. It includes Blockly core, - * built-in blocks, all the generators and the English locale. - */ - -/* eslint-disable */ -'use strict'; - -// Include the EN Locale by default. -Blockly.setLocale(En); - -Blockly.Blocks = Blockly.Blocks || {}; -Object.keys(BlocklyBlocks).forEach(function (k) { - Blockly.Blocks[k] = BlocklyBlocks[k]; -}); - -Blockly.JavaScript = BlocklyJS; - -Blockly.Python = BlocklyPython; - -Blockly.Lua = BlocklyLua; - -Blockly.PHP = BlocklyPHP; - -Blockly.Dart = BlocklyDart; \ No newline at end of file diff --git a/lib/blockly/package/templates/node.template b/lib/blockly/package/templates/node.template deleted file mode 100644 index eef05d7..0000000 --- a/lib/blockly/package/templates/node.template +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint-disable */ -(function (<%= param %>){ -<%= contents %> -module.exports = <%= exports %>; -})(<%= cjs %>); diff --git a/lib/blockly/package/templates/umd.template b/lib/blockly/package/templates/umd.template deleted file mode 100644 index ab62e10..0000000 --- a/lib/blockly/package/templates/umd.template +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable */ -;(function(root, factory) { - if (typeof define === 'function' && define.amd) { // AMD - define(<%= amd %>, factory); - } else if (typeof exports === 'object') { // Node.js - module.exports = factory(<%= cjs %>); - } else { // Browser - root.<%= namespace %> = factory(<%= global %>); - } -}(this, function(<%= param %>) { -<%= contents %> -return <%= exports %>; -})); diff --git a/lib/blockly/php_compressed.js b/lib/blockly/php_compressed.js deleted file mode 100644 index 01712b0..0000000 --- a/lib/blockly/php_compressed.js +++ /dev/null @@ -1,91 +0,0 @@ -// Do not edit this file; automatically generated by build.py. -'use strict'; - - -Blockly.PHP=new Blockly.Generator("PHP");Blockly.PHP.addReservedWords("__halt_compiler,abstract,and,array,as,break,callable,case,catch,class,clone,const,continue,declare,default,die,do,echo,else,elseif,empty,enddeclare,endfor,endforeach,endif,endswitch,endwhile,eval,exit,extends,final,for,foreach,function,global,goto,if,implements,include,include_once,instanceof,insteadof,interface,isset,list,namespace,new,or,print,private,protected,public,require,require_once,return,static,switch,throw,trait,try,unset,use,var,while,xor,PHP_VERSION,PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,PHP_VERSION_ID,PHP_EXTRA_VERSION,PHP_ZTS,PHP_DEBUG,PHP_MAXPATHLEN,PHP_OS,PHP_SAPI,PHP_EOL,PHP_INT_MAX,PHP_INT_SIZE,DEFAULT_INCLUDE_PATH,PEAR_INSTALL_DIR,PEAR_EXTENSION_DIR,PHP_EXTENSION_DIR,PHP_PREFIX,PHP_BINDIR,PHP_BINARY,PHP_MANDIR,PHP_LIBDIR,PHP_DATADIR,PHP_SYSCONFDIR,PHP_LOCALSTATEDIR,PHP_CONFIG_FILE_PATH,PHP_CONFIG_FILE_SCAN_DIR,PHP_SHLIB_SUFFIX,E_ERROR,E_WARNING,E_PARSE,E_NOTICE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING,E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE,E_DEPRECATED,E_USER_DEPRECATED,E_ALL,E_STRICT,__COMPILER_HALT_OFFSET__,TRUE,FALSE,NULL,__CLASS__,__DIR__,__FILE__,__FUNCTION__,__LINE__,__METHOD__,__NAMESPACE__,__TRAIT__"); -Blockly.PHP.ORDER_ATOMIC=0;Blockly.PHP.ORDER_CLONE=1;Blockly.PHP.ORDER_NEW=1;Blockly.PHP.ORDER_MEMBER=2.1;Blockly.PHP.ORDER_FUNCTION_CALL=2.2;Blockly.PHP.ORDER_POWER=3;Blockly.PHP.ORDER_INCREMENT=4;Blockly.PHP.ORDER_DECREMENT=4;Blockly.PHP.ORDER_BITWISE_NOT=4;Blockly.PHP.ORDER_CAST=4;Blockly.PHP.ORDER_SUPPRESS_ERROR=4;Blockly.PHP.ORDER_INSTANCEOF=5;Blockly.PHP.ORDER_LOGICAL_NOT=6;Blockly.PHP.ORDER_UNARY_PLUS=7.1;Blockly.PHP.ORDER_UNARY_NEGATION=7.2;Blockly.PHP.ORDER_MULTIPLICATION=8.1; -Blockly.PHP.ORDER_DIVISION=8.2;Blockly.PHP.ORDER_MODULUS=8.3;Blockly.PHP.ORDER_ADDITION=9.1;Blockly.PHP.ORDER_SUBTRACTION=9.2;Blockly.PHP.ORDER_STRING_CONCAT=9.3;Blockly.PHP.ORDER_BITWISE_SHIFT=10;Blockly.PHP.ORDER_RELATIONAL=11;Blockly.PHP.ORDER_EQUALITY=12;Blockly.PHP.ORDER_REFERENCE=13;Blockly.PHP.ORDER_BITWISE_AND=13;Blockly.PHP.ORDER_BITWISE_XOR=14;Blockly.PHP.ORDER_BITWISE_OR=15;Blockly.PHP.ORDER_LOGICAL_AND=16;Blockly.PHP.ORDER_LOGICAL_OR=17;Blockly.PHP.ORDER_IF_NULL=18; -Blockly.PHP.ORDER_CONDITIONAL=19;Blockly.PHP.ORDER_ASSIGNMENT=20;Blockly.PHP.ORDER_LOGICAL_AND_WEAK=21;Blockly.PHP.ORDER_LOGICAL_XOR=22;Blockly.PHP.ORDER_LOGICAL_OR_WEAK=23;Blockly.PHP.ORDER_COMMA=24;Blockly.PHP.ORDER_NONE=99; -Blockly.PHP.ORDER_OVERRIDES=[[Blockly.PHP.ORDER_MEMBER,Blockly.PHP.ORDER_FUNCTION_CALL],[Blockly.PHP.ORDER_MEMBER,Blockly.PHP.ORDER_MEMBER],[Blockly.PHP.ORDER_LOGICAL_NOT,Blockly.PHP.ORDER_LOGICAL_NOT],[Blockly.PHP.ORDER_MULTIPLICATION,Blockly.PHP.ORDER_MULTIPLICATION],[Blockly.PHP.ORDER_ADDITION,Blockly.PHP.ORDER_ADDITION],[Blockly.PHP.ORDER_LOGICAL_AND,Blockly.PHP.ORDER_LOGICAL_AND],[Blockly.PHP.ORDER_LOGICAL_OR,Blockly.PHP.ORDER_LOGICAL_OR]]; -Blockly.PHP.init=function(a){Blockly.PHP.definitions_=Object.create(null);Blockly.PHP.functionNames_=Object.create(null);Blockly.PHP.variableDB_?Blockly.PHP.variableDB_.reset():Blockly.PHP.variableDB_=new Blockly.Names(Blockly.PHP.RESERVED_WORDS_,"$");Blockly.PHP.variableDB_.setVariableMap(a.getVariableMap());for(var b=[],c=Blockly.Variables.allDeveloperVariables(a),d=0;dc?Blockly.PHP.valueToCode(a,b,Blockly.PHP.ORDER_SUBTRACTION)||f:d?Blockly.PHP.valueToCode(a,b,Blockly.PHP.ORDER_UNARY_NEGATION)||f:Blockly.PHP.valueToCode(a,b,e)||f;if(Blockly.isNumber(a))a=Number(a)+c,d&&(a=-a);else{if(0c&& -(a=a+" - "+-c,g=Blockly.PHP.ORDER_SUBTRACTION);d&&(a=c?"-("+a+")":"-"+a,g=Blockly.PHP.ORDER_UNARY_NEGATION);g=Math.floor(g);e=Math.floor(e);g&&e>=g&&(a="("+a+")")}return a};Blockly.PHP.colour={};Blockly.PHP.colour_picker=function(a){return[Blockly.PHP.quote_(a.getFieldValue("COLOUR")),Blockly.PHP.ORDER_ATOMIC]};Blockly.PHP.colour_random=function(a){return[Blockly.PHP.provideFunction_("colour_random",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"() {"," return '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);","}"])+"()",Blockly.PHP.ORDER_FUNCTION_CALL]}; -Blockly.PHP.colour_rgb=function(a){var b=Blockly.PHP.valueToCode(a,"RED",Blockly.PHP.ORDER_COMMA)||0,c=Blockly.PHP.valueToCode(a,"GREEN",Blockly.PHP.ORDER_COMMA)||0;a=Blockly.PHP.valueToCode(a,"BLUE",Blockly.PHP.ORDER_COMMA)||0;return[Blockly.PHP.provideFunction_("colour_rgb",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($r, $g, $b) {"," $r = round(max(min($r, 100), 0) * 2.55);"," $g = round(max(min($g, 100), 0) * 2.55);"," $b = round(max(min($b, 100), 0) * 2.55);"," $hex = '#';"," $hex .= str_pad(dechex($r), 2, '0', STR_PAD_LEFT);", -" $hex .= str_pad(dechex($g), 2, '0', STR_PAD_LEFT);"," $hex .= str_pad(dechex($b), 2, '0', STR_PAD_LEFT);"," return $hex;","}"])+"("+b+", "+c+", "+a+")",Blockly.PHP.ORDER_FUNCTION_CALL]}; -Blockly.PHP.colour_blend=function(a){var b=Blockly.PHP.valueToCode(a,"COLOUR1",Blockly.PHP.ORDER_COMMA)||"'#000000'",c=Blockly.PHP.valueToCode(a,"COLOUR2",Blockly.PHP.ORDER_COMMA)||"'#000000'";a=Blockly.PHP.valueToCode(a,"RATIO",Blockly.PHP.ORDER_COMMA)||.5;return[Blockly.PHP.provideFunction_("colour_blend",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($c1, $c2, $ratio) {"," $ratio = max(min($ratio, 1), 0);"," $r1 = hexdec(substr($c1, 1, 2));"," $g1 = hexdec(substr($c1, 3, 2));"," $b1 = hexdec(substr($c1, 5, 2));", -" $r2 = hexdec(substr($c2, 1, 2));"," $g2 = hexdec(substr($c2, 3, 2));"," $b2 = hexdec(substr($c2, 5, 2));"," $r = round($r1 * (1 - $ratio) + $r2 * $ratio);"," $g = round($g1 * (1 - $ratio) + $g2 * $ratio);"," $b = round($b1 * (1 - $ratio) + $b2 * $ratio);"," $hex = '#';"," $hex .= str_pad(dechex($r), 2, '0', STR_PAD_LEFT);"," $hex .= str_pad(dechex($g), 2, '0', STR_PAD_LEFT);"," $hex .= str_pad(dechex($b), 2, '0', STR_PAD_LEFT);"," return $hex;","}"])+"("+b+", "+c+", "+a+")",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.lists={};Blockly.PHP.lists_create_empty=function(a){return["array()",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.lists_create_with=function(a){for(var b=Array(a.itemCount_),c=0;c "strnatcasecmp",',' "TEXT" => "strcmp",',' "IGNORE_CASE" => "strcasecmp"'," );"," $sortCmp = $sortCmpFuncs[$type];"," $list2 = $list;"," usort($list2, $sortCmp);", -" if ($direction == -1) {"," $list2 = array_reverse($list2);"," }"," return $list2;","}"])+"("+b+', "'+a+'", '+c+")",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.lists_split=function(a){var b=Blockly.PHP.valueToCode(a,"INPUT",Blockly.PHP.ORDER_COMMA),c=Blockly.PHP.valueToCode(a,"DELIM",Blockly.PHP.ORDER_COMMA)||"''";a=a.getFieldValue("MODE");if("SPLIT"==a)b||(b="''"),a="explode";else if("JOIN"==a)b||(b="array()"),a="implode";else throw Error("Unknown mode: "+a);return[a+"("+c+", "+b+")",Blockly.PHP.ORDER_FUNCTION_CALL]}; -Blockly.PHP.lists_reverse=function(a){return["array_reverse("+(Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_COMMA)||"[]")+")",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.logic={}; -Blockly.PHP.controls_if=function(a){var b=0,c="";Blockly.PHP.STATEMENT_PREFIX&&(c+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX,a));do{var d=Blockly.PHP.valueToCode(a,"IF"+b,Blockly.PHP.ORDER_NONE)||"false";var e=Blockly.PHP.statementToCode(a,"DO"+b);Blockly.PHP.STATEMENT_SUFFIX&&(e=Blockly.PHP.prefixLines(Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX,a),Blockly.PHP.INDENT)+e);c+=(0",GTE:">="}[a.getFieldValue("OP")],c="=="==b||"!="==b?Blockly.PHP.ORDER_EQUALITY:Blockly.PHP.ORDER_RELATIONAL,d=Blockly.PHP.valueToCode(a,"A",c)||"0";a=Blockly.PHP.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]}; -Blockly.PHP.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"&&":"||",c="&&"==b?Blockly.PHP.ORDER_LOGICAL_AND:Blockly.PHP.ORDER_LOGICAL_OR,d=Blockly.PHP.valueToCode(a,"A",c);a=Blockly.PHP.valueToCode(a,"B",c);if(d||a){var e="&&"==b?"true":"false";d||(d=e);a||(a=e)}else a=d="false";return[d+" "+b+" "+a,c]};Blockly.PHP.logic_negate=function(a){var b=Blockly.PHP.ORDER_LOGICAL_NOT;return["!"+(Blockly.PHP.valueToCode(a,"BOOL",b)||"true"),b]}; -Blockly.PHP.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"true":"false",Blockly.PHP.ORDER_ATOMIC]};Blockly.PHP.logic_null=function(a){return["null",Blockly.PHP.ORDER_ATOMIC]};Blockly.PHP.logic_ternary=function(a){var b=Blockly.PHP.valueToCode(a,"IF",Blockly.PHP.ORDER_CONDITIONAL)||"false",c=Blockly.PHP.valueToCode(a,"THEN",Blockly.PHP.ORDER_CONDITIONAL)||"null";a=Blockly.PHP.valueToCode(a,"ELSE",Blockly.PHP.ORDER_CONDITIONAL)||"null";return[b+" ? "+c+" : "+a,Blockly.PHP.ORDER_CONDITIONAL]};Blockly.PHP.loops={}; -Blockly.PHP.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):Blockly.PHP.valueToCode(a,"TIMES",Blockly.PHP.ORDER_ASSIGNMENT)||"0",c=Blockly.PHP.statementToCode(a,"DO");c=Blockly.PHP.addLoopTrap(c,a);a="";var d=Blockly.PHP.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE),e=b;b.match(/^\w+$/)||Blockly.isNumber(b)||(e=Blockly.PHP.variableDB_.getDistinctName("repeat_end",Blockly.Variables.NAME_TYPE),a+=e+" = "+b+";\n");return a+("for ("+ -d+" = 0; "+d+" < "+e+"; "+d+"++) {\n"+c+"}\n")};Blockly.PHP.controls_repeat=Blockly.PHP.controls_repeat_ext;Blockly.PHP.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.PHP.valueToCode(a,"BOOL",b?Blockly.PHP.ORDER_LOGICAL_NOT:Blockly.PHP.ORDER_NONE)||"false",d=Blockly.PHP.statementToCode(a,"DO");d=Blockly.PHP.addLoopTrap(d,a);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"}; -Blockly.PHP.controls_for=function(a){var b=Blockly.PHP.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.PHP.valueToCode(a,"FROM",Blockly.PHP.ORDER_ASSIGNMENT)||"0",d=Blockly.PHP.valueToCode(a,"TO",Blockly.PHP.ORDER_ASSIGNMENT)||"0",e=Blockly.PHP.valueToCode(a,"BY",Blockly.PHP.ORDER_ASSIGNMENT)||"1",f=Blockly.PHP.statementToCode(a,"DO");f=Blockly.PHP.addLoopTrap(f,a);if(Blockly.isNumber(c)&&Blockly.isNumber(d)&&Blockly.isNumber(e)){var g=Number(c)<=Number(d);a="for ("+ -b+" = "+c+"; "+b+(g?" <= ":" >= ")+d+"; "+b;b=Math.abs(Number(e));a=(1==b?a+(g?"++":"--"):a+((g?" += ":" -= ")+b))+(") {\n"+f+"}\n")}else a="",g=c,c.match(/^\w+$/)||Blockly.isNumber(c)||(g=Blockly.PHP.variableDB_.getDistinctName(b+"_start",Blockly.Variables.NAME_TYPE),a+=g+" = "+c+";\n"),c=d,d.match(/^\w+$/)||Blockly.isNumber(d)||(c=Blockly.PHP.variableDB_.getDistinctName(b+"_end",Blockly.Variables.NAME_TYPE),a+=c+" = "+d+";\n"),d=Blockly.PHP.variableDB_.getDistinctName(b+"_inc",Blockly.Variables.NAME_TYPE), -a+=d+" = ",a=Blockly.isNumber(e)?a+(Math.abs(e)+";\n"):a+("abs("+e+");\n"),a=a+("if ("+g+" > "+c+") {\n")+(Blockly.PHP.INDENT+d+" = -"+d+";\n"),a+="}\n",a+="for ("+b+" = "+g+"; "+d+" >= 0 ? "+b+" <= "+c+" : "+b+" >= "+c+"; "+b+" += "+d+") {\n"+f+"}\n";return a}; -Blockly.PHP.controls_forEach=function(a){var b=Blockly.PHP.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_ASSIGNMENT)||"[]",d=Blockly.PHP.statementToCode(a,"DO");d=Blockly.PHP.addLoopTrap(d,a);return"foreach ("+c+" as "+b+") {\n"+d+"}\n"}; -Blockly.PHP.controls_flow_statements=function(a){var b="";Blockly.PHP.STATEMENT_PREFIX&&(b+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX,a));Blockly.PHP.STATEMENT_SUFFIX&&(b+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX,a));if(Blockly.PHP.STATEMENT_PREFIX){var c=Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(a);c&&!c.suppressPrefixSuffix&&(b+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX,c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break;\n";case "CONTINUE":return b+ -"continue;\n"}throw Error("Unknown flow statement.");};Blockly.PHP.math={};Blockly.PHP.math_number=function(a){a=Number(a.getFieldValue("NUM"));var b=0<=a?Blockly.PHP.ORDER_ATOMIC:Blockly.PHP.ORDER_UNARY_NEGATION;Infinity==a?a="INF":-Infinity==a&&(a="-INF");return[a,b]}; -Blockly.PHP.math_arithmetic=function(a){var b={ADD:[" + ",Blockly.PHP.ORDER_ADDITION],MINUS:[" - ",Blockly.PHP.ORDER_SUBTRACTION],MULTIPLY:[" * ",Blockly.PHP.ORDER_MULTIPLICATION],DIVIDE:[" / ",Blockly.PHP.ORDER_DIVISION],POWER:[" ** ",Blockly.PHP.ORDER_POWER]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=Blockly.PHP.valueToCode(a,"A",b)||"0";a=Blockly.PHP.valueToCode(a,"B",b)||"0";return[d+c+a,b]}; -Blockly.PHP.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"==b)return a=Blockly.PHP.valueToCode(a,"NUM",Blockly.PHP.ORDER_UNARY_NEGATION)||"0","-"==a[0]&&(a=" "+a),["-"+a,Blockly.PHP.ORDER_UNARY_NEGATION];a="SIN"==b||"COS"==b||"TAN"==b?Blockly.PHP.valueToCode(a,"NUM",Blockly.PHP.ORDER_DIVISION)||"0":Blockly.PHP.valueToCode(a,"NUM",Blockly.PHP.ORDER_NONE)||"0";switch(b){case "ABS":var c="abs("+a+")";break;case "ROOT":c="sqrt("+a+")";break;case "LN":c="log("+a+")";break;case "EXP":c="exp("+ -a+")";break;case "POW10":c="pow(10,"+a+")";break;case "ROUND":c="round("+a+")";break;case "ROUNDUP":c="ceil("+a+")";break;case "ROUNDDOWN":c="floor("+a+")";break;case "SIN":c="sin("+a+" / 180 * pi())";break;case "COS":c="cos("+a+" / 180 * pi())";break;case "TAN":c="tan("+a+" / 180 * pi())"}if(c)return[c,Blockly.PHP.ORDER_FUNCTION_CALL];switch(b){case "LOG10":c="log("+a+") / log(10)";break;case "ASIN":c="asin("+a+") / pi() * 180";break;case "ACOS":c="acos("+a+") / pi() * 180";break;case "ATAN":c="atan("+ -a+") / pi() * 180";break;default:throw Error("Unknown math operator: "+b);}return[c,Blockly.PHP.ORDER_DIVISION]};Blockly.PHP.math_constant=function(a){return{PI:["M_PI",Blockly.PHP.ORDER_ATOMIC],E:["M_E",Blockly.PHP.ORDER_ATOMIC],GOLDEN_RATIO:["(1 + sqrt(5)) / 2",Blockly.PHP.ORDER_DIVISION],SQRT2:["M_SQRT2",Blockly.PHP.ORDER_ATOMIC],SQRT1_2:["M_SQRT1_2",Blockly.PHP.ORDER_ATOMIC],INFINITY:["INF",Blockly.PHP.ORDER_ATOMIC]}[a.getFieldValue("CONSTANT")]}; -Blockly.PHP.math_number_property=function(a){var b=Blockly.PHP.valueToCode(a,"NUMBER_TO_CHECK",Blockly.PHP.ORDER_MODULUS)||"0",c=a.getFieldValue("PROPERTY");if("PRIME"==c)return[Blockly.PHP.provideFunction_("math_isPrime",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($n) {"," // https://en.wikipedia.org/wiki/Primality_test#Naive_methods"," if ($n == 2 || $n == 3) {"," return true;"," }"," // False if n is NaN, negative, is 1, or not whole."," // And false if n is divisible by 2 or 3.", -" if (!is_numeric($n) || $n <= 1 || $n % 1 != 0 || $n % 2 == 0 || $n % 3 == 0) {"," return false;"," }"," // Check all the numbers of form 6k +/- 1, up to sqrt(n)."," for ($x = 6; $x <= sqrt($n) + 1; $x += 6) {"," if ($n % ($x - 1) == 0 || $n % ($x + 1) == 0) {"," return false;"," }"," }"," return true;","}"])+"("+b+")",Blockly.PHP.ORDER_FUNCTION_CALL];switch(c){case "EVEN":var d=b+" % 2 == 0";break;case "ODD":d=b+" % 2 == 1";break;case "WHOLE":d="is_int("+b+")";break;case "POSITIVE":d= -b+" > 0";break;case "NEGATIVE":d=b+" < 0";break;case "DIVISIBLE_BY":a=Blockly.PHP.valueToCode(a,"DIVISOR",Blockly.PHP.ORDER_MODULUS)||"0",d=b+" % "+a+" == 0"}return[d,Blockly.PHP.ORDER_EQUALITY]};Blockly.PHP.math_change=function(a){var b=Blockly.PHP.valueToCode(a,"DELTA",Blockly.PHP.ORDER_ADDITION)||"0";return Blockly.PHP.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE)+" += "+b+";\n"};Blockly.PHP.math_round=Blockly.PHP.math_single;Blockly.PHP.math_trig=Blockly.PHP.math_single; -Blockly.PHP.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case "SUM":a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_FUNCTION_CALL)||"array()";a="array_sum("+a+")";break;case "MIN":a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_FUNCTION_CALL)||"array()";a="min("+a+")";break;case "MAX":a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_FUNCTION_CALL)||"array()";a="max("+a+")";break;case "AVERAGE":b=Blockly.PHP.provideFunction_("math_mean",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+ -"($myList) {"," return array_sum($myList) / count($myList);","}"]);a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_NONE)||"array()";a=b+"("+a+")";break;case "MEDIAN":b=Blockly.PHP.provideFunction_("math_median",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($arr) {"," sort($arr,SORT_NUMERIC);"," return (count($arr) % 2) ? $arr[floor(count($arr)/2)] : "," ($arr[floor(count($arr)/2)] + $arr[floor(count($arr)/2) - 1]) / 2;","}"]);a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_NONE)|| -"[]";a=b+"("+a+")";break;case "MODE":b=Blockly.PHP.provideFunction_("math_modes",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($values) {"," if (empty($values)) return array();"," $counts = array_count_values($values);"," arsort($counts); // Sort counts in descending order"," $modes = array_keys($counts, current($counts), true);"," return $modes;","}"]);a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "STD_DEV":b=Blockly.PHP.provideFunction_("math_standard_deviation", -["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($numbers) {"," $n = count($numbers);"," if (!$n) return null;"," $mean = array_sum($numbers) / count($numbers);"," foreach($numbers as $key => $num) $devs[$key] = pow($num - $mean, 2);"," return sqrt(array_sum($devs) / (count($devs) - 1));","}"]);a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "RANDOM":b=Blockly.PHP.provideFunction_("math_random_list",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+ -"($list) {"," $x = rand(0, count($list)-1);"," return $list[$x];","}"]);a=Blockly.PHP.valueToCode(a,"LIST",Blockly.PHP.ORDER_NONE)||"[]";a=b+"("+a+")";break;default:throw Error("Unknown operator: "+b);}return[a,Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.math_modulo=function(a){var b=Blockly.PHP.valueToCode(a,"DIVIDEND",Blockly.PHP.ORDER_MODULUS)||"0";a=Blockly.PHP.valueToCode(a,"DIVISOR",Blockly.PHP.ORDER_MODULUS)||"0";return[b+" % "+a,Blockly.PHP.ORDER_MODULUS]}; -Blockly.PHP.math_constrain=function(a){var b=Blockly.PHP.valueToCode(a,"VALUE",Blockly.PHP.ORDER_COMMA)||"0",c=Blockly.PHP.valueToCode(a,"LOW",Blockly.PHP.ORDER_COMMA)||"0";a=Blockly.PHP.valueToCode(a,"HIGH",Blockly.PHP.ORDER_COMMA)||"Infinity";return["min(max("+b+", "+c+"), "+a+")",Blockly.PHP.ORDER_FUNCTION_CALL]}; -Blockly.PHP.math_random_int=function(a){var b=Blockly.PHP.valueToCode(a,"FROM",Blockly.PHP.ORDER_COMMA)||"0";a=Blockly.PHP.valueToCode(a,"TO",Blockly.PHP.ORDER_COMMA)||"0";return[Blockly.PHP.provideFunction_("math_random_int",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($a, $b) {"," if ($a > $b) {"," return rand($b, $a);"," }"," return rand($a, $b);","}"])+"("+b+", "+a+")",Blockly.PHP.ORDER_FUNCTION_CALL]}; -Blockly.PHP.math_random_float=function(a){return["(float)rand()/(float)getrandmax()",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.math_atan2=function(a){var b=Blockly.PHP.valueToCode(a,"X",Blockly.PHP.ORDER_COMMA)||"0";return["atan2("+(Blockly.PHP.valueToCode(a,"Y",Blockly.PHP.ORDER_COMMA)||"0")+", "+b+") / pi() * 180",Blockly.PHP.ORDER_DIVISION]};Blockly.PHP.procedures={}; -Blockly.PHP.procedures_defreturn=function(a){for(var b=[],c,d=a.workspace,e=Blockly.Variables.allUsedVarModels(d)||[],f=0;c=e[f];f++)c=c.name,-1==a.arguments_.indexOf(c)&&b.push(Blockly.PHP.variableDB_.getName(c,Blockly.Variables.NAME_TYPE));d=Blockly.Variables.allDeveloperVariables(d);for(f=0;fc?"int("+a+" - "+-c+")":"int("+a+")",d&&(a="-"+a));return a};Blockly.Python.colour={};Blockly.Python.colour_picker=function(a){return[Blockly.Python.quote_(a.getFieldValue("COLOUR")),Blockly.Python.ORDER_ATOMIC]};Blockly.Python.colour_random=function(a){Blockly.Python.definitions_.import_random="import random";return["'#%06x' % random.randint(0, 2**24 - 1)",Blockly.Python.ORDER_FUNCTION_CALL]}; -Blockly.Python.colour_rgb=function(a){var b=Blockly.Python.provideFunction_("colour_rgb",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(r, g, b):"," r = round(min(100, max(0, r)) * 2.55)"," g = round(min(100, max(0, g)) * 2.55)"," b = round(min(100, max(0, b)) * 2.55)"," return '#%02x%02x%02x' % (r, g, b)"]),c=Blockly.Python.valueToCode(a,"RED",Blockly.Python.ORDER_NONE)||0,d=Blockly.Python.valueToCode(a,"GREEN",Blockly.Python.ORDER_NONE)||0;a=Blockly.Python.valueToCode(a,"BLUE",Blockly.Python.ORDER_NONE)|| -0;return[b+"("+c+", "+d+", "+a+")",Blockly.Python.ORDER_FUNCTION_CALL]}; -Blockly.Python.colour_blend=function(a){var b=Blockly.Python.provideFunction_("colour_blend",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(colour1, colour2, ratio):"," r1, r2 = int(colour1[1:3], 16), int(colour2[1:3], 16)"," g1, g2 = int(colour1[3:5], 16), int(colour2[3:5], 16)"," b1, b2 = int(colour1[5:7], 16), int(colour2[5:7], 16)"," ratio = min(1, max(0, ratio))"," r = round(r1 * (1 - ratio) + r2 * ratio)"," g = round(g1 * (1 - ratio) + g2 * ratio)"," b = round(b1 * (1 - ratio) + b2 * ratio)", -" return '#%02x%02x%02x' % (r, g, b)"]),c=Blockly.Python.valueToCode(a,"COLOUR1",Blockly.Python.ORDER_NONE)||"'#000000'",d=Blockly.Python.valueToCode(a,"COLOUR2",Blockly.Python.ORDER_NONE)||"'#000000'";a=Blockly.Python.valueToCode(a,"RATIO",Blockly.Python.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",Blockly.Python.ORDER_FUNCTION_CALL]};Blockly.Python.lists={};Blockly.Python.lists_create_empty=function(a){return["[]",Blockly.Python.ORDER_ATOMIC]};Blockly.Python.lists_create_with=function(a){for(var b=Array(a.itemCount_),c=0;c",GTE:">="}[a.getFieldValue("OP")],c=Blockly.Python.ORDER_RELATIONAL,d=Blockly.Python.valueToCode(a,"A",c)||"0";a=Blockly.Python.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]}; -Blockly.Python.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"and":"or",c="and"==b?Blockly.Python.ORDER_LOGICAL_AND:Blockly.Python.ORDER_LOGICAL_OR,d=Blockly.Python.valueToCode(a,"A",c);a=Blockly.Python.valueToCode(a,"B",c);if(d||a){var e="and"==b?"True":"False";d||(d=e);a||(a=e)}else a=d="False";return[d+" "+b+" "+a,c]};Blockly.Python.logic_negate=function(a){return["not "+(Blockly.Python.valueToCode(a,"BOOL",Blockly.Python.ORDER_LOGICAL_NOT)||"True"),Blockly.Python.ORDER_LOGICAL_NOT]}; -Blockly.Python.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"True":"False",Blockly.Python.ORDER_ATOMIC]};Blockly.Python.logic_null=function(a){return["None",Blockly.Python.ORDER_ATOMIC]}; -Blockly.Python.logic_ternary=function(a){var b=Blockly.Python.valueToCode(a,"IF",Blockly.Python.ORDER_CONDITIONAL)||"False",c=Blockly.Python.valueToCode(a,"THEN",Blockly.Python.ORDER_CONDITIONAL)||"None";a=Blockly.Python.valueToCode(a,"ELSE",Blockly.Python.ORDER_CONDITIONAL)||"None";return[c+" if "+b+" else "+a,Blockly.Python.ORDER_CONDITIONAL]};Blockly.Python.loops={};Blockly.Python.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(parseInt(a.getFieldValue("TIMES"),10)):Blockly.Python.valueToCode(a,"TIMES",Blockly.Python.ORDER_NONE)||"0";b=Blockly.isNumber(b)?parseInt(b,10):"int("+b+")";var c=Blockly.Python.statementToCode(a,"DO");c=Blockly.Python.addLoopTrap(c,a)||Blockly.Python.PASS;return"for "+Blockly.Python.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE)+" in range("+b+"):\n"+c}; -Blockly.Python.controls_repeat=Blockly.Python.controls_repeat_ext;Blockly.Python.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.Python.valueToCode(a,"BOOL",b?Blockly.Python.ORDER_LOGICAL_NOT:Blockly.Python.ORDER_NONE)||"False",d=Blockly.Python.statementToCode(a,"DO");d=Blockly.Python.addLoopTrap(d,a)||Blockly.Python.PASS;b&&(c="not "+c);return"while "+c+":\n"+d}; -Blockly.Python.controls_for=function(a){var b=Blockly.Python.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.Python.valueToCode(a,"FROM",Blockly.Python.ORDER_NONE)||"0",d=Blockly.Python.valueToCode(a,"TO",Blockly.Python.ORDER_NONE)||"0",e=Blockly.Python.valueToCode(a,"BY",Blockly.Python.ORDER_NONE)||"1",f=Blockly.Python.statementToCode(a,"DO");f=Blockly.Python.addLoopTrap(f,a)||Blockly.Python.PASS;var h="",g=function(){return Blockly.Python.provideFunction_("upRange", -["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(start, stop, step):"," while start <= stop:"," yield start"," start += abs(step)"])},k=function(){return Blockly.Python.provideFunction_("downRange",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(start, stop, step):"," while start >= stop:"," yield start"," start -= abs(step)"])};a=function(a,b,c){return"("+a+" <= "+b+") and "+g()+"("+a+", "+b+", "+c+") or "+k()+"("+a+", "+b+", "+c+")"};if(Blockly.isNumber(c)&&Blockly.isNumber(d)&& -Blockly.isNumber(e))c=Number(c),d=Number(d),e=Math.abs(Number(e)),0===c%1&&0===d%1&&0===e%1?(c<=d?(d++,a=0==c&&1==e?d:c+", "+d,1!=e&&(a+=", "+e)):(d--,a=c+", "+d+", -"+e),a="range("+a+")"):(a=ca?Blockly.Python.ORDER_UNARY_SIGN:Blockly.Python.ORDER_ATOMIC;return[a,b]}; -Blockly.Python.math_arithmetic=function(a){var b={ADD:[" + ",Blockly.Python.ORDER_ADDITIVE],MINUS:[" - ",Blockly.Python.ORDER_ADDITIVE],MULTIPLY:[" * ",Blockly.Python.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",Blockly.Python.ORDER_MULTIPLICATIVE],POWER:[" ** ",Blockly.Python.ORDER_EXPONENTIATION]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=Blockly.Python.valueToCode(a,"A",b)||"0";a=Blockly.Python.valueToCode(a,"B",b)||"0";return[d+c+a,b]}; -Blockly.Python.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"==b){var c=Blockly.Python.valueToCode(a,"NUM",Blockly.Python.ORDER_UNARY_SIGN)||"0";return["-"+c,Blockly.Python.ORDER_UNARY_SIGN]}Blockly.Python.definitions_.import_math="import math";a="SIN"==b||"COS"==b||"TAN"==b?Blockly.Python.valueToCode(a,"NUM",Blockly.Python.ORDER_MULTIPLICATIVE)||"0":Blockly.Python.valueToCode(a,"NUM",Blockly.Python.ORDER_NONE)||"0";switch(b){case "ABS":c="math.fabs("+a+")";break;case "ROOT":c="math.sqrt("+ -a+")";break;case "LN":c="math.log("+a+")";break;case "LOG10":c="math.log10("+a+")";break;case "EXP":c="math.exp("+a+")";break;case "POW10":c="math.pow(10,"+a+")";break;case "ROUND":c="round("+a+")";break;case "ROUNDUP":c="math.ceil("+a+")";break;case "ROUNDDOWN":c="math.floor("+a+")";break;case "SIN":c="math.sin("+a+" / 180.0 * math.pi)";break;case "COS":c="math.cos("+a+" / 180.0 * math.pi)";break;case "TAN":c="math.tan("+a+" / 180.0 * math.pi)"}if(c)return[c,Blockly.Python.ORDER_FUNCTION_CALL];switch(b){case "ASIN":c= -"math.asin("+a+") / math.pi * 180";break;case "ACOS":c="math.acos("+a+") / math.pi * 180";break;case "ATAN":c="math.atan("+a+") / math.pi * 180";break;default:throw Error("Unknown math operator: "+b);}return[c,Blockly.Python.ORDER_MULTIPLICATIVE]}; -Blockly.Python.math_constant=function(a){var b={PI:["math.pi",Blockly.Python.ORDER_MEMBER],E:["math.e",Blockly.Python.ORDER_MEMBER],GOLDEN_RATIO:["(1 + math.sqrt(5)) / 2",Blockly.Python.ORDER_MULTIPLICATIVE],SQRT2:["math.sqrt(2)",Blockly.Python.ORDER_MEMBER],SQRT1_2:["math.sqrt(1.0 / 2)",Blockly.Python.ORDER_MEMBER],INFINITY:["float('inf')",Blockly.Python.ORDER_ATOMIC]};a=a.getFieldValue("CONSTANT");"INFINITY"!=a&&(Blockly.Python.definitions_.import_math="import math");return b[a]}; -Blockly.Python.math_number_property=function(a){var b=Blockly.Python.valueToCode(a,"NUMBER_TO_CHECK",Blockly.Python.ORDER_MULTIPLICATIVE)||"0",c=a.getFieldValue("PROPERTY");if("PRIME"==c)return Blockly.Python.definitions_.import_math="import math",Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number",[Blockly.Python.provideFunction_("math_isPrime",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(n):"," # https://en.wikipedia.org/wiki/Primality_test#Naive_methods", -" # If n is not a number but a string, try parsing it."," if not isinstance(n, Number):"," try:"," n = float(n)"," except:"," return False"," if n == 2 or n == 3:"," return True"," # False if n is negative, is 1, or not whole, or if n is divisible by 2 or 3."," if n <= 1 or n % 1 != 0 or n % 2 == 0 or n % 3 == 0:"," return False"," # Check all the numbers of form 6k +/- 1, up to sqrt(n)."," for x in range(6, int(math.sqrt(n)) + 2, 6):"," if n % (x - 1) == 0 or n % (x + 1) == 0:", -" return False"," return True"])+"("+b+")",Blockly.Python.ORDER_FUNCTION_CALL];switch(c){case "EVEN":var d=b+" % 2 == 0";break;case "ODD":d=b+" % 2 == 1";break;case "WHOLE":d=b+" % 1 == 0";break;case "POSITIVE":d=b+" > 0";break;case "NEGATIVE":d=b+" < 0";break;case "DIVISIBLE_BY":a=Blockly.Python.valueToCode(a,"DIVISOR",Blockly.Python.ORDER_MULTIPLICATIVE);if(!a||"0"==a)return["False",Blockly.Python.ORDER_ATOMIC];d=b+" % "+a+" == 0"}return[d,Blockly.Python.ORDER_RELATIONAL]}; -Blockly.Python.math_change=function(a){Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number";var b=Blockly.Python.valueToCode(a,"DELTA",Blockly.Python.ORDER_ADDITIVE)||"0";a=Blockly.Python.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE);return a+" = ("+a+" if isinstance("+a+", Number) else 0) + "+b+"\n"};Blockly.Python.math_round=Blockly.Python.math_single;Blockly.Python.math_trig=Blockly.Python.math_single; -Blockly.Python.math_on_list=function(a){var b=a.getFieldValue("OP");a=Blockly.Python.valueToCode(a,"LIST",Blockly.Python.ORDER_NONE)||"[]";switch(b){case "SUM":b="sum("+a+")";break;case "MIN":b="min("+a+")";break;case "MAX":b="max("+a+")";break;case "AVERAGE":Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number";b=Blockly.Python.provideFunction_("math_mean",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(myList):"," localList = [e for e in myList if isinstance(e, Number)]", -" if not localList: return"," return float(sum(localList)) / len(localList)"]);b=b+"("+a+")";break;case "MEDIAN":Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number";b=Blockly.Python.provideFunction_("math_median",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(myList):"," localList = sorted([e for e in myList if isinstance(e, Number)])"," if not localList: return"," if len(localList) % 2 == 0:"," return (localList[len(localList) // 2 - 1] + localList[len(localList) // 2]) / 2.0", -" else:"," return localList[(len(localList) - 1) // 2]"]);b=b+"("+a+")";break;case "MODE":b=Blockly.Python.provideFunction_("math_modes",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(some_list):"," modes = []"," # Using a lists of [item, count] to keep count rather than dict",' # to avoid "unhashable" errors when the counted item is itself a list or dict.'," counts = []"," maxCount = 1"," for item in some_list:"," found = False"," for count in counts:"," if count[0] == item:", -" count[1] += 1"," maxCount = max(maxCount, count[1])"," found = True"," if not found:"," counts.append([item, 1])"," for counted_item, item_count in counts:"," if item_count == maxCount:"," modes.append(counted_item)"," return modes"]);b=b+"("+a+")";break;case "STD_DEV":Blockly.Python.definitions_.import_math="import math";b=Blockly.Python.provideFunction_("math_standard_deviation",["def "+Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(numbers):"," n = len(numbers)", -" if n == 0: return"," mean = float(sum(numbers)) / n"," variance = sum((x - mean) ** 2 for x in numbers) / n"," return math.sqrt(variance)"]);b=b+"("+a+")";break;case "RANDOM":Blockly.Python.definitions_.import_random="import random";b="random.choice("+a+")";break;default:throw Error("Unknown operator: "+b);}return[b,Blockly.Python.ORDER_FUNCTION_CALL]}; -Blockly.Python.math_modulo=function(a){var b=Blockly.Python.valueToCode(a,"DIVIDEND",Blockly.Python.ORDER_MULTIPLICATIVE)||"0";a=Blockly.Python.valueToCode(a,"DIVISOR",Blockly.Python.ORDER_MULTIPLICATIVE)||"0";return[b+" % "+a,Blockly.Python.ORDER_MULTIPLICATIVE]}; -Blockly.Python.math_constrain=function(a){var b=Blockly.Python.valueToCode(a,"VALUE",Blockly.Python.ORDER_NONE)||"0",c=Blockly.Python.valueToCode(a,"LOW",Blockly.Python.ORDER_NONE)||"0";a=Blockly.Python.valueToCode(a,"HIGH",Blockly.Python.ORDER_NONE)||"float('inf')";return["min(max("+b+", "+c+"), "+a+")",Blockly.Python.ORDER_FUNCTION_CALL]}; -Blockly.Python.math_random_int=function(a){Blockly.Python.definitions_.import_random="import random";var b=Blockly.Python.valueToCode(a,"FROM",Blockly.Python.ORDER_NONE)||"0";a=Blockly.Python.valueToCode(a,"TO",Blockly.Python.ORDER_NONE)||"0";return["random.randint("+b+", "+a+")",Blockly.Python.ORDER_FUNCTION_CALL]};Blockly.Python.math_random_float=function(a){Blockly.Python.definitions_.import_random="import random";return["random.random()",Blockly.Python.ORDER_FUNCTION_CALL]}; -Blockly.Python.math_atan2=function(a){Blockly.Python.definitions_.import_math="import math";var b=Blockly.Python.valueToCode(a,"X",Blockly.Python.ORDER_NONE)||"0";return["math.atan2("+(Blockly.Python.valueToCode(a,"Y",Blockly.Python.ORDER_NONE)||"0")+", "+b+") / math.pi * 180",Blockly.Python.ORDER_MULTIPLICATIVE]};Blockly.Python.procedures={}; -Blockly.Python.procedures_defreturn=function(a){for(var b=[],c,d=a.workspace,e=Blockly.Variables.allUsedVarModels(d)||[],f=0;c=e[f];f++)c=c.name,-1==a.arguments_.indexOf(c)&&b.push(Blockly.Python.variableDB_.getName(c,Blockly.Variables.NAME_TYPE));d=Blockly.Variables.allDeveloperVariables(d);for(f=0;f - - - - Unit Tests for Blockly Blocks - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/blocks/logic_ternary_test.js b/lib/blockly/tests/blocks/logic_ternary_test.js deleted file mode 100644 index 9e28c13..0000000 --- a/lib/blockly/tests/blocks/logic_ternary_test.js +++ /dev/null @@ -1,313 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function test_logic_ternary_structure() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - assertEquals(3, block.inputList && block.inputList.length); - assertEquals(1, block.getInput('IF').connection.check_.length); - assertEquals('Boolean', block.getInput('IF').connection.check_[0]); - assertTrue(!!block.onchangeWrapper_); // Has onchange handler - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachSameTypeCheckInThenAndElseWithoutParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - - var string1 = workspace.newBlock('text'); - var string2 = workspace.newBlock('text_charAt'); - - block.getInput('THEN').connection.connect(string1.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string1.getRootBlock()); - block.getInput('ELSE').connection.connect(string2.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string1.getRootBlock()); // Still connected. - assertEquals(block, string2.getRootBlock()); - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachDifferectTypeChecksInThenAndElseWithoutParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - - var string = workspace.newBlock('text'); - var number = workspace.newBlock('math_number'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); - block.getInput('ELSE').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); // Input THEN still connected. - assertEquals(block, number.getRootBlock()); - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachSameTypeCheckInThenAndElseWithMatchingParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var parent = workspace.newBlock('text_trim'); - - parent.getInput('TEXT').connection.connect(block.outputConnection); - assertEquals(parent, block.getRootBlock()); - - var string1 = workspace.newBlock('text'); - var string2 = workspace.newBlock('text_charAt'); - - block.getInput('THEN').connection.connect(string1.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string1.getRootBlock()); - block.getInput('ELSE').connection.connect(string2.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string1.getRootBlock()); // Input THEN still connected. - assertEquals(parent, string2.getRootBlock()); - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachDifferectTypeChecksInThenAndElseWithUncheckedParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var parent = workspace.newBlock('text_print'); - - parent.getInput('TEXT').connection.connect(block.outputConnection); - assertEquals(parent, block.parentBlock_); - - var string = workspace.newBlock('text'); - var number = workspace.newBlock('math_number'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string.getRootBlock()); - block.getInput('ELSE').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string.getRootBlock()); // Input THEN still connected. - assertEquals(parent, number.getRootBlock()); - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachDifferectTypeChecksInThenAndElseWithPermissiveParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var parent = workspace.newBlock('text_length'); // Allows String or Array - - parent.getInput('VALUE').connection.connect(block.outputConnection); - assertEquals(parent, block.parentBlock_); - - var string = workspace.newBlock('text'); - var array = workspace.newBlock('lists_create_empty'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string.getRootBlock()); - block.getInput('ELSE').connection.connect(array.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string.getRootBlock()); // Input THEN still connected. - assertEquals(parent, array.getRootBlock()); - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachMismatchTypeToThen_breakWithParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var parent = workspace.newBlock('text_length'); // Allows String or Array - - parent.getInput('VALUE').connection.connect(block.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.parentBlock_); - - var string = workspace.newBlock('text'); - var number = workspace.newBlock('math_number'); - - block.getInput('ELSE').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string.getRootBlock()); - - // Adding mismatching number. - block.getInput('THEN').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, block.getRootBlock()); // Disconnected from parent. - assertEquals(block, number.getRootBlock()); - assertEquals(block, string.getRootBlock()); // ELSE string still connected. - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachMismatchTypeToElse_breakWithParent() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var parent = workspace.newBlock('text_length'); // Allows String or Array - - parent.getInput('VALUE').connection.connect(block.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.parentBlock_); - - var string = workspace.newBlock('text'); - var number = workspace.newBlock('math_number'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Still connected to parent. - assertEquals(parent, string.getRootBlock()); - - // Adding mismatching number. - block.getInput('ELSE').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, block.getRootBlock()); // Disconnected from parent. - assertEquals(block, number.getRootBlock()); - assertEquals(block, string.getRootBlock()); // THEN string still connected. - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachToUncheckedParentWithDifferentTypes() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var string = workspace.newBlock('text'); - var number = workspace.newBlock('math_number'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); - block.getInput('ELSE').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); // Input THEN still connected. - assertEquals(block, number.getRootBlock()); - - // Attaching to parent. - var parent = workspace.newBlock('text_print'); - parent.getInput('TEXT').connection.connect(block.outputConnection); - assertEquals(parent, block.getRootBlock()); - assertEquals(parent, string.getRootBlock()); // Input THEN still connected. - assertEquals(parent, number.getRootBlock()); // Input ELSE still connected. - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachToPermissiveParentWithDifferentTypes() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var string = workspace.newBlock('text'); - var array = workspace.newBlock('lists_create_empty'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); - block.getInput('ELSE').connection.connect(array.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); // Input THEN still connected. - assertEquals(block, array.getRootBlock()); - - // Attaching to parent. - var parent = workspace.newBlock('text_print'); - parent.getInput('TEXT').connection.connect(block.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); - assertEquals(parent, string.getRootBlock()); // Input THEN still connected. - assertEquals(parent, array.getRootBlock()); // Input ELSE still connected. - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachToParentWithMismatchingThen_disconnectThen() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var number = workspace.newBlock('math_number'); - var string = workspace.newBlock('text'); - - block.getInput('THEN').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, number.getRootBlock()); - block.getInput('ELSE').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, number.getRootBlock()); // Input THEN still connected. - assertEquals(block, string.getRootBlock()); - - // Attaching to parent. - var parent = workspace.newBlock('text_trim'); - parent.getInput('TEXT').connection.connect(block.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Successful connection to parent. - assertEquals(parent, string.getRootBlock()); // Input ELSE still connected. - assertEquals(number, number.getRootBlock()); // Input THEN disconnected. - } finally { - workspace.dispose(); - } -} - -function test_logic_ternary_attachToParentWithMismatchingElse_disconnectElse() { - var workspace = new Blockly.Workspace(); - try { - var block = workspace.newBlock('logic_ternary'); - var string = workspace.newBlock('text'); - var number = workspace.newBlock('math_number'); - - block.getInput('THEN').connection.connect(string.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); - block.getInput('ELSE').connection.connect(number.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(block, string.getRootBlock()); // Input THEN still connected. - assertEquals(block, number.getRootBlock()); - - // Attaching to parent. - var parent = workspace.newBlock('text_trim'); - parent.getInput('TEXT').connection.connect(block.outputConnection); - Blockly.Events.fireNow_(); // Force synchronous onchange() call. - assertEquals(parent, block.getRootBlock()); // Successful connection to parent. - assertEquals(parent, string.getRootBlock()); // Input THEN still connected. - assertEquals(number, number.getRootBlock()); // Input ELSE disconnected. - } finally { - workspace.dispose(); - } -} diff --git a/lib/blockly/tests/blocks/test_blocks.js b/lib/blockly/tests/blocks/test_blocks.js deleted file mode 100644 index 6f9e0af..0000000 --- a/lib/blockly/tests/blocks/test_blocks.js +++ /dev/null @@ -1,1419 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -goog.provide('Blockly.TestBlocks'); - -Blockly.defineBlocksWithJsonArray([ // BEGIN JSON EXTRACT - { - "type": "test_basic_empty", - "message0": "", - "args0": [] - }, - { - "type": "test_basic_stack", - "message0": "stack block", - "previousStatement": null, - "nextStatement": null, - "style": "math_blocks" - }, - { - "type": "test_basic_dummy", - "message0": "dummy input %1", - "args0": [ - { - "type": "input_dummy" - } - ], - "style": "math_blocks" - }, - { - "type": "test_basic_multiple_dummy", - "message0": "first dummy %1 second dummy %2", - "args0": [ - { - "type": "input_dummy" - }, - { - "type": "input_dummy" - } - ], - "style": "math_blocks" - }, - { - "type": "test_basic_row", - "message0": "row block %1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null, - "style": "math_blocks" - }, - { - "type": "test_basic_value_to_stack", - "message0": "value to stack", - "nextStatement": null, - "output": null, - "style": "math_blocks" - }, - { - "type": "test_basic_value_to_statement", - "message0": "value to statement %1", - "args0": [ - { - "type": "input_statement", - "name": "STATEMENT" - } - ], - "output": null, - "style": "math_blocks" - }, - { - "type": "test_basic_limit_instances", - "message0": "limit 3 instances %1 %2", - "args0": [ - { - "type": "input_dummy" - }, - { - "type": "input_statement", - "name": "STATEMENT" - } - ], - "previousStatement": null, - "nextStatement": null, - "style": "math_blocks", - }, - { - "type": "test_basic_tooltips", - "message0": "%1 %2 %3", - "args0": [ - { - "type": "field_label", - "name": "NAME", - "text": "field tooltip", - "tooltip": "This is a JSON tooltip for the *field*." - }, - { - "type": "input_dummy" - }, - { - "type": "field_label", - "name": "NAME", - "text": "block tooltip" - } - ], - "tooltip": "This is a JSON tooltip for the *block*.", - "style": "math_blocks" - }, - { - "type": "test_basic_javascript", - "message0": "function %1(%2) { %3 %4 return %5 }", - "args0": [ - "foo", - "args", - { - "type": "input_dummy" - }, - { - "type": "input_statement", - "name": "STACK" - }, - { - "type": "input_value", - "check": "number", - "align": "right", - "name": "RETURN" - } - ], - "inputsInline": true, - "colour": 200, - "tooltip": "Hello world." - }, - { - "type": "test_align_dummy_right", - "message0": "text %1 long text %2", - "args0": [ - { - "type": "input_dummy", - "align": "RIGHT", - }, - { - "type": "input_dummy", - "align": "RIGHT", - }, - ], - "style": "math_blocks" - }, - { - "type": "test_align_all", - "message0": "text %1 long text %2 text %3 much longer text", - "args0": [ - { - "type": "input_dummy", - "align": "LEFT", - }, - { - "type": "input_dummy", - "align": "CENTRE", - }, - { - "type": "input_dummy", - "align": "RIGHT", - }, - ], - "style": "math_blocks" - }, - { - "type": "test_align_with_external_input", - "message0": "text %1 long text %2 text %3 much longer text %4", - "args0": [ - { - "type": "input_dummy", - "align": "RIGHT", - }, - { - "type": "input_dummy", - "align": "CENTRE", - }, - { - "type": "input_dummy", - "align": "LEFT", - }, - { - "type": "input_value", - "name": "VALUE" - }, - ], - "inputsInline": false, - "style": "math_blocks" - }, - { - "type": "test_dropdowns_long", - "message0": "long: %1", - "args0": [ - { - "type": "field_dropdown", - "name": "FIELDNAME", - "options": [ - [ "first item", "ITEM1" ], - [ "second item", "ITEM2" ], - [ "third item", "ITEM3" ], - [ "fourth item", "ITEM4" ], - [ "fifth item", "ITEM5" ], - [ "sixth item", "ITEM6" ], - [ "seventh item", "ITEM7" ], - [ "eighth item", "ITEM8" ], - [ "ninth item", "ITEM9" ], - [ "tenth item", "ITEM10" ], - [ "eleventh item", "ITEM11" ], - [ "twelfth item", "ITEM12" ], - [ "thirteenth item", "ITEM13" ], - [ "fourteenth item", "ITEM14" ], - [ "fifteenth item", "ITEM15" ], - [ "sixteenth item", "ITEM16" ], - [ "seventeenth item", "ITEM17" ], - [ "eighteenth item", "ITEM18" ], - [ "nineteenth item", "ITEM19" ], - [ "twentieth item", "ITEM20" ], - [ "twenty-first item", "ITEM21" ], - [ "twenty-second item", "ITEM22" ], - [ "twenty-third item", "ITEM23" ], - [ "twenty-fourth item", "ITEM24" ], - [ "twenty-fifth item", "ITEM25" ], - [ "twenty-sixth item", "ITEM26" ], - [ "twenty-seventh item", "ITEM27" ], - [ "twenty-eighth item", "ITEM28" ], - [ "twenty-ninth item", "ITEM29" ], - [ "thirtieth item", "ITEM30" ], - [ "thirty-first item", "ITEM31" ], - [ "thirty-second item", "ITEM32" ] - ] - } - ] - }, - { - "type": "test_dropdowns_images", - "message0": "%1", - "args0": [ - { - "NOTE": "The following paths are relative to playground.html", - "type": "field_dropdown", - "name": "FIELDNAME", - "options": [ - [{"src": "media/a.png", "width": 32, "height": 32, "alt": "A"}, "A"], - [{"src": "media/b.png", "width": 32, "height": 32, "alt": "B"}, "B"], - [{"src": "media/c.png", "width": 32, "height": 32, "alt": "C"}, "C"], - [{"src": "media/d.png", "width": 32, "height": 32, "alt": "D"}, "D"], - [{"src": "media/e.png", "width": 32, "height": 32, "alt": "E"}, "E"], - [{"src": "media/f.png", "width": 32, "height": 32, "alt": "F"}, "F"], - [{"src": "media/g.png", "width": 32, "height": 32, "alt": "G"}, "G"], - [{"src": "media/h.png", "width": 32, "height": 32, "alt": "H"}, "H"], - [{"src": "media/i.png", "width": 32, "height": 32, "alt": "I"}, "I"], - [{"src": "media/j.png", "width": 32, "height": 32, "alt": "J"}, "J"], - [{"src": "media/k.png", "width": 32, "height": 32, "alt": "K"}, "K"], - [{"src": "media/l.png", "width": 32, "height": 32, "alt": "L"}, "L"], - [{"src": "media/m.png", "width": 32, "height": 32, "alt": "M"}, "M"] - ] - } - ] - }, - { - "type": "test_dropdowns_images_and_text", - "message0": "%1", - "args0": [ - { - "type": "field_dropdown", - "name": "FIELDNAME", - "options": [ - ["images and text", "IMAGES AND TEXT"], - [{"src": "media/a.png", "width": 32, "height": 32, "alt": "A"}, "A"], - [{"src": "media/b.png", "width": 32, "height": 32, "alt": "B"}, "B"], - [{"src": "media/c.png", "width": 32, "height": 32, "alt": "C"}, "C"], - [{"src": "media/d.png", "width": 32, "height": 32, "alt": "D"}, "D"], - [{"src": "media/e.png", "width": 32, "height": 32, "alt": "E"}, "E"], - [{"src": "media/f.png", "width": 32, "height": 32, "alt": "F"}, "F"], - [{"src": "media/g.png", "width": 32, "height": 32, "alt": "G"}, "G"], - [{"src": "media/h.png", "width": 32, "height": 32, "alt": "H"}, "H"], - ["xyz", "LMNOP"], - [{"src": "media/i.png", "width": 32, "height": 32, "alt": "I"}, "I"], - [{"src": "media/j.png", "width": 32, "height": 32, "alt": "J"}, "J"], - [{"src": "media/k.png", "width": 32, "height": 32, "alt": "K"}, "K"], - [{"src": "media/l.png", "width": 32, "height": 32, "alt": "L"}, "L"], - [{"src": "media/m.png", "width": 32, "height": 32, "alt": "M"}, "M"] - ] - } - ] - }, - { - "type": "test_fields_angle", - "message0": "angle: %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": "90", - "alt": - { - "type": "field_label", - "text": "NO ANGLE FIELD" - } - } - ], - "style": "math_blocks", - }, - { - "type": "test_fields_date", - "message0": "date: %1", - "args0": [ - { - "type": "field_date", - "name": "FIELDNAME", - "date": "2020-02-20", - "alt": - { - "type": "field_label", - "text": "NO DATE FIELD" - } - } - ], - "style": "math_blocks", - }, - { - "type": "test_fields_text_input", - "message0": "text input %1", - "args0": [ - { - "type": "field_input", - "name": "TEXT_INPUT", - "text": "default" - } - ], - "style": "math_blocks", - "tooltip": "", - "helpUrl": "" - }, - { - "type": "test_fields_multilinetext", - "message0": "code %1", - "args0": [ - { - "type": "field_multilinetext", - "name": "CODE", - "text": "default1\ndefault2" - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_fields_checkbox", - "message0": "checkbox %1", - "args0": [ - { - "type": "field_checkbox", - "name": "CHECKBOX", - "checked": true - } - ], - "style": "math_blocks", - "tooltip": "", - "helpUrl": "" - }, - { - "type": "test_fields_colour", - "message0": "colour %1", - "args0": [ - { - "type": "field_colour", - "name": "COLOUR", - "colour": "#ff0000" - } - ], - "style": "math_blocks", - "tooltip": "", - "helpUrl": "" - }, - { - "type": "test_fields_colour_options", - "message0": "colour options %1", - "args0": [ - { - "type": "field_colour", - "name": "COLOUR", - "colour": "#ff4040", - "colourOptions": - ['#ff4040', '#ff8080', '#ffc0c0', - '#4040ff', '#8080ff', '#c0c0ff'], - "colourTitles": - ['dark pink', 'pink', 'light pink', - 'dark blue', 'blue', 'light blue'], - "columns": 3 - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_fields_variable", - "message0": "variable %1", - "args0": [ - { - "type": "field_variable", - "name": "VARIABLE", - "variable": "item" - } - ], - "style": "math_blocks", - "tooltip": "", - "helpUrl": "" - }, - { - "type": "test_fields_label_serializable", - "message0": "label serializable %1", - "args0": [ - { - "type": "field_label_serializable", - "name": "LABEL", - "text": "default" - } - ], - "style": "math_blocks", - "tooltip": "", - "helpUrl": "" - }, - { - "type": "test_fields_image", - "message0": "image %1", - "args0": [ - { - "type": "field_image", - "name": "IMAGE", - "src": "https://blockly-demo.appspot.com/static/tests/media/a.png", - "width": 32, - "height": 32, - "alt": "A" - } - ], - "colour": 230 - }, - { - "type": "test_numbers_float", - "message0": "float %1", - "args0": [ - { - "type": "field_number", - "name": "NUM", - "text": "0" - } - ], - "style": "math_blocks", - "output": "Number", - "tooltip": "A number." - }, - { - "type": "test_numbers_whole", - "message0": "precision 1 %1", - "args0": [ - { - "type": "field_number", - "name": "NUM", - "precision": 1, - "text": "0" - } - ], - "style": "math_blocks", - "output": "Number", - "tooltip": "The number should be rounded to multiples of 1" - }, - { - "type": "test_numbers_hundredths", - "message0": "precision 0.01 %1", - "args0": [ - { - "type": "field_number", - "name": "NUM", - "precision": 0.01, - "text": "0" - } - ], - "style": "math_blocks", - "output": "Number", - "tooltip": "The number should be rounded to multiples of 0.01" - }, - { - "type": "test_numbers_halves", - "message0": "precision 0.5 %1", - "args0": [ - { - "type": "field_number", - "name": "NUM", - "precision": 0.5, - "text": "0" - } - ], - "style": "math_blocks", - "output": "Number", - "tooltip": "The number should be rounded to multiples of 0.5" - }, - { - "type": "test_numbers_three_halves", - "message0": "precision 1.5 %1", - "args0": [ - { - "type": "field_number", - "name": "NUM", - "precision": 1.5, - "text": "0" - } - ], - "style": "math_blocks", - "output": "Number", - "tooltip": "The number should be rounded to multiples of 1.5" - }, - { - "type": "test_numbers_whole_bounded", - "message0": "midi note %1", - "args0": [ - { - "type": "field_number", - "name": "NOTE", - "precision": 1, - "min": 1, - "max": 127, - "text": "0" - } - ], - "style": "math_blocks", - "output": "Note", - "tooltip": "A midi note." - }, - { - "type": "test_angles_protractor", - "message0": "protractor %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "mode": "protractor" - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_angles_compass", - "message0": "compass %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "mode": "compass" - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_angles_clockwise", - "message0": "clockwise %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "clockwise": true - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_angles_offset", - "message0": "offset 90 %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "offset": 90 - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_angles_wrap", - "message0": "wrap %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "wrap": 180 - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_angles_round_30", - "message0": "round 30 %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "round": 30 - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_angles_round_0", - "message0": "no round %1", - "args0": [ - { - "type": "field_angle", - "name": "FIELDNAME", - "angle": 0, - "round": 0 - } - ], - "style": "math_blocks", - "tooltip": "test tooltip" - }, - { - "type": "test_images_datauri", - "message0": "Image data: URI %1", - "args0": [ - { - "type": "field_image", - "src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAABHZJREFUaAXtmEuPDFEUx8cwJIx4jQjxSGYt4pWQiGSIz4A1O2FtLyx8B4+MxIKEtQkRsZBIEF/AAgki3gzjNfx/Xfc/rkpVd1dXdU13OMm/z73ndc+5r6rqgYHu01wNAfqa5kTZx+1I3PtNJ35Aqe4P6VrW+9mnEl6o/g/hu0Ab6koxg0nsjn+dVF6c+Yr8SZgUaGeRfR0ry6alzEFaGuYY/AryafFODjQ++EKOlfRq+nXSxzTeY2FHGHcocM/uIvXZWoA2ZJ1td0pGjKMoRY6d9Nr8ndemXdrMyayVYr1wQ9gn3BVIhNklNluKg06fNslTFDacG4q4LgwLxIIcO+nV+HtOY5HoF2FbgXG3y3ZKwPdsAb/KTeOZIxESOhRG2SB+SrgvfBDeC/cEZKwgdFjA5wydQHFMy2rh8WWxOYx4UJybiiTBR+Fzqu/nin2kHohj0a+dmEWfNYpwAefV3iSMCiMC5+GSYD0PSgjfWVkJDmoaJLRO8EocUXulMC68EW4KpuNqUAy2+EDpePRnjdj/JMhKUASH37N/S+0FgrePV+akZLWTl3+jRt4j7BbGhCUC9EAgcbbThdC+KL5aMA2Fxi5xbLkMoKXCmEBMYjMG5DGTXgW/XuqtiuVZNr8S4nM7cbBHBbYTehcxqDZJOTGv2DvJoKuC45lvaWiSbRea+cyHNN8i0UwHgyfilwUS+SYsFkiCmSYWD7tXwkOB5J8H7uRcCL48EPEDTMYqgYngneyl8FSAPHbSq+DXSWSFYmuwIhzg4WDgSYr93GY7kjQ++OaR7fP0M3IPNiNo0mBWCcxMm+izCtbBHRM5emR5FOvxi21ZibifF6Mh96BNjSIlgX9GfRJJkwen4CLbgrj2Tcds2Y9nt6VxQYOOkyo4TsO86IrkjRGvjNvmsQ8yCox1cTu2LdQuW4gT4wYyuZ21rbxKtsHHbcdynEK8TCEM7GS5jp3k8pAB16plQdRYCRLHxjp8JwVilSpG/h0TA08IXwUSAyTFNdwM2Nge32sCsTqmTp09c8zsM4H3KB6EJMcqW5+Oj946X88jklHMGoE3AuvVbJ/KbC1G4crkW4Ptsld4KzimZ1yiGSJJF0chy4Q7Av7xta5uMfKgxbz+WPMOxv9VrMhtwcmTJDqADKIAkgVeNWS8CbAi2M4akciEMCXwusFrB0WQPJy+z0qWDh98S58RxeiYvEXgnJUVIdIJcQqBQ8ib6fCNY+FTmMpsLZIlATiH1MQHFWT+Oun+JcvSOVZk3n5zsH3TTEuKgEjCf4k6pjnyZjqvhmMRrzCVWZF4MJLwwzGW086TW1eqAA/mWXO/b/n/Qnpt6f6vyL++Ir6hzCubj7q3lscz79tC/DVoXlkhVT0QWyXkV/TxYGhueSv/lvq6CuFM8CryQjgdsqJf2VmpfK+GJLOYi+FbvtIiGKwbK+JZNo+LQlb5+WCAbqyIY5rHhXSt3Y3BPOPmXUs+Dlzld7K30iMNwD8q3Ex85lquZv8QhzimdD/W9Xyb5H0z1Zbsb+OT/8HoqhrfAAAAAElFTkSuQmCC", - "width": 50, - "height": 50, - "alt": "*" - } - ], - "style": "text_blocks" - }, - { - "type": "test_images_small", - "message0": "Image too small %1", - "args0": [ - { - "type": "field_image", - "src": "media/30px.png", - "width": 50, - "height": 50, - "alt": "*" - } - ], - "style": "text_blocks" - }, - { - "type": "test_images_large", - "message0": "Image too large %1", - "args0": [ - { - "type": "field_image", - "src": "media/200px.png", - "width": 50, - "height": 50, - "alt": "*" - } - ], - "style": "text_blocks" - }, - { - "type": "test_images_fliprtl", - "message0": "Image flipped RTL %1", - "args0": [ - { - "type": "field_image", - "src": "media/arrow.png", - "width": 50, - "height": 50, - "alt": "*", - "flipRtl": true - } - ], - "colour": 160 - }, - { - "type": "test_images_missing", - "message0": "Image missing %1", - "args0": [ - { - "type": "field_image", - "src": "missing.png", - "width": 50, - "height": 50, - "alt": "*" - } - ], - "style": "text_blocks" - }, - { - "type": "test_images_many_icons", - "message0": "Lots of network icons: %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18", - "args0": [ - { - "type": "input_dummy" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/a.png", - "width": 32, - "height": 32, - "alt": "A" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/b.png", - "width": 32, - "height": 32, - "alt": "B" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/c.png", - "width": 32, - "height": 32, - "alt": "C" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/d.png", - "width": 32, - "height": 32, - "alt": "D" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/e.png", - "width": 32, - "height": 32, - "alt": "E" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/f.png", - "width": 32, - "height": 32, - "alt": "F" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/g.png", - "width": 32, - "height": 32, - "alt": "G" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/h.png", - "width": 32, - "height": 32, - "alt": "H" - }, - { - "type": "input_dummy" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/a.png", - "width": 32, - "height": 32, - "alt": "A" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/b.png", - "width": 32, - "height": 32, - "alt": "B" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/c.png", - "width": 32, - "height": 32, - "alt": "C" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/d.png", - "width": 32, - "height": 32, - "alt": "D" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/e.png", - "width": 32, - "height": 32, - "alt": "E" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/f.png", - "width": 32, - "height": 32, - "alt": "F" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/g.png", - "width": 32, - "height": 32, - "alt": "G" - }, - { - "type": "field_image", - "src": "https://blockly-demo.appspot.com/static/tests/media/h.png", - "width": 32, - "height": 32, - "alt": "H" - } - ], - "style": "text_blocks" - }, - { - "type": "test_style_hat", - "message0": "Hat block (event)", - "nextStatement": null, - "style": "hat_blocks" - }, - { - "type": "test_style_hex1", - "message0": "Block color: Bright purple %1 %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "#992aff" - }, - { - "type": "field_dropdown", - "name": "DROPDOWN", - "options": [ - [ "option", "ONE" ], - [ "option", "TWO" ] - ] - }, - { - "type": "field_checkbox", - "name": "NAME", - "checked": true - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": "#992aff" - }, - { - "type": "test_style_hex2", - "message0": "Block color: White %1 %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "#fefefe" - }, - { - "type": "field_dropdown", - "name": "DROPDOWN", - "options": [ - [ "option", "ONE" ], - [ "option", "TWO" ] - ] - }, - { - "type": "field_checkbox", - "name": "NAME", - "checked": true - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": "#fefefe" - }, - { - "type": "test_style_hex3", - "message0": "Block color: Black %1 %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "#010101" - }, - { - "type": "field_dropdown", - "name": "DROPDOWN", - "options": [ - [ "option", "ONE" ], - [ "option", "TWO" ] - ] - }, - { - "type": "field_checkbox", - "name": "NAME", - "checked": true - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": "#010101" - }, - { - "type": "test_style_no_colour", - "message0": "Block color: unset" - }, - { - "type": "test_style_hex4", - "message0": "Block color: #RRGGBBAA (invalid)", - "colour": "#992aff99" - }, - { - "type": "test_style_hex5", - "message0": "Block color: #RRGGBB (invalid)", - "colour": "#NotHex" - }, - { - "type": "test_style_emoji", - "message0": "Robot Face: \uD83E\uDD16", - "colour": "#AAAAAA" - } -]); // END JSON EXTRACT (Do not delete this comment.) - -Blockly.Blocks['test_validators_text_null'] = { - init: function() { - this.appendDummyInput() - .appendField("always null") - .appendField(new Blockly.FieldTextInput("default", this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('All input validates to null (invalid). The display' + - ' text will remain the input text, but the value should be the default' + - ' text. The input should be red after the first keystroke.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_text_A'] = { - init: function() { - this.appendDummyInput() - .appendField("remove \'a\'") - .appendField(new Blockly.FieldTextInput("default", this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('All \'a\' characters are removed from field value.' + - ' The display text will include invalid \'a\' characters while the' + - ' field is being edited, but the value will not.'); - }, - - validate: function(newValue) { - return newValue.replace(/\a/g, ''); - } -}; -Blockly.Blocks['test_validators_text_B'] = { - init: function() { - this.appendDummyInput() - .appendField("\'b\' -> null") - .appendField(new Blockly.FieldTextInput("default", this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('Upon detecting a \'b\' character the input will' + - ' validated to null (invalid). Upon removal it should revert to being' + - ' valid. The display text will remain the input text, but if the input' + - ' text is invalid the value should be the default text.'); - }, - - validate: function(newValue) { - if (newValue.indexOf('b') != -1) { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_validators_angle_null'] = { - init: function() { - this.appendDummyInput() - .appendField("always null") - .appendField(new Blockly.FieldAngle(90, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('All input validates to null (invalid). The field' + - ' will display the input while the field is being edited (this' + - ' includes the text and the graphic), but the value should be the' + - ' default value. The input should be red after the first' + - ' keystroke.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_angle_mult30_force'] = { - init: function() { - this.appendDummyInput() - .appendField("force mult of 30") - .appendField(new Blockly.FieldAngle(90, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('The input value will be rounded to the nearest' + - ' multiple of 30. The field will display the input while the field is' + - ' being edited (this includes the text and the graphic), but the value' + - ' will be the validated (rounded) value. Note: If you want to do' + - ' rounding this is not the proper way, use the ROUND property of the' + - ' field angle instead.'); - }, - - validate: function(newValue) { - return Math.round(newValue / 30) * 30; - } -}; -Blockly.Blocks['test_validators_angle_mult30_null'] = { - init: function() { - this.appendDummyInput() - .appendField("not mult of 30 -> null") - .appendField(new Blockly.FieldAngle(90, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('If the input value is not a multiple of 30, the' + - ' input will validated to null (invalid). The field will display the' + - ' input while the field is being edited (this includes the text and' + - ' the graphic), but if the input value is invalid the value should be' + - ' the default value.'); - }, - - validate: function(newValue) { - if (newValue % 30 != 0) { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_validators_checkbox_null'] = { - init: function() { - this.appendDummyInput() - .appendField("always null") - .appendField(new Blockly.FieldCheckbox(true, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('The new input always validates to null (invalid).' + - ' This means that the field value should not change.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_checkbox_match'] = { - init: function() { - this.appendDummyInput() - .appendField("force match") - .appendField(new Blockly.FieldCheckbox(true), "MATCH") - .appendField(new Blockly.FieldCheckbox(true, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('The validator for this block only works on the' + - ' end-most checkbox. The validator will always return the value of the' + - ' start-most checkbox. Therefor they should always match.') - }, - - validate: function(newValue) { - return this.sourceBlock_.getFieldValue('MATCH'); - } -}; -Blockly.Blocks['test_validators_checkbox_not_match_null'] = { - init: function() { - this.appendDummyInput() - .appendField("not match -> null") - .appendField(new Blockly.FieldCheckbox(true), "MATCH") - .appendField(new Blockly.FieldCheckbox(true, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('The validator for this block only works on the' + - ' end-most checkbox. If the new value does not match the value of the' + - ' start-most checkbox, it will return null (invalid), which means the' + - ' field value should not change. Therfore they should always match.'); - }, - - validate: function(newValue) { - if (this.sourceBlock_.getFieldValue('MATCH') != newValue) { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_validators_colour_null'] = { - init: function() { - var colourField = new Blockly.FieldColour('#ff0000', this.validate); - colourField.setColours([ - '#ffffff', '#ffdcdc', '#ffb4b4','#ff8c8c','#ff6464','#ff3c3c','#ff1414', - '#00ffff', '#00dcdc', '#00b4b4','#008c8c','#006464','#003c3c','#001414']); - - this.appendDummyInput() - .appendField("always null") - .appendField(colourField, "INPUT"); - this.setColour(230); - this.setCommentText('All input validates to null (invalid). This means' + - ' the field value should not change.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_colour_force_red'] = { - init: function() { - var colourField = new Blockly.FieldColour('#ff0000', this.validate); - colourField.setColours([ - '#ffffff', '#ffdcdc', '#ffb4b4','#ff8c8c','#ff6464','#ff3c3c','#ff1414', - '#00ffff', '#00dcdc', '#00b4b4','#008c8c','#006464','#003c3c','#001414']); - - this.appendDummyInput() - .appendField("force full red") - .appendField(colourField, "INPUT"); - this.setColour(230); - this.setCommentText('The input will have its red value replaced with' + - ' full red.'); - }, - - validate: function(newValue) { - return '#ff' + newValue.substr(3, 4); - } -}; -Blockly.Blocks['test_validators_colour_red_null'] = { - init: function() { - var colourField = new Blockly.FieldColour('#ff0000', this.validate); - colourField.setColours([ - '#ffffff', '#ffdcdc', '#ffb4b4','#ff8c8c','#ff6464','#ff3c3c','#ff1414', - '#00ffff', '#00dcdc', '#00b4b4','#008c8c','#006464','#003c3c','#001414']); - - this.appendDummyInput() - .appendField("not red -> null") - .appendField(colourField, "INPUT"); - this.setColour(230); - this.setCommentText('If the input does not have full red, the input will' + - ' validate to null (invalid). Otherwise it will return the input value'); - }, - - validate: function(newValue) { - if (newValue.substr(1, 2) != 'ff') { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_validators_dropdown_null'] = { - init: function() { - this.appendDummyInput() - .appendField("always null") - .appendField(new Blockly.FieldDropdown([ - ["1a","1A"], ["1b","1B"], ["1c","1C"], - ["2a","2A"], ["2b","2B"], ["2c","2C"]], this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('All input validates to null (invalid). This means' + - ' the field value should not change.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_dropdown_force_1s'] = { - init: function() { - this.appendDummyInput() - .appendField("force 1s") - .appendField(new Blockly.FieldDropdown([ - ["1a","1A"], ["1b","1B"], ["1c","1C"], - ["2a","2A"], ["2b","2B"], ["2c","2C"]], this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('The input\'s value will always change to start with' + - ' 1.'); - }, - - validate: function(newValue) { - return '1' + newValue.charAt(1); - } -}; -Blockly.Blocks['test_validators_dropdown_1s_null'] = { - init: function() { - this.appendDummyInput() - .appendField("not 1s -> null") - .appendField(new Blockly.FieldDropdown([ - ["1a","1A"], ["1b","1B"], ["1c","1C"], - ["2a","2A"], ["2b","2B"], ["2c","2C"]], this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('If the input does not start with 1, the input will' + - ' validate to null (invalid). Otherwise it will return the input value.'); - }, - - validate: function(newValue) { - if (newValue.charAt(0) != '1') { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_validators_number_null'] = { - init: function() { - this.appendDummyInput() - .appendField("always null") - .appendField(new Blockly.FieldNumber(123, null, null, null, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('All input validates to null (invalid). The field' + - ' will display the input while the field is being edited, but the value' + - ' should be the default value. The input should be red after the first' + - ' keystroke.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_number_mult10_force'] = { - init: function() { - this.appendDummyInput() - .appendField("force mult of 10") - .appendField(new Blockly.FieldNumber(123, null, null, null, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('Theinput value will be rounded to the nearest' + - ' multiple of 10. The field will display the input while the field is' + - ' being edited, but the value should be the validated (rounded) value.' + - ' Note: If you want to do rounding this is not the proper way, use the' + - ' precision option of the number field constructor instead.'); - }, - - validate: function(newValue) { - return Math.round(newValue / 10) * 10; - } -}; -Blockly.Blocks['test_validators_number_mult10_null'] = { - init: function() { - this.appendDummyInput() - .appendField("not mult of 10 -> null") - .appendField(new Blockly.FieldNumber(123, null, null, null, this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('If the input value is not a multiple of 10, the' + - ' input will validate to null (invalid). The field will display the' + - ' input while the field is being edited, but if the input value is' + - ' invalid the value should be the default value.'); - }, - - validate: function(newValue) { - if (newValue % 10 != 0) { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_validators_variable_null'] = { - init: function() { - this.appendDummyInput() - .appendField("always null") - .appendField(new Blockly.FieldVariable('1a', this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('All ids validate to null (invalid). This means' + - ' the variable should not change.'); - }, - - validate: function(newValue) { - return null; - } -}; -Blockly.Blocks['test_validators_variable_force_1s'] = { - init: function() { - this.appendDummyInput() - .appendField("force 1s") - .appendField(new Blockly.FieldVariable('1a', this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('The id will always change to start with 1.'); - }, - - validate: function(newValue) { - return '1' + newValue.charAt(1); - } -}; -Blockly.Blocks['test_validators_variable_1s_null'] = { - init: function() { - this.appendDummyInput() - .appendField("not 1s -> null") - .appendField(new Blockly.FieldVariable('1a', this.validate), "INPUT"); - this.setColour(230); - this.setCommentText('If the id does not start with 1, the id will' + - ' validate to null (invalid). Otherwise it will return the id.'); - }, - - validate: function(newValue) { - if (newValue.charAt(0) != '1') { - return null; - } - return newValue; - } -}; - -Blockly.Blocks['test_basic_empty_with_mutator'] = { - init: function() { - this.setMutator(new Blockly.Mutator(['math_number'])); - } -}; - -Blockly.Blocks['test_dropdowns_dynamic'] = { - init: function() { - var dropdown = new Blockly.FieldDropdown(this.dynamicOptions); - this.appendDummyInput() - .appendField('dynamic') - .appendField(dropdown, 'OPTIONS'); - }, - - dynamicOptions: function() { - if (!Blockly.TestBlocks.dynamicDropdownOptions_.length) { - return [['', 'OPTION0']]; - } - return Blockly.TestBlocks.dynamicDropdownOptions_; - } -}; - -/** - * An array of options for the dynamic dropdown. - * @type {!Array} - * @package - */ -Blockly.TestBlocks.dynamicDropdownOptions_ = []; - -/** - * Handles "add option" button in the field test category. This will prompt - * the user for an option to add. - * @package - */ -Blockly.TestBlocks.addDynamicDropdownOption_ = function() { - Blockly.prompt('Add an option?', - 'option ' + Blockly.TestBlocks.dynamicDropdownOptions_.length, - function(text) { - if (text) { - // Do not remove this log! Helps you know if it was added correctly. - console.log('Adding option: ' + text); - // The option is an array containing human-readable text and a - // language-neutral id. - Blockly.TestBlocks.dynamicDropdownOptions_.push( - [text, 'OPTION' + Blockly.TestBlocks.dynamicDropdownOptions_.length]); - } - }) -}; - -/** - * Handles "remove option" button in the field test category. This will prompt - * the user for an option to remove. May remove multiple options with the - * same name. - * @package - */ -Blockly.TestBlocks.removeDynamicDropdownOption_ = function() { - var defaultText = Blockly.TestBlocks.dynamicDropdownOptions_[0] ? - Blockly.TestBlocks.dynamicDropdownOptions_[0][0] : ''; - Blockly.prompt('Remove an option?', defaultText, function(text) { - for (var i = 0, option; - option = Blockly.TestBlocks.dynamicDropdownOptions_[i]; - i++) { - // The option is an array containing human-readable text and a - // language-neutral id, we'll compare against the human-readable text. - if (option[0] == text) { - // Do not remove this log! Helps you know if it was removed correctly. - console.log('Removing option: ' + text); - Blockly.TestBlocks.dynamicDropdownOptions_.splice(i, 1); - } - } - }) -}; - -Blockly.Blocks['test_dropdowns_dynamic_random'] = { - init: function() { - var dropdown = new Blockly.FieldDropdown(this.dynamicOptions); - this.appendDummyInput() - .appendField('dynamic random') - .appendField(dropdown, 'OPTIONS'); - }, - - dynamicOptions: function() { - var random = Math.floor(Math.random() * 10) + 1; - var options = []; - for (var i = 0; i < random; i++) { - options.push([String(i), String(i)]); - } - return options; - } -}; diff --git a/lib/blockly/tests/compile/compile.sh b/lib/blockly/tests/compile/compile.sh deleted file mode 100644 index f6136a9..0000000 --- a/lib/blockly/tests/compile/compile.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash -echo "Executing compile.sh from $(pwd)" - -# Find the Blockly project root if pwd is the root -# or if pwd is the directory containing this script. -if [ -f ./main.js ] && [ -f ./compile.sh ]; then - BLOCKLY_ROOT="../.." -elif [ -f tests/compile/compile.sh ]; then - BLOCKLY_ROOT="." -else - echo "ERROR: Cannot determine BLOCKLY_ROOT" 1>&2; - exit 1 -fi - -# Test for npm and node_modules directory. -if command -v npm >/dev/null 2>&1; then - NODE_MODULES=$(npm root) - # npm root will invent a location based on pwd if it can't find - # one, such as when the project has not been `npm install`ed. - # Clear the variable if the directory doesn't already exist. - [[ ! -d $NODE_MODULES ]] && NODE_MODULES="" -fi - -# Find the Closure Compiler. -if [ -n $NODE_MODULES ] && \ - [ -s $NODE_MODULES/google-closure-compiler-java/compiler.jar ]; then - COMPILER=$NODE_MODULES/google-closure-compiler-java/compiler.jar - echo "Found npm google-closure-compiler:" - echo " $COMPILER" - npm list google-closure-compiler | grep google-closure-compiler -else - COMPILER_JARS=$(find $BLOCKLY_ROOT/tests/compile/ -maxdepth 1 -name "*compiler*.jar") - if [ -n "$COMPILER_JARS" ]; then - if [ $(echo "$COMPILER_JARS" | wc -l) -ne 1 ]; then - echo "ERROR: Found too many Closure *compiler*.jar files:" 1>&2; - echo "$COMPILER_JARS" 1>&2; - exit 1 - fi - COMPILER=$COMPILER_JARS - echo "Found local Closure compiler .jar:" - echo " $COMPILER" - else - echo "ERROR: Closure Compiler not found." 1>&2; - echo "Either npm install google-closure-compiler" 1>&2; - echo "Or download from this URL, and place jar file in current directory." 1>&2; - echo "https://dl.google.com/closure-compiler/compiler-latest.zip" 1>&2; - exit 1 - fi -fi - -if [ -f "$BLOCKLY_ROOT/tests/compile/main_compressed.js" ]; then - echo "Removing previous output." - rm "$BLOCKLY_ROOT/tests/compile/main_compressed.js" -fi - -tempPath="$BLOCKLY_ROOT/temp_core" -corePath="$BLOCKLY_ROOT/core/*" -mkdir $tempPath -cp $corePath $tempPath - -# Copy over all files in core and any subdirectories to the temp_core directory. -for dir in "$corePath/" ; do - # For all files in the directory and any subdirectories rename them to - # include the subirectory name and copy them to temporary directory. - # Ex: subdir/file.js -> temp_core/subdir_file.js - for file in $(find $dir -name \*.js); do - # Replace all / with _ and remove core - newName="${file//\//_}" - newName="${newName//._core_/}" - newFilePath="$tempPath/$newName" - cp $file $newFilePath - done -done - -echo "Compiling Blockly..." -COMPILATION_COMMAND="java -jar $COMPILER --js='$BLOCKLY_ROOT/tests/compile/main.js' \ - --js='$tempPath/**.js' \ - --js='$BLOCKLY_ROOT/blocks/**.js' \ - --js='$BLOCKLY_ROOT/generators/**.js' \ - --js='$BLOCKLY_ROOT/msg/js/**.js' \ - --generate_exports \ - --externs $BLOCKLY_ROOT/externs/svg-externs.js \ - --compilation_level ADVANCED_OPTIMIZATIONS \ - --dependency_mode=STRICT --entry_point=Main \ - --js_output_file $BLOCKLY_ROOT/tests/compile/main_compressed.js" -echo "$COMPILATION_COMMAND" -$COMPILATION_COMMAND -EXIT_CODE=$? -echo "Compiler exit code: $EXIT_CODE" -if [ "$EXIT_CODE" -eq 0 ] && [ -s "$BLOCKLY_ROOT/tests/compile/main_compressed.js" ]; then - echo "Compilation SUCCESS." -else - echo "Compilation FAIL." - exit 1 -fi - -# Cleanup temp_core directory -rm -r $tempPath diff --git a/lib/blockly/tests/compile/index.html b/lib/blockly/tests/compile/index.html deleted file mode 100644 index eb067ce..0000000 --- a/lib/blockly/tests/compile/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - Blockly: Advanced Compilation Test - - - - - -

      Blockly: Advanced Compilation Test

      - -

      To run this test manually, download - closure-compiler-vxxxxxxxx.jar, - place it in this directory, then run compile.sh from the command line.

      - -

      Measure the size of main_compressed.js (295kb as of October 2017), then reload - this page and see if Blockly works.

      - -
      - - - diff --git a/lib/blockly/tests/compile/main.js b/lib/blockly/tests/compile/main.js deleted file mode 100644 index d0c8821..0000000 --- a/lib/blockly/tests/compile/main.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -goog.provide('Main'); -// Core -// Either require 'Blockly.requires', or just the components you use: -goog.require('Blockly'); -goog.require('Blockly.geras.Renderer'); -goog.require('Blockly.VerticalFlyout'); -// Blocks -goog.require('Blockly.Constants.Logic'); -goog.require('Blockly.Constants.Loops'); -goog.require('Blockly.Constants.Math'); -goog.require('Blockly.Constants.Text'); -goog.require('Blockly.Constants.Lists'); -goog.require('Blockly.Constants.Colour'); -goog.require('Blockly.Constants.Variables'); -goog.require('Blockly.Constants.VariablesDynamic'); -goog.require('Blockly.Blocks.procedures'); - -Main.init = function() { - Blockly.inject('blocklyDiv', { - 'toolbox': document.getElementById('toolbox') - }); -}; -window.addEventListener('load', Main.init); diff --git a/lib/blockly/tests/generators/colour.xml b/lib/blockly/tests/generators/colour.xml deleted file mode 100644 index 05a9dee..0000000 --- a/lib/blockly/tests/generators/colour.xml +++ /dev/null @@ -1,318 +0,0 @@ - - - test colour picker - Describe this function... - - - - - static colour - - - - - #ff6600 - - - - - #ff6600 - - - - - - - test rgb - Describe this function... - - - - - from rgb - - - - - - - 100 - - - - - 40 - - - - - 0 - - - - - - - #ff6600 - - - - - - - Colour - - - - - - - - - - - - - - - - - - - - - - - test colour random - Describe this function... - - - - - 100 - - - - - item - - - - - - - - - - - length of random colour string: - - - - - item - - - - - - - - - item - - - - - - - 7 - - - - - - - - - - format of random colour string: - - - - - item - - - - - - - - FIRST - - - item - - - - - - - # - - - - - i - - - 1 - - - - - 6 - - - - - TRUE - - - - - - contents of random colour string: - - - - - item - - - - - at index: - - - - - - - i - - - - - - - - - NEQ - - - - - -1 - - - - - - - FIRST - - - abcdefABDEF0123456789 - - - - - - FROM_START - - - item - - - - - - - i - - - - - - - - - - - - - - - - - - - - - - - - - test blend - Describe this function... - - - - - blend - - - - - - - #ff0000 - - - - - - - 100 - - - - - 40 - - - - - 0 - - - - - - - 0.4 - - - - - - - #ff2900 - - - - - - diff --git a/lib/blockly/tests/generators/functions.xml b/lib/blockly/tests/generators/functions.xml deleted file mode 100644 index c2299c7..0000000 --- a/lib/blockly/tests/generators/functions.xml +++ /dev/null @@ -1,561 +0,0 @@ - - - - Functions - - - - - - - - - - - test recurse - - - - - - - - - - 3 - - - - - - - -1-2-1-3-1-2-1- - - - - - - - - - - - test procedure - - - - - - - - - 8 - - - - - 2 - - - - - - - procedure with global - - - - - proc z - - - - - 4 - - - - - proc w - - - FALSE - - - - - - - - - - FALSE - - - - - - - procedure no return - - - TRUE - - - proc w - - - - - proc w - - - FALSE - - - - - - - - - - TRUE - - - - - - - procedure return - - - FALSE - - - proc w - - - - - - - - - - - - - - - - - - - - - - - - - procedure 1 - - - proc z - - - DIVIDE - - - proc x - - - - - proc y - - - - - - - - - - - - procedure 2 - - - - - - proc x - - - - - proc w - - - TRUE - - - - - - - - - test function - - - - - function with arguments - - - - - - - - - - - 2 - - - - - 3 - - - - - - - -1 - - - - - - - function with side effect - - - - - func z - - - - - side effect - - - - - func a - - - unchanged - - - - - func c - - - global - - - - - - - function with global - - - - - - - - - - 2 - - - - - - - 3global - - - - - - - function with scope - - - - - func a - - - - - unchanged - - - - - - - function return - - - TRUE - - - - - - - - TRUE - - - - - - - - - function no return - - - FALSE - - - - - - - - FALSE - - - - - - - - - - - - - - - - - - - - - - - - - - - function 1 - - - func z - - - side effect - - - - - - - MINUS - - - func x - - - - - func y - - - - - - - - - - function 2 - - - func a - - - 1 - - - - - - - - - - func a - - - - - func c - - - - - - - - - - function 3 - - - - - - func a - - - - - TRUE - - - - - - - FALSE - - - - - - - - recurse - - - - - - GT - - - n - - - - - 0 - - - - - - - text - - - - - - - - - - - MINUS - - - n - - - - - 1 - - - - - - - - - n - - - - - - - - - - MINUS - - - n - - - - - 1 - - - - - - - - - - - - - text - - - - - - - - - - - - - text - - - - diff --git a/lib/blockly/tests/generators/golden/generated.dart b/lib/blockly/tests/generators/golden/generated.dart deleted file mode 100644 index 6a1311c..0000000 --- a/lib/blockly/tests/generators/golden/generated.dart +++ /dev/null @@ -1,1670 +0,0 @@ -import 'dart:math' as Math; - -var unittestResults, test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy; - -String unittest_report() { - // Create test report. - List report = []; - StringBuffer summary = new StringBuffer(); - int fails = 0; - for (int x = 0; x < unittestResults.length; x++) { - if (unittestResults[x][0]) { - summary.write("."); - } else { - summary.write("F"); - fails++; - report.add(""); - report.add("FAIL: ${unittestResults[x][2]}"); - report.add(unittestResults[x][1]); - } - } - report.insert(0, summary.toString()); - report.add(""); - report.add("Ran ${unittestResults.length} tests."); - report.add(""); - if (fails != 0) { - report.add("FAILED (failures=$fails)"); - } else { - report.add("OK"); - } - return report.join("\n"); -} - -void unittest_assertequals(dynamic actual, dynamic expected, String message) { - // Asserts that a value equals another value. - if (unittestResults == null) { - throw "Orphaned assert: ${message}"; - } - bool equals(a, b) { - if (a == b) { - return true; - } else if (a is List && b is List) { - if (a.length != b.length) { - return false; - } - for (num i = 0; i < a.length; i++) { - if (!equals(a[i], b[i])) { - return false; - } - } - return true; - } - return false; - } - if (equals(actual, expected)) { - unittestResults.add([true, "OK", message]); - } else { - unittestResults.add([false, "Expected: $expected\nActual: $actual", message]); - } -} - -void unittest_fail(String message) { - // Always assert an error. - if (unittestResults == null) { - throw "Orphaned assert fail: ${message}"; - } - unittestResults.add([false, "Fail.", message]); -} - -/// Describe this function... -void test_if() { - if (false) { - unittest_fail('if false'); - } - ok = false; - if (true) { - ok = true; - } - unittest_assertequals(ok, true, 'if true'); - ok = false; - if (false) { - unittest_fail('if/else false'); - } else { - ok = true; - } - unittest_assertequals(ok, true, 'if/else false'); - ok = false; - if (true) { - ok = true; - } else { - unittest_fail('if/else true'); - } - unittest_assertequals(ok, true, 'if/else true'); - ok = false; - if (false) { - unittest_fail('elseif 1'); - }else if (true) { - ok = true; - }else if (true) { - unittest_fail('elseif 2'); - } else { - unittest_fail('elseif 3'); - } - unittest_assertequals(ok, true, 'elseif 4'); -} - -/// Describe this function... -void test_ifelse() { - ok = false; - if (true) { - ok = true; - } else { - unittest_fail('ifelse true'); - } - unittest_assertequals(ok, true, 'ifelse true'); - ok = false; - if (false) { - unittest_fail('ifelse false'); - } else { - ok = true; - } - unittest_assertequals(ok, true, 'ifelse false'); -} - -/// Describe this function... -void test_equalities() { - unittest_assertequals(2 == 2, true, 'Equal yes'); - unittest_assertequals(3 == 4, false, 'Equal no'); - unittest_assertequals(5 != 6, true, 'Not equal yes'); - unittest_assertequals(3 == 4, false, 'Not equal no'); - unittest_assertequals(5 < 6, true, 'Smaller yes'); - unittest_assertequals(7 < 7, false, 'Smaller no'); - unittest_assertequals(9 > 8, true, 'Greater yes'); - unittest_assertequals(10 > 10, false, 'Greater no'); - unittest_assertequals(11 <= 11, true, 'Smaller-equal yes'); - unittest_assertequals(13 <= 12, false, 'Smaller-equal no'); - unittest_assertequals(14 >= 14, true, 'Greater-equal yes'); - unittest_assertequals(15 >= 16, false, 'Greater-equal no'); -} - -/// Describe this function... -void test_and() { - unittest_assertequals(true && true, true, 'And true/true'); - unittest_assertequals(false && true, false, 'And false/true'); - unittest_assertequals(true && false, false, 'And true/false'); - unittest_assertequals(false && false, false, 'And false/false'); -} - -/// Describe this function... -void test_or() { - unittest_assertequals(true || true, true, 'Or true/true'); - unittest_assertequals(false || true, true, 'Or false/true'); - unittest_assertequals(true || false, true, 'Or true/false'); - unittest_assertequals(false || false, false, 'Or false/false'); -} - -/// Describe this function... -void test_ternary() { - unittest_assertequals(true ? 42 : 99, 42, 'if true'); - unittest_assertequals(false ? 42 : 99, 99, 'if true'); -} - -/// Describe this function... -void test_foreach() { - log = ''; - for (var x in ['a', 'b', 'c']) { - log = [log, x].join(); - } - unittest_assertequals(log, 'abc', 'for loop'); -} - -/// Describe this function... -void test_repeat() { - count = 0; - for (int count2 = 0; count2 < 10; count2++) { - count = (count is num ? count : 0) + 1; - } - unittest_assertequals(count, 10, 'repeat 10'); -} - -/// Describe this function... -void test_while() { - while (false) { - unittest_fail('while 0'); - } - while (!true) { - unittest_fail('until 0'); - } - count = 1; - while (count != 10) { - count = (count is num ? count : 0) + 1; - } - unittest_assertequals(count, 10, 'while 10'); - count = 1; - while (!(count == 10)) { - count = (count is num ? count : 0) + 1; - } - unittest_assertequals(count, 10, 'until 10'); -} - -/// Describe this function... -void test_repeat_ext() { - count = 0; - for (int count3 = 0; count3 < 10; count3++) { - count = (count is num ? count : 0) + 1; - } - unittest_assertequals(count, 10, 'repeat 10'); -} - -/// Describe this function... -void test_count_by() { - log = ''; - for (x = 1; x <= 8; x += 2) { - log = [log, x].join(); - } - unittest_assertequals(log, '1357', 'count up ints'); - log = ''; - for (x = 8; x >= 1; x -= 2) { - log = [log, x].join(); - } - unittest_assertequals(log, '8642', 'count down ints'); - loglist = []; - for (x = 1; x <= 8; x += 1.5) { - loglist.add(x); - } - unittest_assertequals(loglist, [1, 2.5, 4, 5.5, 7], 'count with floats'); - loglist = []; - var x_start = 1 + 0; - var x_end = 8 + 0; - num x_inc = (1 - 2).abs(); - if (x_start > x_end) { - x_inc = -x_inc; - } - for (x = x_start; x_inc >= 0 ? x <= x_end : x >= x_end; x += x_inc) { - loglist.add(x); - } - unittest_assertequals(loglist, [1, 2, 3, 4, 5, 6, 7, 8], 'count up non-trivial ints'); - loglist = []; - var x_start2 = 8 + 0; - var x_end2 = 1 + 0; - num x_inc2 = 2; - if (x_start2 > x_end2) { - x_inc2 = -x_inc2; - } - for (x = x_start2; x_inc2 >= 0 ? x <= x_end2 : x >= x_end2; x += x_inc2) { - loglist.add(x); - } - unittest_assertequals(loglist, [8, 6, 4, 2], 'count down non-trivial ints'); - loglist = []; - var x_start3 = 5 + 0.5; - var x_end3 = 1 + 0; - num x_inc3 = (1 + 0).abs(); - if (x_start3 > x_end3) { - x_inc3 = -x_inc3; - } - for (x = x_start3; x_inc3 >= 0 ? x <= x_end3 : x >= x_end3; x += x_inc3) { - loglist.add(x); - } - unittest_assertequals(loglist, [5.5, 4.5, 3.5, 2.5, 1.5], 'count with floats'); -} - -/// Describe this function... -void test_count_loops() { - log = ''; - for (x = 1; x <= 8; x++) { - log = [log, x].join(); - } - unittest_assertequals(log, '12345678', 'count up'); - log = ''; - for (x = 8; x >= 1; x--) { - log = [log, x].join(); - } - unittest_assertequals(log, '87654321', 'count down'); - loglist = []; - var x_start4 = 1 + 0; - var x_end4 = 4 + 0; - num x_inc4 = 1; - if (x_start4 > x_end4) { - x_inc4 = -x_inc4; - } - for (x = x_start4; x_inc4 >= 0 ? x <= x_end4 : x >= x_end4; x += x_inc4) { - loglist.add(x); - } - unittest_assertequals(loglist, [1, 2, 3, 4], 'count up non-trivial'); - loglist = []; - var x_start5 = 3 + 1; - var x_end5 = 1 + 0; - num x_inc5 = 1; - if (x_start5 > x_end5) { - x_inc5 = -x_inc5; - } - for (x = x_start5; x_inc5 >= 0 ? x <= x_end5 : x >= x_end5; x += x_inc5) { - loglist.add(x); - } - unittest_assertequals(loglist, [4, 3, 2, 1], 'count down non-trivial'); -} - -/// Describe this function... -void test_continue() { - log = ''; - count = 0; - while (count != 8) { - count = (count is num ? count : 0) + 1; - if (count == 5) { - continue; - } - log = [log, count].join(); - } - unittest_assertequals(log, '1234678', 'while continue'); - log = ''; - count = 0; - while (!(count == 8)) { - count = (count is num ? count : 0) + 1; - if (count == 5) { - continue; - } - log = [log, count].join(); - } - unittest_assertequals(log, '1234678', 'until continue'); - log = ''; - for (x = 1; x <= 8; x++) { - if (x == 5) { - continue; - } - log = [log, x].join(); - } - unittest_assertequals(log, '1234678', 'count continue'); - log = ''; - for (var x in ['a', 'b', 'c', 'd']) { - if (x == 'c') { - continue; - } - log = [log, x].join(); - } - unittest_assertequals(log, 'abd', 'for continue'); -} - -/// Describe this function... -void test_break() { - count = 1; - while (count != 10) { - if (count == 5) { - break; - } - count = (count is num ? count : 0) + 1; - } - unittest_assertequals(count, 5, 'while break'); - count = 1; - while (!(count == 10)) { - if (count == 5) { - break; - } - count = (count is num ? count : 0) + 1; - } - unittest_assertequals(count, 5, 'until break'); - log = ''; - for (x = 1; x <= 8; x++) { - if (x == 5) { - break; - } - log = [log, x].join(); - } - unittest_assertequals(log, '1234', 'count break'); - log = ''; - for (var x in ['a', 'b', 'c', 'd']) { - if (x == 'c') { - break; - } - log = [log, x].join(); - } - unittest_assertequals(log, 'ab', 'for break'); -} - -/// Tests the "single" block. -void test_single() { - unittest_assertequals(Math.sqrt(25), 5, 'sqrt'); - unittest_assertequals((-25).abs(), 25, 'abs'); - unittest_assertequals(-(-25), 25, 'negate'); - unittest_assertequals(Math.log(1), 0, 'ln'); - unittest_assertequals(Math.log(100) / Math.log(10), 2, 'log10'); - unittest_assertequals(Math.exp(2), 7.38905609893065, 'exp'); - unittest_assertequals(Math.pow(10,2), 100, 'power10'); -} - -/// Tests the "arithmetic" block for all operations and checks -/// parenthesis are properly generated for different orders. -void test_arithmetic() { - unittest_assertequals(1 + 2, 3, 'add'); - unittest_assertequals(1 - 2, -1, 'subtract'); - unittest_assertequals(1 - (0 + 2), -1, 'subtract order with add'); - unittest_assertequals(1 - (0 - 2), 3, 'subtract order with subtract'); - unittest_assertequals(4 * 2.5, 10, 'multiply'); - unittest_assertequals(4 * (0 + 2.5), 10, 'multiply order'); - unittest_assertequals(8.2 / -5, -1.64, 'divide'); - unittest_assertequals(8.2 / (0 + -5), -1.64, 'divide order'); - unittest_assertequals(Math.pow(10, 4), 10000, 'power'); - unittest_assertequals(Math.pow(10, 0 + 4), 10000, 'power order'); -} - -/// Tests the "trig" block. -void test_trig() { - unittest_assertequals(Math.sin(90 / 180 * Math.pi), 1, 'sin'); - unittest_assertequals(Math.cos(180 / 180 * Math.pi), -1, 'cos'); - unittest_assertequals(Math.tan(0 / 180 * Math.pi), 0, 'tan'); - unittest_assertequals(Math.asin(-1) / Math.pi * 180, -90, 'asin'); - unittest_assertequals(Math.acos(1) / Math.pi * 180, 0, 'acos'); - unittest_assertequals(Math.atan(1) / Math.pi * 180, 45, 'atan'); -} - -/// Tests the "constant" blocks. -void test_constant() { - unittest_assertequals((Math.pi * 1000).floor(), 3141, 'const pi'); - unittest_assertequals((Math.e * 1000).floor(), 2718, 'const e'); - unittest_assertequals((((1 + Math.sqrt(5)) / 2) * 1000).floor(), 1618, 'const golden'); - unittest_assertequals((Math.sqrt2 * 1000).floor(), 1414, 'const sqrt 2'); - unittest_assertequals((Math.sqrt1_2 * 1000).floor(), 707, 'const sqrt 0.5'); - unittest_assertequals(9999 < double.infinity, true, 'const infinity'); -} - -bool math_isPrime(n) { - // https://en.wikipedia.org/wiki/Primality_test#Naive_methods - if (n == 2 || n == 3) { - return true; - } - // False if n is null, negative, is 1, or not whole. - // And false if n is divisible by 2 or 3. - if (n == null || n <= 1 || n % 1 != 0 || n % 2 == 0 || n % 3 == 0) { - return false; - } - // Check all the numbers of form 6k +/- 1, up to sqrt(n). - for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) { - if (n % (x - 1) == 0 || n % (x + 1) == 0) { - return false; - } - } - return true; -} - -/// Tests the "number property" blocks. -void test_number_properties() { - unittest_assertequals(42 % 2 == 0, true, 'even'); - unittest_assertequals(42.1 % 2 == 1, false, 'odd'); - unittest_assertequals(math_isPrime(5), true, 'prime 5'); - unittest_assertequals(math_isPrime(25), false, 'prime 25'); - unittest_assertequals(math_isPrime(-31.1), false, 'prime negative'); - unittest_assertequals(Math.pi % 1 == 0, false, 'whole'); - unittest_assertequals(double.infinity > 0, true, 'positive'); - unittest_assertequals(-42 < 0, true, 'negative'); - unittest_assertequals(42 % 2 == 0, true, 'divisible'); -} - -/// Tests the "round" block. -void test_round() { - unittest_assertequals(42.42.round(), 42, 'round'); - unittest_assertequals((-42.42).ceil(), -42, 'round up'); - unittest_assertequals(42.42.floor(), 42, 'round down'); -} - -/// Tests the "change" block. -void test_change() { - varToChange = 100; - varToChange = (varToChange is num ? varToChange : 0) + 42; - unittest_assertequals(varToChange, 142, 'change'); -} - -num math_sum(List myList) { - num sumVal = 0; - myList.forEach((num entry) {sumVal += entry;}); - return sumVal; -} - -num math_min(List myList) { - if (myList.isEmpty) return null; - num minVal = myList[0]; - myList.forEach((num entry) {minVal = Math.min(minVal, entry);}); - return minVal; -} - -num math_max(List myList) { - if (myList.isEmpty) return null; - num maxVal = myList[0]; - myList.forEach((num entry) {maxVal = Math.max(maxVal, entry);}); - return maxVal; -} - -num math_mean(List myList) { - // First filter list for numbers only. - List localList = new List.from(myList); - localList.removeWhere((a) => a is! num); - if (localList.isEmpty) return null; - num sumVal = 0; - localList.forEach((var entry) {sumVal += entry;}); - return sumVal / localList.length; -} - -num math_median(List myList) { - // First filter list for numbers only, then sort, then return middle value - // or the average of two middle values if list has an even number of elements. - List localList = new List.from(myList); - localList.removeWhere((a) => a is! num); - if (localList.isEmpty) return null; - localList.sort((a, b) => (a - b)); - int index = localList.length ~/ 2; - if (localList.length % 2 == 1) { - return localList[index]; - } else { - return (localList[index - 1] + localList[index]) / 2; - } -} - -List math_modes(List values) { - List modes = []; - List counts = []; - int maxCount = 0; - for (int i = 0; i < values.length; i++) { - var value = values[i]; - bool found = false; - int thisCount; - for (int j = 0; j < counts.length; j++) { - if (counts[j][0] == value) { - thisCount = ++counts[j][1]; - found = true; - break; - } - } - if (!found) { - counts.add([value, 1]); - thisCount = 1; - } - maxCount = Math.max(thisCount, maxCount); - } - for (int j = 0; j < counts.length; j++) { - if (counts[j][1] == maxCount) { - modes.add(counts[j][0]); - } - } - return modes; -} - -num math_standard_deviation(List myList) { - // First filter list for numbers only. - List numbers = new List.from(myList); - numbers.removeWhere((a) => a is! num); - if (numbers.isEmpty) return null; - num n = numbers.length; - num sum = 0; - numbers.forEach((x) => sum += x); - num mean = sum / n; - num sumSquare = 0; - numbers.forEach((x) => sumSquare += Math.pow(x - mean, 2)); - return Math.sqrt(sumSquare / n); -} - -dynamic math_random_item(List myList) { - int x = new Math.Random().nextInt(myList.length); - return myList[x]; -} - -/// Tests the "list operation" blocks. -void test_operations_on_list() { - unittest_assertequals(math_sum([3, 4, 5]), 12, 'sum'); - unittest_assertequals(math_min([3, 4, 5]), 3, 'min'); - unittest_assertequals(math_max([3, 4, 5]), 5, 'max'); - unittest_assertequals(math_mean([3, 4, 5]), 4, 'average'); - unittest_assertequals(math_median([3, 4, 5, 1]), 3.5, 'median'); - unittest_assertequals(math_modes([3, 4, 3]), [3], 'modes'); - unittest_assertequals(math_modes([3, 4, 3, 1, 4]), [3, 4], 'modes multiple'); - unittest_assertequals(math_standard_deviation([3, 3, 3]), 0, 'standard dev'); - unittest_assertequals([3, 4, 5].indexOf(math_random_item([3, 4, 5])) + 1 > 0, true, 'random'); -} - -/// Tests the "mod" block. -void test_mod() { - unittest_assertequals(42 % 5, 2, 'mod'); -} - -/// Tests the "constrain" block. -void test_constraint() { - unittest_assertequals(Math.min(Math.max(100, 0), 42), 42, 'constraint'); -} - -int math_random_int(num a, num b) { - if (a > b) { - // Swap a and b to ensure a is smaller. - num c = a; - a = b; - b = c; - } - return new Math.Random().nextInt(b - a + 1) + a; -} - -/// Tests the "random integer" block. -void test_random_integer() { - rand = math_random_int(5, 10); - unittest_assertequals(rand >= 5 && rand <= 10, true, 'randRange'); - unittest_assertequals(rand % 1 == 0, true, 'randInteger'); -} - -/// Tests the "random fraction" block. -void test_random_fraction() { - rand = new Math.Random().nextDouble(); - unittest_assertequals(rand >= 0 && rand <= 1, true, 'randFloat'); -} - -/// Describe this function... -void test_atan2() { - unittest_assertequals(Math.atan2(5, -5) / Math.pi * 180, 135, 'atan2'); - unittest_assertequals(Math.atan2(-12, 0) / Math.pi * 180, -90, 'atan2'); -} - -/// Checks that the number of calls is one in order -/// to confirm that a function was only called once. -void check_number_of_calls(test_name) { - test_name = [test_name, 'number of calls'].join(); - unittest_assertequals(number_of_calls, 1, test_name); -} - -/// Tests the "create text with" block with varying number of inputs. -void test_create_text() { - unittest_assertequals('', '', 'no text'); - unittest_assertequals('Hello'.toString(), 'Hello', 'create single'); - unittest_assertequals((-1).toString(), '-1', 'create single number'); - unittest_assertequals(['K',9].join(), 'K9', 'create double text'); - unittest_assertequals([4,2].join(), '42', 'create double text numbers'); - unittest_assertequals([1,2,3].join(), '123', 'create triple'); - unittest_assertequals([1,true ? 0 : null,'M'].join(), '10M', 'create order'); -} - -/// Creates an empty string for use with the empty test. -dynamic get_empty() { - return ''; -} - -/// Tests the "is empty" block". -void test_empty_text() { - unittest_assertequals('Google'.isEmpty, false, 'not empty'); - unittest_assertequals(''.isEmpty, true, 'empty'); - unittest_assertequals((get_empty()).isEmpty, true, 'empty complex'); - unittest_assertequals((true ? '' : null).isEmpty, true, 'empty order'); -} - -/// Tests the "length" block. -void test_text_length() { - unittest_assertequals(''.length, 0, 'zero length'); - unittest_assertequals('Google'.length, 6, 'non-zero length'); - unittest_assertequals((true ? 'car' : null).length, 3, 'length order'); -} - -/// Tests the "append text" block with different types of parameters. -void test_append() { - item = 'Miserable'; - item = [item, 'Failure'].join(); - unittest_assertequals(item, 'MiserableFailure', 'append text'); - item = 12; - item = [item, 34].join(); - unittest_assertequals(item, '1234', 'append number'); - item = 'Something '; - item = [item, true ? 'Positive' : null].join(); - unittest_assertequals(item, 'Something Positive', 'append order'); -} - -/// Tests the "find" block with a variable. -void test_find_text_simple() { - text = 'Banana'; - unittest_assertequals(text.indexOf('an') + 1, 2, 'find first simple'); - unittest_assertequals(text.lastIndexOf('an') + 1, 4, 'find last simple'); - unittest_assertequals(text.indexOf('Peel') + 1, 0, 'find none simple'); -} - -/// Creates a string for use with the find test. -dynamic get_fruit() { - number_of_calls = (number_of_calls is num ? number_of_calls : 0) + 1; - return 'Banana'; -} - -/// Tests the "find" block with a function call. -void test_find_text_complex() { - number_of_calls = 0; - unittest_assertequals((get_fruit()).indexOf('an') + 1, 2, 'find first complex'); - check_number_of_calls('find first complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_fruit() : null).indexOf('an') + 1, 2, 'find first order complex'); - check_number_of_calls('find first order complex'); - number_of_calls = 0; - unittest_assertequals((get_fruit()).lastIndexOf('an') + 1, 4, 'find last complex'); - check_number_of_calls('find last complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_fruit() : null).lastIndexOf('an') + 1, 4, 'find last order complex'); - check_number_of_calls('find last order complex'); - number_of_calls = 0; - unittest_assertequals((get_fruit()).indexOf('Peel') + 1, 0, 'find none complex'); - check_number_of_calls('find none complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_fruit() : null).indexOf('Peel') + 1, 0, 'find none order complex'); - check_number_of_calls('find none order complex'); -} - -String text_get_from_end(String text, num x) { - return text[text.length - x]; -} - -String text_random_letter(String text) { - int x = new Math.Random().nextInt(text.length); - return text[x]; -} - -/// Tests the "get letter" block with a variable. -void test_get_text_simple() { - text = 'Blockly'; - unittest_assertequals(text[0], 'B', 'get first simple'); - unittest_assertequals(text_get_from_end(text, 1), 'y', 'get last simple'); - unittest_assertequals(text.indexOf(text_random_letter(text)) + 1 > 0, true, 'get random simple'); - unittest_assertequals(text[2], 'o', 'get # simple'); - unittest_assertequals(text[((true ? 3 : null) - 1)], 'o', 'get # order simple'); - unittest_assertequals(text_get_from_end(text, 3), 'k', 'get #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(text_get_from_end(text, 0 + 3), 'k', 'get #-end order simple'); -} - -/// Creates a string for use with the get test. -dynamic get_Blockly() { - number_of_calls = (number_of_calls is num ? number_of_calls : 0) + 1; - return 'Blockly'; -} - -/// Tests the "get letter" block with a function call. -void test_get_text_complex() { - text = 'Blockly'; - number_of_calls = 0; - unittest_assertequals((get_Blockly())[0], 'B', 'get first complex'); - check_number_of_calls('get first complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_Blockly() : null)[0], 'B', 'get first order complex'); - check_number_of_calls('get first order complex'); - number_of_calls = 0; - unittest_assertequals(text_get_from_end((get_Blockly()), 1), 'y', 'get last complex'); - check_number_of_calls('get last complex'); - number_of_calls = 0; - unittest_assertequals(text_get_from_end((true ? get_Blockly() : null), 1), 'y', 'get last order complex'); - check_number_of_calls('get last order complex'); - number_of_calls = 0; - unittest_assertequals(text.indexOf(text_random_letter((get_Blockly()))) + 1 > 0, true, 'get random complex'); - check_number_of_calls('get random complex'); - number_of_calls = 0; - unittest_assertequals(text.indexOf(text_random_letter((true ? get_Blockly() : null))) + 1 > 0, true, 'get random order complex'); - check_number_of_calls('get random order complex'); - number_of_calls = 0; - unittest_assertequals((get_Blockly())[2], 'o', 'get # complex'); - check_number_of_calls('get # complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_Blockly() : null)[((true ? 3 : null) - 1)], 'o', 'get # order complex'); - check_number_of_calls('get # order complex'); - number_of_calls = 0; - unittest_assertequals(text_get_from_end((get_Blockly()), 3), 'k', 'get #-end complex'); - check_number_of_calls('get #-end complex'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(text_get_from_end((true ? get_Blockly() : null), 0 + 3), 'k', 'get #-end order complex'); - check_number_of_calls('get #-end order complex'); -} - -/// Creates a string for use with the substring test. -dynamic get_numbers() { - number_of_calls = (number_of_calls is num ? number_of_calls : 0) + 1; - return '123456789'; -} - -/// Tests the "get substring" block with a variable. -void test_substring_simple() { - text = '123456789'; - unittest_assertequals(text.substring(1, 3), '23', 'substring # simple'); - unittest_assertequals(text.substring(((true ? 2 : null) - 1), true ? 3 : null), '23', 'substring # simple order'); - unittest_assertequals(text.substring(text.length - 3, text.length - 1), '78', 'substring #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(text.substring(text.length - (0 + 3), text.length - ((0 + 2) - 1)), '78', 'substring #-end simple order'); - unittest_assertequals(text, text, 'substring first-last simple'); - unittest_assertequals(text.substring(1, text.length - 1), '2345678', 'substring # #-end simple'); - unittest_assertequals(text.substring(text.length - 7, 4), '34', 'substring #-end # simple'); - unittest_assertequals(text.substring(0, 4), '1234', 'substring first # simple'); - unittest_assertequals(text.substring(0, text.length - 1), '12345678', 'substring first #-end simple'); - unittest_assertequals(text.substring(6), '789', 'substring # last simple'); - unittest_assertequals(text.substring(text.length - 3), '789', 'substring #-end last simple'); - unittest_assertequals(text.substring(0, text.length - 0), '123456789', 'substring all with # #-end simple'); - unittest_assertequals(text.substring(text.length - 9, 9), '123456789', 'substring all with #-end # simple'); - // Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - unittest_assertequals(text.substring(((0 + 1) - 1), text.length - ((0 + 1) - 1)), '123456789', 'substring all with # #-end math simple'); -} - -String text_get_substring(String text, String where1, num at1, String where2, num at2) { - int getAt(String where, num at) { - if (where == 'FROM_END') { - at = text.length - 1 - at; - } else if (where == 'FIRST') { - at = 0; - } else if (where == 'LAST') { - at = text.length - 1; - } else if (where != 'FROM_START') { - throw 'Unhandled option (text_getSubstring).'; - } - return at; - } - at1 = getAt(where1, at1); - at2 = getAt(where2, at2) + 1; - return text.substring(at1, at2); -} - -/// Tests the "get substring" block with a function call. -void test_substring_complex() { - number_of_calls = 0; - unittest_assertequals((get_numbers()).substring(1, 3), '23', 'substring # complex'); - check_number_of_calls('substring # complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_numbers() : null).substring(((true ? 2 : null) - 1), true ? 3 : null), '23', 'substring # complex order'); - check_number_of_calls('substring # complex order'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_END', 2, 'FROM_END', 1), '78', 'substring #-end complex'); - check_number_of_calls('substring #-end complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((true ? get_numbers() : null), 'FROM_END', ((0 + 3) - 1), 'FROM_END', ((0 + 2) - 1)), '78', 'substring #-end order order'); - check_number_of_calls('substring #-end order order'); - number_of_calls = 0; - unittest_assertequals((get_numbers()), text, 'substring first-last'); - check_number_of_calls('substring first-last'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_START', 1, 'FROM_END', 1), '2345678', 'substring # #-end complex'); - check_number_of_calls('substring # #-end complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_END', 6, 'FROM_START', 3), '34', 'substring #-end # complex'); - check_number_of_calls('substring #-end # complex'); - number_of_calls = 0; - unittest_assertequals((get_numbers()).substring(0, 4), '1234', 'substring first # complex'); - check_number_of_calls('substring first # complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FIRST', 0, 'FROM_END', 1), '12345678', 'substring first #-end complex'); - check_number_of_calls('substring first #-end complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_START', 6, 'LAST', 0), '789', 'substring # last complex'); - check_number_of_calls('substring # last complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_END', 2, 'LAST', 0), '789', 'substring #-end last complex'); - check_number_of_calls('substring #-end last complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_START', 0, 'FROM_END', 0), '123456789', 'substring all with # #-end complex'); - check_number_of_calls('substring all with # #-end complex'); - number_of_calls = 0; - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_END', 8, 'FROM_START', 8), '123456789', 'substring all with #-end # complex'); - check_number_of_calls('substring all with #-end # complex'); - number_of_calls = 0; - // Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - unittest_assertequals(text_get_substring((get_numbers()), 'FROM_START', ((0 + 1) - 1), 'FROM_END', ((0 + 1) - 1)), '123456789', 'substring all with # #-end math complex'); - check_number_of_calls('substring all with # #-end math complex'); -} - -String text_toTitleCase(String str) { - RegExp exp = new RegExp(r'\b'); - List list = str.split(exp); - final title = new StringBuffer(); - for (String part in list) { - if (part.length > 0) { - title.write(part[0].toUpperCase()); - if (part.length > 0) { - title.write(part.substring(1).toLowerCase()); - } - } - } - return title.toString(); -} - -/// Tests the "change casing" block. -void test_case() { - text = 'Hello World'; - unittest_assertequals(text.toUpperCase(), 'HELLO WORLD', 'uppercase'); - unittest_assertequals((true ? text : null).toUpperCase(), 'HELLO WORLD', 'uppercase order'); - text = 'Hello World'; - unittest_assertequals(text.toLowerCase(), 'hello world', 'lowercase'); - unittest_assertequals((true ? text : null).toLowerCase(), 'hello world', 'lowercase order'); - text = 'heLLo WorlD'; - unittest_assertequals(text_toTitleCase(text), 'Hello World', 'titlecase'); - unittest_assertequals(text_toTitleCase(true ? text : null), 'Hello World', 'titlecase order'); -} - -/// Tests the "trim" block. -void test_trim() { - text = ' abc def '; - unittest_assertequals(text.trim(), 'abc def', 'trim both'); - unittest_assertequals((true ? text : null).trim(), 'abc def', 'trim both order'); - unittest_assertequals(text.replaceFirst(new RegExp(r'^\s+'), ''), 'abc def ', 'trim left'); - unittest_assertequals((true ? text : null).replaceFirst(new RegExp(r'^\s+'), ''), 'abc def ', 'trim left order'); - unittest_assertequals(text.replaceFirst(new RegExp(r'\s+$'), ''), ' abc def', 'trim right'); - unittest_assertequals((true ? text : null).replaceFirst(new RegExp(r'\s+$'), ''), ' abc def', 'trim right order'); -} - -int text_count(String haystack, String needle) { - if (needle.length == 0) { - return haystack.length + 1; - } - int index = 0; - int count = 0; - while (index != -1) { - index = haystack.indexOf(needle, index); - if (index != -1) { - count++; - index += needle.length; - } - } - return count; -} - -/// Tests the "trim" block. -void test_count_text() { - text = 'woolloomooloo'; - unittest_assertequals(text_count(text, 'o'), 8, 'len 1'); - unittest_assertequals(text_count(text, 'oo'), 4, 'len 2'); - unittest_assertequals(text_count(text, 'loo'), 2, 'len 3'); - unittest_assertequals(text_count(text, 'wool'), 1, 'start'); - unittest_assertequals(text_count(text, 'chicken'), 0, 'missing'); - unittest_assertequals(text_count(text, ''), 14, 'empty needle'); - unittest_assertequals(text_count('', 'chicken'), 0, 'empty source'); -} - -/// Tests the "trim" block. -void test_text_reverse() { - unittest_assertequals(new String.fromCharCodes(''.runes.toList().reversed), '', 'empty string'); - unittest_assertequals(new String.fromCharCodes('a'.runes.toList().reversed), 'a', 'len 1'); - unittest_assertequals(new String.fromCharCodes('ab'.runes.toList().reversed), 'ba', 'len 2'); - unittest_assertequals(new String.fromCharCodes('woolloomooloo'.runes.toList().reversed), 'ooloomoolloow', 'longer'); -} - -/// Tests the "trim" block. -void test_replace() { - unittest_assertequals('woolloomooloo'.replaceAll('oo', '123'), 'w123ll123m123l123', 'replace all instances 1'); - unittest_assertequals('woolloomooloo'.replaceAll('.oo', 'X'), 'woolloomooloo', 'literal string replacement'); - unittest_assertequals('woolloomooloo'.replaceAll('abc', 'X'), 'woolloomooloo', 'not found'); - unittest_assertequals('woolloomooloo'.replaceAll('o', ''), 'wllml', 'empty replacement 1'); - unittest_assertequals('aaaaa'.replaceAll('aaaaa', ''), '', 'empty replacement 2'); - unittest_assertequals('aaaaa'.replaceAll('a', ''), '', 'empty replacement 3'); - unittest_assertequals(''.replaceAll('a', 'chicken'), '', 'empty source'); -} - -/// Checks that the number of calls is one in order -/// to confirm that a function was only called once. -void check_number_of_calls2(test_name) { - test_name = [test_name, 'number of calls'].join(); - unittest_assertequals(number_of_calls, 1, test_name); -} - -/// Tests the "create list with" and "create empty list" blocks. -void test_create_lists() { - unittest_assertequals([], [], 'create empty'); - unittest_assertequals([true, 'love'], [true, 'love'], 'create items'); - unittest_assertequals(new List.filled(3, 'Eject'), ['Eject', 'Eject', 'Eject'], 'create repeated'); - unittest_assertequals(new List.filled(0 + 3, 'Eject'), ['Eject', 'Eject', 'Eject'], 'create repeated order'); -} - -/// Creates an empty list for use with the empty test. -dynamic get_empty_list() { - return []; -} - -/// Tests the "is empty" block. -void test_lists_empty() { - unittest_assertequals([0].isEmpty, false, 'not empty'); - unittest_assertequals([].isEmpty, true, 'empty'); - unittest_assertequals((get_empty_list()).isEmpty, true, 'empty complex'); - unittest_assertequals((true ? [] : null).isEmpty, true, 'empty order'); -} - -/// Tests the "length" block. -void test_lists_length() { - unittest_assertequals([].length, 0, 'zero length'); - unittest_assertequals(['cat'].length, 1, 'one length'); - unittest_assertequals(['cat', true, []].length, 3, 'three length'); - unittest_assertequals((true ? ['cat', true] : null).length, 2, 'two length order'); -} - -/// Tests the "find" block with a variable. -void test_find_lists_simple() { - list = ['Alice', 'Eve', 'Bob', 'Eve']; - unittest_assertequals(list.indexOf('Eve') + 1, 2, 'find first simple'); - unittest_assertequals(list.lastIndexOf('Eve') + 1, 4, 'find last simple'); - unittest_assertequals(list.indexOf('Dave') + 1, 0, 'find none simple'); -} - -/// Creates a list for use with the find test. -dynamic get_names() { - number_of_calls = (number_of_calls is num ? number_of_calls : 0) + 1; - return ['Alice', 'Eve', 'Bob', 'Eve']; -} - -/// Tests the "find" block with a function call. -void test_find_lists_complex() { - number_of_calls = 0; - unittest_assertequals((get_names()).indexOf('Eve') + 1, 2, 'find first complex'); - check_number_of_calls('find first complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_names() : null).indexOf('Eve') + 1, 2, 'find first order complex'); - check_number_of_calls('find first order complex'); - number_of_calls = 0; - unittest_assertequals((get_names()).lastIndexOf('Eve') + 1, 4, 'find last complex'); - check_number_of_calls('find last complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_names() : null).lastIndexOf('Eve') + 1, 4, 'find last order complex'); - check_number_of_calls('find last order complex'); - number_of_calls = 0; - unittest_assertequals((get_names()).indexOf('Dave') + 1, 0, 'find none complex'); - check_number_of_calls('find none complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_names() : null).indexOf('Dave') + 1, 0, 'find none order complex'); - check_number_of_calls('find none order complex'); -} - -dynamic lists_get_random_item(List my_list) { - int x = new Math.Random().nextInt(my_list.length); - return my_list[x]; -} - -/// Tests the "get" block with a variable. -void test_get_lists_simple() { - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.first, 'Kirk', 'get first simple'); - unittest_assertequals(list.last, 'McCoy', 'get last simple'); - unittest_assertequals(list.indexOf(lists_get_random_item(list)) + 1 > 0, true, 'get random simple'); - unittest_assertequals(list[1], 'Spock', 'get # simple'); - unittest_assertequals(list[((true ? 2 : null) - 1)], 'Spock', 'get # order simple'); - unittest_assertequals(list[list.length - 3], 'Kirk', 'get #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(list[list.length - (0 + 3)], 'Kirk', 'get #-end order simple'); -} - -/// Creates a list for use with the get test. -dynamic get_star_wars() { - number_of_calls = (number_of_calls is num ? number_of_calls : 0) + 1; - return ['Kirk', 'Spock', 'McCoy']; -} - -dynamic lists_get_from_end(List my_list, num x) { - x = my_list.length - x; - return my_list[x]; -} - -/// Tests the "get" block with a function call. -void test_get_lists_complex() { - list = ['Kirk', 'Spock', 'McCoy']; - number_of_calls = 0; - unittest_assertequals((get_star_wars()).first, 'Kirk', 'get first complex'); - check_number_of_calls('get first complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_star_wars() : null).first, 'Kirk', 'get first order complex'); - check_number_of_calls('get first order complex'); - number_of_calls = 0; - unittest_assertequals((get_star_wars()).last, 'McCoy', 'get last complex'); - check_number_of_calls('get last complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_star_wars() : null).last, 'McCoy', 'get last order complex'); - check_number_of_calls('get last order complex'); - number_of_calls = 0; - unittest_assertequals(list.indexOf(lists_get_random_item(get_star_wars())) + 1 > 0, true, 'get random complex'); - check_number_of_calls('get random complex'); - number_of_calls = 0; - unittest_assertequals(list.indexOf(lists_get_random_item(true ? get_star_wars() : null)) + 1 > 0, true, 'get random order complex'); - check_number_of_calls('get random order complex'); - number_of_calls = 0; - unittest_assertequals((get_star_wars())[1], 'Spock', 'get # complex'); - check_number_of_calls('get # complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_star_wars() : null)[((true ? 2 : null) - 1)], 'Spock', 'get # order complex'); - check_number_of_calls('get # order complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_from_end(get_star_wars(), 3), 'Kirk', 'get #-end complex'); - check_number_of_calls('get #-end complex'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(lists_get_from_end(true ? get_star_wars() : null, 0 + 3), 'Kirk', 'get #-end order complex'); - check_number_of_calls('get #-end order complex'); -} - -dynamic lists_remove_random_item(List my_list) { - int x = new Math.Random().nextInt(my_list.length); - return my_list.removeAt(x); -} - -dynamic lists_remove_from_end(List my_list, num x) { - x = my_list.length - x; - return my_list.removeAt(x); -} - -/// Tests the "get and remove" block. -void test_getRemove() { - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.removeAt(0), 'Kirk', 'getremove first'); - unittest_assertequals(list, ['Spock', 'McCoy'], 'getremove first list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals((true ? list : null).removeAt(0), 'Kirk', 'getremove first order'); - unittest_assertequals(list, ['Spock', 'McCoy'], 'getremove first order list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.removeLast(), 'McCoy', 'getremove last'); - unittest_assertequals(list, ['Kirk', 'Spock'], 'getremove last list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals((true ? list : null).removeLast(), 'McCoy', 'getremove last order'); - unittest_assertequals(list, ['Kirk', 'Spock'], 'getremove last order list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.indexOf(lists_remove_random_item(list)) + 1 == 0, true, 'getremove random'); - unittest_assertequals(list.length, 2, 'getremove random list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.indexOf(lists_remove_random_item(true ? list : null)) + 1 == 0, true, 'getremove random order'); - unittest_assertequals(list.length, 2, 'getremove random order list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.removeAt(1), 'Spock', 'getremove #'); - unittest_assertequals(list, ['Kirk', 'McCoy'], 'getremove # list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals((true ? list : null).removeAt(((true ? 2 : null) - 1)), 'Spock', 'getremove # order'); - unittest_assertequals(list, ['Kirk', 'McCoy'], 'getremove # order list'); - list = ['Kirk', 'Spock', 'McCoy']; - unittest_assertequals(list.removeAt(list.length - 3), 'Kirk', 'getremove #-end'); - unittest_assertequals(list, ['Spock', 'McCoy'], 'getremove #-end list'); - list = ['Kirk', 'Spock', 'McCoy']; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(lists_remove_from_end(true ? list : null, 0 + 3), 'Kirk', 'getremove #-end order'); - unittest_assertequals(list, ['Spock', 'McCoy'], 'getremove #-end order list'); -} - -/// Tests the "remove" block. -void test_remove() { - list = ['Kirk', 'Spock', 'McCoy']; - list.removeAt(0); - unittest_assertequals(list, ['Spock', 'McCoy'], 'remove first list'); - list = ['Kirk', 'Spock', 'McCoy']; - (true ? list : null).removeAt(0); - unittest_assertequals(list, ['Spock', 'McCoy'], 'remove first order list'); - list = ['Kirk', 'Spock', 'McCoy']; - list.removeLast(); - unittest_assertequals(list, ['Kirk', 'Spock'], 'remove last list'); - list = ['Kirk', 'Spock', 'McCoy']; - (true ? list : null).removeLast(); - unittest_assertequals(list, ['Kirk', 'Spock'], 'remove last order list'); - list = ['Kirk', 'Spock', 'McCoy']; - int tmp_x = new Math.Random().nextInt(list.length); - list.removeAt(tmp_x); - unittest_assertequals(list.length, 2, 'remove random list'); - list = ['Kirk', 'Spock', 'McCoy']; - List tmp_list = true ? list : null; - int tmp_x2 = new Math.Random().nextInt(tmp_list.length); - tmp_list.removeAt(tmp_x2); - unittest_assertequals(list.length, 2, 'remove random order list'); - list = ['Kirk', 'Spock', 'McCoy']; - list.removeAt(1); - unittest_assertequals(list, ['Kirk', 'McCoy'], 'remove # list'); - list = ['Kirk', 'Spock', 'McCoy']; - (true ? list : null).removeAt(((true ? 2 : null) - 1)); - unittest_assertequals(list, ['Kirk', 'McCoy'], 'remove # order list'); - list = ['Kirk', 'Spock', 'McCoy']; - list.removeAt(list.length - 3); - unittest_assertequals(list, ['Spock', 'McCoy'], 'remove #-end list'); - list = ['Kirk', 'Spock', 'McCoy']; - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - List tmp_list2 = true ? list : null; - tmp_list2.removeAt(tmp_list2.length - (0 + 3)); - unittest_assertequals(list, ['Spock', 'McCoy'], 'remove #-end order list'); -} - -/// Tests the "set" block. -void test_set() { - list = ['Picard', 'Riker', 'Crusher']; - list[0] = 'Jean-Luc'; - unittest_assertequals(list, ['Jean-Luc', 'Riker', 'Crusher'], 'set first list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null)[0] = 'Jean-Luc'; - unittest_assertequals(list, ['Jean-Luc', 'Riker', 'Crusher'], 'set first order list'); - list = ['Picard', 'Riker', 'Crusher']; - list[list.length - 1] = 'Beverly'; - unittest_assertequals(list, ['Picard', 'Riker', 'Beverly'], 'set last list'); - list = ['Picard', 'Riker', 'Crusher']; - List tmp_list3 = (true ? list : null); - tmp_list3[tmp_list3.length - 1] = 'Beverly'; - unittest_assertequals(list, ['Picard', 'Riker', 'Beverly'], 'set last order list'); - list = ['Picard', 'Riker', 'Crusher']; - int tmp_x3 = new Math.Random().nextInt(list.length); - list[tmp_x3] = 'Data'; - unittest_assertequals(list.length, 3, 'set random list'); - list = ['Picard', 'Riker', 'Crusher']; - List tmp_list4 = (true ? list : null); - int tmp_x4 = new Math.Random().nextInt(tmp_list4.length); - tmp_list4[tmp_x4] = 'Data'; - unittest_assertequals(list.length, 3, 'set random order list'); - list = ['Picard', 'Riker', 'Crusher']; - list[2] = 'Pulaski'; - unittest_assertequals(list, ['Picard', 'Riker', 'Pulaski'], 'set # list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null)[((true ? 3 : null) - 1)] = 'Pulaski'; - unittest_assertequals(list, ['Picard', 'Riker', 'Pulaski'], 'set # order list'); - list = ['Picard', 'Riker', 'Crusher']; - list[list.length - 1] = 'Pulaski'; - unittest_assertequals(list, ['Picard', 'Riker', 'Pulaski'], 'set #-end list'); - list = ['Picard', 'Riker', 'Crusher']; - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - List tmp_list5 = (true ? list : null); - tmp_list5[tmp_list5.length - (0 + 2)] = 'Pulaski'; - unittest_assertequals(list, ['Picard', 'Pulaski', 'Crusher'], 'set #-end order list'); -} - -/// Tests the "insert" block. -void test_insert() { - list = ['Picard', 'Riker', 'Crusher']; - list.insert(0, 'Data'); - unittest_assertequals(list, ['Data', 'Picard', 'Riker', 'Crusher'], 'insert first list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null).insert(0, 'Data'); - unittest_assertequals(list, ['Data', 'Picard', 'Riker', 'Crusher'], 'insert first order list'); - list = ['Picard', 'Riker', 'Crusher']; - list.add('Data'); - unittest_assertequals(list, ['Picard', 'Riker', 'Crusher', 'Data'], 'insert last list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null).add('Data'); - unittest_assertequals(list, ['Picard', 'Riker', 'Crusher', 'Data'], 'insert last order list'); - list = ['Picard', 'Riker', 'Crusher']; - int tmp_x5 = new Math.Random().nextInt(list.length); - list.insert(tmp_x5, 'Data'); - unittest_assertequals(list.length, 4, 'insert random list'); - list = ['Picard', 'Riker', 'Crusher']; - List tmp_list6 = (true ? list : null); - int tmp_x6 = new Math.Random().nextInt(tmp_list6.length); - tmp_list6.insert(tmp_x6, 'Data'); - unittest_assertequals(list.length, 4, 'insert random order list'); - list = ['Picard', 'Riker', 'Crusher']; - list.insert(2, 'Data'); - unittest_assertequals(list, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert # list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null).insert(((true ? 3 : null) - 1), 'Data'); - unittest_assertequals(list, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert # order list'); - list = ['Picard', 'Riker', 'Crusher']; - list.insert(list.length - 1, 'Data'); - unittest_assertequals(list, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert #-end list'); - list = ['Picard', 'Riker', 'Crusher']; - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - List tmp_list7 = (true ? list : null); - tmp_list7.insert(tmp_list7.length - (0 + 2), 'Data'); - unittest_assertequals(list, ['Picard', 'Data', 'Riker', 'Crusher'], 'insert #-end order list'); -} - -/// Tests the "get sub-list" block with a variable. -void test_sublist_simple() { - list = ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour']; - unittest_assertequals(list.sublist(1, 3), ['Challenger', 'Discovery'], 'sublist # simple'); - unittest_assertequals(list.sublist(((true ? 2 : null) - 1), true ? 3 : null), ['Challenger', 'Discovery'], 'sublist # simple order'); - unittest_assertequals(list.sublist(list.length - 3, list.length - 1), ['Discovery', 'Atlantis'], 'sublist #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(list.sublist(list.length - (0 + 3), list.length - ((0 + 2) - 1)), ['Discovery', 'Atlantis'], 'sublist #-end simple order'); - unittest_assertequals(list.sublist(0), list, 'sublist first-last simple'); - changing_list = ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour']; - list_copy = changing_list.sublist(0); - int tmp_x7 = new Math.Random().nextInt(changing_list.length); - changing_list.removeAt(tmp_x7); - unittest_assertequals(list_copy, list, 'sublist first-last simple copy check'); - unittest_assertequals(list.sublist(1, list.length - 1), ['Challenger', 'Discovery', 'Atlantis'], 'sublist # #-end simple'); - unittest_assertequals(list.sublist(list.length - 3, 4), ['Discovery', 'Atlantis'], 'sublist #-end # simple'); - unittest_assertequals(list.sublist(0, 4), ['Columbia', 'Challenger', 'Discovery', 'Atlantis'], 'sublist first # simple'); - unittest_assertequals(list.sublist(0, list.length - 3), ['Columbia', 'Challenger'], 'sublist first #-end simple'); - unittest_assertequals(list.sublist(3), ['Atlantis', 'Endeavour'], 'sublist # last simple'); - unittest_assertequals(list.sublist(list.length - 4), ['Challenger', 'Discovery', 'Atlantis', 'Endeavour'], 'sublist #-end last simple'); - unittest_assertequals(list.sublist(0, list.length - 0), list, 'sublist all with # #-end simple'); - unittest_assertequals(list.sublist(list.length - 5, 5), list, 'sublist all with #-end # simple'); - // Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - unittest_assertequals(list.sublist(((0 + 1) - 1), list.length - ((0 + 1) - 1)), list, 'sublist all with # #-end math simple'); -} - -/// Creates a list for use with the sublist test. -dynamic get_space_shuttles() { - number_of_calls = (number_of_calls is num ? number_of_calls : 0) + 1; - return ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour']; -} - -List lists_get_sublist(List list, String where1, num at1, String where2, num at2) { - int getAt(String where, num at) { - if (where == 'FROM_END') { - at = list.length - 1 - at; - } else if (where == 'FIRST') { - at = 0; - } else if (where == 'LAST') { - at = list.length - 1; - } else if (where != 'FROM_START') { - throw 'Unhandled option (lists_getSublist).'; - } - return at; - } - at1 = getAt(where1, at1); - at2 = getAt(where2, at2) + 1; - return list.sublist(at1, at2); -} - -/// Tests the "get sub-list" block with a function call. -void test_sublist_complex() { - number_of_calls = 0; - unittest_assertequals((get_space_shuttles()).sublist(1, 3), ['Challenger', 'Discovery'], 'sublist # start complex'); - check_number_of_calls('sublist # start complex'); - number_of_calls = 0; - unittest_assertequals((true ? get_space_shuttles() : null).sublist(((true ? 2 : null) - 1), true ? 3 : null), ['Challenger', 'Discovery'], 'sublist # start order complex'); - check_number_of_calls('sublist # start order complex'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_END', 2, 'FROM_END', 1), ['Discovery', 'Atlantis'], 'sublist # end complex'); - unittest_assertequals(number_of_calls, 1, 'sublist # end complex number of calls'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((true ? get_space_shuttles() : null), 'FROM_END', ((0 + 3) - 1), 'FROM_END', ((0 + 2) - 1)), ['Discovery', 'Atlantis'], 'sublist # end order complex'); - check_number_of_calls('sublist # end order complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FIRST', 0, 'LAST', 0), list, 'sublist first-last complex'); - check_number_of_calls('sublist first-last complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_START', 1, 'FROM_END', 1), ['Challenger', 'Discovery', 'Atlantis'], 'sublist # #-end complex'); - check_number_of_calls('sublist # #-end complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_END', 2, 'FROM_START', 3), ['Discovery', 'Atlantis'], 'sublist #-end # complex'); - check_number_of_calls('sublist #-end # complex'); - number_of_calls = 0; - unittest_assertequals((get_space_shuttles()).sublist(0, 4), ['Columbia', 'Challenger', 'Discovery', 'Atlantis'], 'sublist first # complex'); - check_number_of_calls('sublist first # complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FIRST', 0, 'FROM_END', 3), ['Columbia', 'Challenger'], 'sublist first #-end complex'); - check_number_of_calls('sublist first #-end complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_START', 3, 'LAST', 0), ['Atlantis', 'Endeavour'], 'sublist # last complex'); - check_number_of_calls('sublist # last complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_END', 3, 'LAST', 0), ['Challenger', 'Discovery', 'Atlantis', 'Endeavour'], 'sublist #-end last simple'); - check_number_of_calls('sublist #-end last simple'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_START', 0, 'FROM_END', 0), list, 'sublist all with # #-end complex'); - check_number_of_calls('sublist all with # #-end complex'); - number_of_calls = 0; - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_END', 4, 'FROM_START', 4), list, 'sublist all with #-end # complex'); - check_number_of_calls('sublist all with #-end # complex'); - number_of_calls = 0; - // Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - unittest_assertequals(lists_get_sublist((get_space_shuttles()), 'FROM_START', ((0 + 1) - 1), 'FROM_END', ((0 + 1) - 1)), list, 'sublist all with # #-end math complex'); - check_number_of_calls('sublist all with # #-end math complex'); -} - -/// Tests the "join" block. -void test_join() { - list = ['Vulcan', 'Klingon', 'Borg']; - unittest_assertequals(list.join(','), 'Vulcan,Klingon,Borg', 'join'); - unittest_assertequals((true ? list : null).join(','), 'Vulcan,Klingon,Borg', 'join order'); -} - -/// Tests the "split" block. -void test_split() { - text = 'Vulcan,Klingon,Borg'; - unittest_assertequals(text.split(','), ['Vulcan', 'Klingon', 'Borg'], 'split'); - unittest_assertequals((true ? text : null).split(','), ['Vulcan', 'Klingon', 'Borg'], 'split order'); -} - -List lists_sort(List list, String type, int direction) { - var compareFuncs = { - "NUMERIC": (a, b) => (direction * a.compareTo(b)).toInt(), - "TEXT": (a, b) => direction * a.toString().compareTo(b.toString()), - "IGNORE_CASE": - (a, b) => direction * - a.toString().toLowerCase().compareTo(b.toString().toLowerCase()) - }; - list = new List.from(list); - var compare = compareFuncs[type]; - list.sort(compare); - return list; -} - -/// Tests the "alphabetic sort" block. -void test_sort_alphabetic() { - list = ['Vulcan', 'klingon', 'Borg']; - unittest_assertequals(lists_sort(list, "TEXT", 1), ['Borg', 'Vulcan', 'klingon'], 'sort alphabetic ascending'); - unittest_assertequals(lists_sort(true ? list : null, "TEXT", 1), ['Borg', 'Vulcan', 'klingon'], 'sort alphabetic ascending order'); -} - -/// Tests the "alphabetic sort ignore case" block. -void test_sort_ignoreCase() { - list = ['Vulcan', 'klingon', 'Borg']; - unittest_assertequals(lists_sort(list, "IGNORE_CASE", 1), ['Borg', 'klingon', 'Vulcan'], 'sort ignore case ascending'); - unittest_assertequals(lists_sort(true ? list : null, "IGNORE_CASE", 1), ['Borg', 'klingon', 'Vulcan'], 'sort ignore case ascending order'); -} - -/// Tests the "numeric sort" block. -void test_sort_numeric() { - list = [8, 18, -1]; - unittest_assertequals(lists_sort(list, "NUMERIC", -1), [18, 8, -1], 'sort numeric descending'); - unittest_assertequals(lists_sort(true ? list : null, "NUMERIC", -1), [18, 8, -1], 'sort numeric descending order'); -} - -/// Tests the "list reverse" block. -void test_lists_reverse() { - list = [8, 18, -1, 64]; - unittest_assertequals(new List.from(list.reversed), [64, -1, 18, 8], 'reverse a copy'); - unittest_assertequals(list, [8, 18, -1, 64], 'reverse a copy original'); - list = []; - unittest_assertequals(new List.from(list.reversed), [], 'empty list'); -} - -/// Describe this function... -void test_colour_picker() { - unittest_assertequals('#ff6600', '#ff6600', 'static colour'); -} - -String colour_rgb(num r, num g, num b) { - num rn = (Math.max(Math.min(r, 100), 0) * 2.55).round(); - String rs = rn.toInt().toRadixString(16); - rs = '0$rs'; - rs = rs.substring(rs.length - 2); - num gn = (Math.max(Math.min(g, 100), 0) * 2.55).round(); - String gs = gn.toInt().toRadixString(16); - gs = '0$gs'; - gs = gs.substring(gs.length - 2); - num bn = (Math.max(Math.min(b, 100), 0) * 2.55).round(); - String bs = bn.toInt().toRadixString(16); - bs = '0$bs'; - bs = bs.substring(bs.length - 2); - return '#$rs$gs$bs'; -} - -/// Describe this function... -void test_rgb() { - unittest_assertequals(colour_rgb(100, 40, 0), '#ff6600', 'from rgb'); -} - -String colour_random() { - String hex = '0123456789abcdef'; - var rnd = new Math.Random(); - return '#${hex[rnd.nextInt(16)]}${hex[rnd.nextInt(16)]}' - '${hex[rnd.nextInt(16)]}${hex[rnd.nextInt(16)]}' - '${hex[rnd.nextInt(16)]}${hex[rnd.nextInt(16)]}'; -} - -/// Describe this function... -void test_colour_random() { - for (int count4 = 0; count4 < 100; count4++) { - item = colour_random(); - unittest_assertequals(item.length, 7, ['length of random colour string: ',item].join()); - unittest_assertequals(item[0], '#', ['format of random colour string: ',item].join()); - for (i = 1; i <= 6; i++) { - unittest_assertequals(0 != 'abcdefABDEF0123456789'.indexOf(item[((i + 1) - 1)]) + 1, true, ['contents of random colour string: ',item,' at index: ',i + 1].join()); - } - } -} - -String colour_blend(String c1, String c2, num ratio) { - ratio = Math.max(Math.min(ratio, 1), 0); - int r1 = int.parse('0x${c1.substring(1, 3)}'); - int g1 = int.parse('0x${c1.substring(3, 5)}'); - int b1 = int.parse('0x${c1.substring(5, 7)}'); - int r2 = int.parse('0x${c2.substring(1, 3)}'); - int g2 = int.parse('0x${c2.substring(3, 5)}'); - int b2 = int.parse('0x${c2.substring(5, 7)}'); - num rn = (r1 * (1 - ratio) + r2 * ratio).round(); - String rs = rn.toInt().toRadixString(16); - num gn = (g1 * (1 - ratio) + g2 * ratio).round(); - String gs = gn.toInt().toRadixString(16); - num bn = (b1 * (1 - ratio) + b2 * ratio).round(); - String bs = bn.toInt().toRadixString(16); - rs = '0$rs'; - rs = rs.substring(rs.length - 2); - gs = '0$gs'; - gs = gs.substring(gs.length - 2); - bs = '0$bs'; - bs = bs.substring(bs.length - 2); - return '#$rs$gs$bs'; -} - -/// Describe this function... -void test_blend() { - unittest_assertequals(colour_blend('#ff0000', colour_rgb(100, 40, 0), 0.4), '#ff2900', 'blend'); -} - -/// Describe this function... -void test_procedure() { - procedure_1(8, 2); - unittest_assertequals(proc_z, 4, 'procedure with global'); - proc_w = false; - procedure_2(false); - unittest_assertequals(proc_w, true, 'procedure no return'); - proc_w = false; - procedure_2(true); - unittest_assertequals(proc_w, false, 'procedure return'); -} - -/// Describe this function... -void procedure_1(proc_x, proc_y) { - proc_z = proc_x / proc_y; -} - -/// Describe this function... -void procedure_2(proc_x) { - if (proc_x) { - return; - } - proc_w = true; -} - -/// Describe this function... -void test_function() { - unittest_assertequals(function_1(2, 3), -1, 'function with arguments'); - unittest_assertequals(func_z, 'side effect', 'function with side effect'); - func_a = 'unchanged'; - func_c = 'global'; - unittest_assertequals(function_2(2), '3global', 'function with global'); - unittest_assertequals(func_a, 'unchanged', 'function with scope'); - unittest_assertequals(function_3(true), true, 'function return'); - unittest_assertequals(function_3(false), false, 'function no return'); -} - -/// Describe this function... -dynamic function_1(func_x, func_y) { - func_z = 'side effect'; - return func_x - func_y; -} - -/// Describe this function... -dynamic function_2(func_a) { - func_a = (func_a is num ? func_a : 0) + 1; - return [func_a,func_c].join(); -} - -/// Describe this function... -dynamic function_3(func_a) { - if (func_a) { - return true; - } - return false; -} - -/// Describe this function... -dynamic recurse(n) { - if (n > 0) { - text = [recurse(n - 1),n,recurse(n - 1)].join(); - } else { - text = '-'; - } - return text; -} - - -main() { - unittestResults = []; - print('\n====================\n\nRunning suite: Logic'); - unittest_assertequals(true, true, 'True'); - unittest_assertequals(false, false, 'False'); - unittest_assertequals(!false, true, 'Not true'); - unittest_assertequals(!true, false, 'Not false'); - test_if(); - test_ifelse(); - test_equalities(); - test_and(); - test_or(); - test_ternary(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Loops 1'); - test_repeat(); - test_repeat_ext(); - test_while(); - test_foreach(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Loops 2'); - test_count_loops(); - test_count_by(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Loops 3'); - test_break(); - test_continue(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Math'); - test_arithmetic(); - test_single(); - test_trig(); - test_constant(); - test_change(); - test_number_properties(); - test_round(); - test_operations_on_list(); - test_constraint(); - test_mod(); - test_random_integer(); - test_random_fraction(); - test_atan2(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Text'); - test_text_length(); - test_empty_text(); - test_create_text(); - test_append(); - test_find_text_simple(); - test_find_text_complex(); - test_get_text_simple(); - test_get_text_complex(); - test_substring_simple(); - test_substring_complex(); - test_case(); - test_trim(); - test_count_text(); - test_text_reverse(); - test_replace(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Lists'); - test_create_lists(); - test_lists_empty(); - test_lists_length(); - test_find_lists_simple(); - test_find_lists_complex(); - test_get_lists_simple(); - test_get_lists_complex(); - test_getRemove(); - test_remove(); - test_set(); - test_insert(); - test_sublist_simple(); - test_sublist_complex(); - test_join(); - test_split(); - test_sort_alphabetic(); - test_sort_ignoreCase(); - test_sort_numeric(); - test_lists_reverse(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Colour'); - test_colour_picker(); - test_blend(); - test_rgb(); - test_colour_random(); - print(unittest_report()); - unittestResults = null; - - unittestResults = []; - print('\n====================\n\nRunning suite: Variables'); - item = 123; - unittest_assertequals(item, 123, 'variable'); - if2 = 123; - unittest_assertequals(if2, 123, 'reserved variable'); - print(unittest_report()); - unittestResults = null; - - // Intentionally non-connected variable. - naked; - - unittestResults = []; - print('\n====================\n\nRunning suite: Functions'); - test_procedure(); - test_function(); - unittest_assertequals(recurse(3), '-1-2-1-3-1-2-1-', 'test recurse'); - print(unittest_report()); - unittestResults = null; -} \ No newline at end of file diff --git a/lib/blockly/tests/generators/golden/generated.js b/lib/blockly/tests/generators/golden/generated.js deleted file mode 100644 index c9b80a7..0000000 --- a/lib/blockly/tests/generators/golden/generated.js +++ /dev/null @@ -1,1603 +0,0 @@ -'use strict'; - -var unittestResults, test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy; - -function unittest_report() { - // Create test report. - var report = []; - var summary = []; - var fails = 0; - for (var i = 0; i < unittestResults.length; i++) { - if (unittestResults[i][0]) { - summary.push("."); - } else { - summary.push("F"); - fails++; - report.push(""); - report.push("FAIL: " + unittestResults[i][2]); - report.push(unittestResults[i][1]); - } - } - report.unshift(summary.join("")); - report.push(""); - report.push("Number of tests run: " + unittestResults.length); - report.push(""); - if (fails) { - report.push("FAILED (failures=" + fails + ")"); - } else { - report.push("OK"); - } - return report.join("\n"); -} - -function assertEquals(actual, expected, message) { - // Asserts that a value equals another value. - if (!unittestResults) { - throw "Orphaned assert: " + message; - } - function equals(a, b) { - if (a === b) { - return true; - } else if ((typeof a == "number") && (typeof b == "number") && - (a.toPrecision(15) == b.toPrecision(15))) { - return true; - } else if (a instanceof Array && b instanceof Array) { - if (a.length != b.length) { - return false; - } - for (var i = 0; i < a.length; i++) { - if (!equals(a[i], b[i])) { - return false; - } - } - return true; - } - return false; - } - if (equals(actual, expected)) { - unittestResults.push([true, "OK", message]); - } else { - unittestResults.push([false, "Expected: " + expected + "\nActual: " + actual, message]); - } -} - -function unittest_fail(message) { - // Always assert an error. - if (!unittestResults) { - throw "Orphaned assert fail: " + message; - } - unittestResults.push([false, "Fail.", message]); -} - -// Describe this function... -function test_if() { - if (false) { - unittest_fail('if false'); - } - ok = false; - if (true) { - ok = true; - } - assertEquals(ok, true, 'if true'); - ok = false; - if (false) { - unittest_fail('if/else false'); - } else { - ok = true; - } - assertEquals(ok, true, 'if/else false'); - ok = false; - if (true) { - ok = true; - } else { - unittest_fail('if/else true'); - } - assertEquals(ok, true, 'if/else true'); - ok = false; - if (false) { - unittest_fail('elseif 1'); - } else if (true) { - ok = true; - } else if (true) { - unittest_fail('elseif 2'); - } else { - unittest_fail('elseif 3'); - } - assertEquals(ok, true, 'elseif 4'); -} - -// Describe this function... -function test_ifelse() { - ok = false; - if (true) { - ok = true; - } else { - unittest_fail('ifelse true'); - } - assertEquals(ok, true, 'ifelse true'); - ok = false; - if (false) { - unittest_fail('ifelse false'); - } else { - ok = true; - } - assertEquals(ok, true, 'ifelse false'); -} - -// Describe this function... -function test_equalities() { - assertEquals(2 == 2, true, 'Equal yes'); - assertEquals(3 == 4, false, 'Equal no'); - assertEquals(5 != 6, true, 'Not equal yes'); - assertEquals(3 == 4, false, 'Not equal no'); - assertEquals(5 < 6, true, 'Smaller yes'); - assertEquals(7 < 7, false, 'Smaller no'); - assertEquals(9 > 8, true, 'Greater yes'); - assertEquals(10 > 10, false, 'Greater no'); - assertEquals(11 <= 11, true, 'Smaller-equal yes'); - assertEquals(13 <= 12, false, 'Smaller-equal no'); - assertEquals(14 >= 14, true, 'Greater-equal yes'); - assertEquals(15 >= 16, false, 'Greater-equal no'); -} - -// Describe this function... -function test_and() { - assertEquals(true && true, true, 'And true/true'); - assertEquals(false && true, false, 'And false/true'); - assertEquals(true && false, false, 'And true/false'); - assertEquals(false && false, false, 'And false/false'); -} - -// Describe this function... -function test_or() { - assertEquals(true || true, true, 'Or true/true'); - assertEquals(false || true, true, 'Or false/true'); - assertEquals(true || false, true, 'Or true/false'); - assertEquals(false || false, false, 'Or false/false'); -} - -// Describe this function... -function test_ternary() { - assertEquals(true ? 42 : 99, 42, 'if true'); - assertEquals(false ? 42 : 99, 99, 'if true'); -} - -// Describe this function... -function test_foreach() { - log = ''; - var x_list = ['a', 'b', 'c']; - for (var x_index in x_list) { - x = x_list[x_index]; - log += String(x); - } - assertEquals(log, 'abc', 'for loop'); -} - -// Describe this function... -function test_repeat() { - count = 0; - for (var count2 = 0; count2 < 10; count2++) { - count = (typeof count == 'number' ? count : 0) + 1; - } - assertEquals(count, 10, 'repeat 10'); -} - -// Describe this function... -function test_while() { - while (false) { - unittest_fail('while 0'); - } - while (!true) { - unittest_fail('until 0'); - } - count = 1; - while (count != 10) { - count = (typeof count == 'number' ? count : 0) + 1; - } - assertEquals(count, 10, 'while 10'); - count = 1; - while (!(count == 10)) { - count = (typeof count == 'number' ? count : 0) + 1; - } - assertEquals(count, 10, 'until 10'); -} - -// Describe this function... -function test_repeat_ext() { - count = 0; - for (var count3 = 0; count3 < 10; count3++) { - count = (typeof count == 'number' ? count : 0) + 1; - } - assertEquals(count, 10, 'repeat 10'); -} - -// Describe this function... -function test_count_by() { - log = ''; - for (x = 1; x <= 8; x += 2) { - log += String(x); - } - assertEquals(log, '1357', 'count up ints'); - log = ''; - for (x = 8; x >= 1; x -= 2) { - log += String(x); - } - assertEquals(log, '8642', 'count down ints'); - loglist = []; - for (x = 1; x <= 8; x += 1.5) { - loglist.push(x); - } - assertEquals(loglist, [1, 2.5, 4, 5.5, 7], 'count with floats'); - loglist = []; - var x_start = 1 + 0; - var x_end = 8 + 0; - var x_inc = Math.abs(1 - 2); - if (x_start > x_end) { - x_inc = -x_inc; - } - for (x = x_start; x_inc >= 0 ? x <= x_end : x >= x_end; x += x_inc) { - loglist.push(x); - } - assertEquals(loglist, [1, 2, 3, 4, 5, 6, 7, 8], 'count up non-trivial ints'); - loglist = []; - var x_start2 = 8 + 0; - var x_end2 = 1 + 0; - var x_inc2 = 2; - if (x_start2 > x_end2) { - x_inc2 = -x_inc2; - } - for (x = x_start2; x_inc2 >= 0 ? x <= x_end2 : x >= x_end2; x += x_inc2) { - loglist.push(x); - } - assertEquals(loglist, [8, 6, 4, 2], 'count down non-trivial ints'); - loglist = []; - var x_start3 = 5 + 0.5; - var x_end3 = 1 + 0; - var x_inc3 = Math.abs(1 + 0); - if (x_start3 > x_end3) { - x_inc3 = -x_inc3; - } - for (x = x_start3; x_inc3 >= 0 ? x <= x_end3 : x >= x_end3; x += x_inc3) { - loglist.push(x); - } - assertEquals(loglist, [5.5, 4.5, 3.5, 2.5, 1.5], 'count with floats'); -} - -// Describe this function... -function test_count_loops() { - log = ''; - for (x = 1; x <= 8; x++) { - log += String(x); - } - assertEquals(log, '12345678', 'count up'); - log = ''; - for (x = 8; x >= 1; x--) { - log += String(x); - } - assertEquals(log, '87654321', 'count down'); - loglist = []; - var x_start4 = 1 + 0; - var x_end4 = 4 + 0; - var x_inc4 = 1; - if (x_start4 > x_end4) { - x_inc4 = -x_inc4; - } - for (x = x_start4; x_inc4 >= 0 ? x <= x_end4 : x >= x_end4; x += x_inc4) { - loglist.push(x); - } - assertEquals(loglist, [1, 2, 3, 4], 'count up non-trivial'); - loglist = []; - var x_start5 = 3 + 1; - var x_end5 = 1 + 0; - var x_inc5 = 1; - if (x_start5 > x_end5) { - x_inc5 = -x_inc5; - } - for (x = x_start5; x_inc5 >= 0 ? x <= x_end5 : x >= x_end5; x += x_inc5) { - loglist.push(x); - } - assertEquals(loglist, [4, 3, 2, 1], 'count down non-trivial'); -} - -// Describe this function... -function test_continue() { - log = ''; - count = 0; - while (count != 8) { - count = (typeof count == 'number' ? count : 0) + 1; - if (count == 5) { - continue; - } - log += String(count); - } - assertEquals(log, '1234678', 'while continue'); - log = ''; - count = 0; - while (!(count == 8)) { - count = (typeof count == 'number' ? count : 0) + 1; - if (count == 5) { - continue; - } - log += String(count); - } - assertEquals(log, '1234678', 'until continue'); - log = ''; - for (x = 1; x <= 8; x++) { - if (x == 5) { - continue; - } - log += String(x); - } - assertEquals(log, '1234678', 'count continue'); - log = ''; - var x_list2 = ['a', 'b', 'c', 'd']; - for (var x_index2 in x_list2) { - x = x_list2[x_index2]; - if (x == 'c') { - continue; - } - log += String(x); - } - assertEquals(log, 'abd', 'for continue'); -} - -// Describe this function... -function test_break() { - count = 1; - while (count != 10) { - if (count == 5) { - break; - } - count = (typeof count == 'number' ? count : 0) + 1; - } - assertEquals(count, 5, 'while break'); - count = 1; - while (!(count == 10)) { - if (count == 5) { - break; - } - count = (typeof count == 'number' ? count : 0) + 1; - } - assertEquals(count, 5, 'until break'); - log = ''; - for (x = 1; x <= 8; x++) { - if (x == 5) { - break; - } - log += String(x); - } - assertEquals(log, '1234', 'count break'); - log = ''; - var x_list3 = ['a', 'b', 'c', 'd']; - for (var x_index3 in x_list3) { - x = x_list3[x_index3]; - if (x == 'c') { - break; - } - log += String(x); - } - assertEquals(log, 'ab', 'for break'); -} - -// Tests the "single" block. -function test_single() { - assertEquals(Math.sqrt(25), 5, 'sqrt'); - assertEquals(Math.abs(-25), 25, 'abs'); - assertEquals(-(-25), 25, 'negate'); - assertEquals(Math.log(1), 0, 'ln'); - assertEquals(Math.log(100) / Math.log(10), 2, 'log10'); - assertEquals(Math.exp(2), 7.38905609893065, 'exp'); - assertEquals(Math.pow(10,2), 100, 'power10'); -} - -// Tests the "arithmetic" block for all operations and checks -// parenthesis are properly generated for different orders. -function test_arithmetic() { - assertEquals(1 + 2, 3, 'add'); - assertEquals(1 - 2, -1, 'subtract'); - assertEquals(1 - (0 + 2), -1, 'subtract order with add'); - assertEquals(1 - (0 - 2), 3, 'subtract order with subtract'); - assertEquals(4 * 2.5, 10, 'multiply'); - assertEquals(4 * (0 + 2.5), 10, 'multiply order'); - assertEquals(8.2 / -5, -1.64, 'divide'); - assertEquals(8.2 / (0 + -5), -1.64, 'divide order'); - assertEquals(Math.pow(10, 4), 10000, 'power'); - assertEquals(Math.pow(10, 0 + 4), 10000, 'power order'); -} - -// Tests the "trig" block. -function test_trig() { - assertEquals(Math.sin(90 / 180 * Math.PI), 1, 'sin'); - assertEquals(Math.cos(180 / 180 * Math.PI), -1, 'cos'); - assertEquals(Math.tan(0 / 180 * Math.PI), 0, 'tan'); - assertEquals(Math.asin(-1) / Math.PI * 180, -90, 'asin'); - assertEquals(Math.acos(1) / Math.PI * 180, 0, 'acos'); - assertEquals(Math.atan(1) / Math.PI * 180, 45, 'atan'); -} - -// Tests the "constant" blocks. -function test_constant() { - assertEquals(Math.floor(Math.PI * 1000), 3141, 'const pi'); - assertEquals(Math.floor(Math.E * 1000), 2718, 'const e'); - assertEquals(Math.floor(((1 + Math.sqrt(5)) / 2) * 1000), 1618, 'const golden'); - assertEquals(Math.floor(Math.SQRT2 * 1000), 1414, 'const sqrt 2'); - assertEquals(Math.floor(Math.SQRT1_2 * 1000), 707, 'const sqrt 0.5'); - assertEquals(9999 < Infinity, true, 'const infinity'); -} - -function mathIsPrime(n) { - // https://en.wikipedia.org/wiki/Primality_test#Naive_methods - if (n == 2 || n == 3) { - return true; - } - // False if n is NaN, negative, is 1, or not whole. - // And false if n is divisible by 2 or 3. - if (isNaN(n) || n <= 1 || n % 1 != 0 || n % 2 == 0 || n % 3 == 0) { - return false; - } - // Check all the numbers of form 6k +/- 1, up to sqrt(n). - for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) { - if (n % (x - 1) == 0 || n % (x + 1) == 0) { - return false; - } - } - return true; -} - -// Tests the "number property" blocks. -function test_number_properties() { - assertEquals(42 % 2 == 0, true, 'even'); - assertEquals(42.1 % 2 == 1, false, 'odd'); - assertEquals(mathIsPrime(5), true, 'prime 5'); - assertEquals(mathIsPrime(25), false, 'prime 25'); - assertEquals(mathIsPrime(-31.1), false, 'prime negative'); - assertEquals(Math.PI % 1 == 0, false, 'whole'); - assertEquals(Infinity > 0, true, 'positive'); - assertEquals(-42 < 0, true, 'negative'); - assertEquals(42 % 2 == 0, true, 'divisible'); -} - -// Tests the "round" block. -function test_round() { - assertEquals(Math.round(42.42), 42, 'round'); - assertEquals(Math.ceil(-42.42), -42, 'round up'); - assertEquals(Math.floor(42.42), 42, 'round down'); -} - -// Tests the "change" block. -function test_change() { - varToChange = 100; - varToChange = (typeof varToChange == 'number' ? varToChange : 0) + 42; - assertEquals(varToChange, 142, 'change'); -} - -function mathMean(myList) { - return myList.reduce(function(x, y) {return x + y;}) / myList.length; -} - -function mathMedian(myList) { - var localList = myList.filter(function (x) {return typeof x == 'number';}); - if (!localList.length) return null; - localList.sort(function(a, b) {return b - a;}); - if (localList.length % 2 == 0) { - return (localList[localList.length / 2 - 1] + localList[localList.length / 2]) / 2; - } else { - return localList[(localList.length - 1) / 2]; - } -} - -function mathModes(values) { - var modes = []; - var counts = []; - var maxCount = 0; - for (var i = 0; i < values.length; i++) { - var value = values[i]; - var found = false; - var thisCount; - for (var j = 0; j < counts.length; j++) { - if (counts[j][0] === value) { - thisCount = ++counts[j][1]; - found = true; - break; - } - } - if (!found) { - counts.push([value, 1]); - thisCount = 1; - } - maxCount = Math.max(thisCount, maxCount); - } - for (var j = 0; j < counts.length; j++) { - if (counts[j][1] == maxCount) { - modes.push(counts[j][0]); - } - } - return modes; -} - -function mathStandardDeviation(numbers) { - var n = numbers.length; - if (!n) return null; - var mean = numbers.reduce(function(x, y) {return x + y;}) / n; - var variance = 0; - for (var j = 0; j < n; j++) { - variance += Math.pow(numbers[j] - mean, 2); - } - variance = variance / n; - return Math.sqrt(variance); -} - -function mathRandomList(list) { - var x = Math.floor(Math.random() * list.length); - return list[x]; -} - -// Tests the "list operation" blocks. -function test_operations_on_list() { - assertEquals([3, 4, 5].reduce(function(x, y) {return x + y;}), 12, 'sum'); - assertEquals(Math.min.apply(null, [3, 4, 5]), 3, 'min'); - assertEquals(Math.max.apply(null, [3, 4, 5]), 5, 'max'); - assertEquals(mathMean([3, 4, 5]), 4, 'average'); - assertEquals(mathMedian([3, 4, 5, 1]), 3.5, 'median'); - assertEquals(mathModes([3, 4, 3]), [3], 'modes'); - assertEquals(mathModes([3, 4, 3, 1, 4]), [3, 4], 'modes multiple'); - assertEquals(mathStandardDeviation([3, 3, 3]), 0, 'standard dev'); - assertEquals([3, 4, 5].indexOf(mathRandomList([3, 4, 5])) + 1 > 0, true, 'random'); -} - -// Tests the "mod" block. -function test_mod() { - assertEquals(42 % 5, 2, 'mod'); -} - -// Tests the "constrain" block. -function test_constraint() { - assertEquals(Math.min(Math.max(100, 0), 42), 42, 'constraint'); -} - -function mathRandomInt(a, b) { - if (a > b) { - // Swap a and b to ensure a is smaller. - var c = a; - a = b; - b = c; - } - return Math.floor(Math.random() * (b - a + 1) + a); -} - -// Tests the "random integer" block. -function test_random_integer() { - rand = mathRandomInt(5, 10); - assertEquals(rand >= 5 && rand <= 10, true, 'randRange'); - assertEquals(rand % 1 == 0, true, 'randInteger'); -} - -// Tests the "random fraction" block. -function test_random_fraction() { - rand = Math.random(); - assertEquals(rand >= 0 && rand <= 1, true, 'randFloat'); -} - -// Describe this function... -function test_atan2() { - assertEquals(Math.atan2(5, -5) / Math.PI * 180, 135, 'atan2'); - assertEquals(Math.atan2(-12, 0) / Math.PI * 180, -90, 'atan2'); -} - -// Checks that the number of calls is one in order -// to confirm that a function was only called once. -function check_number_of_calls(test_name) { - test_name += 'number of calls'; - assertEquals(number_of_calls, 1, test_name); -} - -// Tests the "create text with" block with varying number of inputs. -function test_create_text() { - assertEquals('', '', 'no text'); - assertEquals('Hello', 'Hello', 'create single'); - assertEquals(String(-1), '-1', 'create single number'); - assertEquals('K' + String(9), 'K9', 'create double text'); - assertEquals(String(4) + String(2), '42', 'create double text numbers'); - assertEquals([1,2,3].join(''), '123', 'create triple'); - assertEquals([1,true ? 0 : null,'M'].join(''), '10M', 'create order'); -} - -// Creates an empty string for use with the empty test. -function get_empty() { - return ''; -} - -// Tests the "is empty" block". -function test_empty_text() { - assertEquals(!'Google'.length, false, 'not empty'); - assertEquals(!''.length, true, 'empty'); - assertEquals(!get_empty().length, true, 'empty complex'); - assertEquals(!(true ? '' : null).length, true, 'empty order'); -} - -// Tests the "length" block. -function test_text_length() { - assertEquals(''.length, 0, 'zero length'); - assertEquals('Google'.length, 6, 'non-zero length'); - assertEquals((true ? 'car' : null).length, 3, 'length order'); -} - -// Tests the "append text" block with different types of parameters. -function test_append() { - item = 'Miserable'; - item += 'Failure'; - assertEquals(item, 'MiserableFailure', 'append text'); - item = 12; - item += String(34); - assertEquals(item, '1234', 'append number'); - item = 'Something '; - item += String(true ? 'Positive' : null); - assertEquals(item, 'Something Positive', 'append order'); -} - -// Tests the "find" block with a variable. -function test_find_text_simple() { - text = 'Banana'; - assertEquals(text.indexOf('an') + 1, 2, 'find first simple'); - assertEquals(text.lastIndexOf('an') + 1, 4, 'find last simple'); - assertEquals(text.indexOf('Peel') + 1, 0, 'find none simple'); -} - -// Creates a string for use with the find test. -function get_fruit() { - number_of_calls = (typeof number_of_calls == 'number' ? number_of_calls : 0) + 1; - return 'Banana'; -} - -// Tests the "find" block with a function call. -function test_find_text_complex() { - number_of_calls = 0; - assertEquals(get_fruit().indexOf('an') + 1, 2, 'find first complex'); - check_number_of_calls('find first complex'); - number_of_calls = 0; - assertEquals((true ? get_fruit() : null).indexOf('an') + 1, 2, 'find first order complex'); - check_number_of_calls('find first order complex'); - number_of_calls = 0; - assertEquals(get_fruit().lastIndexOf('an') + 1, 4, 'find last complex'); - check_number_of_calls('find last complex'); - number_of_calls = 0; - assertEquals((true ? get_fruit() : null).lastIndexOf('an') + 1, 4, 'find last order complex'); - check_number_of_calls('find last order complex'); - number_of_calls = 0; - assertEquals(get_fruit().indexOf('Peel') + 1, 0, 'find none complex'); - check_number_of_calls('find none complex'); - number_of_calls = 0; - assertEquals((true ? get_fruit() : null).indexOf('Peel') + 1, 0, 'find none order complex'); - check_number_of_calls('find none order complex'); -} - -function textRandomLetter(text) { - var x = Math.floor(Math.random() * text.length); - return text[x]; -} - -// Tests the "get letter" block with a variable. -function test_get_text_simple() { - text = 'Blockly'; - assertEquals(text.charAt(0), 'B', 'get first simple'); - assertEquals(text.slice(-1), 'y', 'get last simple'); - assertEquals(text.indexOf(textRandomLetter(text)) + 1 > 0, true, 'get random simple'); - assertEquals(text.charAt(2), 'o', 'get # simple'); - assertEquals(text.charAt(((true ? 3 : null) - 1)), 'o', 'get # order simple'); - assertEquals(text.slice(-3).charAt(0), 'k', 'get #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text.slice((-(0 + 3))).charAt(0), 'k', 'get #-end order simple'); -} - -// Creates a string for use with the get test. -function get_Blockly() { - number_of_calls = (typeof number_of_calls == 'number' ? number_of_calls : 0) + 1; - return 'Blockly'; -} - -// Tests the "get letter" block with a function call. -function test_get_text_complex() { - text = 'Blockly'; - number_of_calls = 0; - assertEquals(get_Blockly().charAt(0), 'B', 'get first complex'); - check_number_of_calls('get first complex'); - number_of_calls = 0; - assertEquals((true ? get_Blockly() : null).charAt(0), 'B', 'get first order complex'); - check_number_of_calls('get first order complex'); - number_of_calls = 0; - assertEquals(get_Blockly().slice(-1), 'y', 'get last complex'); - check_number_of_calls('get last complex'); - number_of_calls = 0; - assertEquals((true ? get_Blockly() : null).slice(-1), 'y', 'get last order complex'); - check_number_of_calls('get last order complex'); - number_of_calls = 0; - assertEquals(text.indexOf(textRandomLetter(get_Blockly())) + 1 > 0, true, 'get random complex'); - check_number_of_calls('get random complex'); - number_of_calls = 0; - assertEquals(text.indexOf(textRandomLetter(true ? get_Blockly() : null)) + 1 > 0, true, 'get random order complex'); - check_number_of_calls('get random order complex'); - number_of_calls = 0; - assertEquals(get_Blockly().charAt(2), 'o', 'get # complex'); - check_number_of_calls('get # complex'); - number_of_calls = 0; - assertEquals((true ? get_Blockly() : null).charAt(((true ? 3 : null) - 1)), 'o', 'get # order complex'); - check_number_of_calls('get # order complex'); - number_of_calls = 0; - assertEquals(get_Blockly().slice(-3).charAt(0), 'k', 'get #-end complex'); - check_number_of_calls('get #-end complex'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals((true ? get_Blockly() : null).slice((-(0 + 3))).charAt(0), 'k', 'get #-end order complex'); - check_number_of_calls('get #-end order complex'); -} - -// Creates a string for use with the substring test. -function get_numbers() { - number_of_calls = (typeof number_of_calls == 'number' ? number_of_calls : 0) + 1; - return '123456789'; -} - -// Tests the "get substring" block with a variable. -function test_substring_simple() { - text = '123456789'; - assertEquals(text.slice(1, 3), '23', 'substring # simple'); - assertEquals(text.slice(((true ? 2 : null) - 1), true ? 3 : null), '23', 'substring # simple order'); - assertEquals(text.slice(text.length - 3, text.length - 1), '78', 'substring #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text.slice(text.length - (0 + 3), text.length - ((0 + 2) - 1)), '78', 'substring #-end simple order'); - assertEquals(text, text, 'substring first-last simple'); - assertEquals(text.slice(1, text.length - 1), '2345678', 'substring # #-end simple'); - assertEquals(text.slice(text.length - 7, 4), '34', 'substring #-end # simple'); - assertEquals(text.slice(0, 4), '1234', 'substring first # simple'); - assertEquals(text.slice(0, text.length - 1), '12345678', 'substring first #-end simple'); - assertEquals(text.slice(6, text.length), '789', 'substring # last simple'); - assertEquals(text.slice(text.length - 3, text.length), '789', 'substring #-end last simple'); - assertEquals(text.slice(0, text.length - 0), '123456789', 'substring all with # #-end simple'); - assertEquals(text.slice(text.length - 9, 9), '123456789', 'substring all with #-end # simple'); - // Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(text.slice(((0 + 1) - 1), text.length - ((0 + 1) - 1)), '123456789', 'substring all with # #-end math simple'); -} - -function subsequenceFromEndFromEnd(sequence, at1, at2) { - var start = sequence.length - 1 - at1; - var end = sequence.length - 1 - at2 + 1; - return sequence.slice(start, end); -} - -function subsequenceFromStartFromEnd(sequence, at1, at2) { - var start = at1; - var end = sequence.length - 1 - at2 + 1; - return sequence.slice(start, end); -} - -function subsequenceFromEndFromStart(sequence, at1, at2) { - var start = sequence.length - 1 - at1; - var end = at2 + 1; - return sequence.slice(start, end); -} - -function subsequenceFirstFromEnd(sequence, at2) { - var start = 0; - var end = sequence.length - 1 - at2 + 1; - return sequence.slice(start, end); -} - -function subsequenceFromStartLast(sequence, at1) { - var start = at1; - var end = sequence.length - 1 + 1; - return sequence.slice(start, end); -} - -function subsequenceFromEndLast(sequence, at1) { - var start = sequence.length - 1 - at1; - var end = sequence.length - 1 + 1; - return sequence.slice(start, end); -} - -// Tests the "get substring" block with a function call. -function test_substring_complex() { - number_of_calls = 0; - assertEquals(get_numbers().slice(1, 3), '23', 'substring # complex'); - check_number_of_calls('substring # complex'); - number_of_calls = 0; - assertEquals((true ? get_numbers() : null).slice(((true ? 2 : null) - 1), true ? 3 : null), '23', 'substring # complex order'); - check_number_of_calls('substring # complex order'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(subsequenceFromEndFromEnd(get_numbers(), 2, 1), '78', 'substring #-end complex'); - check_number_of_calls('substring #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndFromEnd((true ? get_numbers() : null), ((0 + 3) - 1), ((0 + 2) - 1)), '78', 'substring #-end order order'); - check_number_of_calls('substring #-end order order'); - number_of_calls = 0; - assertEquals(get_numbers(), text, 'substring first-last'); - check_number_of_calls('substring first-last'); - number_of_calls = 0; - assertEquals(subsequenceFromStartFromEnd(get_numbers(), 1, 1), '2345678', 'substring # #-end complex'); - check_number_of_calls('substring # #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndFromStart(get_numbers(), 6, 3), '34', 'substring #-end # complex'); - check_number_of_calls('substring #-end # complex'); - number_of_calls = 0; - assertEquals(get_numbers().slice(0, 4), '1234', 'substring first # complex'); - check_number_of_calls('substring first # complex'); - number_of_calls = 0; - assertEquals(subsequenceFirstFromEnd(get_numbers(), 1), '12345678', 'substring first #-end complex'); - check_number_of_calls('substring first #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromStartLast(get_numbers(), 6), '789', 'substring # last complex'); - check_number_of_calls('substring # last complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndLast(get_numbers(), 2), '789', 'substring #-end last complex'); - check_number_of_calls('substring #-end last complex'); - number_of_calls = 0; - assertEquals(subsequenceFromStartFromEnd(get_numbers(), 0, 0), '123456789', 'substring all with # #-end complex'); - check_number_of_calls('substring all with # #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndFromStart(get_numbers(), 8, 8), '123456789', 'substring all with #-end # complex'); - check_number_of_calls('substring all with #-end # complex'); - number_of_calls = 0; - // Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(subsequenceFromStartFromEnd(get_numbers(), ((0 + 1) - 1), ((0 + 1) - 1)), '123456789', 'substring all with # #-end math complex'); - check_number_of_calls('substring all with # #-end math complex'); -} - -function textToTitleCase(str) { - return str.replace(/\S+/g, - function(txt) {return txt[0].toUpperCase() + txt.substring(1).toLowerCase();}); -} - -// Tests the "change casing" block. -function test_case() { - text = 'Hello World'; - assertEquals(text.toUpperCase(), 'HELLO WORLD', 'uppercase'); - assertEquals((true ? text : null).toUpperCase(), 'HELLO WORLD', 'uppercase order'); - text = 'Hello World'; - assertEquals(text.toLowerCase(), 'hello world', 'lowercase'); - assertEquals((true ? text : null).toLowerCase(), 'hello world', 'lowercase order'); - text = 'heLLo WorlD'; - assertEquals(textToTitleCase(text), 'Hello World', 'titlecase'); - assertEquals(textToTitleCase(true ? text : null), 'Hello World', 'titlecase order'); -} - -// Tests the "trim" block. -function test_trim() { - text = ' abc def '; - assertEquals(text.trim(), 'abc def', 'trim both'); - assertEquals((true ? text : null).trim(), 'abc def', 'trim both order'); - assertEquals(text.replace(/^[\s\xa0]+/, ''), 'abc def ', 'trim left'); - assertEquals((true ? text : null).replace(/^[\s\xa0]+/, ''), 'abc def ', 'trim left order'); - assertEquals(text.replace(/[\s\xa0]+$/, ''), ' abc def', 'trim right'); - assertEquals((true ? text : null).replace(/[\s\xa0]+$/, ''), ' abc def', 'trim right order'); -} - -function textCount(haystack, needle) { - if (needle.length === 0) { - return haystack.length + 1; - } else { - return haystack.split(needle).length - 1; - } -} - -// Tests the "trim" block. -function test_count_text() { - text = 'woolloomooloo'; - assertEquals(textCount(text, 'o'), 8, 'len 1'); - assertEquals(textCount(text, 'oo'), 4, 'len 2'); - assertEquals(textCount(text, 'loo'), 2, 'len 3'); - assertEquals(textCount(text, 'wool'), 1, 'start'); - assertEquals(textCount(text, 'chicken'), 0, 'missing'); - assertEquals(textCount(text, ''), 14, 'empty needle'); - assertEquals(textCount('', 'chicken'), 0, 'empty source'); -} - -// Tests the "trim" block. -function test_text_reverse() { - assertEquals(''.split('').reverse().join(''), '', 'empty string'); - assertEquals('a'.split('').reverse().join(''), 'a', 'len 1'); - assertEquals('ab'.split('').reverse().join(''), 'ba', 'len 2'); - assertEquals('woolloomooloo'.split('').reverse().join(''), 'ooloomoolloow', 'longer'); -} - -function textReplace(haystack, needle, replacement) { - needle = needle.replace(/([-()\[\]{}+?*.$\^|,:# 0, true, 'get random simple'); - assertEquals(list[1], 'Spock', 'get # simple'); - assertEquals(list[((true ? 2 : null) - 1)], 'Spock', 'get # order simple'); - assertEquals(list.slice(-3)[0], 'Kirk', 'get #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list.slice((-(0 + 3)))[0], 'Kirk', 'get #-end order simple'); -} - -// Creates a list for use with the get test. -function get_star_wars() { - number_of_calls = (typeof number_of_calls == 'number' ? number_of_calls : 0) + 1; - return ['Kirk', 'Spock', 'McCoy']; -} - -// Tests the "get" block with a function call. -function test_get_lists_complex() { - list = ['Kirk', 'Spock', 'McCoy']; - number_of_calls = 0; - assertEquals(get_star_wars()[0], 'Kirk', 'get first complex'); - check_number_of_calls('get first complex'); - number_of_calls = 0; - assertEquals((true ? get_star_wars() : null)[0], 'Kirk', 'get first order complex'); - check_number_of_calls('get first order complex'); - number_of_calls = 0; - assertEquals(get_star_wars().slice(-1)[0], 'McCoy', 'get last complex'); - check_number_of_calls('get last complex'); - number_of_calls = 0; - assertEquals((true ? get_star_wars() : null).slice(-1)[0], 'McCoy', 'get last order complex'); - check_number_of_calls('get last order complex'); - number_of_calls = 0; - assertEquals(list.indexOf(listsGetRandomItem(get_star_wars(), false)) + 1 > 0, true, 'get random complex'); - check_number_of_calls('get random complex'); - number_of_calls = 0; - assertEquals(list.indexOf(listsGetRandomItem(true ? get_star_wars() : null, false)) + 1 > 0, true, 'get random order complex'); - check_number_of_calls('get random order complex'); - number_of_calls = 0; - assertEquals(get_star_wars()[1], 'Spock', 'get # complex'); - check_number_of_calls('get # complex'); - number_of_calls = 0; - assertEquals((true ? get_star_wars() : null)[((true ? 2 : null) - 1)], 'Spock', 'get # order complex'); - check_number_of_calls('get # order complex'); - number_of_calls = 0; - assertEquals(get_star_wars().slice(-3)[0], 'Kirk', 'get #-end complex'); - check_number_of_calls('get #-end complex'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals((true ? get_star_wars() : null).slice((-(0 + 3)))[0], 'Kirk', 'get #-end order complex'); - check_number_of_calls('get #-end order complex'); -} - -// Tests the "get and remove" block. -function test_getRemove() { - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals(list.shift(), 'Kirk', 'getremove first'); - assertEquals(list, ['Spock', 'McCoy'], 'getremove first list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals((true ? list : null).shift(), 'Kirk', 'getremove first order'); - assertEquals(list, ['Spock', 'McCoy'], 'getremove first order list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals(list.pop(), 'McCoy', 'getremove last'); - assertEquals(list, ['Kirk', 'Spock'], 'getremove last list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals((true ? list : null).pop(), 'McCoy', 'getremove last order'); - assertEquals(list, ['Kirk', 'Spock'], 'getremove last order list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals(list.indexOf(listsGetRandomItem(list, true)) + 1 == 0, true, 'getremove random'); - assertEquals(list.length, 2, 'getremove random list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals(list.indexOf(listsGetRandomItem(true ? list : null, true)) + 1 == 0, true, 'getremove random order'); - assertEquals(list.length, 2, 'getremove random order list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals(list.splice(1, 1)[0], 'Spock', 'getremove #'); - assertEquals(list, ['Kirk', 'McCoy'], 'getremove # list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals((true ? list : null).splice(((true ? 2 : null) - 1), 1)[0], 'Spock', 'getremove # order'); - assertEquals(list, ['Kirk', 'McCoy'], 'getremove # order list'); - list = ['Kirk', 'Spock', 'McCoy']; - assertEquals(list.splice(-3, 1)[0], 'Kirk', 'getremove #-end'); - assertEquals(list, ['Spock', 'McCoy'], 'getremove #-end list'); - list = ['Kirk', 'Spock', 'McCoy']; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals((true ? list : null).splice((-(0 + 3)), 1)[0], 'Kirk', 'getremove #-end order'); - assertEquals(list, ['Spock', 'McCoy'], 'getremove #-end order list'); -} - -// Tests the "remove" block. -function test_remove() { - list = ['Kirk', 'Spock', 'McCoy']; - list.shift(); - assertEquals(list, ['Spock', 'McCoy'], 'remove first list'); - list = ['Kirk', 'Spock', 'McCoy']; - (true ? list : null).shift(); - assertEquals(list, ['Spock', 'McCoy'], 'remove first order list'); - list = ['Kirk', 'Spock', 'McCoy']; - list.pop(); - assertEquals(list, ['Kirk', 'Spock'], 'remove last list'); - list = ['Kirk', 'Spock', 'McCoy']; - (true ? list : null).pop(); - assertEquals(list, ['Kirk', 'Spock'], 'remove last order list'); - list = ['Kirk', 'Spock', 'McCoy']; - listsGetRandomItem(list, true); - assertEquals(list.length, 2, 'remove random list'); - list = ['Kirk', 'Spock', 'McCoy']; - listsGetRandomItem(true ? list : null, true); - assertEquals(list.length, 2, 'remove random order list'); - list = ['Kirk', 'Spock', 'McCoy']; - list.splice(1, 1); - assertEquals(list, ['Kirk', 'McCoy'], 'remove # list'); - list = ['Kirk', 'Spock', 'McCoy']; - (true ? list : null).splice(((true ? 2 : null) - 1), 1); - assertEquals(list, ['Kirk', 'McCoy'], 'remove # order list'); - list = ['Kirk', 'Spock', 'McCoy']; - list.splice(-3, 1);assertEquals(list, ['Spock', 'McCoy'], 'remove #-end list'); - list = ['Kirk', 'Spock', 'McCoy']; - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - (true ? list : null).splice((-(0 + 3)), 1);assertEquals(list, ['Spock', 'McCoy'], 'remove #-end order list'); -} - -// Tests the "set" block. -function test_set() { - list = ['Picard', 'Riker', 'Crusher']; - list[0] = 'Jean-Luc'; - assertEquals(list, ['Jean-Luc', 'Riker', 'Crusher'], 'set first list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null)[0] = 'Jean-Luc'; - assertEquals(list, ['Jean-Luc', 'Riker', 'Crusher'], 'set first order list'); - list = ['Picard', 'Riker', 'Crusher']; - list[list.length - 1] = 'Beverly'; - assertEquals(list, ['Picard', 'Riker', 'Beverly'], 'set last list'); - list = ['Picard', 'Riker', 'Crusher']; - var tmpList = (true ? list : null); - tmpList[tmpList.length - 1] = 'Beverly'; - assertEquals(list, ['Picard', 'Riker', 'Beverly'], 'set last order list'); - list = ['Picard', 'Riker', 'Crusher']; - var tmpX = Math.floor(Math.random() * list.length); - list[tmpX] = 'Data'; - assertEquals(list.length, 3, 'set random list'); - list = ['Picard', 'Riker', 'Crusher']; - var tmpList2 = (true ? list : null); - var tmpX2 = Math.floor(Math.random() * tmpList2.length); - tmpList2[tmpX2] = 'Data'; - assertEquals(list.length, 3, 'set random order list'); - list = ['Picard', 'Riker', 'Crusher']; - list[2] = 'Pulaski'; - assertEquals(list, ['Picard', 'Riker', 'Pulaski'], 'set # list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null)[((true ? 3 : null) - 1)] = 'Pulaski'; - assertEquals(list, ['Picard', 'Riker', 'Pulaski'], 'set # order list'); - list = ['Picard', 'Riker', 'Crusher']; - list[list.length - 1] = 'Pulaski'; - assertEquals(list, ['Picard', 'Riker', 'Pulaski'], 'set #-end list'); - list = ['Picard', 'Riker', 'Crusher']; - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - var tmpList3 = (true ? list : null); - tmpList3[tmpList3.length - (0 + 2)] = 'Pulaski'; - assertEquals(list, ['Picard', 'Pulaski', 'Crusher'], 'set #-end order list'); -} - -// Tests the "insert" block. -function test_insert() { - list = ['Picard', 'Riker', 'Crusher']; - list.unshift('Data'); - assertEquals(list, ['Data', 'Picard', 'Riker', 'Crusher'], 'insert first list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null).unshift('Data'); - assertEquals(list, ['Data', 'Picard', 'Riker', 'Crusher'], 'insert first order list'); - list = ['Picard', 'Riker', 'Crusher']; - list.push('Data'); - assertEquals(list, ['Picard', 'Riker', 'Crusher', 'Data'], 'insert last list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null).push('Data'); - assertEquals(list, ['Picard', 'Riker', 'Crusher', 'Data'], 'insert last order list'); - list = ['Picard', 'Riker', 'Crusher']; - var tmpX3 = Math.floor(Math.random() * list.length); - list.splice(tmpX3, 0, 'Data'); - assertEquals(list.length, 4, 'insert random list'); - list = ['Picard', 'Riker', 'Crusher']; - var tmpList4 = (true ? list : null); - var tmpX4 = Math.floor(Math.random() * tmpList4.length); - tmpList4.splice(tmpX4, 0, 'Data'); - assertEquals(list.length, 4, 'insert random order list'); - list = ['Picard', 'Riker', 'Crusher']; - list.splice(2, 0, 'Data'); - assertEquals(list, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert # list'); - list = ['Picard', 'Riker', 'Crusher']; - (true ? list : null).splice(((true ? 3 : null) - 1), 0, 'Data'); - assertEquals(list, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert # order list'); - list = ['Picard', 'Riker', 'Crusher']; - list.splice(list.length - 1, 0, 'Data'); - assertEquals(list, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert #-end list'); - list = ['Picard', 'Riker', 'Crusher']; - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - var tmpList5 = (true ? list : null); - tmpList5.splice(tmpList5.length - (0 + 2), 0, 'Data'); - assertEquals(list, ['Picard', 'Data', 'Riker', 'Crusher'], 'insert #-end order list'); -} - -// Tests the "get sub-list" block with a variable. -function test_sublist_simple() { - list = ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour']; - assertEquals(list.slice(1, 3), ['Challenger', 'Discovery'], 'sublist # simple'); - assertEquals(list.slice(((true ? 2 : null) - 1), true ? 3 : null), ['Challenger', 'Discovery'], 'sublist # simple order'); - assertEquals(list.slice(list.length - 3, list.length - 1), ['Discovery', 'Atlantis'], 'sublist #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list.slice(list.length - (0 + 3), list.length - ((0 + 2) - 1)), ['Discovery', 'Atlantis'], 'sublist #-end simple order'); - assertEquals(list.slice(0), list, 'sublist first-last simple'); - changing_list = ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour']; - list_copy = changing_list.slice(0); - listsGetRandomItem(changing_list, true); - assertEquals(list_copy, list, 'sublist first-last simple copy check'); - assertEquals(list.slice(1, list.length - 1), ['Challenger', 'Discovery', 'Atlantis'], 'sublist # #-end simple'); - assertEquals(list.slice(list.length - 3, 4), ['Discovery', 'Atlantis'], 'sublist #-end # simple'); - assertEquals(list.slice(0, 4), ['Columbia', 'Challenger', 'Discovery', 'Atlantis'], 'sublist first # simple'); - assertEquals(list.slice(0, list.length - 3), ['Columbia', 'Challenger'], 'sublist first #-end simple'); - assertEquals(list.slice(3, list.length), ['Atlantis', 'Endeavour'], 'sublist # last simple'); - assertEquals(list.slice(list.length - 4, list.length), ['Challenger', 'Discovery', 'Atlantis', 'Endeavour'], 'sublist #-end last simple'); - assertEquals(list.slice(0, list.length - 0), list, 'sublist all with # #-end simple'); - assertEquals(list.slice(list.length - 5, 5), list, 'sublist all with #-end # simple'); - // Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(list.slice(((0 + 1) - 1), list.length - ((0 + 1) - 1)), list, 'sublist all with # #-end math simple'); -} - -// Creates a list for use with the sublist test. -function get_space_shuttles() { - number_of_calls = (typeof number_of_calls == 'number' ? number_of_calls : 0) + 1; - return ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour']; -} - -// Tests the "get sub-list" block with a function call. -function test_sublist_complex() { - number_of_calls = 0; - assertEquals(get_space_shuttles().slice(1, 3), ['Challenger', 'Discovery'], 'sublist # start complex'); - check_number_of_calls('sublist # start complex'); - number_of_calls = 0; - assertEquals((true ? get_space_shuttles() : null).slice(((true ? 2 : null) - 1), true ? 3 : null), ['Challenger', 'Discovery'], 'sublist # start order complex'); - check_number_of_calls('sublist # start order complex'); - number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(subsequenceFromEndFromEnd(get_space_shuttles(), 2, 1), ['Discovery', 'Atlantis'], 'sublist # end complex'); - assertEquals(number_of_calls, 1, 'sublist # end complex number of calls'); - number_of_calls = 0; - assertEquals(subsequenceFromEndFromEnd((true ? get_space_shuttles() : null), ((0 + 3) - 1), ((0 + 2) - 1)), ['Discovery', 'Atlantis'], 'sublist # end order complex'); - check_number_of_calls('sublist # end order complex'); - number_of_calls = 0; - assertEquals(get_space_shuttles().slice(0), list, 'sublist first-last complex'); - check_number_of_calls('sublist first-last complex'); - number_of_calls = 0; - assertEquals(subsequenceFromStartFromEnd(get_space_shuttles(), 1, 1), ['Challenger', 'Discovery', 'Atlantis'], 'sublist # #-end complex'); - check_number_of_calls('sublist # #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndFromStart(get_space_shuttles(), 2, 3), ['Discovery', 'Atlantis'], 'sublist #-end # complex'); - check_number_of_calls('sublist #-end # complex'); - number_of_calls = 0; - assertEquals(get_space_shuttles().slice(0, 4), ['Columbia', 'Challenger', 'Discovery', 'Atlantis'], 'sublist first # complex'); - check_number_of_calls('sublist first # complex'); - number_of_calls = 0; - assertEquals(subsequenceFirstFromEnd(get_space_shuttles(), 3), ['Columbia', 'Challenger'], 'sublist first #-end complex'); - check_number_of_calls('sublist first #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromStartLast(get_space_shuttles(), 3), ['Atlantis', 'Endeavour'], 'sublist # last complex'); - check_number_of_calls('sublist # last complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndLast(get_space_shuttles(), 3), ['Challenger', 'Discovery', 'Atlantis', 'Endeavour'], 'sublist #-end last simple'); - check_number_of_calls('sublist #-end last simple'); - number_of_calls = 0; - assertEquals(subsequenceFromStartFromEnd(get_space_shuttles(), 0, 0), list, 'sublist all with # #-end complex'); - check_number_of_calls('sublist all with # #-end complex'); - number_of_calls = 0; - assertEquals(subsequenceFromEndFromStart(get_space_shuttles(), 4, 4), list, 'sublist all with #-end # complex'); - check_number_of_calls('sublist all with #-end # complex'); - number_of_calls = 0; - // Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(subsequenceFromStartFromEnd(get_space_shuttles(), ((0 + 1) - 1), ((0 + 1) - 1)), list, 'sublist all with # #-end math complex'); - check_number_of_calls('sublist all with # #-end math complex'); -} - -// Tests the "join" block. -function test_join() { - list = ['Vulcan', 'Klingon', 'Borg']; - assertEquals(list.join(','), 'Vulcan,Klingon,Borg', 'join'); - assertEquals((true ? list : null).join(','), 'Vulcan,Klingon,Borg', 'join order'); -} - -// Tests the "split" block. -function test_split() { - text = 'Vulcan,Klingon,Borg'; - assertEquals(text.split(','), ['Vulcan', 'Klingon', 'Borg'], 'split'); - assertEquals((true ? text : null).split(','), ['Vulcan', 'Klingon', 'Borg'], 'split order'); -} - -function listsGetSortCompare(type, direction) { - var compareFuncs = { - "NUMERIC": function(a, b) { - return Number(a) - Number(b); }, - "TEXT": function(a, b) { - return a.toString() > b.toString() ? 1 : -1; }, - "IGNORE_CASE": function(a, b) { - return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; }, - }; - var compare = compareFuncs[type]; - return function(a, b) { return compare(a, b) * direction; } -} - -// Tests the "alphabetic sort" block. -function test_sort_alphabetic() { - list = ['Vulcan', 'klingon', 'Borg']; - assertEquals(list.slice().sort(listsGetSortCompare("TEXT", 1)), ['Borg', 'Vulcan', 'klingon'], 'sort alphabetic ascending'); - assertEquals((true ? list : null).slice().sort(listsGetSortCompare("TEXT", 1)), ['Borg', 'Vulcan', 'klingon'], 'sort alphabetic ascending order'); -} - -// Tests the "alphabetic sort ignore case" block. -function test_sort_ignoreCase() { - list = ['Vulcan', 'klingon', 'Borg']; - assertEquals(list.slice().sort(listsGetSortCompare("IGNORE_CASE", 1)), ['Borg', 'klingon', 'Vulcan'], 'sort ignore case ascending'); - assertEquals((true ? list : null).slice().sort(listsGetSortCompare("IGNORE_CASE", 1)), ['Borg', 'klingon', 'Vulcan'], 'sort ignore case ascending order'); -} - -// Tests the "numeric sort" block. -function test_sort_numeric() { - list = [8, 18, -1]; - assertEquals(list.slice().sort(listsGetSortCompare("NUMERIC", -1)), [18, 8, -1], 'sort numeric descending'); - assertEquals((true ? list : null).slice().sort(listsGetSortCompare("NUMERIC", -1)), [18, 8, -1], 'sort numeric descending order'); -} - -// Tests the "list reverse" block. -function test_lists_reverse() { - list = [8, 18, -1, 64]; - assertEquals(list.slice().reverse(), [64, -1, 18, 8], 'reverse a copy'); - assertEquals(list, [8, 18, -1, 64], 'reverse a copy original'); - list = []; - assertEquals(list.slice().reverse(), [], 'empty list'); -} - -// Describe this function... -function test_colour_picker() { - assertEquals('#ff6600', '#ff6600', 'static colour'); -} - -function colourRgb(r, g, b) { - r = Math.max(Math.min(Number(r), 100), 0) * 2.55; - g = Math.max(Math.min(Number(g), 100), 0) * 2.55; - b = Math.max(Math.min(Number(b), 100), 0) * 2.55; - r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2); - g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2); - b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2); - return '#' + r + g + b; -} - -// Describe this function... -function test_rgb() { - assertEquals(colourRgb(100, 40, 0), '#ff6600', 'from rgb'); -} - -function colourRandom() { - var num = Math.floor(Math.random() * Math.pow(2, 24)); - return '#' + ('00000' + num.toString(16)).substr(-6); -} - -// Describe this function... -function test_colour_random() { - for (var count4 = 0; count4 < 100; count4++) { - item = colourRandom(); - assertEquals(item.length, 7, 'length of random colour string: ' + String(item)); - assertEquals(item.charAt(0), '#', 'format of random colour string: ' + String(item)); - for (i = 1; i <= 6; i++) { - assertEquals(0 != 'abcdefABDEF0123456789'.indexOf(item.charAt(((i + 1) - 1))) + 1, true, ['contents of random colour string: ',item,' at index: ',i + 1].join('')); - } - } -} - -function colourBlend(c1, c2, ratio) { - ratio = Math.max(Math.min(Number(ratio), 1), 0); - var r1 = parseInt(c1.substring(1, 3), 16); - var g1 = parseInt(c1.substring(3, 5), 16); - var b1 = parseInt(c1.substring(5, 7), 16); - var r2 = parseInt(c2.substring(1, 3), 16); - var g2 = parseInt(c2.substring(3, 5), 16); - var b2 = parseInt(c2.substring(5, 7), 16); - var r = Math.round(r1 * (1 - ratio) + r2 * ratio); - var g = Math.round(g1 * (1 - ratio) + g2 * ratio); - var b = Math.round(b1 * (1 - ratio) + b2 * ratio); - r = ('0' + (r || 0).toString(16)).slice(-2); - g = ('0' + (g || 0).toString(16)).slice(-2); - b = ('0' + (b || 0).toString(16)).slice(-2); - return '#' + r + g + b; -} - -// Describe this function... -function test_blend() { - assertEquals(colourBlend('#ff0000', colourRgb(100, 40, 0), 0.4), '#ff2900', 'blend'); -} - -// Describe this function... -function test_procedure() { - procedure_1(8, 2); - assertEquals(proc_z, 4, 'procedure with global'); - proc_w = false; - procedure_2(false); - assertEquals(proc_w, true, 'procedure no return'); - proc_w = false; - procedure_2(true); - assertEquals(proc_w, false, 'procedure return'); -} - -// Describe this function... -function procedure_1(proc_x, proc_y) { - proc_z = proc_x / proc_y; -} - -// Describe this function... -function procedure_2(proc_x) { - if (proc_x) { - return; - } - proc_w = true; -} - -// Describe this function... -function test_function() { - assertEquals(function_1(2, 3), -1, 'function with arguments'); - assertEquals(func_z, 'side effect', 'function with side effect'); - func_a = 'unchanged'; - func_c = 'global'; - assertEquals(function_2(2), '3global', 'function with global'); - assertEquals(func_a, 'unchanged', 'function with scope'); - assertEquals(function_3(true), true, 'function return'); - assertEquals(function_3(false), false, 'function no return'); -} - -// Describe this function... -function function_1(func_x, func_y) { - func_z = 'side effect'; - return func_x - func_y; -} - -// Describe this function... -function function_2(func_a) { - func_a = (typeof func_a == 'number' ? func_a : 0) + 1; - return String(func_a) + String(func_c); -} - -// Describe this function... -function function_3(func_a) { - if (func_a) { - return true; - } - return false; -} - -// Describe this function... -function recurse(n) { - if (n > 0) { - text = [recurse(n - 1),n,recurse(n - 1)].join(''); - } else { - text = '-'; - } - return text; -} - - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Logic') -assertEquals(true, true, 'True'); -assertEquals(false, false, 'False'); -assertEquals(!false, true, 'Not true'); -assertEquals(!true, false, 'Not false'); -test_if(); -test_ifelse(); -test_equalities(); -test_and(); -test_or(); -test_ternary(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Loops 1') -test_repeat(); -test_repeat_ext(); -test_while(); -test_foreach(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Loops 2') -test_count_loops(); -test_count_by(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Loops 3') -test_break(); -test_continue(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Math') -test_arithmetic(); -test_single(); -test_trig(); -test_constant(); -test_change(); -test_number_properties(); -test_round(); -test_operations_on_list(); -test_constraint(); -test_mod(); -test_random_integer(); -test_random_fraction(); -test_atan2(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Text') -test_text_length(); -test_empty_text(); -test_create_text(); -test_append(); -test_find_text_simple(); -test_find_text_complex(); -test_get_text_simple(); -test_get_text_complex(); -test_substring_simple(); -test_substring_complex(); -test_case(); -test_trim(); -test_count_text(); -test_text_reverse(); -test_replace(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Lists') -test_create_lists(); -test_lists_empty(); -test_lists_length(); -test_find_lists_simple(); -test_find_lists_complex(); -test_get_lists_simple(); -test_get_lists_complex(); -test_getRemove(); -test_remove(); -test_set(); -test_insert(); -test_sublist_simple(); -test_sublist_complex(); -test_join(); -test_split(); -test_sort_alphabetic(); -test_sort_ignoreCase(); -test_sort_numeric(); -test_lists_reverse(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Colour') -test_colour_picker(); -test_blend(); -test_rgb(); -test_colour_random(); -console.log(unittest_report()); -unittestResults = null; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Variables') -item = 123; -assertEquals(item, 123, 'variable'); -if2 = 123; -assertEquals(if2, 123, 'reserved variable'); -console.log(unittest_report()); -unittestResults = null; - -// Intentionally non-connected variable. -naked; - -unittestResults = []; -console.log('\n====================\n\nRunning suite: Functions') -test_procedure(); -test_function(); -assertEquals(recurse(3), '-1-2-1-3-1-2-1-', 'test recurse'); -console.log(unittest_report()); -unittestResults = null; diff --git a/lib/blockly/tests/generators/golden/generated.lua b/lib/blockly/tests/generators/golden/generated.lua deleted file mode 100644 index 9b6acfa..0000000 --- a/lib/blockly/tests/generators/golden/generated.lua +++ /dev/null @@ -1,1872 +0,0 @@ -function unittest_report() - -- Create test report. - local report = {} - local summary = {} - local fails = 0 - for _, v in pairs(unittestResults) do - if v["success"] then - table.insert(summary, ".") - else - table.insert(summary, "F") - fails = fails + 1 - table.insert(report, "FAIL: " .. v["title"]) - table.insert(report, v["log"]) - end - end - table.insert(report, 1, table.concat(summary)) - table.insert(report, "") - table.insert(report, "Number of tests run: " .. #unittestResults) - table.insert(report, "") - if fails > 0 then - table.insert(report, "FAILED (failures=" .. fails .. ")") - else - table.insert(report, "OK") - end - return table.concat(report, "\n") -end - -function assertEquals(actual, expected, message) - -- Asserts that a value equals another value. - assert(unittestResults ~= nil, "Orphaned assert equals: " .. message) - if type(actual) == "table" and type(expected) == "table" then - local lists_match = #actual == #expected - if lists_match then - for i, v1 in ipairs(actual) do - local v2 = expected[i] - if type(v1) == "number" and type(v2) == "number" then - if math.abs(v1 - v2) > 1e-9 then - lists_match = false - end - elseif v1 ~= v2 then - lists_match = false - end - end - end - if lists_match then - table.insert(unittestResults, {success=true, log="OK", title=message}) - return - else - -- produce the non-matching strings for a human-readable error - expected = "{" .. table.concat(expected, ", ") .. "}" - actual = "{" .. table.concat(actual, ", ") .. "}" - end - end - if actual == expected or (type(actual) == "number" and type(expected) == "number" and math.abs(actual - expected) < 1e-9) then - table.insert(unittestResults, {success=true, log="OK", title=message}) - else - table.insert(unittestResults, {success=false, log=string.format("Expected: %s\nActual: %s", tostring(expected), tostring(actual)), title=message}) - end -end - -function unittest_fail(message) - -- Always assert an error. - assert(unittestResults ~= nil, "Orphaned assert fail: " .. message) - table.insert(unittestResults, {success=false, log="Fail.", title=message}) -end - --- Describe this function... -function test_if() - if false then - unittest_fail('if false') - end - ok = false - if true then - ok = true - end - assertEquals(ok, true, 'if true') - ok = false - if false then - unittest_fail('if/else false') - else - ok = true - end - assertEquals(ok, true, 'if/else false') - ok = false - if true then - ok = true - else - unittest_fail('if/else true') - end - assertEquals(ok, true, 'if/else true') - ok = false - if false then - unittest_fail('elseif 1') - elseif true then - ok = true - elseif true then - unittest_fail('elseif 2') - else - unittest_fail('elseif 3') - end - assertEquals(ok, true, 'elseif 4') -end - - --- Describe this function... -function test_ifelse() - ok = false - if true then - ok = true - else - unittest_fail('ifelse true') - end - assertEquals(ok, true, 'ifelse true') - ok = false - if false then - unittest_fail('ifelse false') - else - ok = true - end - assertEquals(ok, true, 'ifelse false') -end - - --- Describe this function... -function test_equalities() - assertEquals(2 == 2, true, 'Equal yes') - assertEquals(3 == 4, false, 'Equal no') - assertEquals(5 ~= 6, true, 'Not equal yes') - assertEquals(3 == 4, false, 'Not equal no') - assertEquals(5 < 6, true, 'Smaller yes') - assertEquals(7 < 7, false, 'Smaller no') - assertEquals(9 > 8, true, 'Greater yes') - assertEquals(10 > 10, false, 'Greater no') - assertEquals(11 <= 11, true, 'Smaller-equal yes') - assertEquals(13 <= 12, false, 'Smaller-equal no') - assertEquals(14 >= 14, true, 'Greater-equal yes') - assertEquals(15 >= 16, false, 'Greater-equal no') -end - - --- Describe this function... -function test_and() - assertEquals(true and true, true, 'And true/true') - assertEquals(false and true, false, 'And false/true') - assertEquals(true and false, false, 'And true/false') - assertEquals(false and false, false, 'And false/false') -end - - --- Describe this function... -function test_or() - assertEquals(true or true, true, 'Or true/true') - assertEquals(false or true, true, 'Or false/true') - assertEquals(true or false, true, 'Or true/false') - assertEquals(false or false, false, 'Or false/false') -end - - --- Describe this function... -function test_ternary() - assertEquals(true and 42 or 99, 42, 'if true') - assertEquals(false and 42 or 99, 99, 'if true') -end - - --- Describe this function... -function test_foreach() - log = '' - for _, x in ipairs({'a', 'b', 'c'}) do - log = log .. x - end - assertEquals(log, 'abc', 'for loop') -end - - --- Describe this function... -function test_repeat() - count = 0 - for count2 = 1, 10 do - count = count + 1 - end - assertEquals(count, 10, 'repeat 10') -end - - --- Describe this function... -function test_while() - while false do - unittest_fail('while 0') - end - while not true do - unittest_fail('until 0') - end - count = 1 - while count ~= 10 do - count = count + 1 - end - assertEquals(count, 10, 'while 10') - count = 1 - while not (count == 10) do - count = count + 1 - end - assertEquals(count, 10, 'until 10') -end - - --- Describe this function... -function test_repeat_ext() - count = 0 - for count3 = 1, 10 do - count = count + 1 - end - assertEquals(count, 10, 'repeat 10') -end - - --- Describe this function... -function test_count_by() - log = '' - for x = 1, 8, 2 do - log = log .. x - end - assertEquals(log, '1357', 'count up ints') - log = '' - for x = 8, 1, -2 do - log = log .. x - end - assertEquals(log, '8642', 'count down ints') - loglist = {} - for x = 1, 8, 1.5 do - table.insert(loglist, #loglist + 1, x) - end - assertEquals(loglist, {1, 2.5, 4, 5.5, 7}, 'count with floats') - loglist = {} - x_inc = math.abs(1 - 2) - if (1 + 0) > (8 + 0) then - x_inc = -x_inc - end - for x = 1 + 0, 8 + 0, x_inc do - table.insert(loglist, #loglist + 1, x) - end - assertEquals(loglist, {1, 2, 3, 4, 5, 6, 7, 8}, 'count up non-trivial ints') - loglist = {} - x_inc2 = 2 - if (8 + 0) > (1 + 0) then - x_inc2 = -x_inc2 - end - for x = 8 + 0, 1 + 0, x_inc2 do - table.insert(loglist, #loglist + 1, x) - end - assertEquals(loglist, {8, 6, 4, 2}, 'count down non-trivial ints') - loglist = {} - x_inc3 = math.abs(1 + 0) - if (5 + 0.5) > (1 + 0) then - x_inc3 = -x_inc3 - end - for x = 5 + 0.5, 1 + 0, x_inc3 do - table.insert(loglist, #loglist + 1, x) - end - assertEquals(loglist, {5.5, 4.5, 3.5, 2.5, 1.5}, 'count with floats') -end - - --- Describe this function... -function test_count_loops() - log = '' - for x = 1, 8, 1 do - log = log .. x - end - assertEquals(log, '12345678', 'count up') - log = '' - for x = 8, 1, -1 do - log = log .. x - end - assertEquals(log, '87654321', 'count down') - loglist = {} - x_inc4 = 1 - if (1 + 0) > (4 + 0) then - x_inc4 = -x_inc4 - end - for x = 1 + 0, 4 + 0, x_inc4 do - table.insert(loglist, #loglist + 1, x) - end - assertEquals(loglist, {1, 2, 3, 4}, 'count up non-trivial') - loglist = {} - x_inc5 = 1 - if (3 + 1) > (1 + 0) then - x_inc5 = -x_inc5 - end - for x = 3 + 1, 1 + 0, x_inc5 do - table.insert(loglist, #loglist + 1, x) - end - assertEquals(loglist, {4, 3, 2, 1}, 'count down non-trivial') -end - - --- Describe this function... -function test_continue() - log = '' - count = 0 - while count ~= 8 do - count = count + 1 - if count == 5 then - goto continue - end - log = log .. count - ::continue:: - end - assertEquals(log, '1234678', 'while continue') - log = '' - count = 0 - while not (count == 8) do - count = count + 1 - if count == 5 then - goto continue - end - log = log .. count - ::continue:: - end - assertEquals(log, '1234678', 'until continue') - log = '' - for x = 1, 8, 1 do - if x == 5 then - goto continue - end - log = log .. x - ::continue:: - end - assertEquals(log, '1234678', 'count continue') - log = '' - for _, x in ipairs({'a', 'b', 'c', 'd'}) do - if x == 'c' then - goto continue - end - log = log .. x - ::continue:: - end - assertEquals(log, 'abd', 'for continue') -end - - --- Describe this function... -function test_break() - count = 1 - while count ~= 10 do - if count == 5 then - break - end - count = count + 1 - end - assertEquals(count, 5, 'while break') - count = 1 - while not (count == 10) do - if count == 5 then - break - end - count = count + 1 - end - assertEquals(count, 5, 'until break') - log = '' - for x = 1, 8, 1 do - if x == 5 then - break - end - log = log .. x - end - assertEquals(log, '1234', 'count break') - log = '' - for _, x in ipairs({'a', 'b', 'c', 'd'}) do - if x == 'c' then - break - end - log = log .. x - end - assertEquals(log, 'ab', 'for break') -end - - --- Tests the "single" block. -function test_single() - assertEquals(math.sqrt(25), 5, 'sqrt') - assertEquals(math.abs(-25), 25, 'abs') - assertEquals(-(-25), 25, 'negate') - assertEquals(math.log(1), 0, 'ln') - assertEquals(math.log(100, 10), 2, 'log10') - assertEquals(math.exp(2), 7.38905609893065, 'exp') - assertEquals(10 ^ 2, 100, 'power10') -end - - --- Tests the "arithmetic" block for all operations and checks --- parenthesis are properly generated for different orders. -function test_arithmetic() - assertEquals(1 + 2, 3, 'add') - assertEquals(1 - 2, -1, 'subtract') - assertEquals(1 - (0 + 2), -1, 'subtract order with add') - assertEquals(1 - (0 - 2), 3, 'subtract order with subtract') - assertEquals(4 * 2.5, 10, 'multiply') - assertEquals(4 * (0 + 2.5), 10, 'multiply order') - assertEquals(8.2 / -5, -1.64, 'divide') - assertEquals(8.2 / (0 + -5), -1.64, 'divide order') - assertEquals(10 ^ 4, 10000, 'power') - assertEquals(10 ^ (0 + 4), 10000, 'power order') -end - - --- Tests the "trig" block. -function test_trig() - assertEquals(math.sin(math.rad(90)), 1, 'sin') - assertEquals(math.cos(math.rad(180)), -1, 'cos') - assertEquals(math.tan(math.rad(0)), 0, 'tan') - assertEquals(math.deg(math.asin(-1)), -90, 'asin') - assertEquals(math.deg(math.acos(1)), 0, 'acos') - assertEquals(math.deg(math.atan(1)), 45, 'atan') -end - - --- Tests the "constant" blocks. -function test_constant() - assertEquals(math.floor(math.pi * 1000), 3141, 'const pi') - assertEquals(math.floor(math.exp(1) * 1000), 2718, 'const e') - assertEquals(math.floor(((1 + math.sqrt(5)) / 2) * 1000), 1618, 'const golden') - assertEquals(math.floor(math.sqrt(2) * 1000), 1414, 'const sqrt 2') - assertEquals(math.floor(math.sqrt(1 / 2) * 1000), 707, 'const sqrt 0.5') - assertEquals(9999 < math.huge, true, 'const infinity') -end - - -function math_isPrime(n) - -- https://en.wikipedia.org/wiki/Primality_test#Naive_methods - if n == 2 or n == 3 then - return true - end - -- False if n is NaN, negative, is 1, or not whole. - -- And false if n is divisible by 2 or 3. - if not(n > 1) or n % 1 ~= 0 or n % 2 == 0 or n % 3 == 0 then - return false - end - -- Check all the numbers of form 6k +/- 1, up to sqrt(n). - for x = 6, math.sqrt(n) + 1.5, 6 do - if n % (x - 1) == 0 or n % (x + 1) == 0 then - return false - end - end - return true -end - --- Tests the "number property" blocks. -function test_number_properties() - assertEquals(42 % 2 == 0, true, 'even') - assertEquals(42.1 % 2 == 1, false, 'odd') - assertEquals(math_isPrime(5), true, 'prime 5') - assertEquals(math_isPrime(25), false, 'prime 25') - assertEquals(math_isPrime(-31.1), false, 'prime negative') - assertEquals(math.pi % 1 == 0, false, 'whole') - assertEquals(math.huge > 0, true, 'positive') - assertEquals(-42 < 0, true, 'negative') - assertEquals(42 % 2 == 0, true, 'divisible') -end - - --- Tests the "round" block. -function test_round() - assertEquals(math.floor(42.42 + .5), 42, 'round') - assertEquals(math.ceil(-42.42), -42, 'round up') - assertEquals(math.floor(42.42), 42, 'round down') -end - - --- Tests the "change" block. -function test_change() - varToChange = 100 - varToChange = varToChange + 42 - assertEquals(varToChange, 142, 'change') -end - - -function math_sum(t) - local result = 0 - for _, v in ipairs(t) do - result = result + v - end - return result -end - -function math_min(t) - if #t == 0 then - return 0 - end - local result = math.huge - for _, v in ipairs(t) do - if v < result then - result = v - end - end - return result -end - -function math_max(t) - if #t == 0 then - return 0 - end - local result = -math.huge - for _, v in ipairs(t) do - if v > result then - result = v - end - end - return result -end - -function math_average(t) - if #t == 0 then - return 0 - end - return math_sum(t) / #t -end - -function math_median(t) - -- Source: http://lua-users.org/wiki/SimpleStats - if #t == 0 then - return 0 - end - local temp={} - for _, v in ipairs(t) do - if type(v) == "number" then - table.insert(temp, v) - end - end - table.sort(temp) - if #temp % 2 == 0 then - return (temp[#temp/2] + temp[(#temp/2)+1]) / 2 - else - return temp[math.ceil(#temp/2)] - end -end - -function math_modes(t) - -- Source: http://lua-users.org/wiki/SimpleStats - local counts={} - for _, v in ipairs(t) do - if counts[v] == nil then - counts[v] = 1 - else - counts[v] = counts[v] + 1 - end - end - local biggestCount = 0 - for _, v in pairs(counts) do - if v > biggestCount then - biggestCount = v - end - end - local temp={} - for k, v in pairs(counts) do - if v == biggestCount then - table.insert(temp, k) - end - end - return temp -end - -function math_standard_deviation(t) - local m - local vm - local total = 0 - local count = 0 - local result - m = #t == 0 and 0 or math_sum(t) / #t - for _, v in ipairs(t) do - if type(v) == 'number' then - vm = v - m - total = total + (vm * vm) - count = count + 1 - end - end - result = math.sqrt(total / (count-1)) - return result -end - -function math_random_list(t) - if #t == 0 then - return nil - end - return t[math.random(#t)] -end - -function first_index(t, elem) - for k, v in ipairs(t) do - if v == elem then - return k - end - end - return 0 -end - --- Tests the "list operation" blocks. -function test_operations_on_list() - assertEquals(math_sum({3, 4, 5}), 12, 'sum') - assertEquals(math_min({3, 4, 5}), 3, 'min') - assertEquals(math_max({3, 4, 5}), 5, 'max') - assertEquals(math_average({3, 4, 5}), 4, 'average') - assertEquals(math_median({3, 4, 5, 1}), 3.5, 'median') - assertEquals(math_modes({3, 4, 3}), {3}, 'modes') - assertEquals(math_modes({3, 4, 3, 1, 4}), {3, 4}, 'modes multiple') - assertEquals(math_standard_deviation({3, 3, 3}), 0, 'standard dev') - assertEquals(first_index({3, 4, 5}, math_random_list({3, 4, 5})) > 0, true, 'random') -end - - --- Tests the "mod" block. -function test_mod() - assertEquals(42 % 5, 2, 'mod') -end - - --- Tests the "constrain" block. -function test_constraint() - assertEquals(math.min(math.max(100, 0), 42), 42, 'constraint') -end - - --- Tests the "random integer" block. -function test_random_integer() - rand = math.random(5, 10) - assertEquals(rand >= 5 and rand <= 10, true, 'randRange') - assertEquals(rand % 1 == 0, true, 'randInteger') -end - - --- Tests the "random fraction" block. -function test_random_fraction() - rand = math.random() - assertEquals(rand >= 0 and rand <= 1, true, 'randFloat') -end - - --- Describe this function... -function test_atan2() - assertEquals(math.deg(math.atan2(5, -5)), 135, 'atan2') - assertEquals(math.deg(math.atan2(-12, 0)), -90, 'atan2') -end - - --- Checks that the number of calls is one in order --- to confirm that a function was only called once. -function check_number_of_calls(test_name) - test_name = test_name .. 'number of calls' - assertEquals(number_of_calls, 1, test_name) -end - - --- Tests the "create text with" block with varying number of inputs. -function test_create_text() - assertEquals('', '', 'no text') - assertEquals(tostring('Hello'), 'Hello', 'create single') - assertEquals(tostring(-1), '-1', 'create single number') - assertEquals('K' .. 9, 'K9', 'create double text') - assertEquals(4 .. 2, '42', 'create double text numbers') - assertEquals(table.concat({1, 2, 3}), '123', 'create triple') - assertEquals(table.concat({1, true and 0 or nil, 'M'}), '10M', 'create order') -end - - --- Creates an empty string for use with the empty test. -function get_empty() - return '' -end - - --- Tests the "is empty" block". -function test_empty_text() - assertEquals(#'Google' == 0, false, 'not empty') - assertEquals(#'' == 0, true, 'empty') - assertEquals(#get_empty() == 0, true, 'empty complex') - assertEquals(#(true and '' or nil) == 0, true, 'empty order') -end - - --- Tests the "length" block. -function test_text_length() - assertEquals(#'', 0, 'zero length') - assertEquals(#'Google', 6, 'non-zero length') - assertEquals(#(true and 'car' or nil), 3, 'length order') -end - - --- Tests the "append text" block with different types of parameters. -function test_append() - item = 'Miserable' - item = item .. 'Failure' - assertEquals(item, 'MiserableFailure', 'append text') - item = 12 - item = item .. 34 - assertEquals(item, '1234', 'append number') - item = 'Something ' - item = item .. (true and 'Positive' or nil) - assertEquals(item, 'Something Positive', 'append order') -end - - -function firstIndexOf(str, substr) - local i = string.find(str, substr, 1, true) - if i == nil then - return 0 - else - return i - end -end - -function lastIndexOf(str, substr) - local i = string.find(string.reverse(str), string.reverse(substr), 1, true) - if i then - return #str + 2 - i - #substr - end - return 0 -end - --- Tests the "find" block with a variable. -function test_find_text_simple() - text = 'Banana' - assertEquals(firstIndexOf(text, 'an'), 2, 'find first simple') - assertEquals(lastIndexOf(text, 'an'), 4, 'find last simple') - assertEquals(firstIndexOf(text, 'Peel'), 0, 'find none simple') -end - - --- Creates a string for use with the find test. -function get_fruit() - number_of_calls = number_of_calls + 1 - return 'Banana' -end - - --- Tests the "find" block with a function call. -function test_find_text_complex() - number_of_calls = 0 - assertEquals(firstIndexOf(get_fruit(), 'an'), 2, 'find first complex') - check_number_of_calls('find first complex') - number_of_calls = 0 - assertEquals(firstIndexOf(true and get_fruit() or nil, 'an'), 2, 'find first order complex') - check_number_of_calls('find first order complex') - number_of_calls = 0 - assertEquals(lastIndexOf(get_fruit(), 'an'), 4, 'find last complex') - check_number_of_calls('find last complex') - number_of_calls = 0 - assertEquals(lastIndexOf(true and get_fruit() or nil, 'an'), 4, 'find last order complex') - check_number_of_calls('find last order complex') - number_of_calls = 0 - assertEquals(firstIndexOf(get_fruit(), 'Peel'), 0, 'find none complex') - check_number_of_calls('find none complex') - number_of_calls = 0 - assertEquals(firstIndexOf(true and get_fruit() or nil, 'Peel'), 0, 'find none order complex') - check_number_of_calls('find none order complex') -end - - -function text_random_letter(str) - local index = math.random(string.len(str)) - return string.sub(str, index, index) -end - -function text_char_at(str, index) - return string.sub(str, index, index) -end - --- Tests the "get letter" block with a variable. -function test_get_text_simple() - text = 'Blockly' - assertEquals(string.sub(text, 1, 1), 'B', 'get first simple') - assertEquals(string.sub(text, -1, -1), 'y', 'get last simple') - assertEquals(firstIndexOf(text, text_random_letter(text)) > 0, true, 'get random simple') - assertEquals(string.sub(text, 3, 3), 'o', 'get # simple') - assertEquals(text_char_at(text, true and 3 or nil), 'o', 'get # order simple') - assertEquals(string.sub(text, -3, -3), 'k', 'get #-end simple') - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text_char_at(text, -(0 + 3)), 'k', 'get #-end order simple') -end - - --- Creates a string for use with the get test. -function get_Blockly() - number_of_calls = number_of_calls + 1 - return 'Blockly' -end - - --- Tests the "get letter" block with a function call. -function test_get_text_complex() - text = 'Blockly' - number_of_calls = 0 - assertEquals(string.sub(get_Blockly(), 1, 1), 'B', 'get first complex') - check_number_of_calls('get first complex') - number_of_calls = 0 - assertEquals(string.sub(true and get_Blockly() or nil, 1, 1), 'B', 'get first order complex') - check_number_of_calls('get first order complex') - number_of_calls = 0 - assertEquals(string.sub(get_Blockly(), -1, -1), 'y', 'get last complex') - check_number_of_calls('get last complex') - number_of_calls = 0 - assertEquals(string.sub(true and get_Blockly() or nil, -1, -1), 'y', 'get last order complex') - check_number_of_calls('get last order complex') - number_of_calls = 0 - assertEquals(firstIndexOf(text, text_random_letter(get_Blockly())) > 0, true, 'get random complex') - check_number_of_calls('get random complex') - number_of_calls = 0 - assertEquals(firstIndexOf(text, text_random_letter(true and get_Blockly() or nil)) > 0, true, 'get random order complex') - check_number_of_calls('get random order complex') - number_of_calls = 0 - assertEquals(string.sub(get_Blockly(), 3, 3), 'o', 'get # complex') - check_number_of_calls('get # complex') - number_of_calls = 0 - assertEquals(text_char_at(true and get_Blockly() or nil, true and 3 or nil), 'o', 'get # order complex') - check_number_of_calls('get # order complex') - number_of_calls = 0 - assertEquals(string.sub(get_Blockly(), -3, -3), 'k', 'get #-end complex') - check_number_of_calls('get #-end complex') - number_of_calls = 0 - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text_char_at(true and get_Blockly() or nil, -(0 + 3)), 'k', 'get #-end order complex') - check_number_of_calls('get #-end order complex') -end - - --- Creates a string for use with the substring test. -function get_numbers() - number_of_calls = number_of_calls + 1 - return '123456789' -end - - --- Tests the "get substring" block with a variable. -function test_substring_simple() - text = '123456789' - assertEquals(string.sub(text, 2, 3), '23', 'substring # simple') - assertEquals(string.sub(text, true and 2 or nil, true and 3 or nil), '23', 'substring # simple order') - assertEquals(string.sub(text, -3, -2), '78', 'substring #-end simple') - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(string.sub(text, -(0 + 3), -(0 + 2)), '78', 'substring #-end simple order') - assertEquals(string.sub(text, 1, -1), text, 'substring first-last simple') - assertEquals(string.sub(text, 2, -2), '2345678', 'substring # #-end simple') - assertEquals(string.sub(text, -7, 4), '34', 'substring #-end # simple') - assertEquals(string.sub(text, 1, 4), '1234', 'substring first # simple') - assertEquals(string.sub(text, 1, -2), '12345678', 'substring first #-end simple') - assertEquals(string.sub(text, 7, -1), '789', 'substring # last simple') - assertEquals(string.sub(text, -3, -1), '789', 'substring #-end last simple') - assertEquals(string.sub(text, 1, -1), '123456789', 'substring all with # #-end simple') - assertEquals(string.sub(text, -9, 9), '123456789', 'substring all with #-end # simple') - -- Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(string.sub(text, 0 + 1, -(0 + 1)), '123456789', 'substring all with # #-end math simple') -end - - --- Tests the "get substring" block with a function call. -function test_substring_complex() - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 2, 3), '23', 'substring # complex') - check_number_of_calls('substring # complex') - number_of_calls = 0 - assertEquals(string.sub(true and get_numbers() or nil, true and 2 or nil, true and 3 or nil), '23', 'substring # complex order') - check_number_of_calls('substring # complex order') - number_of_calls = 0 - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(string.sub(get_numbers(), -3, -2), '78', 'substring #-end complex') - check_number_of_calls('substring #-end complex') - number_of_calls = 0 - assertEquals(string.sub(true and get_numbers() or nil, -(0 + 3), -(0 + 2)), '78', 'substring #-end order order') - check_number_of_calls('substring #-end order order') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 1, -1), text, 'substring first-last') - check_number_of_calls('substring first-last') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 2, -2), '2345678', 'substring # #-end complex') - check_number_of_calls('substring # #-end complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), -7, 4), '34', 'substring #-end # complex') - check_number_of_calls('substring #-end # complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 1, 4), '1234', 'substring first # complex') - check_number_of_calls('substring first # complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 1, -2), '12345678', 'substring first #-end complex') - check_number_of_calls('substring first #-end complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 7, -1), '789', 'substring # last complex') - check_number_of_calls('substring # last complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), -3, -1), '789', 'substring #-end last complex') - check_number_of_calls('substring #-end last complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), 1, -1), '123456789', 'substring all with # #-end complex') - check_number_of_calls('substring all with # #-end complex') - number_of_calls = 0 - assertEquals(string.sub(get_numbers(), -9, 9), '123456789', 'substring all with #-end # complex') - check_number_of_calls('substring all with #-end # complex') - number_of_calls = 0 - -- Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(string.sub(get_numbers(), 0 + 1, -(0 + 1)), '123456789', 'substring all with # #-end math complex') - check_number_of_calls('substring all with # #-end math complex') -end - - -function text_titlecase(str) - local buf = {} - local inWord = false - for i = 1, #str do - local c = string.sub(str, i, i) - if inWord then - table.insert(buf, string.lower(c)) - if string.find(c, "%s") then - inWord = false - end - else - table.insert(buf, string.upper(c)) - inWord = true - end - end - return table.concat(buf) -end - --- Tests the "change casing" block. -function test_case() - text = 'Hello World' - assertEquals(string.upper(text), 'HELLO WORLD', 'uppercase') - assertEquals(string.upper(true and text or nil), 'HELLO WORLD', 'uppercase order') - text = 'Hello World' - assertEquals(string.lower(text), 'hello world', 'lowercase') - assertEquals(string.lower(true and text or nil), 'hello world', 'lowercase order') - text = 'heLLo WorlD' - assertEquals(text_titlecase(text), 'Hello World', 'titlecase') - assertEquals(text_titlecase(true and text or nil), 'Hello World', 'titlecase order') -end - - --- Tests the "trim" block. -function test_trim() - text = ' abc def ' - assertEquals(string.gsub(text, "^%s*(.-)%s*$", "%1"), 'abc def', 'trim both') - assertEquals(string.gsub(true and text or nil, "^%s*(.-)%s*$", "%1"), 'abc def', 'trim both order') - assertEquals(string.gsub(text, "^%s*(,-)", "%1"), 'abc def ', 'trim left') - assertEquals(string.gsub(true and text or nil, "^%s*(,-)", "%1"), 'abc def ', 'trim left order') - assertEquals(string.gsub(text, "(.-)%s*$", "%1"), ' abc def', 'trim right') - assertEquals(string.gsub(true and text or nil, "(.-)%s*$", "%1"), ' abc def', 'trim right order') -end - - -function text_count(haystack, needle) - if #needle == 0 then - return #haystack + 1 - end - local i = 1 - local count = 0 - while true do - i = string.find(haystack, needle, i, true) - if i == nil then - break - end - count = count + 1 - i = i + #needle - end - return count -end - --- Tests the "trim" block. -function test_count_text() - text = 'woolloomooloo' - assertEquals(text_count(text, 'o'), 8, 'len 1') - assertEquals(text_count(text, 'oo'), 4, 'len 2') - assertEquals(text_count(text, 'loo'), 2, 'len 3') - assertEquals(text_count(text, 'wool'), 1, 'start') - assertEquals(text_count(text, 'chicken'), 0, 'missing') - assertEquals(text_count(text, ''), 14, 'empty needle') - assertEquals(text_count('', 'chicken'), 0, 'empty source') -end - - --- Tests the "trim" block. -function test_text_reverse() - assertEquals(string.reverse(''), '', 'empty string') - assertEquals(string.reverse('a'), 'a', 'len 1') - assertEquals(string.reverse('ab'), 'ba', 'len 2') - assertEquals(string.reverse('woolloomooloo'), 'ooloomoolloow', 'longer') -end - - -function text_replace(haystack, needle, replacement) - local buf = {} - local i = 1 - while i <= #haystack do - if string.sub(haystack, i, i + #needle - 1) == needle then - for j = 1, #replacement do - table.insert(buf, string.sub(replacement, j, j)) - end - i = i + #needle - else - table.insert(buf, string.sub(haystack, i, i)) - i = i + 1 - end - end - return table.concat(buf) -end - --- Tests the "trim" block. -function test_replace() - assertEquals(text_replace('woolloomooloo', 'oo', '123'), 'w123ll123m123l123', 'replace all instances 1') - assertEquals(text_replace('woolloomooloo', '.oo', 'X'), 'woolloomooloo', 'literal string replacement') - assertEquals(text_replace('woolloomooloo', 'abc', 'X'), 'woolloomooloo', 'not found') - assertEquals(text_replace('woolloomooloo', 'o', ''), 'wllml', 'empty replacement 1') - assertEquals(text_replace('aaaaa', 'aaaaa', ''), '', 'empty replacement 2') - assertEquals(text_replace('aaaaa', 'a', ''), '', 'empty replacement 3') - assertEquals(text_replace('', 'a', 'chicken'), '', 'empty source') -end - - --- Checks that the number of calls is one in order --- to confirm that a function was only called once. -function check_number_of_calls2(test_name) - test_name = test_name .. 'number of calls' - assertEquals(number_of_calls, 1, test_name) -end - - -function create_list_repeated(item, count) - local t = {} - for i = 1, count do - table.insert(t, item) - end - return t -end - --- Tests the "create list with" and "create empty list" blocks. -function test_create_lists() - assertEquals({}, {}, 'create empty') - assertEquals({true, 'love'}, {true, 'love'}, 'create items') - assertEquals(create_list_repeated('Eject', 3), {'Eject', 'Eject', 'Eject'}, 'create repeated') - assertEquals(create_list_repeated('Eject', 0 + 3), {'Eject', 'Eject', 'Eject'}, 'create repeated order') -end - - --- Creates an empty list for use with the empty test. -function get_empty_list() - return {} -end - - --- Tests the "is empty" block. -function test_lists_empty() - assertEquals(#{0} == 0, false, 'not empty') - assertEquals(#{} == 0, true, 'empty') - assertEquals(#get_empty_list() == 0, true, 'empty complex') - assertEquals(#(true and {} or nil) == 0, true, 'empty order') -end - - --- Tests the "length" block. -function test_lists_length() - assertEquals(#{}, 0, 'zero length') - assertEquals(#{'cat'}, 1, 'one length') - assertEquals(#{'cat', true, {}}, 3, 'three length') - assertEquals(#(true and {'cat', true} or nil), 2, 'two length order') -end - - -function last_index(t, elem) - for i = #t, 1, -1 do - if t[i] == elem then - return i - end - end - return 0 -end - --- Tests the "find" block with a variable. -function test_find_lists_simple() - list = {'Alice', 'Eve', 'Bob', 'Eve'} - assertEquals(first_index(list, 'Eve'), 2, 'find first simple') - assertEquals(last_index(list, 'Eve'), 4, 'find last simple') - assertEquals(first_index(list, 'Dave'), 0, 'find none simple') -end - - --- Creates a list for use with the find test. -function get_names() - number_of_calls = number_of_calls + 1 - return {'Alice', 'Eve', 'Bob', 'Eve'} -end - - --- Tests the "find" block with a function call. -function test_find_lists_complex() - number_of_calls = 0 - assertEquals(first_index(get_names(), 'Eve'), 2, 'find first complex') - check_number_of_calls('find first complex') - number_of_calls = 0 - assertEquals(first_index(true and get_names() or nil, 'Eve'), 2, 'find first order complex') - check_number_of_calls('find first order complex') - number_of_calls = 0 - assertEquals(last_index(get_names(), 'Eve'), 4, 'find last complex') - check_number_of_calls('find last complex') - number_of_calls = 0 - assertEquals(last_index(true and get_names() or nil, 'Eve'), 4, 'find last order complex') - check_number_of_calls('find last order complex') - number_of_calls = 0 - assertEquals(first_index(get_names(), 'Dave'), 0, 'find none complex') - check_number_of_calls('find none complex') - number_of_calls = 0 - assertEquals(first_index(true and get_names() or nil, 'Dave'), 0, 'find none order complex') - check_number_of_calls('find none order complex') -end - - --- Tests the "get" block with a variable. -function test_get_lists_simple() - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(list[1], 'Kirk', 'get first simple') - assertEquals(list[#list], 'McCoy', 'get last simple') - assertEquals(first_index(list, list[math.random(#list)]) > 0, true, 'get random simple') - assertEquals(list[2], 'Spock', 'get # simple') - assertEquals(list[true and 2 or nil], 'Spock', 'get # order simple') - assertEquals(list[#list + 1 - 3], 'Kirk', 'get #-end simple') - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list[#list + 1 - (0 + 3)], 'Kirk', 'get #-end order simple') -end - - --- Creates a list for use with the get test. -function get_star_wars() - number_of_calls = number_of_calls + 1 - return {'Kirk', 'Spock', 'McCoy'} -end - - -function list_get_last(t) - return t[#t] -end - -function list_get_random(t) - return t[math.random(#t)] -end - -function list_get_from_end(t, at) - return t[#t + 1 - at] -end - --- Tests the "get" block with a function call. -function test_get_lists_complex() - list = {'Kirk', 'Spock', 'McCoy'} - number_of_calls = 0 - assertEquals((get_star_wars())[1], 'Kirk', 'get first complex') - check_number_of_calls('get first complex') - number_of_calls = 0 - assertEquals((true and get_star_wars() or nil)[1], 'Kirk', 'get first order complex') - check_number_of_calls('get first order complex') - number_of_calls = 0 - assertEquals(list_get_last((get_star_wars())), 'McCoy', 'get last complex') - check_number_of_calls('get last complex') - number_of_calls = 0 - assertEquals(list_get_last((true and get_star_wars() or nil)), 'McCoy', 'get last order complex') - check_number_of_calls('get last order complex') - number_of_calls = 0 - assertEquals(first_index(list, list_get_random((get_star_wars()))) > 0, true, 'get random complex') - check_number_of_calls('get random complex') - number_of_calls = 0 - assertEquals(first_index(list, list_get_random((true and get_star_wars() or nil))) > 0, true, 'get random order complex') - check_number_of_calls('get random order complex') - number_of_calls = 0 - assertEquals((get_star_wars())[2], 'Spock', 'get # complex') - check_number_of_calls('get # complex') - number_of_calls = 0 - assertEquals((true and get_star_wars() or nil)[true and 2 or nil], 'Spock', 'get # order complex') - check_number_of_calls('get # order complex') - number_of_calls = 0 - assertEquals(list_get_from_end((get_star_wars()), 3), 'Kirk', 'get #-end complex') - check_number_of_calls('get #-end complex') - number_of_calls = 0 - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list_get_from_end((true and get_star_wars() or nil), 0 + 3), 'Kirk', 'get #-end order complex') - check_number_of_calls('get #-end order complex') -end - - -function list_remove_last(t) - return table.remove(t, #t) -end - -function list_remove_random(t) - return table.remove(t, math.random(#t)) -end - -function list_remove_from_end(t, at) - return table.remove(t, #t + 1 - at) -end - --- Tests the "get and remove" block. -function test_getRemove() - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(table.remove(list, 1), 'Kirk', 'getremove first') - assertEquals(list, {'Spock', 'McCoy'}, 'getremove first list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(table.remove((true and list or nil), 1), 'Kirk', 'getremove first order') - assertEquals(list, {'Spock', 'McCoy'}, 'getremove first order list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(table.remove(list, #list), 'McCoy', 'getremove last') - assertEquals(list, {'Kirk', 'Spock'}, 'getremove last list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(list_remove_last((true and list or nil)), 'McCoy', 'getremove last order') - assertEquals(list, {'Kirk', 'Spock'}, 'getremove last order list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(first_index(list, table.remove(list, math.random(#list))) == 0, true, 'getremove random') - assertEquals(#list, 2, 'getremove random list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(first_index(list, list_remove_random((true and list or nil))) == 0, true, 'getremove random order') - assertEquals(#list, 2, 'getremove random order list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(table.remove(list, 2), 'Spock', 'getremove #') - assertEquals(list, {'Kirk', 'McCoy'}, 'getremove # list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(table.remove((true and list or nil), true and 2 or nil), 'Spock', 'getremove # order') - assertEquals(list, {'Kirk', 'McCoy'}, 'getremove # order list') - list = {'Kirk', 'Spock', 'McCoy'} - assertEquals(table.remove(list, #list + 1 - 3), 'Kirk', 'getremove #-end') - assertEquals(list, {'Spock', 'McCoy'}, 'getremove #-end list') - list = {'Kirk', 'Spock', 'McCoy'} - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list_remove_from_end((true and list or nil), 0 + 3), 'Kirk', 'getremove #-end order') - assertEquals(list, {'Spock', 'McCoy'}, 'getremove #-end order list') -end - - --- Tests the "remove" block. -function test_remove() - list = {'Kirk', 'Spock', 'McCoy'} - table.remove(list, 1) - assertEquals(list, {'Spock', 'McCoy'}, 'remove first list') - list = {'Kirk', 'Spock', 'McCoy'} - table.remove((true and list or nil), 1) - assertEquals(list, {'Spock', 'McCoy'}, 'remove first order list') - list = {'Kirk', 'Spock', 'McCoy'} - table.remove(list, #list) - assertEquals(list, {'Kirk', 'Spock'}, 'remove last list') - list = {'Kirk', 'Spock', 'McCoy'} - tmp_list = (true and list or nil) - table.remove(tmp_list, #tmp_list) - assertEquals(list, {'Kirk', 'Spock'}, 'remove last order list') - list = {'Kirk', 'Spock', 'McCoy'} - table.remove(list, math.random(#list)) - assertEquals(#list, 2, 'remove random list') - list = {'Kirk', 'Spock', 'McCoy'} - tmp_list2 = (true and list or nil) - table.remove(tmp_list2, math.random(#tmp_list2)) - assertEquals(#list, 2, 'remove random order list') - list = {'Kirk', 'Spock', 'McCoy'} - table.remove(list, 2) - assertEquals(list, {'Kirk', 'McCoy'}, 'remove # list') - list = {'Kirk', 'Spock', 'McCoy'} - table.remove((true and list or nil), true and 2 or nil) - assertEquals(list, {'Kirk', 'McCoy'}, 'remove # order list') - list = {'Kirk', 'Spock', 'McCoy'} - table.remove(list, #list + 1 - 3) - assertEquals(list, {'Spock', 'McCoy'}, 'remove #-end list') - list = {'Kirk', 'Spock', 'McCoy'} - -- The order for index for #-end is addition because this will catch - -- errors in generators where most perform the operation ... - index. - tmp_list3 = (true and list or nil) - table.remove(tmp_list3, #tmp_list3 + 1 - (0 + 3)) - assertEquals(list, {'Spock', 'McCoy'}, 'remove #-end order list') -end - - --- Tests the "set" block. -function test_set() - list = {'Picard', 'Riker', 'Crusher'} - list[1] = 'Jean-Luc' - assertEquals(list, {'Jean-Luc', 'Riker', 'Crusher'}, 'set first list') - list = {'Picard', 'Riker', 'Crusher'} - (true and list or nil)[1] = 'Jean-Luc' - assertEquals(list, {'Jean-Luc', 'Riker', 'Crusher'}, 'set first order list') - list = {'Picard', 'Riker', 'Crusher'} - list[#list] = 'Beverly' - assertEquals(list, {'Picard', 'Riker', 'Beverly'}, 'set last list') - list = {'Picard', 'Riker', 'Crusher'} - tmp_list4 = (true and list or nil) - tmp_list4[#tmp_list4] = 'Beverly' - assertEquals(list, {'Picard', 'Riker', 'Beverly'}, 'set last order list') - list = {'Picard', 'Riker', 'Crusher'} - list[math.random(#list)] = 'Data' - assertEquals(#list, 3, 'set random list') - list = {'Picard', 'Riker', 'Crusher'} - tmp_list5 = (true and list or nil) - tmp_list5[math.random(#tmp_list5)] = 'Data' - assertEquals(#list, 3, 'set random order list') - list = {'Picard', 'Riker', 'Crusher'} - list[3] = 'Pulaski' - assertEquals(list, {'Picard', 'Riker', 'Pulaski'}, 'set # list') - list = {'Picard', 'Riker', 'Crusher'} - (true and list or nil)[(true and 3 or nil)] = 'Pulaski' - assertEquals(list, {'Picard', 'Riker', 'Pulaski'}, 'set # order list') - list = {'Picard', 'Riker', 'Crusher'} - list[#list + 1 - 1] = 'Pulaski' - assertEquals(list, {'Picard', 'Riker', 'Pulaski'}, 'set #-end list') - list = {'Picard', 'Riker', 'Crusher'} - -- The order for index for #-end is addition because this will catch - -- errors in generators where most perform the operation ... - index. - tmp_list6 = (true and list or nil) - tmp_list6[#tmp_list6 + 1 - (0 + 2)] = 'Pulaski' - assertEquals(list, {'Picard', 'Pulaski', 'Crusher'}, 'set #-end order list') -end - - --- Tests the "insert" block. -function test_insert() - list = {'Picard', 'Riker', 'Crusher'} - table.insert(list, 1, 'Data') - assertEquals(list, {'Data', 'Picard', 'Riker', 'Crusher'}, 'insert first list') - list = {'Picard', 'Riker', 'Crusher'} - table.insert((true and list or nil), 1, 'Data') - assertEquals(list, {'Data', 'Picard', 'Riker', 'Crusher'}, 'insert first order list') - list = {'Picard', 'Riker', 'Crusher'} - table.insert(list, #list + 1, 'Data') - assertEquals(list, {'Picard', 'Riker', 'Crusher', 'Data'}, 'insert last list') - list = {'Picard', 'Riker', 'Crusher'} - tmp_list7 = (true and list or nil) - table.insert(tmp_list7, #tmp_list7 + 1, 'Data') - assertEquals(list, {'Picard', 'Riker', 'Crusher', 'Data'}, 'insert last order list') - list = {'Picard', 'Riker', 'Crusher'} - table.insert(list, math.random(#list), 'Data') - assertEquals(#list, 4, 'insert random list') - list = {'Picard', 'Riker', 'Crusher'} - tmp_list8 = (true and list or nil) - table.insert(tmp_list8, math.random(#tmp_list8), 'Data') - assertEquals(#list, 4, 'insert random order list') - list = {'Picard', 'Riker', 'Crusher'} - table.insert(list, 3, 'Data') - assertEquals(list, {'Picard', 'Riker', 'Data', 'Crusher'}, 'insert # list') - list = {'Picard', 'Riker', 'Crusher'} - table.insert((true and list or nil), (true and 3 or nil), 'Data') - assertEquals(list, {'Picard', 'Riker', 'Data', 'Crusher'}, 'insert # order list') - list = {'Picard', 'Riker', 'Crusher'} - table.insert(list, #list + 1 - 1, 'Data') - assertEquals(list, {'Picard', 'Riker', 'Data', 'Crusher'}, 'insert #-end list') - list = {'Picard', 'Riker', 'Crusher'} - -- The order for index for #-end is addition because this will catch - -- errors in generators where most perform the operation ... - index. - tmp_list9 = (true and list or nil) - table.insert(tmp_list9, #tmp_list9 + 1 - (0 + 2), 'Data') - assertEquals(list, {'Picard', 'Data', 'Riker', 'Crusher'}, 'insert #-end order list') -end - - -function list_sublist_from_start_from_start(source, at1, at2) - local t = {} - local start = at1 - local finish = at2 - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_from_end_from_end(source, at1, at2) - local t = {} - local start = #source + 1 - at1 - local finish = #source + 1 - at2 - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_first_last(source) - local t = {} - local start = 1 - local finish = #source - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_from_start_from_end(source, at1, at2) - local t = {} - local start = at1 - local finish = #source + 1 - at2 - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_from_end_from_start(source, at1, at2) - local t = {} - local start = #source + 1 - at1 - local finish = at2 - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_first_from_start(source, at2) - local t = {} - local start = 1 - local finish = at2 - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_first_from_end(source, at2) - local t = {} - local start = 1 - local finish = #source + 1 - at2 - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_from_start_last(source, at1) - local t = {} - local start = at1 - local finish = #source - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - -function list_sublist_from_end_last(source, at1) - local t = {} - local start = #source + 1 - at1 - local finish = #source - for i = start, finish do - table.insert(t, source[i]) - end - return t -end - --- Tests the "get sub-list" block with a variable. -function test_sublist_simple() - list = {'Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'} - assertEquals(list_sublist_from_start_from_start(list, 2, 3), {'Challenger', 'Discovery'}, 'sublist # simple') - assertEquals(list_sublist_from_start_from_start(list, true and 2 or nil, true and 3 or nil), {'Challenger', 'Discovery'}, 'sublist # simple order') - assertEquals(list_sublist_from_end_from_end(list, 3, 2), {'Discovery', 'Atlantis'}, 'sublist #-end simple') - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list_sublist_from_end_from_end(list, 0 + 3, 0 + 2), {'Discovery', 'Atlantis'}, 'sublist #-end simple order') - assertEquals(list_sublist_first_last(list), list, 'sublist first-last simple') - changing_list = {'Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'} - list_copy = list_sublist_first_last(changing_list) - table.remove(changing_list, math.random(#changing_list)) - assertEquals(list_copy, list, 'sublist first-last simple copy check') - assertEquals(list_sublist_from_start_from_end(list, 2, 2), {'Challenger', 'Discovery', 'Atlantis'}, 'sublist # #-end simple') - assertEquals(list_sublist_from_end_from_start(list, 3, 4), {'Discovery', 'Atlantis'}, 'sublist #-end # simple') - assertEquals(list_sublist_first_from_start(list, 4), {'Columbia', 'Challenger', 'Discovery', 'Atlantis'}, 'sublist first # simple') - assertEquals(list_sublist_first_from_end(list, 4), {'Columbia', 'Challenger'}, 'sublist first #-end simple') - assertEquals(list_sublist_from_start_last(list, 4), {'Atlantis', 'Endeavour'}, 'sublist # last simple') - assertEquals(list_sublist_from_end_last(list, 4), {'Challenger', 'Discovery', 'Atlantis', 'Endeavour'}, 'sublist #-end last simple') - assertEquals(list_sublist_from_start_from_end(list, 1, 1), list, 'sublist all with # #-end simple') - assertEquals(list_sublist_from_end_from_start(list, 5, 5), list, 'sublist all with #-end # simple') - -- Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(list_sublist_from_start_from_end(list, 0 + 1, 0 + 1), list, 'sublist all with # #-end math simple') -end - - --- Creates a list for use with the sublist test. -function get_space_shuttles() - number_of_calls = number_of_calls + 1 - return {'Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'} -end - - --- Tests the "get sub-list" block with a function call. -function test_sublist_complex() - number_of_calls = 0 - assertEquals(list_sublist_from_start_from_start(get_space_shuttles(), 2, 3), {'Challenger', 'Discovery'}, 'sublist # start complex') - check_number_of_calls('sublist # start complex') - number_of_calls = 0 - assertEquals(list_sublist_from_start_from_start(true and get_space_shuttles() or nil, true and 2 or nil, true and 3 or nil), {'Challenger', 'Discovery'}, 'sublist # start order complex') - check_number_of_calls('sublist # start order complex') - number_of_calls = 0 - -- The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list_sublist_from_end_from_end(get_space_shuttles(), 3, 2), {'Discovery', 'Atlantis'}, 'sublist # end complex') - assertEquals(number_of_calls, 1, 'sublist # end complex number of calls') - number_of_calls = 0 - assertEquals(list_sublist_from_end_from_end(true and get_space_shuttles() or nil, 0 + 3, 0 + 2), {'Discovery', 'Atlantis'}, 'sublist # end order complex') - check_number_of_calls('sublist # end order complex') - number_of_calls = 0 - assertEquals(list_sublist_first_last(get_space_shuttles()), list, 'sublist first-last complex') - check_number_of_calls('sublist first-last complex') - number_of_calls = 0 - assertEquals(list_sublist_from_start_from_end(get_space_shuttles(), 2, 2), {'Challenger', 'Discovery', 'Atlantis'}, 'sublist # #-end complex') - check_number_of_calls('sublist # #-end complex') - number_of_calls = 0 - assertEquals(list_sublist_from_end_from_start(get_space_shuttles(), 3, 4), {'Discovery', 'Atlantis'}, 'sublist #-end # complex') - check_number_of_calls('sublist #-end # complex') - number_of_calls = 0 - assertEquals(list_sublist_first_from_start(get_space_shuttles(), 4), {'Columbia', 'Challenger', 'Discovery', 'Atlantis'}, 'sublist first # complex') - check_number_of_calls('sublist first # complex') - number_of_calls = 0 - assertEquals(list_sublist_first_from_end(get_space_shuttles(), 4), {'Columbia', 'Challenger'}, 'sublist first #-end complex') - check_number_of_calls('sublist first #-end complex') - number_of_calls = 0 - assertEquals(list_sublist_from_start_last(get_space_shuttles(), 4), {'Atlantis', 'Endeavour'}, 'sublist # last complex') - check_number_of_calls('sublist # last complex') - number_of_calls = 0 - assertEquals(list_sublist_from_end_last(get_space_shuttles(), 4), {'Challenger', 'Discovery', 'Atlantis', 'Endeavour'}, 'sublist #-end last simple') - check_number_of_calls('sublist #-end last simple') - number_of_calls = 0 - assertEquals(list_sublist_from_start_from_end(get_space_shuttles(), 1, 1), list, 'sublist all with # #-end complex') - check_number_of_calls('sublist all with # #-end complex') - number_of_calls = 0 - assertEquals(list_sublist_from_end_from_start(get_space_shuttles(), 5, 5), list, 'sublist all with #-end # complex') - check_number_of_calls('sublist all with #-end # complex') - number_of_calls = 0 - -- Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(list_sublist_from_start_from_end(get_space_shuttles(), 0 + 1, 0 + 1), list, 'sublist all with # #-end math complex') - check_number_of_calls('sublist all with # #-end math complex') -end - - --- Tests the "join" block. -function test_join() - list = {'Vulcan', 'Klingon', 'Borg'} - assertEquals(table.concat(list, ','), 'Vulcan,Klingon,Borg', 'join') - assertEquals(table.concat(true and list or nil, ','), 'Vulcan,Klingon,Borg', 'join order') -end - - -function list_string_split(input, delim) - local t = {} - local pos = 1 - while true do - next_delim = string.find(input, delim, pos) - if next_delim == nil then - table.insert(t, string.sub(input, pos)) - break - else - table.insert(t, string.sub(input, pos, next_delim-1)) - pos = next_delim + #delim - end - end - return t -end - --- Tests the "split" block. -function test_split() - text = 'Vulcan,Klingon,Borg' - assertEquals(list_string_split(text, ','), {'Vulcan', 'Klingon', 'Borg'}, 'split') - assertEquals(list_string_split(true and text or nil, ','), {'Vulcan', 'Klingon', 'Borg'}, 'split order') -end - - -function list_sort(list, typev, direction) - local t = {} - for n,v in pairs(list) do table.insert(t, v) end - local compareFuncs = { - NUMERIC = function(a, b) - return (tonumber(tostring(a)) or 0) - < (tonumber(tostring(b)) or 0) end, - TEXT = function(a, b) - return tostring(a) < tostring(b) end, - IGNORE_CASE = function(a, b) - return string.lower(tostring(a)) < string.lower(tostring(b)) end - } - local compareTemp = compareFuncs[typev] - local compare = compareTemp - if direction == -1 - then compare = function(a, b) return compareTemp(b, a) end - end - table.sort(t, compare) - return t -end - --- Tests the "alphabetic sort" block. -function test_sort_alphabetic() - list = {'Vulcan', 'klingon', 'Borg'} - assertEquals(list_sort(list,"TEXT", 1), {'Borg', 'Vulcan', 'klingon'}, 'sort alphabetic ascending') - assertEquals(list_sort(true and list or nil,"TEXT", 1), {'Borg', 'Vulcan', 'klingon'}, 'sort alphabetic ascending order') -end - - --- Tests the "alphabetic sort ignore case" block. -function test_sort_ignoreCase() - list = {'Vulcan', 'klingon', 'Borg'} - assertEquals(list_sort(list,"IGNORE_CASE", 1), {'Borg', 'klingon', 'Vulcan'}, 'sort ignore case ascending') - assertEquals(list_sort(true and list or nil,"IGNORE_CASE", 1), {'Borg', 'klingon', 'Vulcan'}, 'sort ignore case ascending order') -end - - --- Tests the "numeric sort" block. -function test_sort_numeric() - list = {8, 18, -1} - assertEquals(list_sort(list,"NUMERIC", -1), {18, 8, -1}, 'sort numeric descending') - assertEquals(list_sort(true and list or nil,"NUMERIC", -1), {18, 8, -1}, 'sort numeric descending order') -end - - -function list_reverse(input) - local reversed = {} - for i = #input, 1, -1 do - table.insert(reversed, input[i]) - end - return reversed -end - --- Tests the "list reverse" block. -function test_lists_reverse() - list = {8, 18, -1, 64} - assertEquals(list_reverse(list), {64, -1, 18, 8}, 'reverse a copy') - assertEquals(list, {8, 18, -1, 64}, 'reverse a copy original') - list = {} - assertEquals(list_reverse(list), {}, 'empty list') -end - - --- Describe this function... -function test_colour_picker() - assertEquals('#ff6600', '#ff6600', 'static colour') -end - - -function colour_rgb(r, g, b) - r = math.floor(math.min(100, math.max(0, r)) * 2.55 + .5) - g = math.floor(math.min(100, math.max(0, g)) * 2.55 + .5) - b = math.floor(math.min(100, math.max(0, b)) * 2.55 + .5) - return string.format("#%02x%02x%02x", r, g, b) -end - --- Describe this function... -function test_rgb() - assertEquals(colour_rgb(100, 40, 0), '#ff6600', 'from rgb') -end - - --- Describe this function... -function test_colour_random() - for count4 = 1, 100 do - item = string.format("#%06x", math.random(0, 2^24 - 1)) - assertEquals(#item, 7, 'length of random colour string: ' .. item) - assertEquals(string.sub(item, 1, 1), '#', 'format of random colour string: ' .. item) - for i = 1, 6, 1 do - assertEquals(0 ~= firstIndexOf('abcdefABDEF0123456789', text_char_at(item, i + 1)), true, table.concat({'contents of random colour string: ', item, ' at index: ', i + 1})) - end - end -end - - -function colour_blend(colour1, colour2, ratio) - local r1 = tonumber(string.sub(colour1, 2, 3), 16) - local r2 = tonumber(string.sub(colour2, 2, 3), 16) - local g1 = tonumber(string.sub(colour1, 4, 5), 16) - local g2 = tonumber(string.sub(colour2, 4, 5), 16) - local b1 = tonumber(string.sub(colour1, 6, 7), 16) - local b2 = tonumber(string.sub(colour2, 6, 7), 16) - local ratio = math.min(1, math.max(0, ratio)) - local r = math.floor(r1 * (1 - ratio) + r2 * ratio + .5) - local g = math.floor(g1 * (1 - ratio) + g2 * ratio + .5) - local b = math.floor(b1 * (1 - ratio) + b2 * ratio + .5) - return string.format("#%02x%02x%02x", r, g, b) -end - --- Describe this function... -function test_blend() - assertEquals(colour_blend('#ff0000', colour_rgb(100, 40, 0), 0.4), '#ff2900', 'blend') -end - - --- Describe this function... -function test_procedure() - procedure_1(8, 2) - assertEquals(proc_z, 4, 'procedure with global') - proc_w = false - procedure_2(false) - assertEquals(proc_w, true, 'procedure no return') - proc_w = false - procedure_2(true) - assertEquals(proc_w, false, 'procedure return') -end - - --- Describe this function... -function procedure_1(proc_x, proc_y) - proc_z = proc_x / proc_y -end - - --- Describe this function... -function procedure_2(proc_x) - if proc_x then - return - end - proc_w = true -end - - --- Describe this function... -function test_function() - assertEquals(function_1(2, 3), -1, 'function with arguments') - assertEquals(func_z, 'side effect', 'function with side effect') - func_a = 'unchanged' - func_c = 'global' - assertEquals(function_2(2), '3global', 'function with global') - assertEquals(func_a, 'unchanged', 'function with scope') - assertEquals(function_3(true), true, 'function return') - assertEquals(function_3(false), false, 'function no return') -end - - --- Describe this function... -function function_1(func_x, func_y) - func_z = 'side effect' - return func_x - func_y -end - - --- Describe this function... -function function_2(func_a) - func_a = func_a + 1 - return func_a .. func_c -end - - --- Describe this function... -function function_3(func_a) - if func_a then - return true - end - return false -end - - --- Describe this function... -function recurse(n) - if n > 0 then - text = table.concat({recurse(n - 1), n, recurse(n - 1)}) - else - text = '-' - end - return text -end - - - -unittestResults = {} -print('\n====================\n\nRunning suite: Logic') -assertEquals(true, true, 'True') -assertEquals(false, false, 'False') -assertEquals(not false, true, 'Not true') -assertEquals(not true, false, 'Not false') -test_if() -test_ifelse() -test_equalities() -test_and() -test_or() -test_ternary() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Loops 1') -test_repeat() -test_repeat_ext() -test_while() -test_foreach() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Loops 2') -test_count_loops() -test_count_by() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Loops 3') -test_break() -test_continue() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Math') -test_arithmetic() -test_single() -test_trig() -test_constant() -test_change() -test_number_properties() -test_round() -test_operations_on_list() -test_constraint() -test_mod() -test_random_integer() -test_random_fraction() -test_atan2() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Text') -test_text_length() -test_empty_text() -test_create_text() -test_append() -test_find_text_simple() -test_find_text_complex() -test_get_text_simple() -test_get_text_complex() -test_substring_simple() -test_substring_complex() -test_case() -test_trim() -test_count_text() -test_text_reverse() -test_replace() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Lists') -test_create_lists() -test_lists_empty() -test_lists_length() -test_find_lists_simple() -test_find_lists_complex() -test_get_lists_simple() -test_get_lists_complex() -test_getRemove() -test_remove() -test_set() -test_insert() -test_sublist_simple() -test_sublist_complex() -test_join() -test_split() -test_sort_alphabetic() -test_sort_ignoreCase() -test_sort_numeric() -test_lists_reverse() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Colour') -test_colour_picker() -test_blend() -test_rgb() -test_colour_random() -print(unittest_report()) -unittestResults = nil - -unittestResults = {} -print('\n====================\n\nRunning suite: Variables') -item = 123 -assertEquals(item, 123, 'variable') -if2 = 123 -assertEquals(if2, 123, 'reserved variable') -print(unittest_report()) -unittestResults = nil - -local _ = -- Intentionally non-connected variable. -naked - -unittestResults = {} -print('\n====================\n\nRunning suite: Functions') -test_procedure() -test_function() -assertEquals(recurse(3), '-1-2-1-3-1-2-1-', 'test recurse') -print(unittest_report()) -unittestResults = nil diff --git a/lib/blockly/tests/generators/golden/generated.php b/lib/blockly/tests/generators/golden/generated.php deleted file mode 100644 index a2d470d..0000000 --- a/lib/blockly/tests/generators/golden/generated.php +++ /dev/null @@ -1,1696 +0,0 @@ -$unittestResults; -$test_name; -$naked; -$proc_x; -$proc_y; -$func_x; -$func_y; -$func_a; -$n; -$ok; -$log; -$count; -$varToChange; -$rand; -$item; -$text; -$number_of_calls; -$list2; -$proc_z; -$func_z; -$x; -$proc_w; -$func_c; -$if2; -$i; -$loglist; -$changing_list; -$list_copy; - -function unittest_report() { - global $unittestResults; - // Create test report. - $report = array(); - $summary = array(); - $fails = 0; - for ($x = 0; $x < count($unittestResults); $x++) { - if ($unittestResults[$x][0]) { - array_push($summary, "."); - } else { - array_push($summary, "F"); - $fails++; - array_push($report, ""); - array_push($report, "FAIL: " . $unittestResults[$x][2]); - array_push($report, $unittestResults[$x][1]); - } - } - array_unshift($report, implode("", $summary)); - array_push($report, ""); - array_push($report, "Number of tests run: " . count($unittestResults)); - array_push($report, ""); - if ($fails) { - array_push($report, "FAILED (failures=" . $fails . ")"); - } else { - array_push($report, "OK"); - } - return implode("\n", $report); -} - -function assertEquals($actual, $expected, $message) { - global $unittestResults; - // Asserts that a value equals another value. - if (!is_array($unittestResults)) { - throw new Exception("Orphaned assert: " . $message); - } - if ($actual == $expected) { - array_push($unittestResults, [true, "OK", $message]); - } else { - $expected = is_array($expected) ? implode(" ", $expected) : $expected; - $actual = is_array($actual) ? implode(" ", $actual) : $actual; - array_push($unittestResults, [false, "Expected: " . $expected . "\nActual: " . $actual, $message]); - } -} - -function unittest_fail($message) { - global $unittestResults; - // Always assert an error. - if (!$unittestResults) { - throw new Exception("Orphaned assert fail: " . $message); - } - array_push($unittestResults, [false, "Fail.", $message]); -} - -// Describe this function... -function test_if() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - if (false) { - unittest_fail('if false'); - } - $ok = false; - if (true) { - $ok = true; - } - assertEquals($ok, true, 'if true'); - $ok = false; - if (false) { - unittest_fail('if/else false'); - } else { - $ok = true; - } - assertEquals($ok, true, 'if/else false'); - $ok = false; - if (true) { - $ok = true; - } else { - unittest_fail('if/else true'); - } - assertEquals($ok, true, 'if/else true'); - $ok = false; - if (false) { - unittest_fail('elseif 1'); - } else if (true) { - $ok = true; - } else if (true) { - unittest_fail('elseif 2'); - } else { - unittest_fail('elseif 3'); - } - assertEquals($ok, true, 'elseif 4'); -} - -// Describe this function... -function test_ifelse() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $ok = false; - if (true) { - $ok = true; - } else { - unittest_fail('ifelse true'); - } - assertEquals($ok, true, 'ifelse true'); - $ok = false; - if (false) { - unittest_fail('ifelse false'); - } else { - $ok = true; - } - assertEquals($ok, true, 'ifelse false'); -} - -// Describe this function... -function test_equalities() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(2 == 2, true, 'Equal yes'); - assertEquals(3 == 4, false, 'Equal no'); - assertEquals(5 != 6, true, 'Not equal yes'); - assertEquals(3 == 4, false, 'Not equal no'); - assertEquals(5 < 6, true, 'Smaller yes'); - assertEquals(7 < 7, false, 'Smaller no'); - assertEquals(9 > 8, true, 'Greater yes'); - assertEquals(10 > 10, false, 'Greater no'); - assertEquals(11 <= 11, true, 'Smaller-equal yes'); - assertEquals(13 <= 12, false, 'Smaller-equal no'); - assertEquals(14 >= 14, true, 'Greater-equal yes'); - assertEquals(15 >= 16, false, 'Greater-equal no'); -} - -// Describe this function... -function test_and() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(true && true, true, 'And true/true'); - assertEquals(false && true, false, 'And false/true'); - assertEquals(true && false, false, 'And true/false'); - assertEquals(false && false, false, 'And false/false'); -} - -// Describe this function... -function test_or() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(true || true, true, 'Or true/true'); - assertEquals(false || true, true, 'Or false/true'); - assertEquals(true || false, true, 'Or true/false'); - assertEquals(false || false, false, 'Or false/false'); -} - -// Describe this function... -function test_ternary() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(true ? 42 : 99, 42, 'if true'); - assertEquals(false ? 42 : 99, 99, 'if true'); -} - -// Describe this function... -function test_foreach() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $log = ''; - foreach (array('a', 'b', 'c') as $x) { - $log .= $x; - } - assertEquals($log, 'abc', 'for loop'); -} - -// Describe this function... -function test_repeat() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $count = 0; - for ($count2 = 0; $count2 < 10; $count2++) { - $count += 1; - } - assertEquals($count, 10, 'repeat 10'); -} - -// Describe this function... -function test_while() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - while (false) { - unittest_fail('while 0'); - } - while (!true) { - unittest_fail('until 0'); - } - $count = 1; - while ($count != 10) { - $count += 1; - } - assertEquals($count, 10, 'while 10'); - $count = 1; - while (!($count == 10)) { - $count += 1; - } - assertEquals($count, 10, 'until 10'); -} - -// Describe this function... -function test_repeat_ext() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $count = 0; - for ($count3 = 0; $count3 < 10; $count3++) { - $count += 1; - } - assertEquals($count, 10, 'repeat 10'); -} - -// Describe this function... -function test_count_by() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $log = ''; - for ($x = 1; $x <= 8; $x += 2) { - $log .= $x; - } - assertEquals($log, '1357', 'count up ints'); - $log = ''; - for ($x = 8; $x >= 1; $x -= 2) { - $log .= $x; - } - assertEquals($log, '8642', 'count down ints'); - $loglist = array(); - for ($x = 1; $x <= 8; $x += 1.5) { - array_push($loglist, $x); - } - assertEquals($loglist, array(1, 2.5, 4, 5.5, 7), 'count with floats'); - $loglist = array(); - $_x_start = 1 + 0; - $_x_end = 8 + 0; - $_x_inc = abs(1 - 2); - if ($_x_start > $_x_end) { - $_x_inc = -$_x_inc; - } - for ($x = $_x_start; $_x_inc >= 0 ? $x <= $_x_end : $x >= $_x_end; $x += $_x_inc) { - array_push($loglist, $x); - } - assertEquals($loglist, array(1, 2, 3, 4, 5, 6, 7, 8), 'count up non-trivial ints'); - $loglist = array(); - $_x_start2 = 8 + 0; - $_x_end2 = 1 + 0; - $_x_inc2 = 2; - if ($_x_start2 > $_x_end2) { - $_x_inc2 = -$_x_inc2; - } - for ($x = $_x_start2; $_x_inc2 >= 0 ? $x <= $_x_end2 : $x >= $_x_end2; $x += $_x_inc2) { - array_push($loglist, $x); - } - assertEquals($loglist, array(8, 6, 4, 2), 'count down non-trivial ints'); - $loglist = array(); - $_x_start3 = 5 + 0.5; - $_x_end3 = 1 + 0; - $_x_inc3 = abs(1 + 0); - if ($_x_start3 > $_x_end3) { - $_x_inc3 = -$_x_inc3; - } - for ($x = $_x_start3; $_x_inc3 >= 0 ? $x <= $_x_end3 : $x >= $_x_end3; $x += $_x_inc3) { - array_push($loglist, $x); - } - assertEquals($loglist, array(5.5, 4.5, 3.5, 2.5, 1.5), 'count with floats'); -} - -// Describe this function... -function test_count_loops() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $log = ''; - for ($x = 1; $x <= 8; $x++) { - $log .= $x; - } - assertEquals($log, '12345678', 'count up'); - $log = ''; - for ($x = 8; $x >= 1; $x--) { - $log .= $x; - } - assertEquals($log, '87654321', 'count down'); - $loglist = array(); - $_x_start4 = 1 + 0; - $_x_end4 = 4 + 0; - $_x_inc4 = 1; - if ($_x_start4 > $_x_end4) { - $_x_inc4 = -$_x_inc4; - } - for ($x = $_x_start4; $_x_inc4 >= 0 ? $x <= $_x_end4 : $x >= $_x_end4; $x += $_x_inc4) { - array_push($loglist, $x); - } - assertEquals($loglist, array(1, 2, 3, 4), 'count up non-trivial'); - $loglist = array(); - $_x_start5 = 3 + 1; - $_x_end5 = 1 + 0; - $_x_inc5 = 1; - if ($_x_start5 > $_x_end5) { - $_x_inc5 = -$_x_inc5; - } - for ($x = $_x_start5; $_x_inc5 >= 0 ? $x <= $_x_end5 : $x >= $_x_end5; $x += $_x_inc5) { - array_push($loglist, $x); - } - assertEquals($loglist, array(4, 3, 2, 1), 'count down non-trivial'); -} - -// Describe this function... -function test_continue() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $log = ''; - $count = 0; - while ($count != 8) { - $count += 1; - if ($count == 5) { - continue; - } - $log .= $count; - } - assertEquals($log, '1234678', 'while continue'); - $log = ''; - $count = 0; - while (!($count == 8)) { - $count += 1; - if ($count == 5) { - continue; - } - $log .= $count; - } - assertEquals($log, '1234678', 'until continue'); - $log = ''; - for ($x = 1; $x <= 8; $x++) { - if ($x == 5) { - continue; - } - $log .= $x; - } - assertEquals($log, '1234678', 'count continue'); - $log = ''; - foreach (array('a', 'b', 'c', 'd') as $x) { - if ($x == 'c') { - continue; - } - $log .= $x; - } - assertEquals($log, 'abd', 'for continue'); -} - -// Describe this function... -function test_break() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $count = 1; - while ($count != 10) { - if ($count == 5) { - break; - } - $count += 1; - } - assertEquals($count, 5, 'while break'); - $count = 1; - while (!($count == 10)) { - if ($count == 5) { - break; - } - $count += 1; - } - assertEquals($count, 5, 'until break'); - $log = ''; - for ($x = 1; $x <= 8; $x++) { - if ($x == 5) { - break; - } - $log .= $x; - } - assertEquals($log, '1234', 'count break'); - $log = ''; - foreach (array('a', 'b', 'c', 'd') as $x) { - if ($x == 'c') { - break; - } - $log .= $x; - } - assertEquals($log, 'ab', 'for break'); -} - -// Tests the "single" block. -function test_single() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(sqrt(25), 5, 'sqrt'); - assertEquals(abs(-25), 25, 'abs'); - assertEquals(-(-25), 25, 'negate'); - assertEquals(log(1), 0, 'ln'); - assertEquals(log(100) / log(10), 2, 'log10'); - assertEquals(exp(2), 7.38905609893065, 'exp'); - assertEquals(pow(10,2), 100, 'power10'); -} - -// Tests the "arithmetic" block for all operations and checks -// parenthesis are properly generated for different orders. -function test_arithmetic() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(1 + 2, 3, 'add'); - assertEquals(1 - 2, -1, 'subtract'); - assertEquals(1 - (0 + 2), -1, 'subtract order with add'); - assertEquals(1 - (0 - 2), 3, 'subtract order with subtract'); - assertEquals(4 * 2.5, 10, 'multiply'); - assertEquals(4 * (0 + 2.5), 10, 'multiply order'); - assertEquals(8.2 / -5, -1.64, 'divide'); - assertEquals(8.2 / (0 + -5), -1.64, 'divide order'); - assertEquals(10 ** 4, 10000, 'power'); - assertEquals(10 ** (0 + 4), 10000, 'power order'); -} - -// Tests the "trig" block. -function test_trig() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(sin(90 / 180 * pi()), 1, 'sin'); - assertEquals(cos(180 / 180 * pi()), -1, 'cos'); - assertEquals(tan(0 / 180 * pi()), 0, 'tan'); - assertEquals(asin(-1) / pi() * 180, -90, 'asin'); - assertEquals(acos(1) / pi() * 180, 0, 'acos'); - assertEquals(atan(1) / pi() * 180, 45, 'atan'); -} - -// Tests the "constant" blocks. -function test_constant() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(floor(M_PI * 1000), 3141, 'const pi'); - assertEquals(floor(M_E * 1000), 2718, 'const e'); - assertEquals(floor(((1 + sqrt(5)) / 2) * 1000), 1618, 'const golden'); - assertEquals(floor(M_SQRT2 * 1000), 1414, 'const sqrt 2'); - assertEquals(floor(M_SQRT1_2 * 1000), 707, 'const sqrt 0.5'); - assertEquals(9999 < INF, true, 'const infinity'); -} - -function math_isPrime($n) { - // https://en.wikipedia.org/wiki/Primality_test#Naive_methods - if ($n == 2 || $n == 3) { - return true; - } - // False if n is NaN, negative, is 1, or not whole. - // And false if n is divisible by 2 or 3. - if (!is_numeric($n) || $n <= 1 || $n % 1 != 0 || $n % 2 == 0 || $n % 3 == 0) { - return false; - } - // Check all the numbers of form 6k +/- 1, up to sqrt(n). - for ($x = 6; $x <= sqrt($n) + 1; $x += 6) { - if ($n % ($x - 1) == 0 || $n % ($x + 1) == 0) { - return false; - } - } - return true; -} - -// Tests the "number property" blocks. -function test_number_properties() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(42 % 2 == 0, true, 'even'); - assertEquals(42.1 % 2 == 1, false, 'odd'); - assertEquals(math_isPrime(5), true, 'prime 5'); - assertEquals(math_isPrime(25), false, 'prime 25'); - assertEquals(math_isPrime(-31.1), false, 'prime negative'); - assertEquals(is_int(M_PI), false, 'whole'); - assertEquals(INF > 0, true, 'positive'); - assertEquals(-42 < 0, true, 'negative'); - assertEquals(42 % 2 == 0, true, 'divisible'); -} - -// Tests the "round" block. -function test_round() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(round(42.42), 42, 'round'); - assertEquals(ceil(-42.42), -42, 'round up'); - assertEquals(floor(42.42), 42, 'round down'); -} - -// Tests the "change" block. -function test_change() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $varToChange = 100; - $varToChange += 42; - assertEquals($varToChange, 142, 'change'); -} - -function math_mean($myList) { - return array_sum($myList) / count($myList); -} - -function math_median($arr) { - sort($arr,SORT_NUMERIC); - return (count($arr) % 2) ? $arr[floor(count($arr)/2)] : - ($arr[floor(count($arr)/2)] + $arr[floor(count($arr)/2) - 1]) / 2; -} - -function math_modes($values) { - if (empty($values)) return array(); - $counts = array_count_values($values); - arsort($counts); // Sort counts in descending order - $modes = array_keys($counts, current($counts), true); - return $modes; -} - -function math_standard_deviation($numbers) { - $n = count($numbers); - if (!$n) return null; - $mean = array_sum($numbers) / count($numbers); - foreach($numbers as $key => $num) $devs[$key] = pow($num - $mean, 2); - return sqrt(array_sum($devs) / (count($devs) - 1)); -} - -function math_random_list($list) { - $x = rand(0, count($list)-1); - return $list[$x]; -} - -function indexOf($haystack, $needle) { - for ($index = 0; $index < count($haystack); $index++) { - if ($haystack[$index] == $needle) return $index + 1; - } - return 0; -} - -// Tests the "list operation" blocks. -function test_operations_on_list() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(array_sum((array(3, 4, 5))), 12, 'sum'); - assertEquals(min((array(3, 4, 5))), 3, 'min'); - assertEquals(max((array(3, 4, 5))), 5, 'max'); - assertEquals(math_mean(array(3, 4, 5)), 4, 'average'); - assertEquals(math_median(array(3, 4, 5, 1)), 3.5, 'median'); - assertEquals(math_modes(array(3, 4, 3)), array(3), 'modes'); - assertEquals(math_modes(array(3, 4, 3, 1, 4)), array(3, 4), 'modes multiple'); - assertEquals(math_standard_deviation(array(3, 3, 3)), 0, 'standard dev'); - assertEquals(indexOf(array(3, 4, 5), math_random_list(array(3, 4, 5))) > 0, true, 'random'); -} - -// Tests the "mod" block. -function test_mod() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(42 % 5, 2, 'mod'); -} - -// Tests the "constrain" block. -function test_constraint() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(min(max(100, 0), 42), 42, 'constraint'); -} - -function math_random_int($a, $b) { - if ($a > $b) { - return rand($b, $a); - } - return rand($a, $b); -} - -// Tests the "random integer" block. -function test_random_integer() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $rand = math_random_int(5, 10); - assertEquals($rand >= 5 && $rand <= 10, true, 'randRange'); - assertEquals(is_int($rand), true, 'randInteger'); -} - -// Tests the "random fraction" block. -function test_random_fraction() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $rand = (float)rand()/(float)getrandmax(); - assertEquals($rand >= 0 && $rand <= 1, true, 'randFloat'); -} - -// Describe this function... -function test_atan2() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(atan2(5, -5) / pi() * 180, 135, 'atan2'); - assertEquals(atan2(-12, 0) / pi() * 180, -90, 'atan2'); -} - -// Checks that the number of calls is one in order -// to confirm that a function was only called once. -function check_number_of_calls($test_name) { - global $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $test_name .= 'number of calls'; - assertEquals($number_of_calls, 1, $test_name); -} - -// Tests the "create text with" block with varying number of inputs. -function test_create_text() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals('', '', 'no text'); - assertEquals('Hello', 'Hello', 'create single'); - assertEquals(-1, '-1', 'create single number'); - assertEquals('K' . 9, 'K9', 'create double text'); - assertEquals(4 . 2, '42', 'create double text numbers'); - assertEquals(implode('', array(1,2,3)), '123', 'create triple'); - assertEquals(implode('', array(1,true ? 0 : null,'M')), '10M', 'create order'); -} - -// Creates an empty string for use with the empty test. -function get_empty() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - return ''; -} - -// Tests the "is empty" block". -function test_empty_text() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(empty('Google'), false, 'not empty'); - assertEquals(empty(''), true, 'empty'); - assertEquals(empty(get_empty()), true, 'empty complex'); - assertEquals(empty(true ? '' : null), true, 'empty order'); -} - -function length($value) { - if (is_string($value)) { - return strlen($value); - } else { - return count($value); - } -} - -// Tests the "length" block. -function test_text_length() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(length(''), 0, 'zero length'); - assertEquals(length('Google'), 6, 'non-zero length'); - assertEquals(length(true ? 'car' : null), 3, 'length order'); -} - -// Tests the "append text" block with different types of parameters. -function test_append() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $item = 'Miserable'; - $item .= 'Failure'; - assertEquals($item, 'MiserableFailure', 'append text'); - $item = 12; - $item .= 34; - assertEquals($item, '1234', 'append number'); - $item = 'Something '; - $item .= true ? 'Positive' : null; - assertEquals($item, 'Something Positive', 'append order'); -} - -function text_indexOf($text, $search) { - $pos = strpos($text, $search); - return $pos === false ? 0 : $pos + 1; -} - -function text_lastIndexOf($text, $search) { - $pos = strrpos($text, $search); - return $pos === false ? 0 : $pos + 1; -} - -// Tests the "find" block with a variable. -function test_find_text_simple() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = 'Banana'; - assertEquals(text_indexOf($text, 'an'), 2, 'find first simple'); - assertEquals(text_lastIndexOf($text, 'an'), 4, 'find last simple'); - assertEquals(text_indexOf($text, 'Peel'), 0, 'find none simple'); -} - -// Creates a string for use with the find test. -function get_fruit() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls += 1; - return 'Banana'; -} - -// Tests the "find" block with a function call. -function test_find_text_complex() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls = 0; - assertEquals(text_indexOf(get_fruit(), 'an'), 2, 'find first complex'); - check_number_of_calls('find first complex'); - $number_of_calls = 0; - assertEquals(text_indexOf(true ? get_fruit() : null, 'an'), 2, 'find first order complex'); - check_number_of_calls('find first order complex'); - $number_of_calls = 0; - assertEquals(text_lastIndexOf(get_fruit(), 'an'), 4, 'find last complex'); - check_number_of_calls('find last complex'); - $number_of_calls = 0; - assertEquals(text_lastIndexOf(true ? get_fruit() : null, 'an'), 4, 'find last order complex'); - check_number_of_calls('find last order complex'); - $number_of_calls = 0; - assertEquals(text_indexOf(get_fruit(), 'Peel'), 0, 'find none complex'); - check_number_of_calls('find none complex'); - $number_of_calls = 0; - assertEquals(text_indexOf(true ? get_fruit() : null, 'Peel'), 0, 'find none order complex'); - check_number_of_calls('find none order complex'); -} - -function text_random_letter($text) { - return $text[rand(0, strlen($text) - 1)]; -} - -// Tests the "get letter" block with a variable. -function test_get_text_simple() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = 'Blockly'; - assertEquals(substr($text, 0, 1), 'B', 'get first simple'); - assertEquals(substr($text, -1), 'y', 'get last simple'); - assertEquals(text_indexOf($text, text_random_letter($text)) > 0, true, 'get random simple'); - assertEquals(substr($text, 2, 1), 'o', 'get # simple'); - assertEquals(substr($text, ((true ? 3 : null) - 1), 1), 'o', 'get # order simple'); - assertEquals(substr($text, -3, 1), 'k', 'get #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(substr($text, (-(0 + 3)), 1), 'k', 'get #-end order simple'); -} - -// Creates a string for use with the get test. -function get_Blockly() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls += 1; - return 'Blockly'; -} - -// Tests the "get letter" block with a function call. -function test_get_text_complex() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = 'Blockly'; - $number_of_calls = 0; - assertEquals(substr(get_Blockly(), 0, 1), 'B', 'get first complex'); - check_number_of_calls('get first complex'); - $number_of_calls = 0; - assertEquals(substr(true ? get_Blockly() : null, 0, 1), 'B', 'get first order complex'); - check_number_of_calls('get first order complex'); - $number_of_calls = 0; - assertEquals(substr(get_Blockly(), -1), 'y', 'get last complex'); - check_number_of_calls('get last complex'); - $number_of_calls = 0; - assertEquals(substr(true ? get_Blockly() : null, -1), 'y', 'get last order complex'); - check_number_of_calls('get last order complex'); - $number_of_calls = 0; - assertEquals(text_indexOf($text, text_random_letter(get_Blockly())) > 0, true, 'get random complex'); - check_number_of_calls('get random complex'); - $number_of_calls = 0; - assertEquals(text_indexOf($text, text_random_letter(true ? get_Blockly() : null)) > 0, true, 'get random order complex'); - check_number_of_calls('get random order complex'); - $number_of_calls = 0; - assertEquals(substr(get_Blockly(), 2, 1), 'o', 'get # complex'); - check_number_of_calls('get # complex'); - $number_of_calls = 0; - assertEquals(substr(true ? get_Blockly() : null, ((true ? 3 : null) - 1), 1), 'o', 'get # order complex'); - check_number_of_calls('get # order complex'); - $number_of_calls = 0; - assertEquals(substr(get_Blockly(), -3, 1), 'k', 'get #-end complex'); - check_number_of_calls('get #-end complex'); - $number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(substr(true ? get_Blockly() : null, (-(0 + 3)), 1), 'k', 'get #-end order complex'); - check_number_of_calls('get #-end order complex'); -} - -// Creates a string for use with the substring test. -function get_numbers() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls += 1; - return '123456789'; -} - -function text_get_substring($text, $where1, $at1, $where2, $at2) { - if ($where1 == 'FROM_END') { - $at1 = strlen($text) - 1 - $at1; - } else if ($where1 == 'FIRST') { - $at1 = 0; - } else if ($where1 != 'FROM_START') { - throw new Exception('Unhandled option (text_get_substring).'); - } - $length = 0; - if ($where2 == 'FROM_START') { - $length = $at2 - $at1 + 1; - } else if ($where2 == 'FROM_END') { - $length = strlen($text) - $at1 - $at2; - } else if ($where2 == 'LAST') { - $length = strlen($text) - $at1; - } else { - throw new Exception('Unhandled option (text_get_substring).'); - } - return substr($text, $at1, $length); -} - -// Tests the "get substring" block with a variable. -function test_substring_simple() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = '123456789'; - assertEquals(text_get_substring($text, 'FROM_START', 1, 'FROM_START', 2), '23', 'substring # simple'); - assertEquals(text_get_substring($text, 'FROM_START', ((true ? 2 : null) - 1), 'FROM_START', ((true ? 3 : null) - 1)), '23', 'substring # simple order'); - assertEquals(text_get_substring($text, 'FROM_END', 2, 'FROM_END', 1), '78', 'substring #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text_get_substring($text, 'FROM_END', ((0 + 3) - 1), 'FROM_END', ((0 + 2) - 1)), '78', 'substring #-end simple order'); - assertEquals($text, $text, 'substring first-last simple'); - assertEquals(text_get_substring($text, 'FROM_START', 1, 'FROM_END', 1), '2345678', 'substring # #-end simple'); - assertEquals(text_get_substring($text, 'FROM_END', 6, 'FROM_START', 3), '34', 'substring #-end # simple'); - assertEquals(text_get_substring($text, 'FIRST', 0, 'FROM_START', 3), '1234', 'substring first # simple'); - assertEquals(text_get_substring($text, 'FIRST', 0, 'FROM_END', 1), '12345678', 'substring first #-end simple'); - assertEquals(text_get_substring($text, 'FROM_START', 6, 'LAST', 0), '789', 'substring # last simple'); - assertEquals(text_get_substring($text, 'FROM_END', 2, 'LAST', 0), '789', 'substring #-end last simple'); - assertEquals(text_get_substring($text, 'FROM_START', 0, 'FROM_END', 0), '123456789', 'substring all with # #-end simple'); - assertEquals(text_get_substring($text, 'FROM_END', 8, 'FROM_START', 8), '123456789', 'substring all with #-end # simple'); - // Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(text_get_substring($text, 'FROM_START', ((0 + 1) - 1), 'FROM_END', ((0 + 1) - 1)), '123456789', 'substring all with # #-end math simple'); -} - -// Tests the "get substring" block with a function call. -function test_substring_complex() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_START', 1, 'FROM_START', 2), '23', 'substring # complex'); - check_number_of_calls('substring # complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((true ? get_numbers() : null), 'FROM_START', ((true ? 2 : null) - 1), 'FROM_START', ((true ? 3 : null) - 1)), '23', 'substring # complex order'); - check_number_of_calls('substring # complex order'); - $number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text_get_substring((get_numbers()), 'FROM_END', 2, 'FROM_END', 1), '78', 'substring #-end complex'); - check_number_of_calls('substring #-end complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((true ? get_numbers() : null), 'FROM_END', ((0 + 3) - 1), 'FROM_END', ((0 + 2) - 1)), '78', 'substring #-end order order'); - check_number_of_calls('substring #-end order order'); - $number_of_calls = 0; - assertEquals((get_numbers()), $text, 'substring first-last'); - check_number_of_calls('substring first-last'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_START', 1, 'FROM_END', 1), '2345678', 'substring # #-end complex'); - check_number_of_calls('substring # #-end complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_END', 6, 'FROM_START', 3), '34', 'substring #-end # complex'); - check_number_of_calls('substring #-end # complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FIRST', 0, 'FROM_START', 3), '1234', 'substring first # complex'); - check_number_of_calls('substring first # complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FIRST', 0, 'FROM_END', 1), '12345678', 'substring first #-end complex'); - check_number_of_calls('substring first #-end complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_START', 6, 'LAST', 0), '789', 'substring # last complex'); - check_number_of_calls('substring # last complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_END', 2, 'LAST', 0), '789', 'substring #-end last complex'); - check_number_of_calls('substring #-end last complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_START', 0, 'FROM_END', 0), '123456789', 'substring all with # #-end complex'); - check_number_of_calls('substring all with # #-end complex'); - $number_of_calls = 0; - assertEquals(text_get_substring((get_numbers()), 'FROM_END', 8, 'FROM_START', 8), '123456789', 'substring all with #-end # complex'); - check_number_of_calls('substring all with #-end # complex'); - $number_of_calls = 0; - // Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(text_get_substring((get_numbers()), 'FROM_START', ((0 + 1) - 1), 'FROM_END', ((0 + 1) - 1)), '123456789', 'substring all with # #-end math complex'); - check_number_of_calls('substring all with # #-end math complex'); -} - -// Tests the "change casing" block. -function test_case() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = 'Hello World'; - assertEquals(strtoupper($text), 'HELLO WORLD', 'uppercase'); - assertEquals(strtoupper(true ? $text : null), 'HELLO WORLD', 'uppercase order'); - $text = 'Hello World'; - assertEquals(strtolower($text), 'hello world', 'lowercase'); - assertEquals(strtolower(true ? $text : null), 'hello world', 'lowercase order'); - $text = 'heLLo WorlD'; - assertEquals(ucwords(strtolower($text)), 'Hello World', 'titlecase'); - assertEquals(ucwords(strtolower(true ? $text : null)), 'Hello World', 'titlecase order'); -} - -// Tests the "trim" block. -function test_trim() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = ' abc def '; - assertEquals(trim($text), 'abc def', 'trim both'); - assertEquals(trim(true ? $text : null), 'abc def', 'trim both order'); - assertEquals(ltrim($text), 'abc def ', 'trim left'); - assertEquals(ltrim(true ? $text : null), 'abc def ', 'trim left order'); - assertEquals(rtrim($text), ' abc def', 'trim right'); - assertEquals(rtrim(true ? $text : null), ' abc def', 'trim right order'); -} - -// Tests the "trim" block. -function test_count_text() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = 'woolloomooloo'; - assertEquals(strlen('o') === 0 ? strlen($text) + 1 : substr_count($text, 'o'), 8, 'len 1'); - assertEquals(strlen('oo') === 0 ? strlen($text) + 1 : substr_count($text, 'oo'), 4, 'len 2'); - assertEquals(strlen('loo') === 0 ? strlen($text) + 1 : substr_count($text, 'loo'), 2, 'len 3'); - assertEquals(strlen('wool') === 0 ? strlen($text) + 1 : substr_count($text, 'wool'), 1, 'start'); - assertEquals(strlen('chicken') === 0 ? strlen($text) + 1 : substr_count($text, 'chicken'), 0, 'missing'); - assertEquals(strlen('') === 0 ? strlen($text) + 1 : substr_count($text, ''), 14, 'empty needle'); - assertEquals(strlen('chicken') === 0 ? strlen('') + 1 : substr_count('', 'chicken'), 0, 'empty source'); -} - -// Tests the "trim" block. -function test_text_reverse() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(strrev(''), '', 'empty string'); - assertEquals(strrev('a'), 'a', 'len 1'); - assertEquals(strrev('ab'), 'ba', 'len 2'); - assertEquals(strrev('woolloomooloo'), 'ooloomoolloow', 'longer'); -} - -// Tests the "trim" block. -function test_replace() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(str_replace('oo', '123', 'woolloomooloo'), 'w123ll123m123l123', 'replace all instances 1'); - assertEquals(str_replace('.oo', 'X', 'woolloomooloo'), 'woolloomooloo', 'literal string replacement'); - assertEquals(str_replace('abc', 'X', 'woolloomooloo'), 'woolloomooloo', 'not found'); - assertEquals(str_replace('o', '', 'woolloomooloo'), 'wllml', 'empty replacement 1'); - assertEquals(str_replace('aaaaa', '', 'aaaaa'), '', 'empty replacement 2'); - assertEquals(str_replace('a', '', 'aaaaa'), '', 'empty replacement 3'); - assertEquals(str_replace('a', 'chicken', ''), '', 'empty source'); -} - -// Checks that the number of calls is one in order -// to confirm that a function was only called once. -function check_number_of_calls2($test_name) { - global $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $test_name .= 'number of calls'; - assertEquals($number_of_calls, 1, $test_name); -} - -function lists_repeat($value, $count) { - $array = array(); - for ($index = 0; $index < $count; $index++) { - $array[] = $value; - } - return $array; -} - -// Tests the "create list with" and "create empty list" blocks. -function test_create_lists() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(array(), array(), 'create empty'); - assertEquals(array(true, 'love'), array(true, 'love'), 'create items'); - assertEquals(lists_repeat('Eject', 3), array('Eject', 'Eject', 'Eject'), 'create repeated'); - assertEquals(lists_repeat('Eject', 0 + 3), array('Eject', 'Eject', 'Eject'), 'create repeated order'); -} - -// Creates an empty list for use with the empty test. -function get_empty_list() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - return array(); -} - -// Tests the "is empty" block. -function test_lists_empty() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(empty((array(0))), false, 'not empty'); - assertEquals(empty((array())), true, 'empty'); - assertEquals(empty((get_empty_list())), true, 'empty complex'); - assertEquals(empty((true ? array() : null)), true, 'empty order'); -} - -// Tests the "length" block. -function test_lists_length() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(length(array()), 0, 'zero length'); - assertEquals(length(array('cat')), 1, 'one length'); - assertEquals(length(array('cat', true, array())), 3, 'three length'); - assertEquals(length(true ? array('cat', true) : null), 2, 'two length order'); -} - -function lastIndexOf($haystack, $needle) { - $last = 0; - for ($index = 0; $index < count($haystack); $index++) { - if ($haystack[$index] == $needle) $last = $index + 1; - } - return $last; -} - -// Tests the "find" block with a variable. -function test_find_lists_simple() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Alice', 'Eve', 'Bob', 'Eve'); - assertEquals(indexOf($list2, 'Eve'), 2, 'find first simple'); - assertEquals(lastIndexOf($list2, 'Eve'), 4, 'find last simple'); - assertEquals(indexOf($list2, 'Dave'), 0, 'find none simple'); -} - -// Creates a list for use with the find test. -function get_names() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls += 1; - return array('Alice', 'Eve', 'Bob', 'Eve'); -} - -// Tests the "find" block with a function call. -function test_find_lists_complex() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls = 0; - assertEquals(indexOf(get_names(), 'Eve'), 2, 'find first complex'); - check_number_of_calls('find first complex'); - $number_of_calls = 0; - assertEquals(indexOf((true ? get_names() : null), 'Eve'), 2, 'find first order complex'); - check_number_of_calls('find first order complex'); - $number_of_calls = 0; - assertEquals(lastIndexOf(get_names(), 'Eve'), 4, 'find last complex'); - check_number_of_calls('find last complex'); - $number_of_calls = 0; - assertEquals(lastIndexOf((true ? get_names() : null), 'Eve'), 4, 'find last order complex'); - check_number_of_calls('find last order complex'); - $number_of_calls = 0; - assertEquals(indexOf(get_names(), 'Dave'), 0, 'find none complex'); - check_number_of_calls('find none complex'); - $number_of_calls = 0; - assertEquals(indexOf((true ? get_names() : null), 'Dave'), 0, 'find none order complex'); - check_number_of_calls('find none order complex'); -} - -function lists_get_random_item($list) { - return $list[rand(0,count($list)-1)]; -} - -// Tests the "get" block with a variable. -function test_get_lists_simple() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals($list2[0], 'Kirk', 'get first simple'); - assertEquals(end($list2), 'McCoy', 'get last simple'); - assertEquals(indexOf($list2, lists_get_random_item($list2)) > 0, true, 'get random simple'); - assertEquals($list2[1], 'Spock', 'get # simple'); - assertEquals($list2[((true ? 2 : null) - 1)], 'Spock', 'get # order simple'); - assertEquals(array_slice($list2, -3, 1)[0], 'Kirk', 'get #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(array_slice($list2, (-(0 + 3)), 1)[0], 'Kirk', 'get #-end order simple'); -} - -// Creates a list for use with the get test. -function get_star_wars() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls += 1; - return array('Kirk', 'Spock', 'McCoy'); -} - -// Tests the "get" block with a function call. -function test_get_lists_complex() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Kirk', 'Spock', 'McCoy'); - $number_of_calls = 0; - assertEquals(get_star_wars()[0], 'Kirk', 'get first complex'); - check_number_of_calls('get first complex'); - $number_of_calls = 0; - assertEquals((true ? get_star_wars() : null)[0], 'Kirk', 'get first order complex'); - check_number_of_calls('get first order complex'); - $number_of_calls = 0; - assertEquals(end(get_star_wars()), 'McCoy', 'get last complex'); - check_number_of_calls('get last complex'); - $number_of_calls = 0; - assertEquals(end(true ? get_star_wars() : null), 'McCoy', 'get last order complex'); - check_number_of_calls('get last order complex'); - $number_of_calls = 0; - assertEquals(indexOf($list2, lists_get_random_item(get_star_wars())) > 0, true, 'get random complex'); - check_number_of_calls('get random complex'); - $number_of_calls = 0; - assertEquals(indexOf($list2, lists_get_random_item(true ? get_star_wars() : null)) > 0, true, 'get random order complex'); - check_number_of_calls('get random order complex'); - $number_of_calls = 0; - assertEquals(get_star_wars()[1], 'Spock', 'get # complex'); - check_number_of_calls('get # complex'); - $number_of_calls = 0; - assertEquals((true ? get_star_wars() : null)[((true ? 2 : null) - 1)], 'Spock', 'get # order complex'); - check_number_of_calls('get # order complex'); - $number_of_calls = 0; - assertEquals(array_slice(get_star_wars(), -3, 1)[0], 'Kirk', 'get #-end complex'); - check_number_of_calls('get #-end complex'); - $number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(array_slice(true ? get_star_wars() : null, (-(0 + 3)), 1)[0], 'Kirk', 'get #-end order complex'); - check_number_of_calls('get #-end order complex'); -} - -function lists_get_remove_random_item(&$list) { - $x = rand(0,count($list)-1); - unset($list[$x]); - return array_values($list); -} - -// Tests the "get and remove" block. -function test_getRemove() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_shift($list2), 'Kirk', 'getremove first'); - assertEquals($list2, array('Spock', 'McCoy'), 'getremove first list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_shift(true ? $list2 : null), 'Kirk', 'getremove first order'); - assertEquals($list2, array('Spock', 'McCoy'), 'getremove first order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_pop($list2), 'McCoy', 'getremove last'); - assertEquals($list2, array('Kirk', 'Spock'), 'getremove last list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_pop(true ? $list2 : null), 'McCoy', 'getremove last order'); - assertEquals($list2, array('Kirk', 'Spock'), 'getremove last order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(indexOf($list2, lists_get_remove_random_item($list2)) == 0, true, 'getremove random'); - assertEquals(length($list2), 2, 'getremove random list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(indexOf($list2, lists_get_remove_random_item(true ? $list2 : null)) == 0, true, 'getremove random order'); - assertEquals(length($list2), 2, 'getremove random order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_splice($list2, 1, 1)[0], 'Spock', 'getremove #'); - assertEquals($list2, array('Kirk', 'McCoy'), 'getremove # list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_splice(true ? $list2 : null, ((true ? 2 : null) - 1), 1)[0], 'Spock', 'getremove # order'); - assertEquals($list2, array('Kirk', 'McCoy'), 'getremove # order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - assertEquals(array_splice($list2, count($list2) - 3, 1)[0], 'Kirk', 'getremove #-end'); - assertEquals($list2, array('Spock', 'McCoy'), 'getremove #-end list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(array_splice(true ? $list2 : null, count(true ? $list2 : null) - (0 + 3), 1)[0], 'Kirk', 'getremove #-end order'); - assertEquals($list2, array('Spock', 'McCoy'), 'getremove #-end order list'); -} - -function lists_remove_random_item(&$list) { - unset($list[rand(0,count($list)-1)]); -} - -// Tests the "remove" block. -function test_remove() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_shift($list2); - assertEquals($list2, array('Spock', 'McCoy'), 'remove first list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_shift(true ? $list2 : null); - assertEquals($list2, array('Spock', 'McCoy'), 'remove first order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_pop($list2); - assertEquals($list2, array('Kirk', 'Spock'), 'remove last list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_pop(true ? $list2 : null); - assertEquals($list2, array('Kirk', 'Spock'), 'remove last order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - lists_remove_random_item($list2); - assertEquals(length($list2), 2, 'remove random list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - lists_remove_random_item(true ? $list2 : null); - assertEquals(length($list2), 2, 'remove random order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_splice($list2, 1, 1); - assertEquals($list2, array('Kirk', 'McCoy'), 'remove # list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_splice(true ? $list2 : null, ((true ? 2 : null) - 1), 1); - assertEquals($list2, array('Kirk', 'McCoy'), 'remove # order list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - array_splice($list2, count($list2) - 3, 1)[0]; - assertEquals($list2, array('Spock', 'McCoy'), 'remove #-end list'); - $list2 = array('Kirk', 'Spock', 'McCoy'); - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - array_splice(true ? $list2 : null, count(true ? $list2 : null) - (0 + 3), 1)[0]; - assertEquals($list2, array('Spock', 'McCoy'), 'remove #-end order list'); -} - -function lists_set_last_item(&$list, $value) { - $list[count($list) - 1] = $value; -} - -function lists_set_from_end(&$list, $at, $value) { - $list[count($list) - $at] = $value; -} - -// Tests the "set" block. -function test_set() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Picard', 'Riker', 'Crusher'); - $list2[0] = 'Jean-Luc'; - assertEquals($list2, array('Jean-Luc', 'Riker', 'Crusher'), 'set first list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - (true ? $list2 : null)[0] = 'Jean-Luc'; - assertEquals($list2, array('Jean-Luc', 'Riker', 'Crusher'), 'set first order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - lists_set_last_item($list2, 'Beverly'); - assertEquals($list2, array('Picard', 'Riker', 'Beverly'), 'set last list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - lists_set_last_item(true ? $list2 : null, 'Beverly'); - assertEquals($list2, array('Picard', 'Riker', 'Beverly'), 'set last order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - $tmp_x = rand(0, count($list2)-1); - $list2[$tmp_x] = 'Data'; - assertEquals(length($list2), 3, 'set random list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - $tmp_list = &(true ? $list2 : null); - $tmp_x2 = rand(0, count($tmp_list)-1); - $tmp_list[$tmp_x2] = 'Data'; - assertEquals(length($list2), 3, 'set random order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - $list2[2] = 'Pulaski'; - assertEquals($list2, array('Picard', 'Riker', 'Pulaski'), 'set # list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - (true ? $list2 : null)[((true ? 3 : null) - 1)] = 'Pulaski'; - assertEquals($list2, array('Picard', 'Riker', 'Pulaski'), 'set # order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - lists_set_from_end($list2, 1, 'Pulaski'); - assertEquals($list2, array('Picard', 'Riker', 'Pulaski'), 'set #-end list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - lists_set_from_end(true ? $list2 : null, 0 + 2, 'Pulaski'); - assertEquals($list2, array('Picard', 'Pulaski', 'Crusher'), 'set #-end order list'); -} - -function lists_insert_from_end(&$list, $at, $value) { - return array_splice($list, count($list) - $at, 0, $value); -} - -// Tests the "insert" block. -function test_insert() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Picard', 'Riker', 'Crusher'); - array_unshift($list2, 'Data'); - assertEquals($list2, array('Data', 'Picard', 'Riker', 'Crusher'), 'insert first list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - array_unshift(true ? $list2 : null, 'Data'); - assertEquals($list2, array('Data', 'Picard', 'Riker', 'Crusher'), 'insert first order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - array_push($list2, 'Data'); - assertEquals($list2, array('Picard', 'Riker', 'Crusher', 'Data'), 'insert last list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - array_push(true ? $list2 : null, 'Data'); - assertEquals($list2, array('Picard', 'Riker', 'Crusher', 'Data'), 'insert last order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - $tmp_x3 = rand(0, count($list2)-1); - array_splice($list2, $tmp_x3, 0, 'Data'); - assertEquals(length($list2), 4, 'insert random list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - $tmp_list2 = &(true ? $list2 : null); - $tmp_x4 = rand(0, count($tmp_list2)-1); - array_splice($tmp_list2, $tmp_x4, 0, 'Data'); - assertEquals(length($list2), 4, 'insert random order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - array_splice($list2, 2, 0, 'Data'); - assertEquals($list2, array('Picard', 'Riker', 'Data', 'Crusher'), 'insert # list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - array_splice(true ? $list2 : null, ((true ? 3 : null) - 1), 0, 'Data'); - assertEquals($list2, array('Picard', 'Riker', 'Data', 'Crusher'), 'insert # order list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - lists_insert_from_end($list2, 1, 'Data'); - assertEquals($list2, array('Picard', 'Riker', 'Data', 'Crusher'), 'insert #-end list'); - $list2 = array('Picard', 'Riker', 'Crusher'); - // The order for index for #-end is addition because this will catch - // errors in generators where most perform the operation ... - index. - lists_insert_from_end(true ? $list2 : null, 0 + 2, 'Data'); - assertEquals($list2, array('Picard', 'Data', 'Riker', 'Crusher'), 'insert #-end order list'); -} - -// Tests the "get sub-list" block with a variable. -function test_sublist_simple() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'); - assertEquals(array_slice($list2, 1, 2 - 1 + 1), array('Challenger', 'Discovery'), 'sublist # simple'); - assertEquals(array_slice($list2, ((true ? 2 : null) - 1), ((true ? 3 : null) - 1) - ((true ? 2 : null) - 1) + 1), array('Challenger', 'Discovery'), 'sublist # simple order'); - assertEquals(array_slice($list2, count($list2) - 3, count($list2) - 1 - (count($list2) - 3)), array('Discovery', 'Atlantis'), 'sublist #-end simple'); - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(array_slice($list2, count($list2) - (0 + 3), count($list2) - ((0 + 2) - 1) - (count($list2) - (0 + 3))), array('Discovery', 'Atlantis'), 'sublist #-end simple order'); - assertEquals($list2, $list2, 'sublist first-last simple'); - $changing_list = array('Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'); - $list_copy = $changing_list; - lists_remove_random_item($changing_list); - assertEquals($list_copy, $list2, 'sublist first-last simple copy check'); - assertEquals(array_slice($list2, 1, count($list2) - 1 - 1), array('Challenger', 'Discovery', 'Atlantis'), 'sublist # #-end simple'); - assertEquals(array_slice($list2, count($list2) - 3, 3 - (count($list2) - 3) + 1), array('Discovery', 'Atlantis'), 'sublist #-end # simple'); - assertEquals(array_slice($list2, 0, 3 - 0 + 1), array('Columbia', 'Challenger', 'Discovery', 'Atlantis'), 'sublist first # simple'); - assertEquals(array_slice($list2, 0, count($list2) - 3 - 0), array('Columbia', 'Challenger'), 'sublist first #-end simple'); - assertEquals(array_slice($list2, 3, count($list2) - 3), array('Atlantis', 'Endeavour'), 'sublist # last simple'); - assertEquals(array_slice($list2, count($list2) - 4, count($list2) - (count($list2) - 4)), array('Challenger', 'Discovery', 'Atlantis', 'Endeavour'), 'sublist #-end last simple'); - assertEquals(array_slice($list2, 0, count($list2) - 0 - 0), $list2, 'sublist all with # #-end simple'); - assertEquals(array_slice($list2, count($list2) - 5, 4 - (count($list2) - 5) + 1), $list2, 'sublist all with #-end # simple'); - // Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(array_slice($list2, ((0 + 1) - 1), count($list2) - ((0 + 1) - 1) - ((0 + 1) - 1)), $list2, 'sublist all with # #-end math simple'); -} - -// Creates a list for use with the sublist test. -function get_space_shuttles() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls += 1; - return array('Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'); -} - -function lists_get_sublist($list, $where1, $at1, $where2, $at2) { - if ($where1 == 'FROM_END') { - $at1 = count($list) - 1 - $at1; - } else if ($where1 == 'FIRST') { - $at1 = 0; - } else if ($where1 != 'FROM_START') { - throw new Exception('Unhandled option (lists_get_sublist).'); - } - $length = 0; - if ($where2 == 'FROM_START') { - $length = $at2 - $at1 + 1; - } else if ($where2 == 'FROM_END') { - $length = count($list) - $at1 - $at2; - } else if ($where2 == 'LAST') { - $length = count($list) - $at1; - } else { - throw new Exception('Unhandled option (lists_get_sublist).'); - } - return array_slice($list, $at1, $length); -} - -// Tests the "get sub-list" block with a function call. -function test_sublist_complex() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $number_of_calls = 0; - assertEquals(array_slice(get_space_shuttles(), 1, 2 - 1 + 1), array('Challenger', 'Discovery'), 'sublist # start complex'); - check_number_of_calls('sublist # start complex'); - $number_of_calls = 0; - assertEquals(array_slice(true ? get_space_shuttles() : null, ((true ? 2 : null) - 1), ((true ? 3 : null) - 1) - ((true ? 2 : null) - 1) + 1), array('Challenger', 'Discovery'), 'sublist # start order complex'); - check_number_of_calls('sublist # start order complex'); - $number_of_calls = 0; - // The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_END', 2, 'FROM_END', 1), array('Discovery', 'Atlantis'), 'sublist # end complex'); - assertEquals($number_of_calls, 1, 'sublist # end complex number of calls'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(true ? get_space_shuttles() : null, 'FROM_END', ((0 + 3) - 1), 'FROM_END', ((0 + 2) - 1)), array('Discovery', 'Atlantis'), 'sublist # end order complex'); - check_number_of_calls('sublist # end order complex'); - $number_of_calls = 0; - assertEquals(get_space_shuttles(), $list2, 'sublist first-last complex'); - check_number_of_calls('sublist first-last complex'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_START', 1, 'FROM_END', 1), array('Challenger', 'Discovery', 'Atlantis'), 'sublist # #-end complex'); - check_number_of_calls('sublist # #-end complex'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_END', 2, 'FROM_START', 3), array('Discovery', 'Atlantis'), 'sublist #-end # complex'); - check_number_of_calls('sublist #-end # complex'); - $number_of_calls = 0; - assertEquals(array_slice(get_space_shuttles(), 0, 3 - 0 + 1), array('Columbia', 'Challenger', 'Discovery', 'Atlantis'), 'sublist first # complex'); - check_number_of_calls('sublist first # complex'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FIRST', 0, 'FROM_END', 3), array('Columbia', 'Challenger'), 'sublist first #-end complex'); - check_number_of_calls('sublist first #-end complex'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_START', 3, 'LAST', 0), array('Atlantis', 'Endeavour'), 'sublist # last complex'); - check_number_of_calls('sublist # last complex'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_END', 3, 'LAST', 0), array('Challenger', 'Discovery', 'Atlantis', 'Endeavour'), 'sublist #-end last simple'); - check_number_of_calls('sublist #-end last simple'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_START', 0, 'FROM_END', 0), $list2, 'sublist all with # #-end complex'); - check_number_of_calls('sublist all with # #-end complex'); - $number_of_calls = 0; - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_END', 4, 'FROM_START', 4), $list2, 'sublist all with #-end # complex'); - check_number_of_calls('sublist all with #-end # complex'); - $number_of_calls = 0; - // Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(lists_get_sublist(get_space_shuttles(), 'FROM_START', ((0 + 1) - 1), 'FROM_END', ((0 + 1) - 1)), $list2, 'sublist all with # #-end math complex'); - check_number_of_calls('sublist all with # #-end math complex'); -} - -// Tests the "join" block. -function test_join() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Vulcan', 'Klingon', 'Borg'); - assertEquals(implode(',', $list2), 'Vulcan,Klingon,Borg', 'join'); - assertEquals(implode(',', true ? $list2 : null), 'Vulcan,Klingon,Borg', 'join order'); -} - -// Tests the "split" block. -function test_split() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $text = 'Vulcan,Klingon,Borg'; - assertEquals(explode(',', $text), array('Vulcan', 'Klingon', 'Borg'), 'split'); - assertEquals(explode(',', true ? $text : null), array('Vulcan', 'Klingon', 'Borg'), 'split order'); -} - -function lists_sort($list, $type, $direction) { - $sortCmpFuncs = array( - "NUMERIC" => "strnatcasecmp", - "TEXT" => "strcmp", - "IGNORE_CASE" => "strcasecmp" - ); - $sortCmp = $sortCmpFuncs[$type]; - $list2 = $list; - usort($list2, $sortCmp); - if ($direction == -1) { - $list2 = array_reverse($list2); - } - return $list2; -} - -// Tests the "alphabetic sort" block. -function test_sort_alphabetic() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Vulcan', 'klingon', 'Borg'); - assertEquals(lists_sort($list2, "TEXT", 1), array('Borg', 'Vulcan', 'klingon'), 'sort alphabetic ascending'); - assertEquals(lists_sort(true ? $list2 : null, "TEXT", 1), array('Borg', 'Vulcan', 'klingon'), 'sort alphabetic ascending order'); -} - -// Tests the "alphabetic sort ignore case" block. -function test_sort_ignoreCase() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array('Vulcan', 'klingon', 'Borg'); - assertEquals(lists_sort($list2, "IGNORE_CASE", 1), array('Borg', 'klingon', 'Vulcan'), 'sort ignore case ascending'); - assertEquals(lists_sort(true ? $list2 : null, "IGNORE_CASE", 1), array('Borg', 'klingon', 'Vulcan'), 'sort ignore case ascending order'); -} - -// Tests the "numeric sort" block. -function test_sort_numeric() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array(8, 18, -1); - assertEquals(lists_sort($list2, "NUMERIC", -1), array(18, 8, -1), 'sort numeric descending'); - assertEquals(lists_sort(true ? $list2 : null, "NUMERIC", -1), array(18, 8, -1), 'sort numeric descending order'); -} - -// Tests the "list reverse" block. -function test_lists_reverse() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $list2 = array(8, 18, -1, 64); - assertEquals(array_reverse($list2), array(64, -1, 18, 8), 'reverse a copy'); - assertEquals($list2, array(8, 18, -1, 64), 'reverse a copy original'); - $list2 = array(); - assertEquals(array_reverse($list2), array(), 'empty list'); -} - -// Describe this function... -function test_colour_picker() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals('#ff6600', '#ff6600', 'static colour'); -} - -function colour_rgb($r, $g, $b) { - $r = round(max(min($r, 100), 0) * 2.55); - $g = round(max(min($g, 100), 0) * 2.55); - $b = round(max(min($b, 100), 0) * 2.55); - $hex = '#'; - $hex .= str_pad(dechex($r), 2, '0', STR_PAD_LEFT); - $hex .= str_pad(dechex($g), 2, '0', STR_PAD_LEFT); - $hex .= str_pad(dechex($b), 2, '0', STR_PAD_LEFT); - return $hex; -} - -// Describe this function... -function test_rgb() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(colour_rgb(100, 40, 0), '#ff6600', 'from rgb'); -} - -function colour_random() { - return '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT); -} - -// Describe this function... -function test_colour_random() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - for ($count4 = 0; $count4 < 100; $count4++) { - $item = colour_random(); - assertEquals(length($item), 7, 'length of random colour string: ' . $item); - assertEquals(substr($item, 0, 1), '#', 'format of random colour string: ' . $item); - for ($i = 1; $i <= 6; $i++) { - assertEquals(0 != text_indexOf('abcdefABDEF0123456789', substr($item, (($i + 1) - 1), 1)), true, implode('', array('contents of random colour string: ',$item,' at index: ',$i + 1))); - } - } -} - -function colour_blend($c1, $c2, $ratio) { - $ratio = max(min($ratio, 1), 0); - $r1 = hexdec(substr($c1, 1, 2)); - $g1 = hexdec(substr($c1, 3, 2)); - $b1 = hexdec(substr($c1, 5, 2)); - $r2 = hexdec(substr($c2, 1, 2)); - $g2 = hexdec(substr($c2, 3, 2)); - $b2 = hexdec(substr($c2, 5, 2)); - $r = round($r1 * (1 - $ratio) + $r2 * $ratio); - $g = round($g1 * (1 - $ratio) + $g2 * $ratio); - $b = round($b1 * (1 - $ratio) + $b2 * $ratio); - $hex = '#'; - $hex .= str_pad(dechex($r), 2, '0', STR_PAD_LEFT); - $hex .= str_pad(dechex($g), 2, '0', STR_PAD_LEFT); - $hex .= str_pad(dechex($b), 2, '0', STR_PAD_LEFT); - return $hex; -} - -// Describe this function... -function test_blend() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(colour_blend('#ff0000', colour_rgb(100, 40, 0), 0.4), '#ff2900', 'blend'); -} - -// Describe this function... -function test_procedure() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - procedure_1(8, 2); - assertEquals($proc_z, 4, 'procedure with global'); - $proc_w = false; - procedure_2(false); - assertEquals($proc_w, true, 'procedure no return'); - $proc_w = false; - procedure_2(true); - assertEquals($proc_w, false, 'procedure return'); -} - -// Describe this function... -function procedure_1($proc_x, $proc_y) { - global $test_name, $naked, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $proc_z = $proc_x / $proc_y; -} - -// Describe this function... -function procedure_2($proc_x) { - global $test_name, $naked, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - if ($proc_x) { - return; - } - $proc_w = true; -} - -// Describe this function... -function test_function() { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - assertEquals(function_1(2, 3), -1, 'function with arguments'); - assertEquals($func_z, 'side effect', 'function with side effect'); - $func_a = 'unchanged'; - $func_c = 'global'; - assertEquals(function_2(2), '3global', 'function with global'); - assertEquals($func_a, 'unchanged', 'function with scope'); - assertEquals(function_3(true), true, 'function return'); - assertEquals(function_3(false), false, 'function no return'); -} - -// Describe this function... -function function_1($func_x, $func_y) { - global $test_name, $naked, $proc_x, $proc_y, $func_a, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $func_z = 'side effect'; - return $func_x - $func_y; -} - -// Describe this function... -function function_2($func_a) { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - $func_a += 1; - return $func_a . $func_c; -} - -// Describe this function... -function function_3($func_a) { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $n, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - if ($func_a) { - return true; - } - return false; -} - -// Describe this function... -function recurse($n) { - global $test_name, $naked, $proc_x, $proc_y, $func_x, $func_y, $func_a, $ok, $log, $count, $varToChange, $rand, $item, $text, $number_of_calls, $list2, $proc_z, $func_z, $x, $proc_w, $func_c, $if2, $i, $loglist, $changing_list, $list_copy, $unittestResults; - if ($n > 0) { - $text = implode('', array(recurse($n - 1),$n,recurse($n - 1))); - } else { - $text = '-'; - } - return $text; -} - - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Logic\n"); -assertEquals(true, true, 'True'); -assertEquals(false, false, 'False'); -assertEquals(!false, true, 'Not true'); -assertEquals(!true, false, 'Not false'); -test_if(); -test_ifelse(); -test_equalities(); -test_and(); -test_or(); -test_ternary(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Loops 1\n"); -test_repeat(); -test_repeat_ext(); -test_while(); -test_foreach(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Loops 2\n"); -test_count_loops(); -test_count_by(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Loops 3\n"); -test_break(); -test_continue(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Math\n"); -test_arithmetic(); -test_single(); -test_trig(); -test_constant(); -test_change(); -test_number_properties(); -test_round(); -test_operations_on_list(); -test_constraint(); -test_mod(); -test_random_integer(); -test_random_fraction(); -test_atan2(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Text\n"); -test_text_length(); -test_empty_text(); -test_create_text(); -test_append(); -test_find_text_simple(); -test_find_text_complex(); -test_get_text_simple(); -test_get_text_complex(); -test_substring_simple(); -test_substring_complex(); -test_case(); -test_trim(); -test_count_text(); -test_text_reverse(); -test_replace(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Lists\n"); -test_create_lists(); -test_lists_empty(); -test_lists_length(); -test_find_lists_simple(); -test_find_lists_complex(); -test_get_lists_simple(); -test_get_lists_complex(); -test_getRemove(); -test_remove(); -test_set(); -test_insert(); -test_sublist_simple(); -test_sublist_complex(); -test_join(); -test_split(); -test_sort_alphabetic(); -test_sort_ignoreCase(); -test_sort_numeric(); -test_lists_reverse(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Colour\n"); -test_colour_picker(); -test_blend(); -test_rgb(); -test_colour_random(); -print(unittest_report()); -$unittestResults = null; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Variables\n"); -$item = 123; -assertEquals($item, 123, 'variable'); -$if2 = 123; -assertEquals($if2, 123, 'reserved variable'); -print(unittest_report()); -$unittestResults = null; - -// Intentionally non-connected variable. -$naked; - -$unittestResults = array(); -print("\n====================\n\nRunning suite: Functions\n"); -test_procedure(); -test_function(); -assertEquals(recurse(3), '-1-2-1-3-1-2-1-', 'test recurse'); -print(unittest_report()); -$unittestResults = null; diff --git a/lib/blockly/tests/generators/golden/generated.py b/lib/blockly/tests/generators/golden/generated.py deleted file mode 100644 index b20142b..0000000 --- a/lib/blockly/tests/generators/golden/generated.py +++ /dev/null @@ -1,1441 +0,0 @@ -from numbers import Number -import math -import random -import sys - -unittestResults = None -test_name = None -naked = None -proc_x = None -proc_y = None -func_x = None -func_y = None -func_a = None -n = None -ok = None -log = None -count = None -varToChange = None -rand = None -item = None -text = None -number_of_calls = None -list2 = None -proc_z = None -func_z = None -x = None -proc_w = None -func_c = None -if2 = None -i = None -loglist = None -changing_list = None -list_copy = None - -def unittest_report(): - # Create test report. - report = [] - summary = [] - fails = 0 - for (success, log, message) in unittestResults: - if success: - summary.append(".") - else: - summary.append("F") - fails += 1 - report.append("") - report.append("FAIL: " + message) - report.append(log) - report.insert(0, "".join(summary)) - report.append("") - report.append("Number of tests run: %d" % len(unittestResults)) - report.append("") - if fails: - report.append("FAILED (failures=%d)" % fails) - else: - report.append("OK") - return "\n".join(report) - -def assertEquals(actual, expected, message): - # Asserts that a value equals another value. - if unittestResults == None: - raise Exception("Orphaned assert equals: " + message) - if actual == expected: - unittestResults.append((True, "OK", message)) - else: - unittestResults.append((False, "Expected: %s\nActual: %s" % (expected, actual), message)) - -def fail(message): - # Always assert an error. - if unittestResults == None: - raise Exception("Orphaned assert equals: " + message) - unittestResults.append((False, "Fail.", message)) - -# Describe this function... -def test_if(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - if False: - fail('if false') - ok = False - if True: - ok = True - assertEquals(ok, True, 'if true') - ok = False - if False: - fail('if/else false') - else: - ok = True - assertEquals(ok, True, 'if/else false') - ok = False - if True: - ok = True - else: - fail('if/else true') - assertEquals(ok, True, 'if/else true') - ok = False - if False: - fail('elseif 1') - elif True: - ok = True - elif True: - fail('elseif 2') - else: - fail('elseif 3') - assertEquals(ok, True, 'elseif 4') - -# Describe this function... -def test_ifelse(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - ok = False - if True: - ok = True - else: - fail('ifelse true') - assertEquals(ok, True, 'ifelse true') - ok = False - if False: - fail('ifelse false') - else: - ok = True - assertEquals(ok, True, 'ifelse false') - -# Describe this function... -def test_equalities(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(2 == 2, True, 'Equal yes') - assertEquals(3 == 4, False, 'Equal no') - assertEquals(5 != 6, True, 'Not equal yes') - assertEquals(3 == 4, False, 'Not equal no') - assertEquals(5 < 6, True, 'Smaller yes') - assertEquals(7 < 7, False, 'Smaller no') - assertEquals(9 > 8, True, 'Greater yes') - assertEquals(10 > 10, False, 'Greater no') - assertEquals(11 <= 11, True, 'Smaller-equal yes') - assertEquals(13 <= 12, False, 'Smaller-equal no') - assertEquals(14 >= 14, True, 'Greater-equal yes') - assertEquals(15 >= 16, False, 'Greater-equal no') - -# Describe this function... -def test_and(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(True and True, True, 'And true/true') - assertEquals(False and True, False, 'And false/true') - assertEquals(True and False, False, 'And true/false') - assertEquals(False and False, False, 'And false/false') - -# Describe this function... -def test_or(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(True or True, True, 'Or true/true') - assertEquals(False or True, True, 'Or false/true') - assertEquals(True or False, True, 'Or true/false') - assertEquals(False or False, False, 'Or false/false') - -# Describe this function... -def test_ternary(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(42 if True else 99, 42, 'if true') - assertEquals(42 if False else 99, 99, 'if true') - -# Describe this function... -def test_foreach(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - log = '' - for x in ['a', 'b', 'c']: - log = str(log) + str(x) - assertEquals(log, 'abc', 'for loop') - -# Describe this function... -def test_repeat(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - count = 0 - for count2 in range(10): - count = (count if isinstance(count, Number) else 0) + 1 - assertEquals(count, 10, 'repeat 10') - -# Describe this function... -def test_while(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - while False: - fail('while 0') - while not True: - fail('until 0') - count = 1 - while count != 10: - count = (count if isinstance(count, Number) else 0) + 1 - assertEquals(count, 10, 'while 10') - count = 1 - while not count == 10: - count = (count if isinstance(count, Number) else 0) + 1 - assertEquals(count, 10, 'until 10') - -# Describe this function... -def test_repeat_ext(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - count = 0 - for count3 in range(10): - count = (count if isinstance(count, Number) else 0) + 1 - assertEquals(count, 10, 'repeat 10') - -def upRange(start, stop, step): - while start <= stop: - yield start - start += abs(step) - -def downRange(start, stop, step): - while start >= stop: - yield start - start -= abs(step) - -# Describe this function... -def test_count_by(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - log = '' - for x in range(1, 9, 2): - log = str(log) + str(x) - assertEquals(log, '1357', 'count up ints') - log = '' - for x in range(8, 0, -2): - log = str(log) + str(x) - assertEquals(log, '8642', 'count down ints') - loglist = [] - for x in upRange(1, 8, 1.5): - loglist.append(x) - assertEquals(loglist, [1, 2.5, 4, 5.5, 7], 'count with floats') - loglist = [] - x_start = float(1 + 0) - x_end = float(8 + 0) - x_inc = float(1 - 2) - for x in (x_start <= x_end) and upRange(x_start, x_end, 1 - 2) or downRange(x_start, x_end, 1 - 2): - loglist.append(x) - assertEquals(loglist, [1, 2, 3, 4, 5, 6, 7, 8], 'count up non-trivial ints') - loglist = [] - x_start2 = float(8 + 0) - x_end2 = float(1 + 0) - for x in (x_start2 <= x_end2) and upRange(x_start2, x_end2, 2) or downRange(x_start2, x_end2, 2): - loglist.append(x) - assertEquals(loglist, [8, 6, 4, 2], 'count down non-trivial ints') - loglist = [] - x_start3 = float(5 + 0.5) - x_end3 = float(1 + 0) - x_inc2 = float(1 + 0) - for x in (x_start3 <= x_end3) and upRange(x_start3, x_end3, 1 + 0) or downRange(x_start3, x_end3, 1 + 0): - loglist.append(x) - assertEquals(loglist, [5.5, 4.5, 3.5, 2.5, 1.5], 'count with floats') - -# Describe this function... -def test_count_loops(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - log = '' - for x in range(1, 9): - log = str(log) + str(x) - assertEquals(log, '12345678', 'count up') - log = '' - for x in range(8, 0, -1): - log = str(log) + str(x) - assertEquals(log, '87654321', 'count down') - loglist = [] - x_start4 = float(1 + 0) - x_end4 = float(4 + 0) - for x in (x_start4 <= x_end4) and upRange(x_start4, x_end4, 1) or downRange(x_start4, x_end4, 1): - loglist.append(x) - assertEquals(loglist, [1, 2, 3, 4], 'count up non-trivial') - loglist = [] - x_start5 = float(3 + 1) - x_end5 = float(1 + 0) - for x in (x_start5 <= x_end5) and upRange(x_start5, x_end5, 1) or downRange(x_start5, x_end5, 1): - loglist.append(x) - assertEquals(loglist, [4, 3, 2, 1], 'count down non-trivial') - -# Describe this function... -def test_continue(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - log = '' - count = 0 - while count != 8: - count = (count if isinstance(count, Number) else 0) + 1 - if count == 5: - continue - log = str(log) + str(count) - assertEquals(log, '1234678', 'while continue') - log = '' - count = 0 - while not count == 8: - count = (count if isinstance(count, Number) else 0) + 1 - if count == 5: - continue - log = str(log) + str(count) - assertEquals(log, '1234678', 'until continue') - log = '' - for x in range(1, 9): - if x == 5: - continue - log = str(log) + str(x) - assertEquals(log, '1234678', 'count continue') - log = '' - for x in ['a', 'b', 'c', 'd']: - if x == 'c': - continue - log = str(log) + str(x) - assertEquals(log, 'abd', 'for continue') - -# Describe this function... -def test_break(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - count = 1 - while count != 10: - if count == 5: - break - count = (count if isinstance(count, Number) else 0) + 1 - assertEquals(count, 5, 'while break') - count = 1 - while not count == 10: - if count == 5: - break - count = (count if isinstance(count, Number) else 0) + 1 - assertEquals(count, 5, 'until break') - log = '' - for x in range(1, 9): - if x == 5: - break - log = str(log) + str(x) - assertEquals(log, '1234', 'count break') - log = '' - for x in ['a', 'b', 'c', 'd']: - if x == 'c': - break - log = str(log) + str(x) - assertEquals(log, 'ab', 'for break') - -# Tests the "single" block. -def test_single(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(math.sqrt(25), 5, 'sqrt') - assertEquals(math.fabs(-25), 25, 'abs') - assertEquals(-(-25), 25, 'negate') - assertEquals(math.log(1), 0, 'ln') - assertEquals(math.log10(100), 2, 'log10') - assertEquals(math.exp(2), 7.38905609893065, 'exp') - assertEquals(math.pow(10,2), 100, 'power10') - -# Tests the "arithmetic" block for all operations and checks -# parenthesis are properly generated for different orders. -def test_arithmetic(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(1 + 2, 3, 'add') - assertEquals(1 - 2, -1, 'subtract') - assertEquals(1 - (0 + 2), -1, 'subtract order with add') - assertEquals(1 - (0 - 2), 3, 'subtract order with subtract') - assertEquals(4 * 2.5, 10, 'multiply') - assertEquals(4 * (0 + 2.5), 10, 'multiply order') - assertEquals(8.2 / -5, -1.64, 'divide') - assertEquals(8.2 / (0 + -5), -1.64, 'divide order') - assertEquals(10 ** 4, 10000, 'power') - assertEquals(10 ** (0 + 4), 10000, 'power order') - -# Tests the "trig" block. -def test_trig(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(math.sin(90 / 180.0 * math.pi), 1, 'sin') - assertEquals(math.cos(180 / 180.0 * math.pi), -1, 'cos') - assertEquals(math.tan(0 / 180.0 * math.pi), 0, 'tan') - assertEquals(math.asin(-1) / math.pi * 180, -90, 'asin') - assertEquals(math.acos(1) / math.pi * 180, 0, 'acos') - assertEquals(math.atan(1) / math.pi * 180, 45, 'atan') - -# Tests the "constant" blocks. -def test_constant(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(math.floor(math.pi * 1000), 3141, 'const pi') - assertEquals(math.floor(math.e * 1000), 2718, 'const e') - assertEquals(math.floor(((1 + math.sqrt(5)) / 2) * 1000), 1618, 'const golden') - assertEquals(math.floor(math.sqrt(2) * 1000), 1414, 'const sqrt 2') - assertEquals(math.floor(math.sqrt(1.0 / 2) * 1000), 707, 'const sqrt 0.5') - assertEquals(9999 < float('inf'), True, 'const infinity') - -def math_isPrime(n): - # https://en.wikipedia.org/wiki/Primality_test#Naive_methods - # If n is not a number but a string, try parsing it. - if not isinstance(n, Number): - try: - n = float(n) - except: - return False - if n == 2 or n == 3: - return True - # False if n is negative, is 1, or not whole, or if n is divisible by 2 or 3. - if n <= 1 or n % 1 != 0 or n % 2 == 0 or n % 3 == 0: - return False - # Check all the numbers of form 6k +/- 1, up to sqrt(n). - for x in range(6, int(math.sqrt(n)) + 2, 6): - if n % (x - 1) == 0 or n % (x + 1) == 0: - return False - return True - -# Tests the "number property" blocks. -def test_number_properties(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(42 % 2 == 0, True, 'even') - assertEquals(42.1 % 2 == 1, False, 'odd') - assertEquals(math_isPrime(5), True, 'prime 5') - assertEquals(math_isPrime(25), False, 'prime 25') - assertEquals(math_isPrime(-31.1), False, 'prime negative') - assertEquals(math.pi % 1 == 0, False, 'whole') - assertEquals(float('inf') > 0, True, 'positive') - assertEquals(-42 < 0, True, 'negative') - assertEquals(42 % 2 == 0, True, 'divisible') - -# Tests the "round" block. -def test_round(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(round(42.42), 42, 'round') - assertEquals(math.ceil(-42.42), -42, 'round up') - assertEquals(math.floor(42.42), 42, 'round down') - -# Tests the "change" block. -def test_change(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - varToChange = 100 - varToChange = (varToChange if isinstance(varToChange, Number) else 0) + 42 - assertEquals(varToChange, 142, 'change') - -def math_mean(myList): - localList = [e for e in myList if isinstance(e, Number)] - if not localList: return - return float(sum(localList)) / len(localList) - -def math_median(myList): - localList = sorted([e for e in myList if isinstance(e, Number)]) - if not localList: return - if len(localList) % 2 == 0: - return (localList[len(localList) // 2 - 1] + localList[len(localList) // 2]) / 2.0 - else: - return localList[(len(localList) - 1) // 2] - -def math_modes(some_list): - modes = [] - # Using a lists of [item, count] to keep count rather than dict - # to avoid "unhashable" errors when the counted item is itself a list or dict. - counts = [] - maxCount = 1 - for item in some_list: - found = False - for count in counts: - if count[0] == item: - count[1] += 1 - maxCount = max(maxCount, count[1]) - found = True - if not found: - counts.append([item, 1]) - for counted_item, item_count in counts: - if item_count == maxCount: - modes.append(counted_item) - return modes - -def math_standard_deviation(numbers): - n = len(numbers) - if n == 0: return - mean = float(sum(numbers)) / n - variance = sum((x - mean) ** 2 for x in numbers) / n - return math.sqrt(variance) - -def first_index(my_list, elem): - try: index = my_list.index(elem) + 1 - except: index = 0 - return index - -# Tests the "list operation" blocks. -def test_operations_on_list(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(sum([3, 4, 5]), 12, 'sum') - assertEquals(min([3, 4, 5]), 3, 'min') - assertEquals(max([3, 4, 5]), 5, 'max') - assertEquals(math_mean([3, 4, 5]), 4, 'average') - assertEquals(math_median([3, 4, 5, 1]), 3.5, 'median') - assertEquals(math_modes([3, 4, 3]), [3], 'modes') - assertEquals(math_modes([3, 4, 3, 1, 4]), [3, 4], 'modes multiple') - assertEquals(math_standard_deviation([3, 3, 3]), 0, 'standard dev') - assertEquals(first_index([3, 4, 5], random.choice([3, 4, 5])) > 0, True, 'random') - -# Tests the "mod" block. -def test_mod(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(42 % 5, 2, 'mod') - -# Tests the "constrain" block. -def test_constraint(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(min(max(100, 0), 42), 42, 'constraint') - -# Tests the "random integer" block. -def test_random_integer(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - rand = random.randint(5, 10) - assertEquals(rand >= 5 and rand <= 10, True, 'randRange') - assertEquals(rand % 1 == 0, True, 'randInteger') - -# Tests the "random fraction" block. -def test_random_fraction(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - rand = random.random() - assertEquals(rand >= 0 and rand <= 1, True, 'randFloat') - -# Describe this function... -def test_atan2(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(math.atan2(5, -5) / math.pi * 180, 135, 'atan2') - assertEquals(math.atan2(-12, 0) / math.pi * 180, -90, 'atan2') - -# Checks that the number of calls is one in order -# to confirm that a function was only called once. -def check_number_of_calls(test_name): - global naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - test_name = str(test_name) + 'number of calls' - assertEquals(number_of_calls, 1, test_name) - -# Tests the "create text with" block with varying number of inputs. -def test_create_text(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals('', '', 'no text') - assertEquals('Hello', 'Hello', 'create single') - assertEquals(str(-1), '-1', 'create single number') - assertEquals('K' + str(9), 'K9', 'create double text') - assertEquals(str(4) + str(2), '42', 'create double text numbers') - assertEquals(''.join([str(x2) for x2 in [1, 2, 3]]), '123', 'create triple') - assertEquals(''.join([str(x3) for x3 in [1, 0 if True else None, 'M']]), '10M', 'create order') - -# Creates an empty string for use with the empty test. -def get_empty(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - return '' - -# Tests the "is empty" block". -def test_empty_text(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(not len('Google'), False, 'not empty') - assertEquals(not len(''), True, 'empty') - assertEquals(not len(get_empty()), True, 'empty complex') - assertEquals(not len('' if True else None), True, 'empty order') - -# Tests the "length" block. -def test_text_length(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(len(''), 0, 'zero length') - assertEquals(len('Google'), 6, 'non-zero length') - assertEquals(len('car' if True else None), 3, 'length order') - -# Tests the "append text" block with different types of parameters. -def test_append(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - item = 'Miserable' - item = str(item) + 'Failure' - assertEquals(item, 'MiserableFailure', 'append text') - item = 12 - item = str(item) + str(34) - assertEquals(item, '1234', 'append number') - item = 'Something ' - item = str(item) + str('Positive' if True else None) - assertEquals(item, 'Something Positive', 'append order') - -# Tests the "find" block with a variable. -def test_find_text_simple(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = 'Banana' - assertEquals(text.find('an') + 1, 2, 'find first simple') - assertEquals(text.rfind('an') + 1, 4, 'find last simple') - assertEquals(text.find('Peel') + 1, 0, 'find none simple') - -# Creates a string for use with the find test. -def get_fruit(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = (number_of_calls if isinstance(number_of_calls, Number) else 0) + 1 - return 'Banana' - -# Tests the "find" block with a function call. -def test_find_text_complex(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = 0 - assertEquals(get_fruit().find('an') + 1, 2, 'find first complex') - check_number_of_calls('find first complex') - number_of_calls = 0 - assertEquals((get_fruit() if True else None).find('an') + 1, 2, 'find first order complex') - check_number_of_calls('find first order complex') - number_of_calls = 0 - assertEquals(get_fruit().rfind('an') + 1, 4, 'find last complex') - check_number_of_calls('find last complex') - number_of_calls = 0 - assertEquals((get_fruit() if True else None).rfind('an') + 1, 4, 'find last order complex') - check_number_of_calls('find last order complex') - number_of_calls = 0 - assertEquals(get_fruit().find('Peel') + 1, 0, 'find none complex') - check_number_of_calls('find none complex') - number_of_calls = 0 - assertEquals((get_fruit() if True else None).find('Peel') + 1, 0, 'find none order complex') - check_number_of_calls('find none order complex') - -def text_random_letter(text): - x = int(random.random() * len(text)) - return text[x]; - -# Tests the "get letter" block with a variable. -def test_get_text_simple(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = 'Blockly' - assertEquals(text[0], 'B', 'get first simple') - assertEquals(text[-1], 'y', 'get last simple') - assertEquals(text.find(text_random_letter(text)) + 1 > 0, True, 'get random simple') - assertEquals(text[2], 'o', 'get # simple') - assertEquals(text[int((3 if True else None) - 1)], 'o', 'get # order simple') - assertEquals(text[-3], 'k', 'get #-end simple') - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text[-int(0 + 3)], 'k', 'get #-end order simple') - -# Creates a string for use with the get test. -def get_Blockly(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = (number_of_calls if isinstance(number_of_calls, Number) else 0) + 1 - return 'Blockly' - -# Tests the "get letter" block with a function call. -def test_get_text_complex(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = 'Blockly' - number_of_calls = 0 - assertEquals(get_Blockly()[0], 'B', 'get first complex') - check_number_of_calls('get first complex') - number_of_calls = 0 - assertEquals((get_Blockly() if True else None)[0], 'B', 'get first order complex') - check_number_of_calls('get first order complex') - number_of_calls = 0 - assertEquals(get_Blockly()[-1], 'y', 'get last complex') - check_number_of_calls('get last complex') - number_of_calls = 0 - assertEquals((get_Blockly() if True else None)[-1], 'y', 'get last order complex') - check_number_of_calls('get last order complex') - number_of_calls = 0 - assertEquals(text.find(text_random_letter(get_Blockly())) + 1 > 0, True, 'get random complex') - check_number_of_calls('get random complex') - number_of_calls = 0 - assertEquals(text.find(text_random_letter((get_Blockly() if True else None))) + 1 > 0, True, 'get random order complex') - check_number_of_calls('get random order complex') - number_of_calls = 0 - assertEquals(get_Blockly()[2], 'o', 'get # complex') - check_number_of_calls('get # complex') - number_of_calls = 0 - assertEquals((get_Blockly() if True else None)[int((3 if True else None) - 1)], 'o', 'get # order complex') - check_number_of_calls('get # order complex') - number_of_calls = 0 - assertEquals(get_Blockly()[-3], 'k', 'get #-end complex') - check_number_of_calls('get #-end complex') - number_of_calls = 0 - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals((get_Blockly() if True else None)[-int(0 + 3)], 'k', 'get #-end order complex') - check_number_of_calls('get #-end order complex') - -# Creates a string for use with the substring test. -def get_numbers(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = (number_of_calls if isinstance(number_of_calls, Number) else 0) + 1 - return '123456789' - -# Tests the "get substring" block with a variable. -def test_substring_simple(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = '123456789' - assertEquals(text[1 : 3], '23', 'substring # simple') - assertEquals(text[int((2 if True else None) - 1) : int(3 if True else None)], '23', 'substring # simple order') - assertEquals(text[-3 : -1], '78', 'substring #-end simple') - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(text[-int(0 + 3) : -int((0 + 2) - 1) or sys.maxsize], '78', 'substring #-end simple order') - assertEquals(text[ : ], text, 'substring first-last simple') - assertEquals(text[1 : -1], '2345678', 'substring # #-end simple') - assertEquals(text[-7 : 4], '34', 'substring #-end # simple') - assertEquals(text[ : 4], '1234', 'substring first # simple') - assertEquals(text[ : -1], '12345678', 'substring first #-end simple') - assertEquals(text[6 : ], '789', 'substring # last simple') - assertEquals(text[-3 : ], '789', 'substring #-end last simple') - assertEquals(text[ : ], '123456789', 'substring all with # #-end simple') - assertEquals(text[-9 : 9], '123456789', 'substring all with #-end # simple') - # Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(text[int((0 + 1) - 1) : -int((0 + 1) - 1) or sys.maxsize], '123456789', 'substring all with # #-end math simple') - -# Tests the "get substring" block with a function call. -def test_substring_complex(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = 0 - assertEquals(get_numbers()[1 : 3], '23', 'substring # complex') - check_number_of_calls('substring # complex') - number_of_calls = 0 - assertEquals((get_numbers() if True else None)[int((2 if True else None) - 1) : int(3 if True else None)], '23', 'substring # complex order') - check_number_of_calls('substring # complex order') - number_of_calls = 0 - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(get_numbers()[-3 : -1], '78', 'substring #-end complex') - check_number_of_calls('substring #-end complex') - number_of_calls = 0 - assertEquals((get_numbers() if True else None)[-int(0 + 3) : -int((0 + 2) - 1) or sys.maxsize], '78', 'substring #-end order order') - check_number_of_calls('substring #-end order order') - number_of_calls = 0 - assertEquals(get_numbers()[ : ], text, 'substring first-last') - check_number_of_calls('substring first-last') - number_of_calls = 0 - assertEquals(get_numbers()[1 : -1], '2345678', 'substring # #-end complex') - check_number_of_calls('substring # #-end complex') - number_of_calls = 0 - assertEquals(get_numbers()[-7 : 4], '34', 'substring #-end # complex') - check_number_of_calls('substring #-end # complex') - number_of_calls = 0 - assertEquals(get_numbers()[ : 4], '1234', 'substring first # complex') - check_number_of_calls('substring first # complex') - number_of_calls = 0 - assertEquals(get_numbers()[ : -1], '12345678', 'substring first #-end complex') - check_number_of_calls('substring first #-end complex') - number_of_calls = 0 - assertEquals(get_numbers()[6 : ], '789', 'substring # last complex') - check_number_of_calls('substring # last complex') - number_of_calls = 0 - assertEquals(get_numbers()[-3 : ], '789', 'substring #-end last complex') - check_number_of_calls('substring #-end last complex') - number_of_calls = 0 - assertEquals(get_numbers()[ : ], '123456789', 'substring all with # #-end complex') - check_number_of_calls('substring all with # #-end complex') - number_of_calls = 0 - assertEquals(get_numbers()[-9 : 9], '123456789', 'substring all with #-end # complex') - check_number_of_calls('substring all with #-end # complex') - number_of_calls = 0 - # Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - assertEquals(get_numbers()[int((0 + 1) - 1) : -int((0 + 1) - 1) or sys.maxsize], '123456789', 'substring all with # #-end math complex') - check_number_of_calls('substring all with # #-end math complex') - -# Tests the "change casing" block. -def test_case(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = 'Hello World' - assertEquals(text.upper(), 'HELLO WORLD', 'uppercase') - assertEquals((text if True else None).upper(), 'HELLO WORLD', 'uppercase order') - text = 'Hello World' - assertEquals(text.lower(), 'hello world', 'lowercase') - assertEquals((text if True else None).lower(), 'hello world', 'lowercase order') - text = 'heLLo WorlD' - assertEquals(text.title(), 'Hello World', 'titlecase') - assertEquals((text if True else None).title(), 'Hello World', 'titlecase order') - -# Tests the "trim" block. -def test_trim(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = ' abc def ' - assertEquals(text.strip(), 'abc def', 'trim both') - assertEquals((text if True else None).strip(), 'abc def', 'trim both order') - assertEquals(text.lstrip(), 'abc def ', 'trim left') - assertEquals((text if True else None).lstrip(), 'abc def ', 'trim left order') - assertEquals(text.rstrip(), ' abc def', 'trim right') - assertEquals((text if True else None).rstrip(), ' abc def', 'trim right order') - -# Tests the "trim" block. -def test_count_text(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = 'woolloomooloo' - assertEquals(text.count('o'), 8, 'len 1') - assertEquals(text.count('oo'), 4, 'len 2') - assertEquals(text.count('loo'), 2, 'len 3') - assertEquals(text.count('wool'), 1, 'start') - assertEquals(text.count('chicken'), 0, 'missing') - assertEquals(text.count(''), 14, 'empty needle') - assertEquals(''.count('chicken'), 0, 'empty source') - -# Tests the "trim" block. -def test_text_reverse(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(''[::-1], '', 'empty string') - assertEquals('a'[::-1], 'a', 'len 1') - assertEquals('ab'[::-1], 'ba', 'len 2') - assertEquals('woolloomooloo'[::-1], 'ooloomoolloow', 'longer') - -# Tests the "trim" block. -def test_replace(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals('woolloomooloo'.replace('oo', '123'), 'w123ll123m123l123', 'replace all instances 1') - assertEquals('woolloomooloo'.replace('.oo', 'X'), 'woolloomooloo', 'literal string replacement') - assertEquals('woolloomooloo'.replace('abc', 'X'), 'woolloomooloo', 'not found') - assertEquals('woolloomooloo'.replace('o', ''), 'wllml', 'empty replacement 1') - assertEquals('aaaaa'.replace('aaaaa', ''), '', 'empty replacement 2') - assertEquals('aaaaa'.replace('a', ''), '', 'empty replacement 3') - assertEquals(''.replace('a', 'chicken'), '', 'empty source') - -# Checks that the number of calls is one in order -# to confirm that a function was only called once. -def check_number_of_calls2(test_name): - global naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - test_name = str(test_name) + 'number of calls' - assertEquals(number_of_calls, 1, test_name) - -# Tests the "create list with" and "create empty list" blocks. -def test_create_lists(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals([], [], 'create empty') - assertEquals([True, 'love'], [True, 'love'], 'create items') - assertEquals(['Eject'] * 3, ['Eject', 'Eject', 'Eject'], 'create repeated') - assertEquals(['Eject'] * (0 + 3), ['Eject', 'Eject', 'Eject'], 'create repeated order') - -# Creates an empty list for use with the empty test. -def get_empty_list(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - return [] - -# Tests the "is empty" block. -def test_lists_empty(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(not len([0]), False, 'not empty') - assertEquals(not len([]), True, 'empty') - assertEquals(not len(get_empty_list()), True, 'empty complex') - assertEquals(not len([] if True else None), True, 'empty order') - -# Tests the "length" block. -def test_lists_length(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(len([]), 0, 'zero length') - assertEquals(len(['cat']), 1, 'one length') - assertEquals(len(['cat', True, []]), 3, 'three length') - assertEquals(len(['cat', True] if True else None), 2, 'two length order') - -def last_index(my_list, elem): - try: index = len(my_list) - my_list[::-1].index(elem) - except: index = 0 - return index - -# Tests the "find" block with a variable. -def test_find_lists_simple(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Alice', 'Eve', 'Bob', 'Eve'] - assertEquals(first_index(list2, 'Eve'), 2, 'find first simple') - assertEquals(last_index(list2, 'Eve'), 4, 'find last simple') - assertEquals(first_index(list2, 'Dave'), 0, 'find none simple') - -# Creates a list for use with the find test. -def get_names(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = (number_of_calls if isinstance(number_of_calls, Number) else 0) + 1 - return ['Alice', 'Eve', 'Bob', 'Eve'] - -# Tests the "find" block with a function call. -def test_find_lists_complex(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = 0 - assertEquals(first_index(get_names(), 'Eve'), 2, 'find first complex') - check_number_of_calls('find first complex') - number_of_calls = 0 - assertEquals(first_index(get_names() if True else None, 'Eve'), 2, 'find first order complex') - check_number_of_calls('find first order complex') - number_of_calls = 0 - assertEquals(last_index(get_names(), 'Eve'), 4, 'find last complex') - check_number_of_calls('find last complex') - number_of_calls = 0 - assertEquals(last_index(get_names() if True else None, 'Eve'), 4, 'find last order complex') - check_number_of_calls('find last order complex') - number_of_calls = 0 - assertEquals(first_index(get_names(), 'Dave'), 0, 'find none complex') - check_number_of_calls('find none complex') - number_of_calls = 0 - assertEquals(first_index(get_names() if True else None, 'Dave'), 0, 'find none order complex') - check_number_of_calls('find none order complex') - -# Tests the "get" block with a variable. -def test_get_lists_simple(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(list2[0], 'Kirk', 'get first simple') - assertEquals(list2[-1], 'McCoy', 'get last simple') - assertEquals(first_index(list2, random.choice(list2)) > 0, True, 'get random simple') - assertEquals(list2[1], 'Spock', 'get # simple') - assertEquals(list2[int((2 if True else None) - 1)], 'Spock', 'get # order simple') - assertEquals(list2[-3], 'Kirk', 'get #-end simple') - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list2[-int(0 + 3)], 'Kirk', 'get #-end order simple') - -# Creates a list for use with the get test. -def get_star_wars(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = (number_of_calls if isinstance(number_of_calls, Number) else 0) + 1 - return ['Kirk', 'Spock', 'McCoy'] - -# Tests the "get" block with a function call. -def test_get_lists_complex(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Kirk', 'Spock', 'McCoy'] - number_of_calls = 0 - assertEquals(get_star_wars()[0], 'Kirk', 'get first complex') - check_number_of_calls('get first complex') - number_of_calls = 0 - assertEquals((get_star_wars() if True else None)[0], 'Kirk', 'get first order complex') - check_number_of_calls('get first order complex') - number_of_calls = 0 - assertEquals(get_star_wars()[-1], 'McCoy', 'get last complex') - check_number_of_calls('get last complex') - number_of_calls = 0 - assertEquals((get_star_wars() if True else None)[-1], 'McCoy', 'get last order complex') - check_number_of_calls('get last order complex') - number_of_calls = 0 - assertEquals(first_index(list2, random.choice(get_star_wars())) > 0, True, 'get random complex') - check_number_of_calls('get random complex') - number_of_calls = 0 - assertEquals(first_index(list2, random.choice(get_star_wars() if True else None)) > 0, True, 'get random order complex') - check_number_of_calls('get random order complex') - number_of_calls = 0 - assertEquals(get_star_wars()[1], 'Spock', 'get # complex') - check_number_of_calls('get # complex') - number_of_calls = 0 - assertEquals((get_star_wars() if True else None)[int((2 if True else None) - 1)], 'Spock', 'get # order complex') - check_number_of_calls('get # order complex') - number_of_calls = 0 - assertEquals(get_star_wars()[-3], 'Kirk', 'get #-end complex') - check_number_of_calls('get #-end complex') - number_of_calls = 0 - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals((get_star_wars() if True else None)[-int(0 + 3)], 'Kirk', 'get #-end order complex') - check_number_of_calls('get #-end order complex') - -def lists_remove_random_item(myList): - x = int(random.random() * len(myList)) - return myList.pop(x) - -# Tests the "get and remove" block. -def test_getRemove(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(list2.pop(0), 'Kirk', 'getremove first') - assertEquals(list2, ['Spock', 'McCoy'], 'getremove first list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals((list2 if True else None).pop(0), 'Kirk', 'getremove first order') - assertEquals(list2, ['Spock', 'McCoy'], 'getremove first order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(list2.pop(), 'McCoy', 'getremove last') - assertEquals(list2, ['Kirk', 'Spock'], 'getremove last list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals((list2 if True else None).pop(), 'McCoy', 'getremove last order') - assertEquals(list2, ['Kirk', 'Spock'], 'getremove last order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(first_index(list2, lists_remove_random_item(list2)) == 0, True, 'getremove random') - assertEquals(len(list2), 2, 'getremove random list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(first_index(list2, lists_remove_random_item(list2 if True else None)) == 0, True, 'getremove random order') - assertEquals(len(list2), 2, 'getremove random order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(list2.pop(1), 'Spock', 'getremove #') - assertEquals(list2, ['Kirk', 'McCoy'], 'getremove # list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals((list2 if True else None).pop(int((2 if True else None) - 1)), 'Spock', 'getremove # order') - assertEquals(list2, ['Kirk', 'McCoy'], 'getremove # order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - assertEquals(list2.pop(-3), 'Kirk', 'getremove #-end') - assertEquals(list2, ['Spock', 'McCoy'], 'getremove #-end list') - list2 = ['Kirk', 'Spock', 'McCoy'] - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals((list2 if True else None).pop(-int(0 + 3)), 'Kirk', 'getremove #-end order') - assertEquals(list2, ['Spock', 'McCoy'], 'getremove #-end order list') - -# Tests the "remove" block. -def test_remove(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Kirk', 'Spock', 'McCoy'] - list2.pop(0) - assertEquals(list2, ['Spock', 'McCoy'], 'remove first list') - list2 = ['Kirk', 'Spock', 'McCoy'] - (list2 if True else None).pop(0) - assertEquals(list2, ['Spock', 'McCoy'], 'remove first order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - list2.pop() - assertEquals(list2, ['Kirk', 'Spock'], 'remove last list') - list2 = ['Kirk', 'Spock', 'McCoy'] - (list2 if True else None).pop() - assertEquals(list2, ['Kirk', 'Spock'], 'remove last order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - lists_remove_random_item(list2) - assertEquals(len(list2), 2, 'remove random list') - list2 = ['Kirk', 'Spock', 'McCoy'] - lists_remove_random_item(list2 if True else None) - assertEquals(len(list2), 2, 'remove random order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - list2.pop(1) - assertEquals(list2, ['Kirk', 'McCoy'], 'remove # list') - list2 = ['Kirk', 'Spock', 'McCoy'] - (list2 if True else None).pop(int((2 if True else None) - 1)) - assertEquals(list2, ['Kirk', 'McCoy'], 'remove # order list') - list2 = ['Kirk', 'Spock', 'McCoy'] - list2.pop(-3) - assertEquals(list2, ['Spock', 'McCoy'], 'remove #-end list') - list2 = ['Kirk', 'Spock', 'McCoy'] - # The order for index for #-end is addition because this will catch - # errors in generators where most perform the operation ... - index. - (list2 if True else None).pop(-int(0 + 3)) - assertEquals(list2, ['Spock', 'McCoy'], 'remove #-end order list') - -# Tests the "set" block. -def test_set(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Picard', 'Riker', 'Crusher'] - list2[0] = 'Jean-Luc' - assertEquals(list2, ['Jean-Luc', 'Riker', 'Crusher'], 'set first list') - list2 = ['Picard', 'Riker', 'Crusher'] - (list2 if True else None)[0] = 'Jean-Luc' - assertEquals(list2, ['Jean-Luc', 'Riker', 'Crusher'], 'set first order list') - list2 = ['Picard', 'Riker', 'Crusher'] - list2[-1] = 'Beverly' - assertEquals(list2, ['Picard', 'Riker', 'Beverly'], 'set last list') - list2 = ['Picard', 'Riker', 'Crusher'] - (list2 if True else None)[-1] = 'Beverly' - assertEquals(list2, ['Picard', 'Riker', 'Beverly'], 'set last order list') - list2 = ['Picard', 'Riker', 'Crusher'] - tmp_x = int(random.random() * len(list2)) - list2[tmp_x] = 'Data' - assertEquals(len(list2), 3, 'set random list') - list2 = ['Picard', 'Riker', 'Crusher'] - tmp_list = (list2 if True else None) - tmp_x2 = int(random.random() * len(tmp_list)) - tmp_list[tmp_x2] = 'Data' - assertEquals(len(list2), 3, 'set random order list') - list2 = ['Picard', 'Riker', 'Crusher'] - list2[2] = 'Pulaski' - assertEquals(list2, ['Picard', 'Riker', 'Pulaski'], 'set # list') - list2 = ['Picard', 'Riker', 'Crusher'] - (list2 if True else None)[int((3 if True else None) - 1)] = 'Pulaski' - assertEquals(list2, ['Picard', 'Riker', 'Pulaski'], 'set # order list') - list2 = ['Picard', 'Riker', 'Crusher'] - list2[-1] = 'Pulaski' - assertEquals(list2, ['Picard', 'Riker', 'Pulaski'], 'set #-end list') - list2 = ['Picard', 'Riker', 'Crusher'] - # The order for index for #-end is addition because this will catch - # errors in generators where most perform the operation ... - index. - (list2 if True else None)[-int(0 + 2)] = 'Pulaski' - assertEquals(list2, ['Picard', 'Pulaski', 'Crusher'], 'set #-end order list') - -# Tests the "insert" block. -def test_insert(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Picard', 'Riker', 'Crusher'] - list2.insert(0, 'Data') - assertEquals(list2, ['Data', 'Picard', 'Riker', 'Crusher'], 'insert first list') - list2 = ['Picard', 'Riker', 'Crusher'] - (list2 if True else None).insert(0, 'Data') - assertEquals(list2, ['Data', 'Picard', 'Riker', 'Crusher'], 'insert first order list') - list2 = ['Picard', 'Riker', 'Crusher'] - list2.append('Data') - assertEquals(list2, ['Picard', 'Riker', 'Crusher', 'Data'], 'insert last list') - list2 = ['Picard', 'Riker', 'Crusher'] - (list2 if True else None).append('Data') - assertEquals(list2, ['Picard', 'Riker', 'Crusher', 'Data'], 'insert last order list') - list2 = ['Picard', 'Riker', 'Crusher'] - tmp_x3 = int(random.random() * len(list2)) - list2.insert(tmp_x3, 'Data') - assertEquals(len(list2), 4, 'insert random list') - list2 = ['Picard', 'Riker', 'Crusher'] - tmp_list2 = (list2 if True else None) - tmp_x4 = int(random.random() * len(tmp_list2)) - tmp_list2.insert(tmp_x4, 'Data') - assertEquals(len(list2), 4, 'insert random order list') - list2 = ['Picard', 'Riker', 'Crusher'] - list2.insert(2, 'Data') - assertEquals(list2, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert # list') - list2 = ['Picard', 'Riker', 'Crusher'] - (list2 if True else None).insert(int((3 if True else None) - 1), 'Data') - assertEquals(list2, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert # order list') - list2 = ['Picard', 'Riker', 'Crusher'] - list2.insert(-1, 'Data') - assertEquals(list2, ['Picard', 'Riker', 'Data', 'Crusher'], 'insert #-end list') - list2 = ['Picard', 'Riker', 'Crusher'] - # The order for index for #-end is addition because this will catch - # errors in generators where most perform the operation ... - index. - (list2 if True else None).insert(-int(0 + 2), 'Data') - assertEquals(list2, ['Picard', 'Data', 'Riker', 'Crusher'], 'insert #-end order list') - -# Tests the "get sub-list" block with a variable. -def test_sublist_simple(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'] - assertEquals(list2[1 : 3], ['Challenger', 'Discovery'], 'sublist # simple') - assertEquals(list2[int((2 if True else None) - 1) : int(3 if True else None)], ['Challenger', 'Discovery'], 'sublist # simple order') - assertEquals(list2[-3 : -1], ['Discovery', 'Atlantis'], 'sublist #-end simple') - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(list2[-int(0 + 3) : -int((0 + 2) - 1) or sys.maxsize], ['Discovery', 'Atlantis'], 'sublist #-end simple order') - assertEquals(list2[ : ], list2, 'sublist first-last simple') - changing_list = ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'] - list_copy = changing_list[ : ] - lists_remove_random_item(changing_list) - assertEquals(list_copy, list2, 'sublist first-last simple copy check') - assertEquals(list2[1 : -1], ['Challenger', 'Discovery', 'Atlantis'], 'sublist # #-end simple') - assertEquals(list2[-3 : 4], ['Discovery', 'Atlantis'], 'sublist #-end # simple') - assertEquals(list2[ : 4], ['Columbia', 'Challenger', 'Discovery', 'Atlantis'], 'sublist first # simple') - assertEquals(list2[ : -3], ['Columbia', 'Challenger'], 'sublist first #-end simple') - assertEquals(list2[3 : ], ['Atlantis', 'Endeavour'], 'sublist # last simple') - assertEquals(list2[-4 : ], ['Challenger', 'Discovery', 'Atlantis', 'Endeavour'], 'sublist #-end last simple') - assertEquals(list2[ : ], list2, 'sublist all with # #-end simple') - assertEquals(list2[-5 : 5], list2, 'sublist all with #-end # simple') - # Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(list2[int((0 + 1) - 1) : -int((0 + 1) - 1) or sys.maxsize], list2, 'sublist all with # #-end math simple') - -# Creates a list for use with the sublist test. -def get_space_shuttles(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = (number_of_calls if isinstance(number_of_calls, Number) else 0) + 1 - return ['Columbia', 'Challenger', 'Discovery', 'Atlantis', 'Endeavour'] - -# Tests the "get sub-list" block with a function call. -def test_sublist_complex(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - number_of_calls = 0 - assertEquals(get_space_shuttles()[1 : 3], ['Challenger', 'Discovery'], 'sublist # start complex') - check_number_of_calls('sublist # start complex') - number_of_calls = 0 - assertEquals((get_space_shuttles() if True else None)[int((2 if True else None) - 1) : int(3 if True else None)], ['Challenger', 'Discovery'], 'sublist # start order complex') - check_number_of_calls('sublist # start order complex') - number_of_calls = 0 - # The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - assertEquals(get_space_shuttles()[-3 : -1], ['Discovery', 'Atlantis'], 'sublist # end complex') - assertEquals(number_of_calls, 1, 'sublist # end complex number of calls') - number_of_calls = 0 - assertEquals((get_space_shuttles() if True else None)[-int(0 + 3) : -int((0 + 2) - 1) or sys.maxsize], ['Discovery', 'Atlantis'], 'sublist # end order complex') - check_number_of_calls('sublist # end order complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[ : ], list2, 'sublist first-last complex') - check_number_of_calls('sublist first-last complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[1 : -1], ['Challenger', 'Discovery', 'Atlantis'], 'sublist # #-end complex') - check_number_of_calls('sublist # #-end complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[-3 : 4], ['Discovery', 'Atlantis'], 'sublist #-end # complex') - check_number_of_calls('sublist #-end # complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[ : 4], ['Columbia', 'Challenger', 'Discovery', 'Atlantis'], 'sublist first # complex') - check_number_of_calls('sublist first # complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[ : -3], ['Columbia', 'Challenger'], 'sublist first #-end complex') - check_number_of_calls('sublist first #-end complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[3 : ], ['Atlantis', 'Endeavour'], 'sublist # last complex') - check_number_of_calls('sublist # last complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[-4 : ], ['Challenger', 'Discovery', 'Atlantis', 'Endeavour'], 'sublist #-end last simple') - check_number_of_calls('sublist #-end last simple') - number_of_calls = 0 - assertEquals(get_space_shuttles()[ : ], list2, 'sublist all with # #-end complex') - check_number_of_calls('sublist all with # #-end complex') - number_of_calls = 0 - assertEquals(get_space_shuttles()[-5 : 5], list2, 'sublist all with #-end # complex') - check_number_of_calls('sublist all with #-end # complex') - number_of_calls = 0 - # Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - assertEquals(get_space_shuttles()[int((0 + 1) - 1) : -int((0 + 1) - 1) or sys.maxsize], list2, 'sublist all with # #-end math complex') - check_number_of_calls('sublist all with # #-end math complex') - -# Tests the "join" block. -def test_join(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Vulcan', 'Klingon', 'Borg'] - assertEquals(','.join(list2), 'Vulcan,Klingon,Borg', 'join') - assertEquals(','.join(list2 if True else None), 'Vulcan,Klingon,Borg', 'join order') - -# Tests the "split" block. -def test_split(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - text = 'Vulcan,Klingon,Borg' - assertEquals(text.split(','), ['Vulcan', 'Klingon', 'Borg'], 'split') - assertEquals((text if True else None).split(','), ['Vulcan', 'Klingon', 'Borg'], 'split order') - -def lists_sort(my_list, type, reverse): - def try_float(s): - try: - return float(s) - except: - return 0 - key_funcs = { - "NUMERIC": try_float, - "TEXT": str, - "IGNORE_CASE": lambda s: str(s).lower() - } - key_func = key_funcs[type] - list_cpy = list(my_list) - return sorted(list_cpy, key=key_func, reverse=reverse) - -# Tests the "alphabetic sort" block. -def test_sort_alphabetic(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Vulcan', 'klingon', 'Borg'] - assertEquals(lists_sort(list2, "TEXT", False), ['Borg', 'Vulcan', 'klingon'], 'sort alphabetic ascending') - assertEquals(lists_sort(list2 if True else None, "TEXT", False), ['Borg', 'Vulcan', 'klingon'], 'sort alphabetic ascending order') - -# Tests the "alphabetic sort ignore case" block. -def test_sort_ignoreCase(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = ['Vulcan', 'klingon', 'Borg'] - assertEquals(lists_sort(list2, "IGNORE_CASE", False), ['Borg', 'klingon', 'Vulcan'], 'sort ignore case ascending') - assertEquals(lists_sort(list2 if True else None, "IGNORE_CASE", False), ['Borg', 'klingon', 'Vulcan'], 'sort ignore case ascending order') - -# Tests the "numeric sort" block. -def test_sort_numeric(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = [8, 18, -1] - assertEquals(lists_sort(list2, "NUMERIC", True), [18, 8, -1], 'sort numeric descending') - assertEquals(lists_sort(list2 if True else None, "NUMERIC", True), [18, 8, -1], 'sort numeric descending order') - -# Tests the "list reverse" block. -def test_lists_reverse(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - list2 = [8, 18, -1, 64] - assertEquals(list(reversed(list2)), [64, -1, 18, 8], 'reverse a copy') - assertEquals(list2, [8, 18, -1, 64], 'reverse a copy original') - list2 = [] - assertEquals(list(reversed(list2)), [], 'empty list') - -# Describe this function... -def test_colour_picker(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals('#ff6600', '#ff6600', 'static colour') - -def colour_rgb(r, g, b): - r = round(min(100, max(0, r)) * 2.55) - g = round(min(100, max(0, g)) * 2.55) - b = round(min(100, max(0, b)) * 2.55) - return '#%02x%02x%02x' % (r, g, b) - -# Describe this function... -def test_rgb(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(colour_rgb(100, 40, 0), '#ff6600', 'from rgb') - -# Describe this function... -def test_colour_random(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - for count4 in range(100): - item = '#%06x' % random.randint(0, 2**24 - 1) - assertEquals(len(item), 7, 'length of random colour string: ' + str(item)) - assertEquals(item[0], '#', 'format of random colour string: ' + str(item)) - for i in range(1, 7): - assertEquals(0 != 'abcdefABDEF0123456789'.find(item[int((i + 1) - 1)]) + 1, True, ''.join([str(x4) for x4 in ['contents of random colour string: ', item, ' at index: ', i + 1]])) - -def colour_blend(colour1, colour2, ratio): - r1, r2 = int(colour1[1:3], 16), int(colour2[1:3], 16) - g1, g2 = int(colour1[3:5], 16), int(colour2[3:5], 16) - b1, b2 = int(colour1[5:7], 16), int(colour2[5:7], 16) - ratio = min(1, max(0, ratio)) - r = round(r1 * (1 - ratio) + r2 * ratio) - g = round(g1 * (1 - ratio) + g2 * ratio) - b = round(b1 * (1 - ratio) + b2 * ratio) - return '#%02x%02x%02x' % (r, g, b) - -# Describe this function... -def test_blend(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(colour_blend('#ff0000', colour_rgb(100, 40, 0), 0.4), '#ff2900', 'blend') - -# Describe this function... -def test_procedure(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - procedure_1(8, 2) - assertEquals(proc_z, 4, 'procedure with global') - proc_w = False - procedure_2(False) - assertEquals(proc_w, True, 'procedure no return') - proc_w = False - procedure_2(True) - assertEquals(proc_w, False, 'procedure return') - -# Describe this function... -def procedure_1(proc_x, proc_y): - global test_name, naked, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - proc_z = proc_x / proc_y - -# Describe this function... -def procedure_2(proc_x): - global test_name, naked, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - if proc_x: - return - proc_w = True - -# Describe this function... -def test_function(): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - assertEquals(function_1(2, 3), -1, 'function with arguments') - assertEquals(func_z, 'side effect', 'function with side effect') - func_a = 'unchanged' - func_c = 'global' - assertEquals(function_2(2), '3global', 'function with global') - assertEquals(func_a, 'unchanged', 'function with scope') - assertEquals(function_3(True), True, 'function return') - assertEquals(function_3(False), False, 'function no return') - -# Describe this function... -def function_1(func_x, func_y): - global test_name, naked, proc_x, proc_y, func_a, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - func_z = 'side effect' - return func_x - func_y - -# Describe this function... -def function_2(func_a): - global test_name, naked, proc_x, proc_y, func_x, func_y, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - func_a = (func_a if isinstance(func_a, Number) else 0) + 1 - return str(func_a) + str(func_c) - -# Describe this function... -def function_3(func_a): - global test_name, naked, proc_x, proc_y, func_x, func_y, n, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - if func_a: - return True - return False - -# Describe this function... -def recurse(n): - global test_name, naked, proc_x, proc_y, func_x, func_y, func_a, ok, log, count, varToChange, rand, item, text, number_of_calls, list2, proc_z, func_z, x, proc_w, func_c, if2, i, loglist, changing_list, list_copy, unittestResults - if n > 0: - text = ''.join([str(x5) for x5 in [recurse(n - 1), n, recurse(n - 1)]]) - else: - text = '-' - return text - - -unittestResults = [] -print('\n====================\n\nRunning suite: Logic') -assertEquals(True, True, 'True') -assertEquals(False, False, 'False') -assertEquals(not False, True, 'Not true') -assertEquals(not True, False, 'Not false') -test_if() -test_ifelse() -test_equalities() -test_and() -test_or() -test_ternary() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Loops 1') -test_repeat() -test_repeat_ext() -test_while() -test_foreach() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Loops 2') -test_count_loops() -test_count_by() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Loops 3') -test_break() -test_continue() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Math') -test_arithmetic() -test_single() -test_trig() -test_constant() -test_change() -test_number_properties() -test_round() -test_operations_on_list() -test_constraint() -test_mod() -test_random_integer() -test_random_fraction() -test_atan2() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Text') -test_text_length() -test_empty_text() -test_create_text() -test_append() -test_find_text_simple() -test_find_text_complex() -test_get_text_simple() -test_get_text_complex() -test_substring_simple() -test_substring_complex() -test_case() -test_trim() -test_count_text() -test_text_reverse() -test_replace() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Lists') -test_create_lists() -test_lists_empty() -test_lists_length() -test_find_lists_simple() -test_find_lists_complex() -test_get_lists_simple() -test_get_lists_complex() -test_getRemove() -test_remove() -test_set() -test_insert() -test_sublist_simple() -test_sublist_complex() -test_join() -test_split() -test_sort_alphabetic() -test_sort_ignoreCase() -test_sort_numeric() -test_lists_reverse() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Colour') -test_colour_picker() -test_blend() -test_rgb() -test_colour_random() -print(unittest_report()) -unittestResults = None - -unittestResults = [] -print('\n====================\n\nRunning suite: Variables') -item = 123 -assertEquals(item, 123, 'variable') -if2 = 123 -assertEquals(if2, 123, 'reserved variable') -print(unittest_report()) -unittestResults = None - -# Intentionally non-connected variable. -naked - -unittestResults = [] -print('\n====================\n\nRunning suite: Functions') -test_procedure() -test_function() -assertEquals(recurse(3), '-1-2-1-3-1-2-1-', 'test recurse') -print(unittest_report()) -unittestResults = None diff --git a/lib/blockly/tests/generators/index.html b/lib/blockly/tests/generators/index.html deleted file mode 100644 index 6b5eb4d..0000000 --- a/lib/blockly/tests/generators/index.html +++ /dev/null @@ -1,453 +0,0 @@ - - - - -Blockly Generator Tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - - - -
      -

      Blockly Generator Tests

      - -

      See the docs for details on running the tests. - - -

      - -
      - Logic
      - Loops 1 (repeat, while, foreach)
      - Loops 2 (count)
      - Loops 3 (continue, break)
      - Math
      - Text
      - Lists
      - Colour
      - Variables
      - Functions
      -
      - -

      - - -

      -

      - -

      - -

      - - -

      - -

      - Generate: - -

      - -
      interpreter -
      -
      - -
      interpreter -
      -
      - -
      interpreter -
      -
      - -
      interpreter -
      -
      - -
      interpreter -
      -

      -
      - -
      - - diff --git a/lib/blockly/tests/generators/lists.xml b/lib/blockly/tests/generators/lists.xml deleted file mode 100644 index ccb76a9..0000000 --- a/lib/blockly/tests/generators/lists.xml +++ /dev/null @@ -1,8285 +0,0 @@ - - - Lists - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - check number of calls - Checks that the number of calls is one in order to confirm that a function was only called once. - - - test name - - - number of calls - - - - - - - test name - - - - - number of calls - - - - - 1 - - - - - - - - - test create lists - Tests the "create list with" and "create empty list" blocks. - - - - - create empty - - - - - - - - - - - - - - - create items - - - - - - - - TRUE - - - - - love - - - - - - - - - - TRUE - - - - - love - - - - - - - - - create repeated - - - - - - - Eject - - - - - 3 - - - - - - - - - - Eject - - - - - Eject - - - - - Eject - - - - - - - - - create repeated order - - - - - - - Eject - - - - - ADD - - - 0 - - - - - 3 - - - - - - - - - - - - Eject - - - - - Eject - - - - - Eject - - - - - - - - - - - - - - - - get empty list - Creates an empty list for use with the empty test. - - - - - - test lists empty - Tests the "is empty" block. - - - FALSE - - - not empty - - - - - - - - - - 0 - - - - - - - - - TRUE - - - empty - - - - - - - - - - - - TRUE - - - empty complex - - - - - - - - - - - - - - TRUE - - - empty order - - - - - - - - - TRUE - - - - - - - - - - - - - - - - - - - - - - - test lists length - Tests the "length" block. - - - - - zero length - - - - - - - - - - - - 0 - - - - - - - one length - - - - - - - - - - cat - - - - - - - - - 1 - - - - - - - three length - - - - - - - - - - cat - - - - - TRUE - - - - - - - - - - - - 3 - - - - - - - two length order - - - - - - - - - TRUE - - - - - - - - cat - - - - - TRUE - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - test find lists simple - Tests the "find" block with a variable. - - - list - - - - - - Alice - - - - - Eve - - - - - Bob - - - - - Eve - - - - - - - - - find first simple - - - - - FIRST - - - list - - - - - Eve - - - - - - - - - 1 - - - - - - - - - find last simple - - - - - LAST - - - list - - - - - Eve - - - - - - - - - 3 - - - - - - - - - find none simple - - - - - FIRST - - - list - - - - - Dave - - - - - - - - - -1 - - - - - - - - - - - - - - - get names - Creates a list for use with the find test. - - - number of calls - - - 1 - - - - - - - - - - Alice - - - - - Eve - - - - - Bob - - - - - Eve - - - - - - - test find lists complex - Tests the "find" block with a function call. - - - number of calls - - - 0 - - - - - - - find first complex - - - - - FIRST - - - - - - - - Eve - - - - - - - - - 1 - - - - - - - - - - - - find first complex - - - - - number of calls - - - 0 - - - - - - - find first order complex - - - - - FIRST - - - - - TRUE - - - - - - - - - - - - - - - Eve - - - - - - - - - 1 - - - - - - - - - - - - find first order complex - - - - - number of calls - - - 0 - - - - - - - find last complex - - - - - LAST - - - - - - - - Eve - - - - - - - - - 3 - - - - - - - - - - - - find last complex - - - - - number of calls - - - 0 - - - - - - - find last order complex - - - - - LAST - - - - - TRUE - - - - - - - - - - - - - - - Eve - - - - - - - - - 3 - - - - - - - - - - - - find last order complex - - - - - number of calls - - - 0 - - - - - - - find none complex - - - - - FIRST - - - - - - - - Dave - - - - - - - - - -1 - - - - - - - - - - - - find none complex - - - - - number of calls - - - 0 - - - - - - - find none order complex - - - - - FIRST - - - - - TRUE - - - - - - - - - - - - - - - Dave - - - - - - - - - -1 - - - - - - - - - - - - find none order complex - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test get lists simple - Tests the "get" block with a variable. - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - get first simple - - - - - - GET - FIRST - - - list - - - - - - - Kirk - - - - - - - get last simple - - - - - - GET - LAST - - - list - - - - - - - McCoy - - - - - TRUE - - - get random simple - - - - - GT - - - FIRST - - - list - - - - - - GET - RANDOM - - - list - - - - - - - - - - - -1 - - - - - - - - - - - get # simple - - - - - - GET - FROM_START - - - list - - - - - - - 1 - - - - - - - - - Spock - - - - - - - get # order simple - - - - - - GET - FROM_START - - - list - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - Spock - - - - - - - get #-end simple - - - - - - GET - FROM_END - - - list - - - - - - - 2 - - - - - - - - - Kirk - - - - - - - get #-end order simple - - - - - - GET - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - list - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - - - Kirk - - - - - - - - - - - - - - - - - - - - - get star wars - Creates a list for use with the get test. - - - number of calls - - - 1 - - - - - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - test get lists complex - Tests the "get" block with a function call. - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - number of calls - - - 0 - - - - - - - get first complex - - - - - - GET - FIRST - - - - - - - - - - Kirk - - - - - - - - - - get first complex - - - - - number of calls - - - 0 - - - - - - - get first order complex - - - - - - GET - FIRST - - - - - TRUE - - - - - - - - - - - - - - - - - Kirk - - - - - - - - - - get first order complex - - - - - number of calls - - - 0 - - - - - - - get last complex - - - - - - GET - LAST - - - - - - - - - - McCoy - - - - - - - - - - get last complex - - - - - number of calls - - - 0 - - - - - - - get last order complex - - - - - - GET - LAST - - - - - TRUE - - - - - - - - - - - - - - - - - McCoy - - - - - - - - - - get last order complex - - - - - number of calls - - - 0 - - - - - TRUE - - - get random complex - - - - - GT - - - FIRST - - - list - - - - - - GET - RANDOM - - - - - - - - - - - - - - -1 - - - - - - - - - - - - - - get random complex - - - - - number of calls - - - 0 - - - - - TRUE - - - get random order complex - - - - - GT - - - FIRST - - - list - - - - - - GET - RANDOM - - - - - TRUE - - - - - - - - - - - - - - - - - - - - - -1 - - - - - - - - - - - - - - get random order complex - - - - - number of calls - - - 0 - - - - - - - get # complex - - - - - - GET - FROM_START - - - - - - - - - - 1 - - - - - - - - - Spock - - - - - - - - - - get # complex - - - - - number of calls - - - 0 - - - - - - - get # order complex - - - - - - GET - FROM_START - - - - - TRUE - - - - - - - - - - - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - Spock - - - - - - - - - - get # order complex - - - - - number of calls - - - 0 - - - - - - - get #-end complex - - - - - - GET - FROM_END - - - - - - - - - - 2 - - - - - - - - - Kirk - - - - - - - - - - get #-end complex - - - - - number of calls - - - 0 - - - - - - - get #-end order complex - - - - - - GET - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - TRUE - - - - - - - - - - - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - - - Kirk - - - - - - - - - - get #-end order complex - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test getRemove - Tests the "get and remove" block. - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove first - - - - - - GET_REMOVE - FIRST - - - list - - - - - - - Kirk - - - - - - - getremove first list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove first order - - - - - - GET_REMOVE - FIRST - - - - - TRUE - - - - - list - - - - - - - - - - - - Kirk - - - - - - - getremove first order list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove last - - - - - - GET_REMOVE - LAST - - - list - - - - - - - McCoy - - - - - - - getremove last list - - - - - list - - - - - - - - Kirk - - - - - Spock - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove last order - - - - - - GET_REMOVE - LAST - - - - - TRUE - - - - - list - - - - - - - - - - - - McCoy - - - - - - - getremove last order list - - - - - list - - - - - - - - Kirk - - - - - Spock - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - TRUE - - - getremove random - - - - - EQ - - - FIRST - - - list - - - - - - GET_REMOVE - RANDOM - - - list - - - - - - - - - - - -1 - - - - - - - - - - - getremove random list - - - - - - - list - - - - - - - 2 - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - TRUE - - - getremove random order - - - - - EQ - - - FIRST - - - list - - - - - - GET_REMOVE - RANDOM - - - - - TRUE - - - - - list - - - - - - - - - - - - - - - - -1 - - - - - - - - - - - getremove random order list - - - - - - - list - - - - - - - 2 - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove # - - - - - - GET_REMOVE - FROM_START - - - list - - - - - - - 1 - - - - - - - - - Spock - - - - - - - getremove # list - - - - - list - - - - - - - - Kirk - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove # order - - - - - - GET_REMOVE - FROM_START - - - - - TRUE - - - - - list - - - - - - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - Spock - - - - - - - getremove # order list - - - - - list - - - - - - - - Kirk - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove #-end - - - - - - GET_REMOVE - FROM_END - - - list - - - - - - - 2 - - - - - - - - - Kirk - - - - - - - getremove #-end list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - - getremove #-end order - - - - - - GET_REMOVE - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - TRUE - - - - - list - - - - - - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - - - Kirk - - - - - - - getremove #-end order list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test remove - Tests the "remove" block. - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - FIRST - - - list - - - - - - - remove first list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - FIRST - - - - - TRUE - - - - - list - - - - - - - - - - - - remove first order list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - LAST - - - list - - - - - - - remove last list - - - - - list - - - - - - - - Kirk - - - - - Spock - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - LAST - - - - - TRUE - - - - - list - - - - - - - - - - - - remove last order list - - - - - list - - - - - - - - Kirk - - - - - Spock - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - RANDOM - - - list - - - - - - - remove random list - - - - - - - list - - - - - - - 2 - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - RANDOM - - - - - TRUE - - - - - list - - - - - - - - - - - - remove random order list - - - - - - - list - - - - - - - 2 - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - FROM_START - - - list - - - - - - - 1 - - - - - - - - - remove # list - - - - - list - - - - - - - - Kirk - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - FROM_START - - - - - TRUE - - - - - list - - - - - - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - remove # order list - - - - - list - - - - - - - - Kirk - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - FROM_END - - - list - - - - - - - 2 - - - - - - - - - remove #-end list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - list - - - - - - Kirk - - - - - Spock - - - - - McCoy - - - - - - - - REMOVE - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - TRUE - - - - - list - - - - - - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - - - remove #-end order list - - - - - list - - - - - - - - Spock - - - - - McCoy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test set - Tests the "set" block. - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - FIRST - - - list - - - - - Jean-Luc - - - - - - - set first list - - - - - list - - - - - - - - Jean-Luc - - - - - Riker - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - FIRST - - - - - TRUE - - - - - list - - - - - - - - - - Jean-Luc - - - - - - - set first order list - - - - - list - - - - - - - - Jean-Luc - - - - - Riker - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - LAST - - - list - - - - - Beverly - - - - - - - set last list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Beverly - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - LAST - - - - - TRUE - - - - - list - - - - - - - - - - Beverly - - - - - - - set last order list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Beverly - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - RANDOM - - - list - - - - - Data - - - - - - - set random list - - - - - - - list - - - - - - - 3 - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - RANDOM - - - - - TRUE - - - - - list - - - - - - - - - - Data - - - - - - - set random order list - - - - - - - list - - - - - - - 3 - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - FROM_START - - - list - - - - - - - 2 - - - - - - - Pulaski - - - - - - - set # list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Pulaski - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - FROM_START - - - - - TRUE - - - - - list - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - Pulaski - - - - - - - set # order list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Pulaski - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - FROM_END - - - list - - - - - - - 0 - - - - - - - Pulaski - - - - - - - set #-end list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Pulaski - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - SET - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - TRUE - - - - - list - - - - - - - - - - ADD - - - 0 - - - - - - - 1 - - - - - - - - - Pulaski - - - - - - - set #-end order list - - - - - list - - - - - - - - Picard - - - - - Pulaski - - - - - Crusher - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test insert - Tests the "insert" block. - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - FIRST - - - list - - - - - Data - - - - - - - insert first list - - - - - list - - - - - - - - Data - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - FIRST - - - - - TRUE - - - - - list - - - - - - - - - - Data - - - - - - - insert first order list - - - - - list - - - - - - - - Data - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - LAST - - - list - - - - - Data - - - - - - - insert last list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - Data - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - LAST - - - - - TRUE - - - - - list - - - - - - - - - - Data - - - - - - - insert last order list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - Data - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - RANDOM - - - list - - - - - Data - - - - - - - insert random list - - - - - - - list - - - - - - - 4 - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - RANDOM - - - - - TRUE - - - - - list - - - - - - - - - - Data - - - - - - - insert random order list - - - - - - - list - - - - - - - 4 - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - FROM_START - - - list - - - - - - - 2 - - - - - - - Data - - - - - - - insert # list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Data - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - FROM_START - - - - - TRUE - - - - - list - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - Data - - - - - - - insert # order list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Data - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - FROM_END - - - list - - - - - - - 0 - - - - - - - Data - - - - - - - insert #-end list - - - - - list - - - - - - - - Picard - - - - - Riker - - - - - Data - - - - - Crusher - - - - - - - list - - - - - - Picard - - - - - Riker - - - - - Crusher - - - - - - - - INSERT - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - TRUE - - - - - list - - - - - - - - - - ADD - - - 0 - - - - - - - 1 - - - - - - - - - Data - - - - - - - insert #-end order list - - - - - list - - - - - - - - Picard - - - - - Data - - - - - Riker - - - - - Crusher - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test sublist simple - Tests the "get sub-list" block with a variable. - - - list - - - - - - Columbia - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - Endeavour - - - - - - - - - sublist # simple - - - - - - FROM_START - FROM_START - - - list - - - - - - - 1 - - - - - - - - - 2 - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - - - - - sublist # simple order - - - - - - FROM_START - FROM_START - - - list - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - - - - - sublist #-end simple - - - - - - FROM_END - FROM_END - - - list - - - - - - - 2 - - - - - - - - - 1 - - - - - - - - - - - - Discovery - - - - - Atlantis - - - - - - - - - sublist #-end simple order - - - - - - FROM_END - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - list - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - ADD - - - 0 - - - - - - - 1 - - - - - - - - - - - - - - Discovery - - - - - Atlantis - - - - - - - - - sublist first-last simple - - - - - - FIRST - LAST - - - list - - - - - - - list - - - - - changing list - - - - - - Columbia - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - Endeavour - - - - - - - list copy - - - - FIRST - LAST - - - changing list - - - - - - - - REMOVE - RANDOM - - - changing list - - - - - - - sublist first-last simple copy check - - - - - list copy - - - - - list - - - - - - - sublist # #-end simple - - - - - - FROM_START - FROM_END - - - list - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - - - - - sublist #-end # simple - - - - - - FROM_END - FROM_START - - - list - - - - - - - 2 - - - - - - - - - 3 - - - - - - - - - - - - Discovery - - - - - Atlantis - - - - - - - - - sublist first # simple - - - - - - FIRST - FROM_START - - - list - - - - - - - 3 - - - - - - - - - - - - Columbia - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - - - - - sublist first #-end simple - - - - - - FIRST - FROM_END - - - list - - - - - - - 3 - - - - - - - - - - - - Columbia - - - - - Challenger - - - - - - - - - sublist # last simple - - - - - - FROM_START - LAST - - - list - - - - - - - 3 - - - - - - - - - - - - Atlantis - - - - - Endeavour - - - - - - - - - sublist #-end last simple - - - - - - FROM_END - LAST - - - list - - - - - - - 3 - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - Endeavour - - - - - - - - - sublist all with # #-end simple - - - - - - FROM_START - FROM_END - - - list - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - list - - - - - - - sublist all with #-end # simple - - - - - - FROM_END - FROM_START - - - list - - - - - - - 4 - - - - - - - - - 4 - - - - - - - - - list - - - - - - - sublist all with # #-end math simple - - - - - - FROM_START - FROM_END - Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - - - list - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - - - list - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - get space shuttles - Creates a list for use with the sublist test. - - - number of calls - - - 1 - - - - - - - - - - Columbia - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - Endeavour - - - - - - - test sublist complex - Tests the "get sub-list" block with a function call. - - - number of calls - - - 0 - - - - - - - sublist # start complex - - - - - - FROM_START - FROM_START - - - - - - - - - - 1 - - - - - - - - - 2 - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - - - - - - - - sublist # start complex - - - - - number of calls - - - 0 - - - - - - - sublist # start order complex - - - - - - FROM_START - FROM_START - - - - - TRUE - - - - - - - - - - - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - - - - - - - - sublist # start order complex - - - - - number of calls - - - 0 - - - - - - - sublist # end complex - - - - - - FROM_END - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - - - - - - 2 - - - - - - - - - 1 - - - - - - - - - - - - Discovery - - - - - Atlantis - - - - - - - - - sublist # end complex number of calls - - - - - number of calls - - - - - 1 - - - - - number of calls - - - 0 - - - - - - - sublist # end order complex - - - - - - FROM_END - FROM_END - - - - - TRUE - - - - - - - - - - - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - ADD - - - 0 - - - - - - - 1 - - - - - - - - - - - - - - Discovery - - - - - Atlantis - - - - - - - - - - - - sublist # end order complex - - - - - number of calls - - - 0 - - - - - - - sublist first-last complex - - - - - - FIRST - LAST - - - - - - - - - - list - - - - - - - - - - sublist first-last complex - - - - - number of calls - - - 0 - - - - - - - sublist # #-end complex - - - - - - FROM_START - FROM_END - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - - - - - - - - sublist # #-end complex - - - - - number of calls - - - 0 - - - - - - - sublist #-end # complex - - - - - - FROM_END - FROM_START - - - - - - - - - - 2 - - - - - - - - - 3 - - - - - - - - - - - - Discovery - - - - - Atlantis - - - - - - - - - - - - sublist #-end # complex - - - - - number of calls - - - 0 - - - - - - - sublist first # complex - - - - - - FIRST - FROM_START - - - - - - - - - - 3 - - - - - - - - - - - - Columbia - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - - - - - - - - sublist first # complex - - - - - number of calls - - - 0 - - - - - - - sublist first #-end complex - - - - - - FIRST - FROM_END - - - - - - - - - - 3 - - - - - - - - - - - - Columbia - - - - - Challenger - - - - - - - - - - - - sublist first #-end complex - - - - - number of calls - - - 0 - - - - - - - sublist # last complex - - - - - - FROM_START - LAST - - - - - - - - - - 3 - - - - - - - - - - - - Atlantis - - - - - Endeavour - - - - - - - - - - - - sublist # last complex - - - - - number of calls - - - 0 - - - - - - - sublist #-end last simple - - - - - - FROM_END - LAST - - - - - - - - - - 3 - - - - - - - - - - - - Challenger - - - - - Discovery - - - - - Atlantis - - - - - Endeavour - - - - - - - - - - - - sublist #-end last simple - - - - - number of calls - - - 0 - - - - - - - sublist all with # #-end complex - - - - - - FROM_START - FROM_END - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - list - - - - - - - - - - sublist all with # #-end complex - - - - - number of calls - - - 0 - - - - - - - sublist all with #-end # complex - - - - - - FROM_END - FROM_START - - - - - - - - - - 4 - - - - - - - - - 4 - - - - - - - - - list - - - - - - - - - - sublist all with #-end # complex - - - - - number of calls - - - 0 - - - - - - - sublist all with # #-end math complex - - - - - - FROM_START - FROM_END - Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end. - - - - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - - - list - - - - - - - - - - sublist all with # #-end math complex - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test join - Tests the "join" block. - - - list - - - - - - Vulcan - - - - - Klingon - - - - - Borg - - - - - - - - - join - - - - - - JOIN - - - list - - - - - , - - - - - - - Vulcan,Klingon,Borg - - - - - - - join order - - - - - - JOIN - - - - - TRUE - - - - - list - - - - - - - - - - , - - - - - - - Vulcan,Klingon,Borg - - - - - - - - - - - test split - Tests the "split" block. - - - text - - - Vulcan,Klingon,Borg - - - - - - - split - - - - - - SPLIT - - - text - - - - - , - - - - - - - - - - Vulcan - - - - - Klingon - - - - - Borg - - - - - - - - - split order - - - - - - SPLIT - - - - - TRUE - - - - - text - - - - - - - - - - , - - - - - - - - - - Vulcan - - - - - Klingon - - - - - Borg - - - - - - - - - - - - - test sort alphabetic - Tests the "alphabetic sort" block. - - - list - - - - - - Vulcan - - - - - klingon - - - - - Borg - - - - - - - - - sort alphabetic ascending - - - - - TEXT - 1 - - - list - - - - - - - - - - Borg - - - - - Vulcan - - - - - klingon - - - - - - - - - sort alphabetic ascending order - - - - - TEXT - 1 - - - - - TRUE - - - - - list - - - - - - - - - - - - - - - Borg - - - - - Vulcan - - - - - klingon - - - - - - - - - - - - - test sort ignoreCase - Tests the "alphabetic sort ignore case" block. - - - list - - - - - - Vulcan - - - - - klingon - - - - - Borg - - - - - - - - - sort ignore case ascending - - - - - IGNORE_CASE - 1 - - - list - - - - - - - - - - Borg - - - - - klingon - - - - - Vulcan - - - - - - - - - sort ignore case ascending order - - - - - IGNORE_CASE - 1 - - - - - TRUE - - - - - list - - - - - - - - - - - - - - - Borg - - - - - klingon - - - - - Vulcan - - - - - - - - - - - - - test sort numeric - Tests the "numeric sort" block. - - - list - - - - - - 8 - - - - - 18 - - - - - -1 - - - - - - - - - sort numeric descending - - - - - NUMERIC - -1 - - - list - - - - - - - - - - 18 - - - - - 8 - - - - - -1 - - - - - - - - - sort numeric descending order - - - - - NUMERIC - -1 - - - - - TRUE - - - - - list - - - - - - - - - - - - - - - 18 - - - - - 8 - - - - - -1 - - - - - - - - - - - - - test lists reverse - Tests the "list reverse" block. - - - list - - - - - - 8 - - - - - 18 - - - - - -1 - - - - - 64 - - - - - - - - - reverse a copy - - - - - - - list - - - - - - - - - - 64 - - - - - -1 - - - - - 18 - - - - - 8 - - - - - - - - - reverse a copy original - - - - - list - - - - - - - - 8 - - - - - 18 - - - - - -1 - - - - - 64 - - - - - - - list - - - - - - - - empty list - - - - - - - list - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/generators/logic.xml b/lib/blockly/tests/generators/logic.xml deleted file mode 100644 index d5312d4..0000000 --- a/lib/blockly/tests/generators/logic.xml +++ /dev/null @@ -1,1019 +0,0 @@ - - - Logic - - - TRUE - - - True - - - - - TRUE - - - - - FALSE - - - False - - - - - FALSE - - - - - TRUE - - - Not true - - - - - - - FALSE - - - - - - - FALSE - - - Not false - - - - - - - TRUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test if - Describe this function... - - - - - FALSE - - - - - if false - - - - - ok - - - FALSE - - - - - - - TRUE - - - - - ok - - - TRUE - - - - - - - TRUE - - - if true - - - - - ok - - - - - ok - - - FALSE - - - - - - - - FALSE - - - - - if/else false - - - - - ok - - - TRUE - - - - - - - TRUE - - - if/else false - - - - - ok - - - - - ok - - - FALSE - - - - - - - - TRUE - - - - - ok - - - TRUE - - - - - - - if/else true - - - - - TRUE - - - if/else true - - - - - ok - - - - - ok - - - FALSE - - - - - - - - FALSE - - - - - elseif 1 - - - - - TRUE - - - - - ok - - - TRUE - - - - - - - TRUE - - - - - elseif 2 - - - - - elseif 3 - - - - - TRUE - - - elseif 4 - - - - - ok - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test ifelse - Describe this function... - - - ok - - - FALSE - - - - - - - TRUE - - - - - ok - - - TRUE - - - - - - - ifelse true - - - - - TRUE - - - ifelse true - - - - - ok - - - - - ok - - - FALSE - - - - - - - FALSE - - - - - ifelse false - - - - - ok - - - TRUE - - - - - - - TRUE - - - ifelse false - - - - - ok - - - - - - - - - - - - - - - - - test equalities - Describe this function... - - - TRUE - - - Equal yes - - - - - EQ - - - 2 - - - - - 2 - - - - - - - FALSE - - - Equal no - - - - - EQ - - - 3 - - - - - 4 - - - - - - - TRUE - - - Not equal yes - - - - - NEQ - - - 5 - - - - - 6 - - - - - - - FALSE - - - Not equal no - - - - - EQ - - - 3 - - - - - 4 - - - - - - - TRUE - - - Smaller yes - - - - - LT - - - 5 - - - - - 6 - - - - - - - FALSE - - - Smaller no - - - - - LT - - - 7 - - - - - 7 - - - - - - - TRUE - - - Greater yes - - - - - GT - - - 9 - - - - - 8 - - - - - - - FALSE - - - Greater no - - - - - GT - - - 10 - - - - - 10 - - - - - - - TRUE - - - Smaller-equal yes - - - - - LTE - - - 11 - - - - - 11 - - - - - - - FALSE - - - Smaller-equal no - - - - - LTE - - - 13 - - - - - 12 - - - - - - - TRUE - - - Greater-equal yes - - - - - GTE - - - 14 - - - - - 14 - - - - - - - FALSE - - - Greater-equal no - - - - - GTE - - - 15 - - - - - 16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test and - Describe this function... - - - TRUE - - - And true/true - - - - - AND - - - TRUE - - - - - TRUE - - - - - - - FALSE - - - And false/true - - - - - AND - - - FALSE - - - - - TRUE - - - - - - - FALSE - - - And true/false - - - - - AND - - - TRUE - - - - - FALSE - - - - - - - FALSE - - - And false/false - - - - - AND - - - FALSE - - - - - FALSE - - - - - - - - - - - - - - - test or - Describe this function... - - - TRUE - - - Or true/true - - - - - OR - - - TRUE - - - - - TRUE - - - - - - - TRUE - - - Or false/true - - - - - OR - - - FALSE - - - - - TRUE - - - - - - - TRUE - - - Or true/false - - - - - OR - - - TRUE - - - - - FALSE - - - - - - - FALSE - - - Or false/false - - - - - OR - - - FALSE - - - - - FALSE - - - - - - - - - - - - - - - test ternary - Describe this function... - - - - - if true - - - - - - - TRUE - - - - - 42 - - - - - 99 - - - - - - - 42 - - - - - - - if true - - - - - - - FALSE - - - - - 42 - - - - - 99 - - - - - - - 99 - - - - - - - - diff --git a/lib/blockly/tests/generators/loops1.xml b/lib/blockly/tests/generators/loops1.xml deleted file mode 100644 index 9ee2239..0000000 --- a/lib/blockly/tests/generators/loops1.xml +++ /dev/null @@ -1,345 +0,0 @@ - - - Loops 1 - - - - - - - - - - - - - - - - - - - - - - - - test foreach - - - log - - - - - - - - x - - - - - - a - - - - - b - - - - - c - - - - - - - log - - - x - - - - - - - - - for loop - - - - - log - - - - - abc - - - - - - - - - - - - test while - - - WHILE - - - FALSE - - - - - while 0 - - - - - UNTIL - - - TRUE - - - - - until 0 - - - - - count - - - 1 - - - - - WHILE - - - NEQ - - - count - - - - - 10 - - - - - - - count - - - 1 - - - - - - - - - while 10 - - - - - count - - - - - 10 - - - - - count - - - 1 - - - - - UNTIL - - - EQ - - - count - - - - - 10 - - - - - - - count - - - 1 - - - - - - - - - until 10 - - - - - count - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - test repeat - - - count - - - 0 - - - - - 10 - - - count - - - 1 - - - - - - - - - repeat 10 - - - - - count - - - - - 10 - - - - - - - - - - - - test repeat_ext - - - count - - - 0 - - - - - - - 10 - - - - - count - - - 1 - - - - - - - - - repeat 10 - - - - - count - - - - - 10 - - - - - - - - - - diff --git a/lib/blockly/tests/generators/loops2.xml b/lib/blockly/tests/generators/loops2.xml deleted file mode 100644 index ae6adfb..0000000 --- a/lib/blockly/tests/generators/loops2.xml +++ /dev/null @@ -1,891 +0,0 @@ - - - Loops 2 - - - - - - - - - - - - - test count by - - - log - - - - - - - - x - - - 1 - - - - - 8 - - - - - 2 - - - - - log - - - x - - - - - - - - - count up ints - - - - - log - - - - - 1357 - - - - - log - - - - - - - - x - - - 8 - - - - - 1 - - - - - 2 - - - - - log - - - x - - - - - - - - - count down ints - - - - - log - - - - - 8642 - - - - - loglist - - - - - - x - - - 1 - - - - - 8 - - - - - 1.5 - - - - - - INSERT - LAST - - - loglist - - - - - x - - - - - - - - - count with floats - - - - - loglist - - - - - - - - 1 - - - - - 2.5 - - - - - 4 - - - - - 5.5 - - - - - 7 - - - - - - - loglist - - - - - - x - - - ADD - - - 1 - - - - - 0 - - - - - - - ADD - - - 8 - - - - - 0 - - - - - - - MINUS - - - 1 - - - - - 2 - - - - - - - - INSERT - LAST - - - loglist - - - - - x - - - - - - - - - count up non-trivial ints - - - - - loglist - - - - - - - - 1 - - - - - 2 - - - - - 3 - - - - - 4 - - - - - 5 - - - - - 6 - - - - - 7 - - - - - 8 - - - - - - - loglist - - - - - - x - - - ADD - - - 8 - - - - - 0 - - - - - - - ADD - - - 1 - - - - - 0 - - - - - - - 2 - - - - - - INSERT - LAST - - - loglist - - - - - x - - - - - - - - - count down non-trivial ints - - - - - loglist - - - - - - - - 8 - - - - - 6 - - - - - 4 - - - - - 2 - - - - - - - loglist - - - - - - x - - - ADD - - - 5 - - - - - 0.5 - - - - - - - ADD - - - 1 - - - - - 0 - - - - - - - ADD - - - 1 - - - - - 0 - - - - - - - - INSERT - LAST - - - loglist - - - - - x - - - - - - - - - count with floats - - - - - loglist - - - - - - - - 5.5 - - - - - 4.5 - - - - - 3.5 - - - - - 2.5 - - - - - 1.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test count loops - - - log - - - - - - - - x - - - 1 - - - - - 8 - - - - - log - - - x - - - - - - - - - count up - - - - - log - - - - - 12345678 - - - - - log - - - - - - - - x - - - 8 - - - - - 1 - - - - - log - - - x - - - - - - - - - count down - - - - - log - - - - - 87654321 - - - - - loglist - - - - - - x - - - ADD - - - 1 - - - - - 0 - - - - - - - ADD - - - 4 - - - - - 0 - - - - - - - - INSERT - LAST - - - loglist - - - - - x - - - - - - - - - count up non-trivial - - - - - loglist - - - - - - - - 1 - - - - - 2 - - - - - 3 - - - - - 4 - - - - - - - loglist - - - - - - x - - - ADD - - - 3 - - - - - 1 - - - - - - - ADD - - - 1 - - - - - 0 - - - - - - - - INSERT - LAST - - - loglist - - - - - x - - - - - - - - - count down non-trivial - - - - - loglist - - - - - - - - 4 - - - - - 3 - - - - - 2 - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/generators/loops3.xml b/lib/blockly/tests/generators/loops3.xml deleted file mode 100644 index 08006bd..0000000 --- a/lib/blockly/tests/generators/loops3.xml +++ /dev/null @@ -1,735 +0,0 @@ - - - Loops 3 - - - - - - - - - - - - - test continue - - - log - - - - - - - - count - - - 0 - - - - - WHILE - - - NEQ - - - count - - - - - 8 - - - - - - - count - - - 1 - - - - - - - EQ - - - count - - - - - 5 - - - - - - - CONTINUE - - - - - log - - - count - - - - - - - - - - - - - while continue - - - - - log - - - - - 1234678 - - - - - log - - - - - - - - count - - - 0 - - - - - UNTIL - - - EQ - - - count - - - - - 8 - - - - - - - count - - - 1 - - - - - - - EQ - - - count - - - - - 5 - - - - - - - CONTINUE - - - - - log - - - count - - - - - - - - - - - - - until continue - - - - - log - - - - - 1234678 - - - - - log - - - - - - - - x - - - 1 - - - - - 8 - - - - - - - EQ - - - x - - - - - 5 - - - - - - - CONTINUE - - - - - log - - - x - - - - - - - - - - - count continue - - - - - log - - - - - 1234678 - - - - - log - - - - - - - - x - - - - - - a - - - - - b - - - - - c - - - - - d - - - - - - - - - EQ - - - x - - - - - c - - - - - - - CONTINUE - - - - - log - - - x - - - - - - - - - - - for continue - - - - - log - - - - - abd - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test break - - - count - - - 1 - - - - - WHILE - - - NEQ - - - count - - - - - 10 - - - - - - - - - EQ - - - count - - - - - 5 - - - - - - - BREAK - - - - - count - - - 1 - - - - - - - - - - - while break - - - - - count - - - - - 5 - - - - - count - - - 1 - - - - - UNTIL - - - EQ - - - count - - - - - 10 - - - - - - - - - EQ - - - count - - - - - 5 - - - - - - - BREAK - - - - - count - - - 1 - - - - - - - - - - - until break - - - - - count - - - - - 5 - - - - - log - - - - - - - - x - - - 1 - - - - - 8 - - - - - - - EQ - - - x - - - - - 5 - - - - - - - BREAK - - - - - log - - - x - - - - - - - - - - - count break - - - - - log - - - - - 1234 - - - - - log - - - - - - - - x - - - - - - a - - - - - b - - - - - c - - - - - d - - - - - - - - - EQ - - - x - - - - - c - - - - - - - BREAK - - - - - log - - - x - - - - - - - - - - - for break - - - - - log - - - - - ab - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/generators/math.xml b/lib/blockly/tests/generators/math.xml deleted file mode 100644 index ff079d2..0000000 --- a/lib/blockly/tests/generators/math.xml +++ /dev/null @@ -1,1950 +0,0 @@ - - - Math - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test single - Tests the "single" block. - - - - - sqrt - - - - - ROOT - - - 25 - - - - - - - 5 - - - - - - - abs - - - - - ABS - - - -25 - - - - - - - 25 - - - - - - - negate - - - - - NEG - - - -25 - - - - - - - 25 - - - - - - - ln - - - - - LN - - - 1 - - - - - - - 0 - - - - - - - log10 - - - - - LOG10 - - - 100 - - - - - - - 2 - - - - - - - exp - - - - - EXP - - - 2 - - - - - - - 7.38905609893065 - - - - - - - power10 - - - - - POW10 - - - 2 - - - - - - - 100 - - - - - - - - - - - - - - - - - - - test arithmetic - Tests the "arithmetic" block for all operations and checks parenthesis are properly generated for different orders. - - - - - add - - - - - ADD - - - 1 - - - - - 2 - - - - - - - 3 - - - - - - - subtract - - - - - MINUS - - - 1 - - - - - 2 - - - - - - - -1 - - - - - - - subtract order with add - - - - - MINUS - - - 1 - - - - - ADD - - - 0 - - - - - 2 - - - - - - - - - -1 - - - - - - - subtract order with subtract - - - - - MINUS - - - 1 - - - - - MINUS - - - 0 - - - - - 2 - - - - - - - - - 3 - - - - - - - multiply - - - - - MULTIPLY - - - 4 - - - - - 2.5 - - - - - - - 10 - - - - - - - multiply order - - - - - MULTIPLY - - - 4 - - - - - ADD - - - 0 - - - - - 2.5 - - - - - - - - - 10 - - - - - - - divide - - - - - DIVIDE - - - 8.2 - - - - - -5 - - - - - - - -1.64 - - - - - - - divide order - - - - - DIVIDE - - - 8.2 - - - - - ADD - - - 0 - - - - - -5 - - - - - - - - - -1.64 - - - - - - - power - - - - - POWER - - - 10 - - - - - 4 - - - - - - - 10000 - - - - - - - power order - - - - - POWER - - - 10 - - - - - ADD - - - 0 - - - - - 4 - - - - - - - - - 10000 - - - - - - - - - - - - - - - - - - - - - - - - - test trig - Tests the "trig" block. - - - - - sin - - - - - SIN - - - 90 - - - - - - - 1 - - - - - - - cos - - - - - COS - - - 180 - - - - - - - -1 - - - - - - - tan - - - - - TAN - - - 0 - - - - - - - 0 - - - - - - - asin - - - - - ASIN - - - -1 - - - - - - - -90 - - - - - - - acos - - - - - ACOS - - - 1 - - - - - - - 0 - - - - - - - atan - - - - - ATAN - - - 1 - - - - - - - 45 - - - - - - - - - - - - - - - - - test constant - Tests the "constant" blocks. - - - - - const pi - - - - - ROUNDDOWN - - - MULTIPLY - - - PI - - - - - 1000 - - - - - - - - - 3141 - - - - - - - const e - - - - - ROUNDDOWN - - - MULTIPLY - - - E - - - - - 1000 - - - - - - - - - 2718 - - - - - - - const golden - - - - - ROUNDDOWN - - - MULTIPLY - - - GOLDEN_RATIO - - - - - 1000 - - - - - - - - - 1618 - - - - - - - const sqrt 2 - - - - - ROUNDDOWN - - - MULTIPLY - - - SQRT2 - - - - - 1000 - - - - - - - - - 1414 - - - - - - - const sqrt 0.5 - - - - - ROUNDDOWN - - - MULTIPLY - - - SQRT1_2 - - - - - 1000 - - - - - - - - - 707 - - - - - TRUE - - - const infinity - - - - - LT - - - 9999 - - - - - INFINITY - - - - - - - - - - - - - - - - - - - test number properties - Tests the "number property" blocks. - - - TRUE - - - even - - - - - - EVEN - - - 42 - - - - - - - FALSE - - - odd - - - - - - ODD - - - 42.1 - - - - - - - TRUE - - - prime 5 - - - - - - PRIME - - - 5 - - - - - - - FALSE - - - prime 25 - - - - - - PRIME - - - 25 - - - - - - - FALSE - - - prime negative - - - - - - PRIME - - - -31.1 - - - - - - - FALSE - - - whole - - - - - - WHOLE - - - PI - - - - - - - TRUE - - - positive - - - - - - POSITIVE - - - INFINITY - - - - - - - TRUE - - - negative - - - - - - NEGATIVE - - - -42 - - - - - - - TRUE - - - divisible - - - - - - DIVISIBLE_BY - - - 42 - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - - - - test round - Tests the "round" block. - - - - - round - - - - - ROUND - - - 42.42 - - - - - - - 42 - - - - - - - round up - - - - - ROUNDUP - - - -42.42 - - - - - - - -42 - - - - - - - round down - - - - - ROUNDDOWN - - - 42.42 - - - - - - - 42 - - - - - - - - - - - test change - Tests the "change" block. - - - varToChange - - - 100 - - - - - varToChange - - - 42 - - - - - - - change - - - - - varToChange - - - - - 142 - - - - - - - - - - - test operations on list - Tests the "list operation" blocks. - - - - - sum - - - - - - SUM - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - - - - - 12 - - - - - - - min - - - - - - MIN - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - - - - - 3 - - - - - - - max - - - - - - MAX - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - - - - - 5 - - - - - - - average - - - - - - AVERAGE - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - - - - - 4 - - - - - - - median - - - - - - MEDIAN - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - 1 - - - - - - - - - 3.5 - - - - - - - modes - - - - - - MODE - - - - - - 3 - - - - - 4 - - - - - 3 - - - - - - - - - - - - 3 - - - - - - - - - modes multiple - - - - - - MODE - - - - - - 3 - - - - - 4 - - - - - 3 - - - - - 1 - - - - - 4 - - - - - - - - - - - - 3 - - - - - 4 - - - - - - - - - standard dev - - - - - - STD_DEV - - - - - - 3 - - - - - 3 - - - - - 3 - - - - - - - - - 0 - - - - - TRUE - - - random - - - - - GT - - - FIRST - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - - - - RANDOM - - - - - - 3 - - - - - 4 - - - - - 5 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - test mod - Tests the "mod" block. - - - - - mod - - - - - - - 42 - - - - - 5 - - - - - - - 2 - - - - - - - test constraint - Tests the "constrain" block. - - - - - constraint - - - - - - - 100 - - - - - 0 - - - - - 42 - - - - - - - 42 - - - - - - - test random integer - Tests the "random integer" block. - - - rand - - - - - 5 - - - - - 10 - - - - - - - TRUE - - - randRange - - - - - AND - - - GTE - - - rand - - - - - 5 - - - - - - - LTE - - - rand - - - - - 10 - - - - - - - - - TRUE - - - randInteger - - - - - - WHOLE - - - rand - - - - - - - - - - - - - test random fraction - Tests the "random fraction" block. - - - rand - - - - - - TRUE - - - randFloat - - - - - AND - - - GTE - - - rand - - - - - 0 - - - - - - - LTE - - - rand - - - - - 1 - - - - - - - - - - - - - test atan2 - Describe this function... - - - - - atan2 - - - - - - - -5 - - - - - 5 - - - - - - - 135 - - - - - - - atan2 - - - - - - - 0 - - - - - -12 - - - - - - - -90 - - - - - - - - diff --git a/lib/blockly/tests/generators/run_generators_in_browser.js b/lib/blockly/tests/generators/run_generators_in_browser.js deleted file mode 100644 index 02c6e78..0000000 --- a/lib/blockly/tests/generators/run_generators_in_browser.js +++ /dev/null @@ -1,114 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Node.js script to run generator tests in Firefox, via webdriver. - */ -var webdriverio = require('webdriverio'); -var fs = require('fs'); - -module.exports = runGeneratorsInBrowser; - -/** - * Run the generator for a given language and save the results to a file. - * @param {Thenable} browser A Thenable managing the processing of the browser - * tests. - * @param {string} filename Where to write the output file. - * @param {Function} codegenFn The function to run for code generation for this - * language. - */ -async function runLangGeneratorInBrowser(browser, filename, codegenFn) { - await browser.execute(codegenFn); - var elem = await browser.$("#importExport"); - var result = await elem.getValue(); - fs.writeFile(filename, result, function(err) { - if (err) { - return console.log(err); - } - }); -} - -/** - * Runs the generator tests in Firefox. It uses webdriverio to - * launch Firefox and load index.html. Outputs a summary of the test results - * to the console and outputs files for later validation. - * @return the Thenable managing the processing of the browser tests. - */ -async function runGeneratorsInBrowser() { - var options = { - capabilities: { - browserName: 'firefox' - } - }; - // Run in headless mode on Travis. - if (process.env.TRAVIS_CI) { - options.capabilities['moz:firefoxOptions'] = { - args: ['-headless'] - }; - } - - var url = 'file://' + __dirname + '/index.html'; - var prefix = 'tests/generators/tmp/generated'; - - console.log('Starting webdriverio...'); - const browser = await webdriverio.remote(options); - console.log('Initialized.\nLoading url: ' + url); - await browser.url(url); - - await browser.execute(function() { - checkAll(); - loadSelected(); - }); - - await runLangGeneratorInBrowser(browser, prefix + '.js', - function() { - toJavaScript(); - }); - await runLangGeneratorInBrowser(browser, prefix + '.py', - function() { - toPython(); - }); - await runLangGeneratorInBrowser(browser, prefix + '.dart', - function() { - toDart(); - }); - await runLangGeneratorInBrowser(browser, prefix + '.lua', - function() { - toLua(); - }); - await runLangGeneratorInBrowser(browser, prefix + '.php', - function() { - toPhp(); - }); - - await browser.deleteSession(); -} - -if (require.main === module) { - runGeneratorsInBrowser().catch(e => { - console.error(e); - process.exit(1); - }).then(function(result) { - if (result) { - console.log('Generator tests failed'); - process.exit(1); - } else { - console.log('Generator tests passed'); - process.exit(0); - } - }); -} diff --git a/lib/blockly/tests/generators/text.xml b/lib/blockly/tests/generators/text.xml deleted file mode 100644 index 9f96175..0000000 --- a/lib/blockly/tests/generators/text.xml +++ /dev/null @@ -1,4651 +0,0 @@ - - - Text - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - check number of calls - Checks that the number of calls is one in order to confirm that a function was only called once. - - - test name - - - number of calls - - - - - - - test name - - - - - number of calls - - - - - 1 - - - - - - - - - test create text - Tests the "create text with" block with varying number of inputs. - - - - - no text - - - - - - - - - - - - - - - - - create single - - - - - - - - Hello - - - - - - - Hello - - - - - - - create single number - - - - - - - - -1 - - - - - - - -1 - - - - - - - create double text - - - - - - - - K - - - - - 9 - - - - - - - K9 - - - - - - - create double text numbers - - - - - - - - 4 - - - - - 2 - - - - - - - 42 - - - - - - - create triple - - - - - - - - 1 - - - - - 2 - - - - - 3 - - - - - - - 123 - - - - - - - create order - - - - - - - - 1 - - - - - - - TRUE - - - - - 0 - - - - - - - - - - M - - - - - - - 10M - - - - - - - - - - - - - - - - - - - - get empty - Creates an empty string for use with the empty test. - - - - - - - - test empty text - Tests the "is empty" block". - - - FALSE - - - not empty - - - - - - - Google - - - - - - - TRUE - - - empty - - - - - - - - - - - - - - TRUE - - - empty complex - - - - - - - - - - - - - - TRUE - - - empty order - - - - - - - - - TRUE - - - - - - - - - - - - - - - - - - - - - - - - - test text length - Tests the "length" block. - - - - - zero length - - - - - - - - - - - - - - 0 - - - - - - - non-zero length - - - - - - - Google - - - - - - - 6 - - - - - - - length order - - - - - - - - - TRUE - - - - - car - - - - - - - - - - - - 3 - - - - - - - - - - - test append - Tests the "append text" block with different types of parameters. - - - item - - - Miserable - - - - - item - - - Failure - - - - - - - append text - - - - - item - - - - - MiserableFailure - - - - - item - - - 12 - - - - - item - - - 34 - - - - - - - append number - - - - - item - - - - - 1234 - - - - - item - - - Something - - - - - item - - - - - TRUE - - - - - Positive - - - - - - - - - - - - append order - - - - - item - - - - - Something Positive - - - - - - - - - - - - - - - - - - - - - - - test find text simple - Tests the "find" block with a variable. - - - text - - - Banana - - - - - - - find first simple - - - - - FIRST - - - text - - - - - an - - - - - - - - - 1 - - - - - - - - - find last simple - - - - - LAST - - - text - - - - - an - - - - - - - - - 3 - - - - - - - - - find none simple - - - - - FIRST - - - text - - - - - Peel - - - - - - - - - -1 - - - - - - - - - - - - - - - get fruit - Creates a string for use with the find test. - - - number of calls - - - 1 - - - - - - - Banana - - - - - test find text complex - Tests the "find" block with a function call. - - - number of calls - - - 0 - - - - - - - find first complex - - - - - FIRST - - - - - - - - an - - - - - - - - - 1 - - - - - - - - - - - - find first complex - - - - - number of calls - - - 0 - - - - - - - find first order complex - - - - - FIRST - - - - - TRUE - - - - - - - - - - - - - - - an - - - - - - - - - 1 - - - - - - - - - - - - find first order complex - - - - - number of calls - - - 0 - - - - - - - find last complex - - - - - LAST - - - - - - - - an - - - - - - - - - 3 - - - - - - - - - - - - find last complex - - - - - number of calls - - - 0 - - - - - - - find last order complex - - - - - LAST - - - - - TRUE - - - - - - - - - - - - - - - an - - - - - - - - - 3 - - - - - - - - - - - - find last order complex - - - - - number of calls - - - 0 - - - - - - - find none complex - - - - - FIRST - - - - - - - - Peel - - - - - - - - - -1 - - - - - - - - - - - - find none complex - - - - - number of calls - - - 0 - - - - - - - find none order complex - - - - - FIRST - - - - - TRUE - - - - - - - - - - - - - - - Peel - - - - - - - - - -1 - - - - - - - - - - - - find none order complex - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test get text simple - Tests the "get letter" block with a variable. - - - text - - - Blockly - - - - - - - get first simple - - - - - - FIRST - - - text - - - - - - - B - - - - - - - get last simple - - - - - - LAST - - - text - - - - - - - y - - - - - TRUE - - - get random simple - - - - - GT - - - FIRST - - - text - - - - - - RANDOM - - - text - - - - - - - - - - - -1 - - - - - - - - - - - get # simple - - - - - - FROM_START - - - text - - - - - - - 2 - - - - - - - - - o - - - - - - - get # order simple - - - - - - FROM_START - - - text - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - - - o - - - - - - - get #-end simple - - - - - - FROM_END - - - text - - - - - - - 2 - - - - - - - - - k - - - - - - - get #-end order simple - - - - - - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - text - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - - - k - - - - - - - - - - - - - - - - - - - - - get Blockly - Creates a string for use with the get test. - - - number of calls - - - 1 - - - - - - - Blockly - - - - - test get text complex - Tests the "get letter" block with a function call. - - - text - - - Blockly - - - - - number of calls - - - 0 - - - - - - - get first complex - - - - - - FIRST - - - - - - - - - - B - - - - - - - - - - get first complex - - - - - number of calls - - - 0 - - - - - - - get first order complex - - - - - - FIRST - - - - - TRUE - - - - - - - - - - - - - - - - - B - - - - - - - - - - get first order complex - - - - - number of calls - - - 0 - - - - - - - get last complex - - - - - - LAST - - - - - - - - - - y - - - - - - - - - - get last complex - - - - - number of calls - - - 0 - - - - - - - get last order complex - - - - - - LAST - - - - - TRUE - - - - - - - - - - - - - - - - - y - - - - - - - - - - get last order complex - - - - - number of calls - - - 0 - - - - - TRUE - - - get random complex - - - - - GT - - - FIRST - - - text - - - - - - RANDOM - - - - - - - - - - - - - - -1 - - - - - - - - - - - - - - get random complex - - - - - number of calls - - - 0 - - - - - TRUE - - - get random order complex - - - - - GT - - - FIRST - - - text - - - - - - RANDOM - - - - - TRUE - - - - - - - - - - - - - - - - - - - - - -1 - - - - - - - - - - - - - - get random order complex - - - - - number of calls - - - 0 - - - - - - - get # complex - - - - - - FROM_START - - - - - - - - - - 2 - - - - - - - - - o - - - - - - - - - - get # complex - - - - - number of calls - - - 0 - - - - - - - get # order complex - - - - - - FROM_START - - - - - TRUE - - - - - - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - - - o - - - - - - - - - - get # order complex - - - - - number of calls - - - 0 - - - - - - - get #-end complex - - - - - - FROM_END - - - - - - - - - - 2 - - - - - - - - - k - - - - - - - - - - get #-end complex - - - - - number of calls - - - 0 - - - - - - - get #-end order complex - - - - - - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - TRUE - - - - - - - - - - - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - - - k - - - - - - - - - - get #-end order complex - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - get numbers - Creates a string for use with the substring test. - - - number of calls - - - 1 - - - - - - - 123456789 - - - - - test substring simple - Tests the "get substring" block with a variable. - - - text - - - 123456789 - - - - - - - substring # simple - - - - - - FROM_START - FROM_START - - - text - - - - - - - 1 - - - - - - - - - 2 - - - - - - - - - 23 - - - - - - - substring # simple order - - - - - - FROM_START - FROM_START - - - text - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - - - 23 - - - - - - - substring #-end simple - - - - - - FROM_END - FROM_END - - - text - - - - - - - 2 - - - - - - - - - 1 - - - - - - - - - 78 - - - - - - - substring #-end simple order - - - - - - FROM_END - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - text - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - ADD - - - 0 - - - - - - - 1 - - - - - - - - - - - 78 - - - - - - - substring first-last simple - - - - - - FIRST - LAST - - - text - - - - - - - text - - - - - - - substring # #-end simple - - - - - - FROM_START - FROM_END - - - text - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 2345678 - - - - - - - substring #-end # simple - - - - - - FROM_END - FROM_START - - - text - - - - - - - 6 - - - - - - - - - 3 - - - - - - - - - 34 - - - - - - - substring first # simple - - - - - - FIRST - FROM_START - - - text - - - - - - - 3 - - - - - - - - - 1234 - - - - - - - substring first #-end simple - - - - - - FIRST - FROM_END - - - text - - - - - - - 1 - - - - - - - - - 12345678 - - - - - - - substring # last simple - - - - - - FROM_START - LAST - - - text - - - - - - - 6 - - - - - - - - - 789 - - - - - - - substring #-end last simple - - - - - - FROM_END - LAST - - - text - - - - - - - 2 - - - - - - - - - 789 - - - - - - - substring all with # #-end simple - - - - - - FROM_START - FROM_END - - - text - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 123456789 - - - - - - - substring all with #-end # simple - - - - - - FROM_END - FROM_START - - - text - - - - - - - 8 - - - - - - - - - 8 - - - - - - - - - 123456789 - - - - - - - substring all with # #-end math simple - - - - - - FROM_START - FROM_END - Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - - - text - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - - - 123456789 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test substring complex - Tests the "get substring" block with a function call. - - - number of calls - - - 0 - - - - - - - substring # complex - - - - - - FROM_START - FROM_START - - - - - - - - - - 1 - - - - - - - - - 2 - - - - - - - - - 23 - - - - - - - - - - substring # complex - - - - - number of calls - - - 0 - - - - - - - substring # complex order - - - - - - FROM_START - FROM_START - - - - - TRUE - - - - - - - - - - - - - - - - - TRUE - - - - - - - 1 - - - - - - - - - - - - - - TRUE - - - - - - - 2 - - - - - - - - - - - - - - 23 - - - - - - - - - - substring # complex order - - - - - number of calls - - - 0 - - - - - - - substring #-end complex - - - - - - FROM_END - FROM_END - The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index. - - - - - - - - - - 2 - - - - - - - - - 1 - - - - - - - - - 78 - - - - - - - - - - substring #-end complex - - - - - number of calls - - - 0 - - - - - - - substring #-end order order - - - - - - FROM_END - FROM_END - - - - - TRUE - - - - - - - - - - - - - - - ADD - - - 0 - - - - - - - 2 - - - - - - - - - ADD - - - 0 - - - - - - - 1 - - - - - - - - - - - 78 - - - - - - - - - - substring #-end order order - - - - - number of calls - - - 0 - - - - - - - substring first-last - - - - - - FIRST - LAST - - - - - - - - - - text - - - - - - - - - - substring first-last - - - - - number of calls - - - 0 - - - - - - - substring # #-end complex - - - - - - FROM_START - FROM_END - - - - - - - - - - 1 - - - - - - - - - 1 - - - - - - - - - 2345678 - - - - - - - - - - substring # #-end complex - - - - - number of calls - - - 0 - - - - - - - substring #-end # complex - - - - - - FROM_END - FROM_START - - - - - - - - - - 6 - - - - - - - - - 3 - - - - - - - - - 34 - - - - - - - - - - substring #-end # complex - - - - - number of calls - - - 0 - - - - - - - substring first # complex - - - - - - FIRST - FROM_START - - - - - - - - - - 3 - - - - - - - - - 1234 - - - - - - - - - - substring first # complex - - - - - number of calls - - - 0 - - - - - - - substring first #-end complex - - - - - - FIRST - FROM_END - - - - - - - - - - 1 - - - - - - - - - 12345678 - - - - - - - - - - substring first #-end complex - - - - - number of calls - - - 0 - - - - - - - substring # last complex - - - - - - FROM_START - LAST - - - - - - - - - - 6 - - - - - - - - - 789 - - - - - - - - - - substring # last complex - - - - - number of calls - - - 0 - - - - - - - substring #-end last complex - - - - - - FROM_END - LAST - - - - - - - - - - 2 - - - - - - - - - 789 - - - - - - - - - - substring #-end last complex - - - - - number of calls - - - 0 - - - - - - - substring all with # #-end complex - - - - - - FROM_START - FROM_END - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 123456789 - - - - - - - - - - substring all with # #-end complex - - - - - number of calls - - - 0 - - - - - - - substring all with #-end # complex - - - - - - FROM_END - FROM_START - - - - - - - - - - 8 - - - - - - - - - 8 - - - - - - - - - 123456789 - - - - - - - - - - substring all with #-end # complex - - - - - number of calls - - - 0 - - - - - - - substring all with # #-end math complex - - - - - - FROM_START - FROM_END - Checks that the whole string is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where substring uses [x:length - y] for # #-end. - - - - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - ADD - - - 0 - - - - - - - 0 - - - - - - - - - - - 123456789 - - - - - - - - - - substring all with # #-end math complex - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - test case - Tests the "change casing" block. - - - text - - - Hello World - - - - - - - uppercase - - - - - UPPERCASE - - - text - - - - - - - HELLO WORLD - - - - - - - uppercase order - - - - - UPPERCASE - - - - - TRUE - - - - - text - - - - - - - - - - - - HELLO WORLD - - - - - text - - - Hello World - - - - - - - lowercase - - - - - LOWERCASE - - - text - - - - - - - hello world - - - - - - - lowercase order - - - - - LOWERCASE - - - - - TRUE - - - - - text - - - - - - - - - - - - hello world - - - - - text - - - heLLo WorlD - - - - - - - titlecase - - - - - TITLECASE - - - text - - - - - - - Hello World - - - - - - - titlecase order - - - - - TITLECASE - - - - - TRUE - - - - - text - - - - - - - - - - - - Hello World - - - - - - - - - - - - - - - - - - - - - - - test trim - Tests the "trim" block. - - - text - - - abc def - - - - - - - trim both - - - - - BOTH - - - text - - - - - - - abc def - - - - - - - trim both order - - - - - BOTH - - - - - TRUE - - - - - text - - - - - - - - - - - - abc def - - - - - - - trim left - - - - - LEFT - - - text - - - - - - - abc def - - - - - - - trim left order - - - - - LEFT - - - - - TRUE - - - - - text - - - - - - - - - - - - abc def - - - - - - - trim right - - - - - RIGHT - - - text - - - - - - - abc def - - - - - - - trim right order - - - - - RIGHT - - - - - TRUE - - - - - text - - - - - - - - - - - - abc def - - - - - - - - - - - - - - - - - - - test count text - Tests the "trim" block. - - - text - - - woolloomooloo - - - - - - - len 1 - - - - - - - o - - - - - text - - - - - - - 8 - - - - - - - len 2 - - - - - - - oo - - - - - text - - - - - - - 4 - - - - - - - len 3 - - - - - - - loo - - - - - text - - - - - - - 2 - - - - - - - start - - - - - - - wool - - - - - text - - - - - - - 1 - - - - - - - missing - - - - - - - chicken - - - - - text - - - - - - - 0 - - - - - - - empty needle - - - - - - - - - - - - text - - - - - - - 14 - - - - - - - empty source - - - - - - - chicken - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - test text reverse - Tests the "trim" block. - - - - - empty string - - - - - - - - - - - - - - - - - - - - - len 1 - - - - - - - a - - - - - - - a - - - - - - - len 2 - - - - - - - ab - - - - - - - ba - - - - - - - longer - - - - - - - woolloomooloo - - - - - - - ooloomoolloow - - - - - - - - - - - - - test replace - Tests the "trim" block. - - - - - replace all instances 1 - - - - - - - oo - - - - - 123 - - - - - woolloomooloo - - - - - - - w123ll123m123l123 - - - - - - - literal string replacement - - - - - - - .oo - - - - - X - - - - - woolloomooloo - - - - - - - woolloomooloo - - - - - - - not found - - - - - - - abc - - - - - X - - - - - woolloomooloo - - - - - - - woolloomooloo - - - - - - - empty replacement 1 - - - - - - - o - - - - - - - - - - woolloomooloo - - - - - - - wllml - - - - - - - empty replacement 2 - - - - - - - aaaaa - - - - - - - - - - aaaaa - - - - - - - - - - - - - - empty replacement 3 - - - - - - - a - - - - - - - - - - aaaaa - - - - - - - - - - - - - - empty source - - - - - - - a - - - - - chicken - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/generators/unittest.js b/lib/blockly/tests/generators/unittest.js deleted file mode 100644 index 8e318a8..0000000 --- a/lib/blockly/tests/generators/unittest.js +++ /dev/null @@ -1,115 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Unit test blocks for Blockly. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -Blockly.Blocks['unittest_main'] = { - // Container for unit tests. - init: function() { - this.setColour(65); - this.appendDummyInput() - .appendField('run test suite') - .appendField(new Blockly.FieldTextInput(''), 'SUITE_NAME'); - this.appendStatementInput('DO'); - this.setTooltip('Executes the enclosed unit tests,\n' + - 'then prints a summary.'); - }, - getDeveloperVars: function() { - return ['unittestResults']; - } -}; - -Blockly.Blocks['unittest_assertequals'] = { - // Asserts that a value equals another value. - init: function() { - this.setColour(65); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendValueInput('MESSAGE') - .appendField('name') - .setCheck('String'); - this.appendValueInput('ACTUAL') - .appendField('actual'); - this.appendValueInput('EXPECTED') - .appendField('expected'); - this.setTooltip('Tests that "actual == expected".'); - }, - getDeveloperVars: function() { - return ['unittestResults']; - } -}; - -Blockly.Blocks['unittest_assertvalue'] = { - // Asserts that a value is true, false, or null. - init: function() { - this.setColour(65); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendValueInput('MESSAGE', 'test name') - .appendField('name') - .setCheck('String'); - this.appendValueInput('ACTUAL') - .appendField('assert') - .appendField(new Blockly.FieldDropdown( - [['true', 'TRUE'], ['false', 'FALSE'], ['null', 'NULL']]), 'EXPECTED'); - this.setTooltip('Tests that the value is true, false, or null.'); - }, - getDeveloperVars: function() { - return ['unittestResults']; - } -}; - -Blockly.Blocks['unittest_fail'] = { - // Always assert an error. - init: function() { - this.setColour(65); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendDummyInput() - .appendField(new Blockly.FieldTextInput('test name'), 'MESSAGE') - .appendField('fail'); - this.setTooltip('Records an error.'); - }, - getDeveloperVars: function() { - return ['unittestResults']; - } -}; - -Blockly.Blocks['unittest_adjustindex'] = { - // Adjusts the indexing based on current setting. - init: function() { - this.jsonInit({ - "message0": "adjusted %1", - "args0": [ - { - "type": "input_value", - "name": "INDEX", - "check": "Number" - } - ], - "inputsInline": true, - "output": "Number", - "colour": 65, - "tooltip": "Adjusts the value based on whether generated code is using " + - "zero or one based indexing." - }); - } -}; diff --git a/lib/blockly/tests/generators/unittest_dart.js b/lib/blockly/tests/generators/unittest_dart.js deleted file mode 100644 index 12c5892..0000000 --- a/lib/blockly/tests/generators/unittest_dart.js +++ /dev/null @@ -1,175 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Dart for unit test blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -Blockly.Dart['unittest_main'] = function(block) { - // Container for unit tests. - var resultsVar = Blockly.Dart.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.Dart.provideFunction_( - 'unittest_report', - [ 'String ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + '() {', - ' // Create test report.', - ' List report = [];', - ' StringBuffer summary = new StringBuffer();', - ' int fails = 0;', - ' for (int x = 0; x < ' + resultsVar + '.length; x++) {', - ' if (' + resultsVar + '[x][0]) {', - ' summary.write(".");', - ' } else {', - ' summary.write("F");', - ' fails++;', - ' report.add("");', - ' report.add("FAIL: ${' + resultsVar + '[x][2]}");', - ' report.add(' + resultsVar + '[x][1]);', - ' }', - ' }', - ' report.insert(0, summary.toString());', - ' report.add("");', - ' report.add("Ran ${' + resultsVar + '.length} tests.");', - ' report.add("");', - ' if (fails != 0) {', - ' report.add("FAILED (failures=$fails)");', - ' } else {', - ' report.add("OK");', - ' }', - ' return report.join("\\n");', - '}']); - // Setup global to hold test results. - var code = resultsVar + ' = [];\n'; - // Say which test suite this is. - code += 'print(\'\\n====================\\n\\n' + - 'Running suite: ' + - block.getFieldValue('SUITE_NAME') + - '\');\n'; - // Run tests (unindented). - code += Blockly.Dart.statementToCode(block, 'DO') - .replace(/^ /, '').replace(/\n /g, '\n'); - // Print the report to the console (that's where errors will go anyway). - code += 'print(' + functionName + '());\n'; - // Destroy results. - code += resultsVar + ' = null;\n'; - return code; -}; - -Blockly.Dart['unittest_main'].defineAssert_ = function() { - var resultsVar = Blockly.Dart.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.Dart.provideFunction_( - 'unittest_assertequals', - [ 'void ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(dynamic actual, dynamic expected, String message) {', - ' // Asserts that a value equals another value.', - ' if (' + resultsVar + ' == null) {', - ' throw "Orphaned assert: ${message}";', - ' }', - ' bool equals(a, b) {', - ' if (a == b) {', - ' return true;', - ' } else if (a is List && b is List) {', - ' if (a.length != b.length) {', - ' return false;', - ' }', - ' for (num i = 0; i < a.length; i++) {', - ' if (!equals(a[i], b[i])) {', - ' return false;', - ' }', - ' }', - ' return true;', - ' }', - ' return false;', - ' }', - ' if (equals(actual, expected)) {', - ' ' + resultsVar + '.add([true, "OK", message]);', - ' } else {', - ' ' + resultsVar + '.add([false, ' + - '"Expected: $expected\\nActual: $actual", message]);', - ' }', - '}']); - return functionName; -}; - -Blockly.Dart['unittest_assertequals'] = function(block) { - // Asserts that a value equals another value. - var message = Blockly.Dart.valueToCode(block, 'MESSAGE', - Blockly.Dart.ORDER_NONE) || ''; - var actual = Blockly.Dart.valueToCode(block, 'ACTUAL', - Blockly.Dart.ORDER_NONE) || 'null'; - var expected = Blockly.Dart.valueToCode(block, 'EXPECTED', - Blockly.Dart.ORDER_NONE) || 'null'; - return Blockly.Dart['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ');\n'; -}; - -Blockly.Dart['unittest_assertvalue'] = function(block) { - // Asserts that a value is true, false, or null. - var message = Blockly.Dart.valueToCode(block, 'MESSAGE', - Blockly.Dart.ORDER_NONE) || ''; - var actual = Blockly.Dart.valueToCode(block, 'ACTUAL', - Blockly.Dart.ORDER_NONE) || 'null'; - var expected = block.getFieldValue('EXPECTED'); - if (expected == 'TRUE') { - expected = 'true'; - } else if (expected == 'FALSE') { - expected = 'false'; - } else if (expected == 'NULL') { - expected = 'null'; - } - return Blockly.Dart['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ');\n'; -}; - -Blockly.Dart['unittest_fail'] = function(block) { - // Always assert an error. - var resultsVar = Blockly.Dart.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var message = Blockly.Dart.quote_(block.getFieldValue('MESSAGE')); - var functionName = Blockly.Dart.provideFunction_( - 'unittest_fail', - [ 'void ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + - '(String message) {', - ' // Always assert an error.', - ' if (' + resultsVar + ' == null) {', - ' throw "Orphaned assert fail: ${message}";', - ' }', - ' ' + resultsVar + '.add([false, "Fail.", message]);', - '}']); - return functionName + '(' + message + ');\n'; -}; - -Blockly.Dart['unittest_adjustindex'] = function(block) { - var index = Blockly.Dart.valueToCode(block, 'INDEX', - Blockly.Dart.ORDER_ADDITIVE) || '0'; - // Adjust index if using one-based indexing. - if (block.workspace.options.oneBasedIndex) { - if (Blockly.isNumber(index)) { - // If the index is a naked number, adjust it right now. - return [Number(index) + 1, Blockly.Dart.ORDER_ATOMIC]; - } else { - // If the index is dynamic, adjust it in code. - index = index + ' + 1'; - } - } else if (Blockly.isNumber(index)) { - return [index, Blockly.Dart.ORDER_ATOMIC]; - } - return [index, Blockly.Dart.ORDER_ADDITIVE]; -}; diff --git a/lib/blockly/tests/generators/unittest_javascript.js b/lib/blockly/tests/generators/unittest_javascript.js deleted file mode 100644 index 4791fa2..0000000 --- a/lib/blockly/tests/generators/unittest_javascript.js +++ /dev/null @@ -1,179 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating JavaScript for unit test blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -Blockly.JavaScript['unittest_main'] = function(block) { - // Container for unit tests. - var resultsVar = Blockly.JavaScript.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.JavaScript.provideFunction_( - 'unittest_report', - [ 'function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + '() {', - ' // Create test report.', - ' var report = [];', - ' var summary = [];', - ' var fails = 0;', - ' for (var i = 0; i < ' + resultsVar + '.length; i++) {', - ' if (' + resultsVar + '[i][0]) {', - ' summary.push(".");', - ' } else {', - ' summary.push("F");', - ' fails++;', - ' report.push("");', - ' report.push("FAIL: " + ' + resultsVar + '[i][2]);', - ' report.push(' + resultsVar + '[i][1]);', - ' }', - ' }', - ' report.unshift(summary.join(""));', - ' report.push("");', - ' report.push("Number of tests run: " + ' + resultsVar + - '.length);', - ' report.push("");', - ' if (fails) {', - ' report.push("FAILED (failures=" + fails + ")");', - ' } else {', - ' report.push("OK");', - ' }', - ' return report.join("\\n");', - '}']); - // Setup global to hold test results. - var code = resultsVar + ' = [];\n'; - // Say which test suite this is. - code += 'console.log(\'\\n====================\\n\\n' + - 'Running suite: ' + - block.getFieldValue('SUITE_NAME') + - '\')\n'; - // Run tests (unindented). - code += Blockly.JavaScript.statementToCode(block, 'DO') - .replace(/^ /, '').replace(/\n /g, '\n'); - // Send the report to the console (that's where errors will go anyway). - code += 'console.log(' + functionName + '());\n'; - // Destroy results. - code += resultsVar + ' = null;\n'; - return code; -}; - -Blockly.JavaScript['unittest_main'].defineAssert_ = function(block) { - var resultsVar = Blockly.JavaScript.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.JavaScript.provideFunction_( - 'assertEquals', - [ 'function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(actual, expected, message) {', - ' // Asserts that a value equals another value.', - ' if (!' + resultsVar + ') {', - ' throw "Orphaned assert: " + message;', - ' }', - ' function equals(a, b) {', - ' if (a === b) {', - ' return true;', - ' } else if ((typeof a == "number") && (typeof b == "number") &&', - ' (a.toPrecision(15) == b.toPrecision(15))) {', - ' return true;', - ' } else if (a instanceof Array && b instanceof Array) {', - ' if (a.length != b.length) {', - ' return false;', - ' }', - ' for (var i = 0; i < a.length; i++) {', - ' if (!equals(a[i], b[i])) {', - ' return false;', - ' }', - ' }', - ' return true;', - ' }', - ' return false;', - ' }', - ' if (equals(actual, expected)) {', - ' ' + resultsVar + '.push([true, "OK", message]);', - ' } else {', - ' ' + resultsVar + '.push([false, ' + - '"Expected: " + expected + "\\nActual: " + actual, message]);', - ' }', - '}']); - return functionName; -}; - -Blockly.JavaScript['unittest_assertequals'] = function(block) { - // Asserts that a value equals another value. - var message = Blockly.JavaScript.valueToCode(block, 'MESSAGE', - Blockly.JavaScript.ORDER_NONE) || ''; - var actual = Blockly.JavaScript.valueToCode(block, 'ACTUAL', - Blockly.JavaScript.ORDER_COMMA) || 'null'; - var expected = Blockly.JavaScript.valueToCode(block, 'EXPECTED', - Blockly.JavaScript.ORDER_COMMA) || 'null'; - return Blockly.JavaScript['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ');\n'; -}; - -Blockly.JavaScript['unittest_assertvalue'] = function(block) { - // Asserts that a value is true, false, or null. - var message = Blockly.JavaScript.valueToCode(block, 'MESSAGE', - Blockly.JavaScript.ORDER_NONE) || ''; - var actual = Blockly.JavaScript.valueToCode(block, 'ACTUAL', - Blockly.JavaScript.ORDER_COMMA) || 'null'; - var expected = block.getFieldValue('EXPECTED'); - if (expected == 'TRUE') { - expected = 'true'; - } else if (expected == 'FALSE') { - expected = 'false'; - } else if (expected == 'NULL') { - expected = 'null'; - } - return Blockly.JavaScript['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ');\n'; -}; - -Blockly.JavaScript['unittest_fail'] = function(block) { - // Always assert an error. - var resultsVar = Blockly.JavaScript.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var message = Blockly.JavaScript.quote_(block.getFieldValue('MESSAGE')); - var functionName = Blockly.JavaScript.provideFunction_( - 'unittest_fail', - [ 'function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + - '(message) {', - ' // Always assert an error.', - ' if (!' + resultsVar + ') {', - ' throw "Orphaned assert fail: " + message;', - ' }', - ' ' + resultsVar + '.push([false, "Fail.", message]);', - '}']); - return functionName + '(' + message + ');\n'; -}; - -Blockly.JavaScript['unittest_adjustindex'] = function(block) { - var index = Blockly.JavaScript.valueToCode(block, 'INDEX', - Blockly.JavaScript.ORDER_ADDITION) || '0'; - // Adjust index if using one-based indexing. - if (block.workspace.options.oneBasedIndex) { - if (Blockly.isNumber(index)) { - // If the index is a naked number, adjust it right now. - return [Number(index) + 1, Blockly.JavaScript.ORDER_ATOMIC]; - } else { - // If the index is dynamic, adjust it in code. - index = index + ' + 1'; - } - } else if (Blockly.isNumber(index)) { - return [index, Blockly.JavaScript.ORDER_ATOMIC]; - } - return [index, Blockly.JavaScript.ORDER_ADDITION]; -}; diff --git a/lib/blockly/tests/generators/unittest_lua.js b/lib/blockly/tests/generators/unittest_lua.js deleted file mode 100644 index 4f25326..0000000 --- a/lib/blockly/tests/generators/unittest_lua.js +++ /dev/null @@ -1,177 +0,0 @@ -/** - * @license - * Copyright 2016 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Lua for unit test blocks. - * @author rodrigoq@google.com (Rodrigo Queiro) - */ -'use strict'; - -Blockly.Lua['unittest_main'] = function(block) { - // Container for unit tests. - var resultsVar = Blockly.Lua.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.Lua.provideFunction_( - 'unittest_report', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '()', - ' -- Create test report.', - ' local report = {}', - ' local summary = {}', - ' local fails = 0', - ' for _, v in pairs(' + resultsVar + ') do', - ' if v["success"] then', - ' table.insert(summary, ".")', - ' else', - ' table.insert(summary, "F")', - ' fails = fails + 1', - ' table.insert(report, "FAIL: " .. v["title"])', - ' table.insert(report, v["log"])', - ' end', - ' end', - ' table.insert(report, 1, table.concat(summary))', - ' table.insert(report, "")', - ' table.insert(report, "Number of tests run: " .. #' + resultsVar + ')', - ' table.insert(report, "")', - ' if fails > 0 then', - ' table.insert(report, "FAILED (failures=" .. fails .. ")")', - ' else', - ' table.insert(report, "OK")', - ' end', - ' return table.concat(report, "\\n")', - 'end']); - // Setup global to hold test results. - var code = resultsVar + ' = {}\n'; - // Say which test suite this is. - code += 'print(\'\\n====================\\n\\n' + - 'Running suite: ' + - block.getFieldValue('SUITE_NAME') + - '\')\n'; - // Run tests (unindented). - code += Blockly.Lua.statementToCode(block, 'DO') - .replace(/^ /, '').replace(/\n /g, '\n'); - // Print the report. - code += 'print(' + functionName + '())\n'; - // Destroy results. - code += resultsVar + ' = nil\n'; - return code; -}; - -Blockly.Lua['unittest_main'].defineAssert_ = function(block) { - var resultsVar = Blockly.Lua.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.Lua.provideFunction_( - 'assertEquals', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + - '(actual, expected, message)', - ' -- Asserts that a value equals another value.', - ' assert(' + resultsVar + ' ~= nil, ' + - '"Orphaned assert equals: " .. message)', - ' if type(actual) == "table" and type(expected) == "table" then', - ' local lists_match = #actual == #expected', - ' if lists_match then', - ' for i, v1 in ipairs(actual) do', - ' local v2 = expected[i]', - ' if type(v1) == "number" and type(v2) == "number" then', - ' if math.abs(v1 - v2) > 1e-9 then', - ' lists_match = false', - ' end', - ' elseif v1 ~= v2 then', - ' lists_match = false', - ' end', - ' end', - ' end', - ' if lists_match then', - ' table.insert(' + resultsVar + - ', {success=true, log="OK", title=message})', - ' return', - ' else', - ' -- produce the non-matching strings for a human-readable error', - ' expected = "{" .. table.concat(expected, ", ") .. "}"', - ' actual = "{" .. table.concat(actual, ", ") .. "}"', - ' end', - ' end', - ' if actual == expected or (type(actual) == "number" and ' + - 'type(expected) == "number" and math.abs(actual - expected) < ' + - '1e-9) then ', - ' table.insert(' + resultsVar + - ', {success=true, log="OK", title=message})', - ' else', - ' table.insert(' + resultsVar + ', {success=false, ' + - 'log=string.format("Expected: %s\\nActual: %s"' + - ', tostring(expected), tostring(actual)), title=message})', - ' end', - 'end']); - return functionName; -}; - -Blockly.Lua['unittest_assertequals'] = function(block) { - // Asserts that a value equals another value. - var message = Blockly.Lua.valueToCode(block, 'MESSAGE', - Blockly.Lua.ORDER_NONE) || ''; - var actual = Blockly.Lua.valueToCode(block, 'ACTUAL', - Blockly.Lua.ORDER_NONE) || 'nil'; - var expected = Blockly.Lua.valueToCode(block, 'EXPECTED', - Blockly.Lua.ORDER_NONE) || 'nil'; - return Blockly.Lua['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ')\n'; -}; - -Blockly.Lua['unittest_assertvalue'] = function(block) { - // Asserts that a value is true, false, or null. - var message = Blockly.Lua.valueToCode(block, 'MESSAGE', - Blockly.Lua.ORDER_NONE) || ''; - var actual = Blockly.Lua.valueToCode(block, 'ACTUAL', - Blockly.Lua.ORDER_NONE) || 'nil'; - var expected = block.getFieldValue('EXPECTED'); - if (expected == 'TRUE') { - expected = 'true'; - } else if (expected == 'FALSE') { - expected = 'false'; - } else if (expected == 'NULL') { - expected = 'nil'; - } - return Blockly.Lua.unittest_main.defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ')\n'; -}; - -Blockly.Lua['unittest_fail'] = function(block) { - // Always assert an error. - var resultsVar = Blockly.Lua.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var message = Blockly.Lua.quote_(block.getFieldValue('MESSAGE')); - var functionName = Blockly.Lua.provideFunction_( - 'unittest_fail', - ['function ' + Blockly.Lua.FUNCTION_NAME_PLACEHOLDER_ + '(message)', - ' -- Always assert an error.', - ' assert(' + resultsVar + - ' ~= nil, "Orphaned assert fail: " .. message)', - ' table.insert(' + resultsVar + - ', {success=false, log="Fail.", title=message})', - 'end']); - return functionName + '(' + message + ')\n'; -}; - -Blockly.Lua['unittest_adjustindex'] = function(block) { - var index = Blockly.Lua.valueToCode(block, 'INDEX', - Blockly.Lua.ORDER_ADDITIVE) || '0'; - if (Blockly.isNumber(index)) { - // If the index is a naked number, adjust it right now. - return [Number(index) + 1, Blockly.Lua.ORDER_ATOMIC]; - } - // If the index is dynamic, adjust it in code. - return [index + ' + 1', Blockly.Lua.ORDER_ATOMIC]; -}; diff --git a/lib/blockly/tests/generators/unittest_php.js b/lib/blockly/tests/generators/unittest_php.js deleted file mode 100644 index d208045..0000000 --- a/lib/blockly/tests/generators/unittest_php.js +++ /dev/null @@ -1,166 +0,0 @@ -/** - * @license - * Copyright 2015 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating PHP for unit test blocks. - * @author daarond@gmail.com (Daaron Dwyer) - */ -'use strict'; - -Blockly.PHP['unittest_main'] = function(block) { - // Container for unit tests. - var resultsVar = Blockly.PHP.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.PHP.provideFunction_( - 'unittest_report', - [ 'function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '() {', - ' global ' + resultsVar + ';', - ' // Create test report.', - ' $report = array();', - ' $summary = array();', - ' $fails = 0;', - ' for ($x = 0; $x < count(' + resultsVar + '); $x++) {', - ' if (' + resultsVar + '[$x][0]) {', - ' array_push($summary, ".");', - ' } else {', - ' array_push($summary, "F");', - ' $fails++;', - ' array_push($report, "");', - ' array_push($report, "FAIL: " . ' + resultsVar + '[$x][2]);', - ' array_push($report, ' + resultsVar + '[$x][1]);', - ' }', - ' }', - ' array_unshift($report, implode("", $summary));', - ' array_push($report, "");', - ' array_push($report, "Number of tests run: " . count(' + resultsVar + '));', - ' array_push($report, "");', - ' if ($fails) {', - ' array_push($report, "FAILED (failures=" . $fails . ")");', - ' } else {', - ' array_push($report, "OK");', - ' }', - ' return implode("\\n", $report);', - '}']); - // Setup global to hold test results. - var code = resultsVar + ' = array();\n'; - // Say which test suite this is. - code += 'print("\\n====================\\n\\n' + - 'Running suite: ' + - block.getFieldValue('SUITE_NAME') + - '\\n");\n'; - // Run tests (unindented). - code += Blockly.PHP.statementToCode(block, 'DO') - .replace(/^ /, '').replace(/\n /g, '\n'); - // Send the report to the console (that's where errors will go anyway). - code += 'print(' + functionName + '());\n'; - // Destroy results. - code += resultsVar + ' = null;\n'; - return code; -}; - -Blockly.PHP['unittest_main'].defineAssert_ = function(block) { - var resultsVar = Blockly.PHP.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.PHP.provideFunction_( - 'assertEquals', - ['function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($actual, $expected, $message) {', - ' global ' + resultsVar + ';', - ' // Asserts that a value equals another value.', - ' if (!is_array(' + resultsVar + ')) {', - ' throw new Exception("Orphaned assert: " . $message);', - ' }', - ' if ($actual == $expected) {', - ' array_push(' + resultsVar + ', [true, "OK", $message]);', - ' } else {', - ' $expected = is_array($expected) ? implode(" ", $expected) : ' + - '$expected;', - ' $actual = is_array($actual) ? implode(" ", $actual) : ' + - '$actual;', - ' array_push(' + resultsVar + ', [false, ' + - '"Expected: " . $expected . "\\nActual: " . $actual, $message]);', - ' }', - '}']); - return functionName; -}; - -Blockly.PHP['unittest_assertequals'] = function(block) { - // Asserts that a value equals another value. - var message = Blockly.PHP.valueToCode(block, 'MESSAGE', - Blockly.PHP.ORDER_NONE) || ''; - var actual = Blockly.PHP.valueToCode(block, 'ACTUAL', - Blockly.PHP.ORDER_COMMA) || 'null'; - var expected = Blockly.PHP.valueToCode(block, 'EXPECTED', - Blockly.PHP.ORDER_COMMA) || 'null'; - return Blockly.PHP['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ');\n'; -}; - -Blockly.PHP['unittest_assertvalue'] = function(block) { - // Asserts that a value is true, false, or null. - var message = Blockly.PHP.valueToCode(block, 'MESSAGE', - Blockly.PHP.ORDER_NONE) || ''; - var actual = Blockly.PHP.valueToCode(block, 'ACTUAL', - Blockly.PHP.ORDER_COMMA) || 'null'; - var expected = block.getFieldValue('EXPECTED'); - if (expected == 'TRUE') { - expected = 'true'; - } else if (expected == 'FALSE') { - expected = 'false'; - } else if (expected == 'NULL') { - expected = 'null'; - } - return Blockly.PHP['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ');\n'; -}; - -Blockly.PHP['unittest_fail'] = function(block) { - // Always assert an error. - var resultsVar = Blockly.PHP.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var message = Blockly.PHP.quote_(block.getFieldValue('MESSAGE')); - var functionName = Blockly.PHP.provideFunction_( - 'unittest_fail', - [ 'function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + - '($message) {', - ' global ' + resultsVar + ';', - ' // Always assert an error.', - ' if (!' + resultsVar + ') {', - ' throw new Exception("Orphaned assert fail: " . $message);', - ' }', - ' array_push(' + resultsVar + ', [false, "Fail.", $message]);', - '}']); - return functionName + '(' + message + ');\n'; -}; - -Blockly.PHP['unittest_adjustindex'] = function(block) { - var index = Blockly.PHP.valueToCode(block, 'INDEX', - Blockly.PHP.ORDER_ADDITION) || '0'; - // Adjust index if using one-based indexing. - if (block.workspace.options.oneBasedIndex) { - if (Blockly.isNumber(index)) { - // If the index is a naked number, adjust it right now. - return [Number(index) + 1, Blockly.PHP.ORDER_ATOMIC]; - } else { - // If the index is dynamic, adjust it in code. - index = index + ' + 1'; - } - } else if (Blockly.isNumber(index)) { - return [index, Blockly.PHP.ORDER_ATOMIC]; - } - return [index, Blockly.PHP.ORDER_ADDITION]; -}; diff --git a/lib/blockly/tests/generators/unittest_python.js b/lib/blockly/tests/generators/unittest_python.js deleted file mode 100644 index bafcb93..0000000 --- a/lib/blockly/tests/generators/unittest_python.js +++ /dev/null @@ -1,150 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for unit test blocks. - * @author fraser@google.com (Neil Fraser) - */ -'use strict'; - -Blockly.Python['unittest_main'] = function(block) { - // Container for unit tests. - var resultsVar = Blockly.Python.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.Python.provideFunction_( - 'unittest_report', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '():', - ' # Create test report.', - ' report = []', - ' summary = []', - ' fails = 0', - ' for (success, log, message) in ' + resultsVar + ':', - ' if success:', - ' summary.append(".")', - ' else:', - ' summary.append("F")', - ' fails += 1', - ' report.append("")', - ' report.append("FAIL: " + message)', - ' report.append(log)', - ' report.insert(0, "".join(summary))', - ' report.append("")', - ' report.append("Number of tests run: %d" % len(' + resultsVar + '))', - ' report.append("")', - ' if fails:', - ' report.append("FAILED (failures=%d)" % fails)', - ' else:', - ' report.append("OK")', - ' return "\\n".join(report)']); - - // Setup global to hold test results. - var code = resultsVar + ' = []\n'; - // Say which test suite this is. - code += 'print(\'\\n====================\\n\\n' + - 'Running suite: ' + - block.getFieldValue('SUITE_NAME') + - '\')\n'; - // Run tests (unindented). - code += Blockly.Python.statementToCode(block, 'DO') - .replace(/^ /, '').replace(/\n /g, '\n'); - // Print the report. - code += 'print(' + functionName + '())\n'; - // Destroy results. - code += resultsVar + ' = None\n'; - return code; -}; - -Blockly.Python['unittest_main'].defineAssert_ = function() { - var resultsVar = Blockly.Python.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var functionName = Blockly.Python.provideFunction_( - 'assertEquals', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + - '(actual, expected, message):', - ' # Asserts that a value equals another value.', - ' if ' + resultsVar + ' == None:', - ' raise Exception("Orphaned assert equals: " + message)', - ' if actual == expected:', - ' ' + resultsVar + '.append((True, "OK", message))', - ' else:', - ' ' + resultsVar + '.append((False, ' + - '"Expected: %s\\nActual: %s" % (expected, actual), message))']); - return functionName; -}; - -Blockly.Python['unittest_assertequals'] = function(block) { - // Asserts that a value equals another value. - var message = Blockly.Python.valueToCode(block, 'MESSAGE', - Blockly.Python.ORDER_NONE) || ''; - var actual = Blockly.Python.valueToCode(block, 'ACTUAL', - Blockly.Python.ORDER_NONE) || 'None'; - var expected = Blockly.Python.valueToCode(block, 'EXPECTED', - Blockly.Python.ORDER_NONE) || 'None'; - return Blockly.Python['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ')\n'; -}; - -Blockly.Python['unittest_assertvalue'] = function(block) { - // Asserts that a value is true, false, or null. - var message = Blockly.Python.valueToCode(block, 'MESSAGE', - Blockly.Python.ORDER_NONE) || ''; - var actual = Blockly.Python.valueToCode(block, 'ACTUAL', - Blockly.Python.ORDER_NONE) || 'None'; - var expected = block.getFieldValue('EXPECTED'); - if (expected == 'TRUE') { - expected = 'True'; - } else if (expected == 'FALSE') { - expected = 'False'; - } else if (expected == 'NULL') { - expected = 'None'; - } - return Blockly.Python['unittest_main'].defineAssert_() + - '(' + actual + ', ' + expected + ', ' + message + ')\n'; -}; - -Blockly.Python['unittest_fail'] = function(block) { - // Always assert an error. - var resultsVar = Blockly.Python.variableDB_.getName('unittestResults', - Blockly.Names.DEVELOPER_VARIABLE_TYPE); - var message = Blockly.Python.quote_(block.getFieldValue('MESSAGE')); - var functionName = Blockly.Python.provideFunction_( - 'fail', - ['def ' + Blockly.Python.FUNCTION_NAME_PLACEHOLDER_ + '(message):', - ' # Always assert an error.', - ' if ' + resultsVar + ' == None:', - ' raise Exception("Orphaned assert equals: " + message)', - ' ' + resultsVar + '.append((False, "Fail.", message))']); - return functionName + '(' + message + ')\n'; -}; - -Blockly.Python['unittest_adjustindex'] = function(block) { - var index = Blockly.Python.valueToCode(block, 'INDEX', - Blockly.Python.ORDER_ADDITIVE) || '0'; - // Adjust index if using one-based indexing. - if (block.workspace.options.oneBasedIndex) { - if (Blockly.isNumber(index)) { - // If the index is a naked number, adjust it right now. - return [Number(index) + 1, Blockly.Python.ORDER_ATOMIC]; - } else { - // If the index is dynamic, adjust it in code. - index = index + ' + 1'; - } - } else if (Blockly.isNumber(index)) { - return [index, Blockly.Python.ORDER_ATOMIC]; - } - return [index, Blockly.Python.ORDER_ADDITIVE]; -}; diff --git a/lib/blockly/tests/generators/variables.xml b/lib/blockly/tests/generators/variables.xml deleted file mode 100644 index 9d53032..0000000 --- a/lib/blockly/tests/generators/variables.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - Variables - - - item - - - 123 - - - - - - - variable - - - - - item - - - - - 123 - - - - - if - - - 123 - - - - - - - reserved variable - - - - - if - - - - - 123 - - - - - - - - - - - - - naked - Intentionally non-connected variable. - - diff --git a/lib/blockly/tests/jsunit/block_test.js b/lib/blockly/tests/jsunit/block_test.js deleted file mode 100644 index f8fba5b..0000000 --- a/lib/blockly/tests/jsunit/block_test.js +++ /dev/null @@ -1,294 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for Blockly.Block - * @author fenichel@google.com (Rachel Fenichel) - */ - -'use strict'; - -var workspace; -var mockControl_; - -function defineTestBlocks() { - Blockly.defineBlocksWithJsonArray([{ - "type": "stack_block", - "message0": "", - "previousStatement": null, - "nextStatement": null - }, - { - "type": "row_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null - }]); -} - -function undefineTestBlocks() { - delete Blockly.Blocks['stack_block']; - delete Blockly.Blocks['row_block']; -} - -function blockTest_setUp() { - defineTestBlocks(); - workspace = new Blockly.Workspace(); -} - -function blockTest_tearDown() { - undefineTestBlocks(); - workspace.dispose(); - if (mockControl_) { - mockControl_.restore(); - } -} - -function assertUnpluggedNoheal(blocks) { - // A has nothing connected to it. - assertEquals(0, blocks.A.getChildren().length); - // B and C are still connected. - assertEquals(blocks.B, blocks.C.getParent()); - // B is the top of its stack. - assertNull(blocks.B.getParent()); -} - -function assertUnpluggedHealed(blocks) { - // A and C are connected. - assertEquals(1, blocks.A.getChildren().length); - assertEquals(blocks.A, blocks.C.getParent()); - // B has nothing connected to it. - assertEquals(0, blocks.B.getChildren().length); - // B is the top of its stack. - assertNull(blocks.B.getParent()); -} - -function assertUnpluggedHealFailed(blocks) { - // A has nothing connected to it. - assertEquals(0, blocks.A.getChildren().length); - // B has nothing connected to it. - assertEquals(0, blocks.B.getChildren().length); - // B is the top of its stack. - assertNull(blocks.B.getParent()); - // C is the top of its stack. - assertNull(blocks.C.getParent()); -} - -function setUpRowBlocks() { - var blockA = workspace.newBlock('row_block'); - var blockB = workspace.newBlock('row_block'); - var blockC = workspace.newBlock('row_block'); - - blockA.inputList[0].connection.connect(blockB.outputConnection); - blockB.inputList[0].connection.connect(blockC.outputConnection); - - assertEquals(blockB, blockC.getParent()); - - return { - A: blockA, - B: blockB, - C: blockC - }; -} - -function setUpStackBlocks() { - var blockA = workspace.newBlock('stack_block'); - var blockB = workspace.newBlock('stack_block'); - var blockC = workspace.newBlock('stack_block'); - - blockA.nextConnection.connect(blockB.previousConnection); - blockB.nextConnection.connect(blockC.previousConnection); - - assertEquals(blockB, blockC.getParent()); - - return { - A: blockA, - B: blockB, - C: blockC - }; -} - - -function test_block_stack_unplug_noheal() { - blockTest_setUp(); - try { - var blocks = setUpStackBlocks(); - blocks.B.unplug(); - assertUnpluggedNoheal(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_stack_unplug_heal() { - blockTest_setUp(); - try { - var blocks = setUpStackBlocks(); - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_stack_unplug_heal_bad_checks() { - blockTest_setUp(); - try { - var blocks = setUpStackBlocks(); - - // A and C can't connect, but both can connect to B. - blocks.A.nextConnection.setCheck('type1'); - blocks.C.previousConnection.setCheck('type2'); - - // The types don't work. - blocks.B.unplug(true); - - assertUnpluggedHealFailed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_row_unplug_noheal() { - blockTest_setUp(); - try { - var blocks = setUpRowBlocks(); - blocks.B.unplug(false); - assertUnpluggedNoheal(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_row_unplug_heal() { - blockTest_setUp(); - try { - var blocks = setUpRowBlocks(); - // Each block has only one input, and the types work. - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_row_unplug_heal_bad_checks() { - blockTest_setUp(); - try { - var blocks = setUpRowBlocks(); - - // A and C can't connect, but both can connect to B. - blocks.A.inputList[0].connection.setCheck('type1'); - blocks.C.outputConnection.setCheck('type2'); - - // Each block has only one input, but the types don't work. - blocks.B.unplug(true); - assertUnpluggedHealFailed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_row_unplug_multi_inputs_parent() { - blockTest_setUp(); - try { - var blocks = setUpRowBlocks(); - // Add extra input to parent - blocks.A.appendValueInput('INPUT').setCheck(null); - - // Parent block has multiple inputs. - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_row_unplug_multi_inputs_middle() { - blockTest_setUp(); - try { - var blocks = setUpRowBlocks(); - // Add extra input to middle block - blocks.B.appendValueInput('INPUT').setCheck(null); - - // Middle block has multiple inputs. - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_block_row_unplug_multi_inputs_child() { - blockTest_setUp(); - try { - var blocks = setUpRowBlocks(); - // Add extra input to child block - blocks.C.appendValueInput('INPUT').setCheck(null); - - // Child block input count doesn't matter. - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - } finally { - blockTest_tearDown(); - } -} - -function test_set_style() { - blockTest_setUp(); - var styleStub = { - getBlockStyle: function() { - return { - "colourPrimary": "#ffffff", - "colourSecondary": "#aabbcc", - "colourTertiary": "#ddeeff" - }; - } - }; - mockControl_ = setUpMockMethod(workspace, 'getTheme', null, [styleStub]); - var blockA = workspace.newBlock('row_block'); - blockA.setStyle('styleOne'); - - assertEquals('#ffffff', blockA.colour_); - assertEquals('#aabbcc', blockA.colourSecondary_); - assertEquals('#ddeeff', blockA.colourTertiary_); - - blockTest_tearDown(); -} - -function test_set_style_throw_exception() { - blockTest_setUp(); - var styleStub = { - getBlockStyle: function() { - return null; - } - }; - mockControl_ = setUpMockMethod(workspace, 'getTheme', null, [styleStub]); - var blockA = workspace.newBlock('row_block'); - try { - blockA.setStyle('styleOne'); - } catch (error) { - assertEquals(error.message, 'Invalid style name: styleOne'); - } finally { - blockTest_tearDown(); - } -} diff --git a/lib/blockly/tests/jsunit/event_test.js b/lib/blockly/tests/jsunit/event_test.js deleted file mode 100644 index d6452e0..0000000 --- a/lib/blockly/tests/jsunit/event_test.js +++ /dev/null @@ -1,809 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for Blockly.Events - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - -var mockControl_; -var workspace; - -function eventTest_setUp() { - workspace = new Blockly.Workspace(); -} - -function eventTest_setUpWithMockBlocks() { - eventTest_setUp(); - // TODO: Replace with defineGetVarBlock(); - Blockly.defineBlocksWithJsonArray([{ - 'type': 'field_variable_test_block', - 'message0': '%1', - 'args0': [ - { - 'type': 'field_variable', - 'name': 'VAR', - 'variable': 'item' - } - ], - }, - { - 'type': 'simple_test_block', - 'message0': 'simple test block' - }]); -} - -function eventTest_tearDown() { - delete Blockly.Blocks['field_variable_test_block']; - delete Blockly.Blocks['simple_test_block']; - if (mockControl_) { - mockControl_.restore(); - } - workspace.dispose(); -} - -function eventTest_tearDownWithMockBlocks() { - eventTest_tearDown(); - delete Blockly.Blocks.field_variable_test_block; -} - -function test_block_base_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, '1'); - try { - var block = createSimpleTestBlock(workspace); - - // Here's the event we care about. - var event = new Blockly.Events.BlockBase(block); - assertUndefined(event.varId); - checkExactEventValues(event, {'blockId': '1', 'workspaceId': workspace.id, - 'group': '', 'recordUndo': true}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_var_base_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, '1'); - try { - var variable = workspace.createVariable('name1', 'type1', 'id1'); - - var event = new Blockly.Events.VarBase(variable); - assertUndefined(event.blockId); - checkExactEventValues(event, {'varId': 'id1', - 'workspaceId': workspace.id, 'group': '', 'recordUndo': true}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_abstract_constructor() { - eventTest_setUpWithMockBlocks(); - try { - var event = new Blockly.Events.Abstract(); - assertUndefined(event.blockId); - assertUndefined(event.workspaceId); - assertUndefined(event.varId); - checkExactEventValues(event, {'group': '', 'recordUndo': true}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -// Test util -function checkCreateEventValues(event, block, ids, type) { - var expected_xml = Blockly.Xml.domToText(Blockly.Xml.blockToDom(block)); - var result_xml = Blockly.Xml.domToText(event.xml); - assertEquals(expected_xml, result_xml); - isEqualArrays(ids, event.ids); - assertEquals(type, event.type); -} - -// Test util -function checkDeleteEventValues(event, block, ids, type) { - var expected_xml = Blockly.Xml.domToText(Blockly.Xml.blockToDom(block)); - var result_xml = Blockly.Xml.domToText(event.oldXml); - assertEquals(expected_xml, result_xml); - isEqualArrays(ids, event.ids); - assertEquals(type, event.type); -} - -// Test util -function checkExactEventValues(event, values) { - var keys = Object.keys(values); - for (var i = 0, field; field = keys[i]; i++) { - assertEquals(values[field], event[field]); - } -} - -// Test util -function createSimpleTestBlock(workspace) { - // Disable events while constructing the block: this is a test of the - // Blockly.Event constructors, not the block constructor. - Blockly.Events.disable(); - var block = new Blockly.Block(workspace, 'simple_test_block'); - Blockly.Events.enable(); - return block; -} - -function test_create_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - var block = createSimpleTestBlock(workspace); - - var event = new Blockly.Events.Create(block); - checkCreateEventValues(event, block, ['1'], 'create'); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_blockCreate_constructor() { - // expect that blockCreate behaves the same as create. - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - var block = createSimpleTestBlock(workspace); - - var event = new Blockly.Events.BlockCreate(block); - checkCreateEventValues(event, block, ['1'], 'create'); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_delete_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - var block = createSimpleTestBlock(workspace); - var event = new Blockly.Events.Delete(block); - checkDeleteEventValues(event, block, ['1'], 'delete'); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_blockDelete_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - var block = createSimpleTestBlock(workspace); - block.setCommentText('test comment'); - var event = new Blockly.Events.BlockDelete(block); - checkDeleteEventValues(event, block, ['1'], 'delete'); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_change_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - Blockly.Events.disable(); - var block = new Blockly.Block(workspace, 'field_variable_test_block'); - Blockly.Events.enable(); - - var event = new Blockly.Events.Change(block, 'field', 'VAR', 'id1', 'id2'); - checkExactEventValues(event, {'element': 'field', 'name': 'VAR', - 'oldValue': 'id1', 'newValue': 'id2', 'type': 'change'}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_blockChange_constructor() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - Blockly.Events.disable(); - var block = new Blockly.Block(workspace, 'field_variable_test_block'); - Blockly.Events.enable(); - - var event = new Blockly.Events.BlockChange(block, 'field', 'VAR', 'id1', - 'id2'); - checkExactEventValues(event, {'element': 'field', 'name': 'VAR', - 'oldValue': 'id1', 'newValue': 'id2', 'type': 'change'}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_move_constructorCoordinate() { - // Expect the oldCoordinate to be set. - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']); - try { - var block1 = createSimpleTestBlock(workspace); - var coordinate = new Blockly.utils.Coordinate(3, 4); - block1.xy_ = coordinate; - - var event = new Blockly.Events.Move(block1); - checkExactEventValues(event, {'oldCoordinate': coordinate, - 'type': 'move'}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_move_constructoroldParentId() { - // Expect the oldParentId to be set but not the oldCoordinate to be set. - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']); - try { - var block1 = createSimpleTestBlock(workspace); - var block2 = createSimpleTestBlock(workspace); - block1.parentBlock_ = block2; - block1.xy_ = new Blockly.utils.Coordinate(3, 4); - - var event = new Blockly.Events.Move(block1); - checkExactEventValues(event, {'oldCoordinate': undefined, - 'oldParentId': '2', 'type': 'move'}); - block1.parentBlock_ = null; - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_blockMove_constructorCoordinate() { - // Expect the oldCoordinate to be set. - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']); - try { - var block1 = createSimpleTestBlock(workspace); - var coordinate = new Blockly.utils.Coordinate(3, 4); - block1.xy_ = coordinate; - - var event = new Blockly.Events.BlockMove(block1); - checkExactEventValues(event, {'oldCoordinate': coordinate, - 'type': 'move'}); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_blockMove_constructoroldParentId() { - // Expect the oldParentId to be set but not the oldCoordinate to be set. - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']); - try { - var block1 = createSimpleTestBlock(workspace); - var block2 = createSimpleTestBlock(workspace); - block1.parentBlock_ = block2; - block1.xy_ = new Blockly.utils.Coordinate(3, 4); - - var event = new Blockly.Events.BlockMove(block1); - checkExactEventValues(event, {'oldCoordinate': undefined, - 'oldParentId': '2', 'type': 'move'}); - block1.parentBlock_ = null; - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_uiEvent_constructor_null() { - try { - Blockly.Events.setGroup('testGroup'); - var event = new Blockly.Events.Ui(null, 'foo', 'bar', 'baz'); - checkExactEventValues(event, - { - 'blockId': null, - 'workspaceId': null, - 'type': 'ui', - 'oldValue': 'bar', - 'newValue': 'baz', - 'element': 'foo', - 'recordUndo': false, - 'group': 'testGroup' - } - ); - } finally { - Blockly.Events.setGroup(false); - } -} - -function test_uiEvent_constructor_block() { - eventTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - try { - var block1 = createSimpleTestBlock(workspace); - Blockly.Events.setGroup('testGroup'); - var event = new Blockly.Events.Ui(block1, 'foo', 'bar', 'baz'); - checkExactEventValues(event, - { - 'blockId': '1', - 'workspaceId': workspace.id, - 'type': 'ui', - 'oldValue': 'bar', - 'newValue': 'baz', - 'element': 'foo', - 'recordUndo': false, - 'group': 'testGroup' - } - ); - } finally { - Blockly.Events.setGroup(false); - eventTest_tearDownWithMockBlocks(); - } -} - -function test_varCreate_constructor() { - eventTest_setUp(); - try { - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarCreate(variable); - checkExactEventValues(event, {'varName': 'name1', 'varType': 'type1', - 'type': 'var_create'}); - } finally { - eventTest_tearDown(); - } -} - -function test_varCreate_toJson() { - eventTest_setUp(); - try { - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarCreate(variable); - var json = event.toJson(); - var expectedJson = ({type: "var_create", varId: "id1", varType: "type1", - varName: "name1"}); - - assertEquals(JSON.stringify(expectedJson), JSON.stringify(json)); - } finally { - eventTest_tearDown(); - } -} - -function test_varCreate_fromJson() { - eventTest_setUp(); - try { - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarCreate(variable); - var event2 = new Blockly.Events.VarCreate(null); - var json = event.toJson(); - event2.fromJson(json); - - assertEquals(JSON.stringify(json), JSON.stringify(event2.toJson())); - } finally { - eventTest_tearDown(); - } -} - -function test_varCreate_runForward() { - eventTest_setUp(); - var json = {type: "var_create", varId: "id1", varType: "type1", - varName: "name1"}; - var event = Blockly.Events.fromJson(json, workspace); - assertNull(workspace.getVariableById('id1')); - event.run(true); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - eventTest_tearDown(); -} - -function test_varCreate_runBackwards() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarCreate(variable); - assertNotNull(workspace.getVariableById('id1')); - event.run(false); - assertNull(workspace.getVariableById('id1')); - eventTest_tearDown(); -} - -function test_varDelete_constructor() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarDelete(variable); - checkExactEventValues(event, {'varName': 'name1', 'varType': 'type1', - 'varId':'id1', 'type': 'var_delete'}); - eventTest_tearDown(); -} - -function test_varDelete_toJson() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarDelete(variable); - var json = event.toJson(); - var expectedJson = ({type: "var_delete", varId: "id1", varType: "type1", - varName: "name1"}); - - assertEquals(JSON.stringify(expectedJson), JSON.stringify(json)); - eventTest_tearDown(); -} - -function test_varDelete_fromJson() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarDelete(variable); - var event2 = new Blockly.Events.VarDelete(null); - var json = event.toJson(); - event2.fromJson(json); - - assertEquals(JSON.stringify(json), JSON.stringify(event2.toJson())); - eventTest_tearDown(); -} - -function test_varDelete_runForwards() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarDelete(variable); - assertNotNull(workspace.getVariableById('id1')); - event.run(true); - assertNull(workspace.getVariableById('id1')); - eventTest_tearDown(); -} - -function test_varDelete_runBackwards() { - eventTest_setUp(); - var json = {type: "var_delete", varId: "id1", varType: "type1", - varName: "name1"}; - var event = Blockly.Events.fromJson(json, workspace); - assertNull(workspace.getVariableById('id1')); - event.run(false); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - eventTest_tearDown(); -} - -function test_varRename_constructor() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarRename(variable, 'name2'); - checkExactEventValues(event, {'varId': 'id1', 'oldName': 'name1', - 'newName': 'name2', 'type': 'var_rename'}); - eventTest_tearDown(); -} - -function test_varRename_toJson() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarRename(variable, 'name2'); - var json = event.toJson(); - var expectedJson = ({type: "var_rename", varId: "id1", oldName: "name1", - newName: "name2"}); - - assertEquals(JSON.stringify(expectedJson), JSON.stringify(json)); - eventTest_tearDown(); -} - -function test_varRename_fromJson() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarRename(variable, ''); - var event2 = new Blockly.Events.VarRename(null); - var json = event.toJson(); - event2.fromJson(json); - - assertEquals(JSON.stringify(json), JSON.stringify(event2.toJson())); - eventTest_tearDown(); -} - -function test_varRename_runForward() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarRename(variable, 'name2'); - event.run(true); - assertNull(workspace.getVariable('name1')); - checkVariableValues(workspace, 'name2', 'type1', 'id1'); - eventTest_tearDown(); -} - -function test_varBackard_runForward() { - eventTest_setUp(); - var variable = workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarRename(variable, 'name2'); - event.run(false); - assertNull(workspace.getVariable('name2')); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - eventTest_tearDown(); -} - -function test_events_filter() { - eventTest_setUpWithMockBlocks(); - try { - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var events = [ - new Blockly.Events.BlockCreate(block1), - new Blockly.Events.BlockMove(block1), - new Blockly.Events.BlockChange(block1, 'field', 'VAR', 'id1', 'id2'), - new Blockly.Events.Ui(block1, 'click') - ]; - var filteredEvents = Blockly.Events.filter(events, true); - assertEquals(4, filteredEvents.length); // no event should have been removed. - // test that the order hasn't changed - assertTrue(filteredEvents[0] instanceof Blockly.Events.BlockCreate); - assertTrue(filteredEvents[1] instanceof Blockly.Events.BlockMove); - assertTrue(filteredEvents[2] instanceof Blockly.Events.BlockChange); - assertTrue(filteredEvents[3] instanceof Blockly.Events.Ui); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_events_filterForward() { - eventTest_setUpWithMockBlocks(); - try { - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var events = [ - new Blockly.Events.BlockCreate(block1), - ]; - helper_addMoveEvent(events, block1, 1, 1); - helper_addMoveEvent(events, block1, 2, 2); - helper_addMoveEvent(events, block1, 3, 3); - var filteredEvents = Blockly.Events.filter(events, true); - assertEquals(2, filteredEvents.length); // duplicate moves should have been removed. - // test that the order hasn't changed - assertTrue(filteredEvents[0] instanceof Blockly.Events.BlockCreate); - assertTrue(filteredEvents[1] instanceof Blockly.Events.BlockMove); - assertEquals(3, filteredEvents[1].newCoordinate.x); - assertEquals(3, filteredEvents[1].newCoordinate.y); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_events_filterBackward() { - eventTest_setUpWithMockBlocks(); - try { - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var events = [ - new Blockly.Events.BlockCreate(block1), - ]; - helper_addMoveEvent(events, block1, 1, 1); - helper_addMoveEvent(events, block1, 2, 2); - helper_addMoveEvent(events, block1, 3, 3); - var filteredEvents = Blockly.Events.filter(events, false); - assertEquals(2, filteredEvents.length); // duplicate event should have been removed. - // test that the order hasn't changed - assertTrue(filteredEvents[0] instanceof Blockly.Events.BlockCreate); - assertTrue(filteredEvents[1] instanceof Blockly.Events.BlockMove); - assertEquals(1, filteredEvents[1].newCoordinate.x); - assertEquals(1, filteredEvents[1].newCoordinate.y); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} - -function test_events_filterDifferentBlocks() { - eventTest_setUpWithMockBlocks(); - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var block2 = workspace.newBlock('field_variable_test_block', '2'); - var events = [ - new Blockly.Events.BlockCreate(block1), - new Blockly.Events.BlockMove(block1), - new Blockly.Events.BlockCreate(block2), - new Blockly.Events.BlockMove(block2) - ]; - var filteredEvents = Blockly.Events.filter(events, true); - assertEquals(4, filteredEvents.length); // no event should have been removed. - eventTest_tearDownWithMockBlocks(); -} - -function test_events_mergeMove() { - eventTest_setUpWithMockBlocks(); - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var events = []; - helper_addMoveEvent(events, block1, 0, 0); - helper_addMoveEvent(events, block1, 1, 1); - var filteredEvents = Blockly.Events.filter(events, true); - assertEquals(1, filteredEvents.length); // second move event merged into first - assertEquals(1, filteredEvents[0].newCoordinate.x); - assertEquals(1, filteredEvents[0].newCoordinate.y); - eventTest_tearDownWithMockBlocks(); -} - -function test_events_mergeChange() { - eventTest_setUpWithMockBlocks(); - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var events = [ - new Blockly.Events.Change(block1, 'field', 'VAR', 'item', 'item1'), - new Blockly.Events.Change(block1, 'field', 'VAR', 'item1', 'item2') - ]; - var filteredEvents = Blockly.Events.filter(events, true); - assertEquals(1, filteredEvents.length); // second change event merged into first - assertEquals('item', filteredEvents[0].oldValue); - assertEquals('item2', filteredEvents[0].newValue); - eventTest_tearDownWithMockBlocks(); -} - -function test_events_mergeUi() { - eventTest_setUpWithMockBlocks(); - var block1 = workspace.newBlock('field_variable_test_block', '1'); - var block2 = workspace.newBlock('field_variable_test_block', '2'); - var block3 = workspace.newBlock('field_variable_test_block', '3'); - var events = [ - new Blockly.Events.Ui(block1, 'commentOpen', 'false', 'true'), - new Blockly.Events.Ui(block1, 'click', 'false', 'true'), - new Blockly.Events.Ui(block2, 'mutatorOpen', 'false', 'true'), - new Blockly.Events.Ui(block2, 'click', 'false', 'true'), - new Blockly.Events.Ui(block3, 'warningOpen', 'false', 'true'), - new Blockly.Events.Ui(block3, 'click', 'false', 'true') - ]; - var filteredEvents = Blockly.Events.filter(events, true); - assertEquals(3, filteredEvents.length); // click event merged into corresponding *Open event - assertEquals('commentOpen', filteredEvents[0].element); - assertEquals('mutatorOpen', filteredEvents[1].element); - assertEquals('warningOpen', filteredEvents[2].element); - eventTest_tearDownWithMockBlocks(); -} - -/** - * Tests that events that collide on a (event, block, workspace) tuple - * but cannot be merged do not get dropped during filtering. - */ -function test_events_stackclick() { - eventTest_setUpWithMockBlocks(); - var block = workspace.newBlock('field_variable_test_block', '1'); - var events = [ - new Blockly.Events.Ui(block, 'click', undefined, undefined), - new Blockly.Events.Ui(block, 'stackclick', undefined, undefined) - ]; - var filteredEvents = Blockly.Events.filter(events, true); - // click and stackclick should both exist - assertEquals(2, filteredEvents.length); - assertEquals('click', filteredEvents[0].element); - assertEquals('stackclick', filteredEvents[1].element); - eventTest_tearDownWithMockBlocks(); -} - -/** - * Mutator composition could result in move events for blocks - * connected to the mutated block that were null operations. This - * leads to events in the undo/redo queue that do nothing, requiring - * an extra undo/redo to proceed to the next event. This test ensures - * that two move events that do get merged (disconnecting and - * reconnecting a block in response to a mutator change) are filtered - * from the queue. - */ -function test_events_filteraftermerge() { - eventTest_setUpWithMockBlocks(); - var block = workspace.newBlock('field_variable_test_block', '1'); - block.setParent(null); - var events = []; - helper_addMoveEventParent(events, block, null); - helper_addMoveEventParent(events, block, null); - var filteredEvents = Blockly.Events.filter(events, true); - // The two events should be merged, but because nothing has changed - // they will be filtered out. - assertEquals(0, filteredEvents.length); - eventTest_tearDownWithMockBlocks(); -} - -/** - * Helper function to simulate block move events. - * - * @param {!Array.} events a queue of events. - * @param {!Blockly.Block} block the block to be moved - * @param {number} newX new X coordinate of the block - * @param {number} newY new Y coordinate of the block - */ -function helper_addMoveEvent(events, block, newX, newY) { - events.push(new Blockly.Events.BlockMove(block)); - block.xy_ = new Blockly.utils.Coordinate(newX, newY); - events[events.length-1].recordNew(); -} - -function helper_addMoveEventParent(events, block, parent) { - events.push(new Blockly.Events.BlockMove(block)); - block.setParent(parent); - events[events.length-1].recordNew(); -} - -function test_events_newblock_newvar() { - eventTest_setUpWithMockBlocks(); - - Blockly.Events.fire = temporary_fireEvent; - temporary_fireEvent.firedEvents_ = []; - // Expect three calls to genUid: one to set the block's ID, one for the event - // group's id, and one for the variable's ID. - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2', '3']); - try { - var block = workspace.newBlock('field_variable_test_block'); - - var firedEvents = workspace.undoStack_; - // Expect two events: varCreate and block create. - assertEquals(2, firedEvents.length); - - var event0 = firedEvents[0]; - var event1 = firedEvents[1]; - assertEquals('var_create', event0.type); - assertEquals('create', event1.type); - - // Expect the events to have the same group ID. - assertEquals(event0.group, event1.group); - - // Expect the group ID to be the result of the second call to genUid. - assertEquals('2', event0.group); - - // Expect the workspace to have a variable with ID '3'. - assertNotNull(workspace.getVariableById('3')); - assertEquals('3', event0.varId); - } finally { - eventTest_tearDownWithMockBlocks(); - Blockly.Events.fire = savedFireFunc; - } -} - -// The sequence of events should be the same whether the block was created from -// XML or directly. -function test_events_newblock_newvar_xml() { - eventTest_setUpWithMockBlocks(); - - Blockly.Events.fire = temporary_fireEvent; - temporary_fireEvent.firedEvents_ = []; - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' name1' + - ' ' + - ''); - Blockly.Xml.domToWorkspace(dom, workspace); - - var firedEvents = workspace.undoStack_; - // Expect two events: varCreate and block create. - assertEquals(2, firedEvents.length); - - var event0 = firedEvents[0]; - var event1 = firedEvents[1]; - assertEquals('var_create', event0.type); - assertEquals('create', event1.type); - - // Expect the events to have the same group ID. - assertEquals(event0.group, event1.group); - - // Expect the workspace to have a variable with ID 'id1'. - assertNotNull(workspace.getVariableById('id1')); - assertEquals('id1', event0.varId); - } finally { - eventTest_tearDownWithMockBlocks(); - Blockly.Events.fire = savedFireFunc; - } -} - -function test_events_filter_nomerge_move() { - // Move events should only merge if they refer to the same block and are - // consecutive. - // See github.com/google/blockly/pull/1892 for a worked example showing - // how merging non-consecutive events can fail when replacing a shadow - // block. - eventTest_setUpWithMockBlocks(); - try { - var block1 = createSimpleTestBlock(workspace); - var block2 = createSimpleTestBlock(workspace); - - var events = []; - helper_addMoveEvent(events, block1, 1, 1); - helper_addMoveEvent(events, block2, 1, 1); - events.push(new Blockly.Events.BlockDelete(block2)); - helper_addMoveEvent(events, block1, 2, 2); - - var filteredEvents = Blockly.Events.filter(events, true); - // Nothing should have merged. - assertEquals(4, filteredEvents.length); - // test that the order hasn't changed - assertTrue(filteredEvents[0] instanceof Blockly.Events.BlockMove); - assertTrue(filteredEvents[1] instanceof Blockly.Events.BlockMove); - assertTrue(filteredEvents[2] instanceof Blockly.Events.BlockDelete); - assertTrue(filteredEvents[3] instanceof Blockly.Events.BlockMove); - } finally { - eventTest_tearDownWithMockBlocks(); - } -} diff --git a/lib/blockly/tests/jsunit/extensions_test.js b/lib/blockly/tests/jsunit/extensions_test.js deleted file mode 100644 index a465b4f..0000000 --- a/lib/blockly/tests/jsunit/extensions_test.js +++ /dev/null @@ -1,654 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for Blockly.Extensions - * @author Anm@anm.me (Andrew n marshall) - */ -'use strict'; - -function test_extension() { - var workspace = new Blockly.Workspace(); - var block; - try { - assertUndefined(Blockly.Extensions.ALL_['extensions_test']); - - var numCallsToBefore = 0; - var numCallsToAfter = 0; - - // Extension defined before the block type is defined. - Blockly.Extensions.register('extensions_test_before', function () { - numCallsToBefore++; - this.extendedWithBefore = true; - }); - - Blockly.defineBlocksWithJsonArray([{ - "type": "extension_test_block", - "message0": "extension_test_block", - "extensions": ["extensions_test_before", "extensions_test_after"] - }]); - - // Extension defined after the block type (but before instantiation). - Blockly.Extensions.register('extensions_test_after', function () { - numCallsToAfter++; - this.extendedWithAfter = true; - }); - - assert(typeof Blockly.Extensions.ALL_['extensions_test_before'] == 'function'); - assert(typeof Blockly.Extensions.ALL_['extensions_test_after'] == 'function'); - assertEquals(0, numCallsToBefore); - assertEquals(0, numCallsToAfter); - - block = new Blockly.Block(workspace, 'extension_test_block'); - - assertEquals(1, numCallsToBefore); - assertEquals(1, numCallsToAfter); - assert(block.extendedWithBefore); - assert(block.extendedWithAfter); - } finally { - block && block.dispose(); - workspace.dispose(); - - delete Blockly.Extensions.ALL_['extensions_test_before']; - delete Blockly.Extensions.ALL_['extensions_test_after']; - delete Blockly.Blocks['extension_test_block']; - } -} - -function test_extension_missing() { - var workspace = new Blockly.Workspace(); - var block; - var exceptionWasThrown = false; - try { - assertUndefined(Blockly.Extensions.ALL_['missing_extension']); - Blockly.defineBlocksWithJsonArray([{ - "type": "missing_extension_block", - "message0": "missing_extension_block", - "extensions": ["missing_extension"] - }]); - - block = new Blockly.Block(workspace, 'missing_extension_block'); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - block && block.dispose(); - workspace.dispose(); - delete Blockly.Blocks['missing_extension_block']; - } - assert(exceptionWasThrown); -} - -function test_extension_not_a_function() { - var exceptionWasThrown = false; - try { - assertUndefined(Blockly.Extensions.ALL_['extension_just_a_string']); - Blockly.Extensions.register('extension_just_a_string', 'extension_just_a_string'); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['extension_just_a_string']; - } - assert(exceptionWasThrown); - - var exceptionWasThrown = false; - try { - assertUndefined(Blockly.Extensions.ALL_['extension_is_null']); - Blockly.Extensions.register('extension_is_null', null); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['extension_is_null']; - } - assert(exceptionWasThrown); - - var exceptionWasThrown = false; - try { - assertUndefined(Blockly.Extensions.ALL_['extension_is_undefined']); - Blockly.Extensions.register('extension_is_undefined'); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['extension_is_undefined']; - } - assert(exceptionWasThrown); -} - -function test_parent_tooltip_when_inline() { - var defaultTooltip = "defaultTooltip"; - var parentTooltip = "parentTooltip"; - - var workspace = new Blockly.Workspace(); - var block; - try { - Blockly.defineBlocksWithJsonArray([ - { - "type": "test_parent_tooltip_when_inline", - "message0": "test_parent_tooltip_when_inline", - "output": true, - "tooltip": defaultTooltip, - "extensions": ["parent_tooltip_when_inline"] - }, - { - "type": "test_parent", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "tooltip": parentTooltip - } - ]); - - block = new Blockly.Block(workspace, 'test_parent_tooltip_when_inline'); - - // Tooltip is dynamic after extension initialization. - assert(typeof block.tooltip == 'function'); - assertEquals(block.tooltip(), defaultTooltip); - - // Tooltip is normal before connected to parent. - var parent = new Blockly.Block(workspace, 'test_parent'); - assertEquals(parent.tooltip, parentTooltip); - assertFalse(!!parent.inputsInline); - - // Tooltip is normal when parent is not inline. - parent.getInput('INPUT').connection.connect(block.outputConnection); - assertEquals(block.getParent(), parent); - assertEquals(block.tooltip(), defaultTooltip); - - // Tooltip is parent's when parent is inline. - parent.setInputsInline(true); - assertEquals(block.tooltip(), parentTooltip); - - // Tooltip revert when disconnected. - parent.getInput('INPUT').connection.disconnect(); - assert(!block.getParent()); - assertEquals(block.tooltip(), defaultTooltip); - } finally { - block && block.dispose(); - workspace.dispose(); - - delete Blockly.Blocks['test_parent_tooltip_when_inline']; - delete Blockly.Blocks['test_parent']; - } -} - -function test_mixin_extension() { - var TEST_MIXIN = { - field: 'FIELD', - method: function() { - console.log('TEXT_MIXIN method()'); - } - }; - - var workspace = new Blockly.Workspace(); - var block; - try { - assertUndefined(Blockly.Extensions.ALL_['mixin_test']); - - // Extension defined before the block type is defined. - Blockly.Extensions.registerMixin('mixin_test', TEST_MIXIN); - assert(typeof Blockly.Extensions.ALL_['mixin_test'] == 'function'); - - Blockly.defineBlocksWithJsonArray([{ - "type": "test_block_mixin", - "message0": "test_block_mixin", - "extensions": ["mixin_test"] - }]); - - block = new Blockly.Block(workspace, 'test_block_mixin'); - - assertEquals(TEST_MIXIN.field, block.field); - assertEquals(TEST_MIXIN.method, block.method); - } finally { - block && block.dispose(); - workspace.dispose(); - - delete Blockly.Extensions.ALL_['mixin_test']; - delete Blockly.Blocks['test_block_mixin']; - } -} - -function test_bad_mixin_overwrites_local_value() { - var TEST_MIXIN_BAD_INPUTLIST = { - inputList: 'bad inputList' // Defined in constructor - }; - - var workspace = new Blockly.Workspace(); - var block; - try { - assertUndefined(Blockly.Extensions.ALL_['mixin_bad_inputList']); - - // Extension defined before the block type is defined. - Blockly.Extensions.registerMixin('mixin_bad_inputList', TEST_MIXIN_BAD_INPUTLIST); - assert(typeof Blockly.Extensions.ALL_['mixin_bad_inputList'] == 'function'); - - Blockly.defineBlocksWithJsonArray([{ - "type": "test_block_bad_inputList", - "message0": "test_block_bad_inputList", - "extensions": ["mixin_bad_inputList"] - }]); - - try { - block = new Blockly.Block(workspace, 'test_block_bad_inputList'); - } catch (e) { - // Expected Error - assert(e.message.indexOf('inputList') >= 0); // Reference the conflict - return; - } - fail('Expected error when constructing block'); - } finally { - block && block.dispose(); - workspace.dispose(); - - delete Blockly.Extensions.ALL_['mixin_bad_inputList']; - delete Blockly.Blocks['test_block_bad_inputList']; - } -} - -function test_bad_mixin_overwrites_prototype() { - var TEST_MIXIN_BAD_COLOUR = { - colour_: 'bad colour_' // Defined on prototype - }; - - var workspace = new Blockly.Workspace(); - var block; - try { - assertUndefined(Blockly.Extensions.ALL_['mixin_bad_colour_']); - - // Extension defined before the block type is defined. - Blockly.Extensions.registerMixin('mixin_bad_colour_', TEST_MIXIN_BAD_COLOUR); - assert(typeof Blockly.Extensions.ALL_['mixin_bad_colour_'] == 'function'); - - Blockly.defineBlocksWithJsonArray([{ - "type": "test_block_bad_colour", - "message0": "test_block_bad_colour", - "extensions": ["mixin_bad_colour_"] - }]); - - try { - block = new Blockly.Block(workspace, 'test_block_bad_colour'); - } catch (e) { - // Expected Error - assert(e.message.indexOf('colour_') >= 0); // Reference the conflict - return; - } - fail('Expected error when constructing block'); - } finally { - block && block.dispose(); - workspace.dispose(); - - delete Blockly.Extensions.ALL_['mixin_bad_colour_']; - delete Blockly.Blocks['test_block_bad_colour']; - } -} - -function test_mutator_mixin() { - var workspace = new Blockly.Workspace(); - var block; - - try { - Blockly.defineBlocksWithJsonArray([{ - "type": "mutator_test_block", - "message0": "mutator_test_block", - "mutator": "mutator_test" - }]); - - // Events code calls mutationToDom and expects it to give back a meaningful - // value. - Blockly.Events.disable(); - Blockly.Extensions.registerMutator('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - }, - compose: function() { - return 'composeFn'; - }, - decompose: function() { - return 'decomposeFn'; - } - }); - - block = new Blockly.Block(workspace, 'mutator_test_block'); - - // Make sure all of the functions were installed correctly. - assertEquals(block.domToMutation(), 'domToMutationFn'); - assertEquals(block.mutationToDom(), 'mutationToDomFn'); - assertEquals(block.compose(), 'composeFn'); - assertEquals(block.decompose(), 'decomposeFn'); - } finally { - if (block) { - block.dispose(); - } - workspace.dispose(); - Blockly.Events.enable(); - delete Blockly.Extensions.ALL_['mutator_test']; - } -} - -function test_mutator_mixin_no_dialog() { - var workspace = new Blockly.Workspace(); - var block; - - try { - Blockly.defineBlocksWithJsonArray([{ - "type": "mutator_test_block", - "message0": "mutator_test_block", - "mutator": "mutator_test" - }]); - - // Events code calls mutationToDom and expects it to give back a meaningful - // value. - Blockly.Events.disable(); - assertUndefined(Blockly.Extensions.ALL_['mutator_test']); - Blockly.Extensions.registerMutator('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - } - }); - - block = new Blockly.Block(workspace, 'mutator_test_block'); - - // Make sure all of the functions were installed correctly. - assertEquals(block.domToMutation(), 'domToMutationFn'); - assertEquals(block.mutationToDom(), 'mutationToDomFn'); - assertFalse(block.hasOwnProperty('compose')); - assertFalse(block.hasOwnProperty('decompose')); - } finally { - if (block) { - block.dispose(); - } - workspace.dispose(); - Blockly.Events.enable(); - delete Blockly.Extensions.ALL_['mutator_test']; - } -} - -// Explicitly check all four things that could be missing. -function test_mutator_mixin_no_decompose_fails() { - var exceptionWasThrown = false; - try { - Blockly.Extensions.registerMutator('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - }, - compose: function() { - return 'composeFn'; - } - }); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['mutator_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_mutator_mixin_no_compose_fails() { - var exceptionWasThrown = false; - try { - Blockly.Extensions.registerMutator('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - }, - decompose: function() { - return 'decomposeFn'; - } - }); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['mutator_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_mutator_mixin_no_domToMutation_fails() { - var exceptionWasThrown = false; - try { - Blockly.Extensions.registerMutator('mutator_test', - { - mutationToDom: function() { - return 'mutationToDomFn'; - }, - compose: function() { - return 'composeFn'; - }, - decompose: function() { - return 'decomposeFn'; - } - }); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['mutator_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_mutator_mixin_no_mutationToDom_fails() { - var exceptionWasThrown = false; - try { - Blockly.Extensions.registerMutator('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - compose: function() { - return 'composeFn'; - }, - decompose: function() { - return 'decomposeFn'; - } - }); - } catch (e) { - // Expected. - exceptionWasThrown = true; - } finally { - delete Blockly.Extensions.ALL_['mutator_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_use_mutator_as_extension_fails() { - var workspace = new Blockly.Workspace(); - var block; - var exceptionWasThrown = false; - - try { - Blockly.defineBlocksWithJsonArray([{ - "type": "mutator_test_block", - "message0": "mutator_test_block", - "extensions": ["mutator_test"] - }]); - - Blockly.Events.disable(); - assertUndefined(Blockly.Extensions.ALL_['mutator_test']); - Blockly.Extensions.registerMutator('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - } - }); - - // Events code calls mutationToDom and expects it to give back a meaningful - // value. - block = new Blockly.Block(workspace, 'mutator_test_block'); - } catch (e) { - // Expected - exceptionWasThrown = true; - // Should have failed on apply, not on register. - assertNotNull(Blockly.Extensions.ALL_['mutator_test']); - } finally { - if (block) { - block.dispose(); - } - workspace.dispose(); - Blockly.Events.enable(); - delete Blockly.Extensions.ALL_['mutator_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_use_mutator_mixin_as_extension_fails() { - var workspace = new Blockly.Workspace(); - var block; - var exceptionWasThrown = false; - - try { - Blockly.defineBlocksWithJsonArray([{ - "type": "mutator_test_block", - "message0": "mutator_test_block", - "extensions": ["mutator_test"] - }]); - - // Events code calls mutationToDom and expects it to give back a meaningful - // value. - Blockly.Events.disable(); - assertUndefined(Blockly.Extensions.ALL_['mutator_test']); - Blockly.Extensions.registerMixin('mutator_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - } - }); - - block = new Blockly.Block(workspace, 'mutator_test_block'); - } catch (e) { - // Expected - exceptionWasThrown = true; - // Should have failed on apply, not on register. - assertNotNull(Blockly.Extensions.ALL_['mutator_test']); - } finally { - if (block) { - block.dispose(); - } - workspace.dispose(); - Blockly.Events.enable(); - delete Blockly.Extensions.ALL_['mutator_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_use_extension_as_mutator_fails() { - var workspace = new Blockly.Workspace(); - var block; - var exceptionWasThrown = false; - - try { - Blockly.defineBlocksWithJsonArray([{ - "type": "mutator_test_block", - "message0": "mutator_test_block", - "mutator": ["extensions_test"] - }]); - - // Events code calls mutationToDom and expects it to give back a meaningful - // value. - Blockly.Events.disable(); - assertUndefined(Blockly.Extensions.ALL_['extensions_test']); - Blockly.Extensions.register('extensions_test', function() { - return 'extensions_test_fn'; - }); - - block = new Blockly.Block(workspace, 'mutator_test_block'); - } catch (e) { - // Expected - exceptionWasThrown = true; - // Should have failed on apply, not on register. - assertNotNull(Blockly.Extensions.ALL_['extensions_test']); - } finally { - if (block) { - block.dispose(); - } - workspace.dispose(); - Blockly.Events.enable(); - delete Blockly.Extensions.ALL_['extensions_test']; - } - assertTrue(exceptionWasThrown); -} - -function test_mutator_mixin_plus_function() { - var workspace = new Blockly.Workspace(); - var block; - var fnWasCalled = false; - - try { - Blockly.defineBlocksWithJsonArray([{ - "type": "mutator_test_block", - "message0": "mutator_test_block", - "mutator": ["extensions_test"] - }]); - - Blockly.Events.disable(); - assertUndefined(Blockly.Extensions.ALL_['extensions_test']); - Blockly.Extensions.registerMutator('extensions_test', - { - domToMutation: function() { - return 'domToMutationFn'; - }, - mutationToDom: function() { - return 'mutationToDomFn'; - } - }, - function() { - fnWasCalled = true; - } - ); - - // Events code calls mutationToDom and expects it to give back a meaningful - // value. - block = new Blockly.Block(workspace, 'mutator_test_block'); - } finally { - if (block) { - block.dispose(); - } - workspace.dispose(); - Blockly.Events.enable(); - delete Blockly.Extensions.ALL_['extensions_test']; - } - assertTrue(fnWasCalled); -} diff --git a/lib/blockly/tests/jsunit/generator_test.js b/lib/blockly/tests/jsunit/generator_test.js deleted file mode 100644 index 4cdae64..0000000 --- a/lib/blockly/tests/jsunit/generator_test.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -goog.require('Blockly.Dart'); -goog.require('Blockly.JavaScript'); -goog.require('Blockly.Lua'); -goog.require('Blockly.PHP'); -goog.require('Blockly.Python'); - -var workspace; - -function defineGeneratorTestBlocks() { - Blockly.defineBlocksWithJsonArray([{ - "type": "stack_block", - "message0": "", - "previousStatement": null, - "nextStatement": null - }, - { - "type": "row_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null, - "nextStatement": null - }, - { - "type": "controls_repeat_ext", - "message0": "Repeat Loop", - "message1": "%1", - "args1": [{ - "type": "input_statement", - "name": "DO" - }], - "previousStatement": null, - "nextStatement": null - }]); -} - -function undefineGeneratorTestBlocks() { - delete Blockly.Blocks['stack_block']; - delete Blockly.Blocks['row_block']; -} - -function generatorTest_setUp() { - defineGeneratorTestBlocks(); - workspace = new Blockly.Workspace(); -} - -function generatorTest_tearDown() { - undefineGeneratorTestBlocks(); - workspace.dispose(); -} - -function blockToCodeTestSetup(generator) { - var row_block = workspace.newBlock('row_block'); - var stack_block = workspace.newBlock('stack_block'); - - generator.row_block = function(block){return 'row_block'}; - generator.stack_block = function(block){return 'stack_block'}; - row_block.nextConnection.connect(stack_block.previousConnection); - return row_block; -} - -function blockToCodeTest(generator, opt_thisOnly) { - var row_block = blockToCodeTestSetup(generator); - return generator.blockToCode(row_block, opt_thisOnly); -} - -function disabledBlockTest(generator, opt_thisOnly) { - var row_block = blockToCodeTestSetup(generator); - row_block.disabled=true; - return generator.blockToCode(row_block, opt_thisOnly); -} - -function nestedLoopTest(generator, opt_thisOnly) { - Blockly.Msg['CONTROLS_REPEAT_TITLE'] = 'repeat %1 times'; - var blockA = workspace.newBlock('controls_repeat_ext'); - var blockB = workspace.newBlock('controls_repeat_ext'); - var blockC = workspace.newBlock('controls_repeat_ext'); - generator.controls_repeat_ext = getControlRepeatFunc(generator); - - blockA.getInput('DO').connection.connect(blockB.previousConnection); - blockA.nextConnection.connect(blockC.previousConnection); - return generator.blockToCode(blockA, opt_thisOnly); -} - -function getControlRepeatFunc(generator) { - return function(block){ - return '{' + generator.statementToCode(block, 'DO') + '}'; - }; -} - -function test_blockToCodeOnAllGeneartors() { - generatorTest_setUp(); - - assertEquals(blockToCodeTest(Blockly.Dart, true), 'row_block'); - assertEquals(blockToCodeTest(Blockly.Dart, false), 'row_blockstack_block'); - - assertEquals(blockToCodeTest(Blockly.JavaScript, true), 'row_block'); - assertEquals(blockToCodeTest(Blockly.JavaScript, false), 'row_blockstack_block'); - - assertEquals(blockToCodeTest(Blockly.Lua, true), 'row_block'); - assertEquals(blockToCodeTest(Blockly.Lua, false), 'row_blockstack_block'); - - assertEquals(blockToCodeTest(Blockly.PHP, true), 'row_block'); - assertEquals(blockToCodeTest(Blockly.PHP, false), 'row_blockstack_block'); - - assertEquals(blockToCodeTest(Blockly.Python, true), 'row_block'); - assertEquals(blockToCodeTest(Blockly.Python, false), 'row_blockstack_block'); - - generatorTest_tearDown(); -} - -function test_disabledBlockToCode() { - generatorTest_setUp(); - - assertEquals(disabledBlockTest(Blockly.Dart, true), ''); - assertEquals(disabledBlockTest(Blockly.Dart, false), 'stack_block'); - - assertEquals(disabledBlockTest(Blockly.JavaScript, true), ''); - assertEquals(disabledBlockTest(Blockly.JavaScript, false), 'stack_block'); - - assertEquals(disabledBlockTest(Blockly.Lua, true), ''); - assertEquals(disabledBlockTest(Blockly.Lua, false), 'stack_block'); - - assertEquals(disabledBlockTest(Blockly.PHP, true), ''); - assertEquals(disabledBlockTest(Blockly.PHP, false), 'stack_block'); - - assertEquals(disabledBlockTest(Blockly.Python, true), ''); - assertEquals(disabledBlockTest(Blockly.Python, false), 'stack_block'); - - generatorTest_tearDown(); -} - -// { {}} represents a nested block -//{ {}}{} represents a nested block with a block after it -function test_nestedLoopBlockToCode() { - generatorTest_setUp(); - - assertEquals(nestedLoopTest(Blockly.Dart, true), '{ {}}'); - assertEquals(nestedLoopTest(Blockly.Dart, false), '{ {}}{}'); - - assertEquals(nestedLoopTest(Blockly.JavaScript, true), '{ {}}'); - assertEquals(nestedLoopTest(Blockly.JavaScript, false), '{ {}}{}'); - - assertEquals(nestedLoopTest(Blockly.Lua, true), '{ {}}'); - assertEquals(nestedLoopTest(Blockly.Lua, false), '{ {}}{}'); - - assertEquals(nestedLoopTest(Blockly.PHP, true), '{ {}}'); - assertEquals(nestedLoopTest(Blockly.PHP, false), '{ {}}{}'); - - assertEquals(nestedLoopTest(Blockly.Python, true), '{ {}}'); - assertEquals(nestedLoopTest(Blockly.Python, false), '{ {}}{}'); - - generatorTest_tearDown(); -} - -function test_prefix() { - var generator = new Blockly.Generator('INTERCAL'); - assertEquals('Prefix nothing.', '', generator.prefixLines('', '')); - assertEquals('Prefix a word.', '@Hello', generator.prefixLines('Hello', '@')); - assertEquals('Prefix one line.', '12Hello\n', generator.prefixLines('Hello\n', '12')); - assertEquals('Prefix two lines.', '***Hello\n***World\n', generator.prefixLines('Hello\nWorld\n', '***')); -} \ No newline at end of file diff --git a/lib/blockly/tests/jsunit/gesture_test.js b/lib/blockly/tests/jsunit/gesture_test.js deleted file mode 100644 index 9140ab6..0000000 --- a/lib/blockly/tests/jsunit/gesture_test.js +++ /dev/null @@ -1,89 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for gesture. - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - -var e; -var workspace; - - -function gestureTest_setUp() { - workspace = new Blockly.Workspace(); - e = {}; -} - -function gestureTest_tearDown() { - e = null; - workspace.dispose(); -} - -function test_gestureConstructor() { - var gesture = new Blockly.Gesture(e, workspace); - assertEquals(gesture.mostRecentEvent_, e); - assertEquals(gesture.creatorWorkspace_, workspace); -} - -function test_gestureIsField_ClickInWorkspace() { - gestureTest_setUp(); - var block = new Blockly.Block(workspace); - var field = new Blockly.Field(); - field.setSourceBlock(block); - field.showEditor_ = function() {}; - var gesture = new Blockly.Gesture(e, workspace); - gesture.setStartField(field); - - var isFieldClick = gesture.isFieldClick_(); - assertEquals(isFieldClick, true); - gestureTest_tearDown(); -} - -function gestureIsFieldClick_InFlyoutHelper(flyout, expectedResult){ - // Assign workspace flyout - workspace.flyout_ = flyout; - // Create a Field inside of a Block - var block = new Blockly.Block(workspace); - var field = new Blockly.Field(); - field.setSourceBlock(block); - field.showEditor_ = function() {}; - // Create gesture from the flyout - var gesture = new Blockly.Gesture(e, workspace.flyout_); - // Populate gesture with click start information - gesture.setStartField(field); - gesture.setStartFlyout_(workspace.flyout_); - - var isFieldClick = gesture.isFieldClick_(); - assertEquals(isFieldClick, expectedResult); -} - -function test_gestureIsFieldClick_AutoCloseFlyout() { - gestureTest_setUp(); - var flyout = new Blockly.VerticalFlyout({}); - gestureIsFieldClick_InFlyoutHelper(flyout, false); - gestureTest_tearDown(); -} - -function test_gestureIsFieldClick_AlwaysOpenFlyout() { - gestureTest_setUp(); - var flyout = new Blockly.VerticalFlyout({}); - flyout.autoClose = false; - gestureIsFieldClick_InFlyoutHelper(flyout, true); - gestureTest_tearDown(); -} diff --git a/lib/blockly/tests/jsunit/index.html b/lib/blockly/tests/jsunit/index.html deleted file mode 100644 index 095593c..0000000 --- a/lib/blockly/tests/jsunit/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - Unit Tests for Blockly - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/jsunit/json_test.js b/lib/blockly/tests/jsunit/json_test.js deleted file mode 100644 index f6127e2..0000000 --- a/lib/blockly/tests/jsunit/json_test.js +++ /dev/null @@ -1,367 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -/** Ensure a block can be instantiated from a JSON definition. */ -function test_json_minimal() { - var BLOCK_TYPE = 'test_json_minimal'; - - var workspace = new Blockly.Workspace(); - var block; - try { - var warnings = captureWarnings(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": BLOCK_TYPE - }]); - block = new Blockly.Block(workspace, BLOCK_TYPE); - }); - - assertEquals(BLOCK_TYPE, block.type); - assertEquals( - 'Expecting no warnings when defining and creating a simple block.', - warnings.length, 0); - // TODO: asserts - } finally { - block.dispose(); - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE]; - } -} - -/** - * Ensure a block without a type id fails with a warning, but does not block - * later definitions. - */ -function test_json_nullOrUndefinedBlockTypeId() { - var BLOCK_TYPE1 = 'test_json_before_bad_blocks'; - var BLOCK_TYPE2 = 'test_json_after_bad_blocks'; - - assertUndefined(Blockly.Blocks[BLOCK_TYPE1]); - assertUndefined(Blockly.Blocks[BLOCK_TYPE2]); - var blockTypeCount = Object.keys(Blockly.Blocks).length; - - try { - var warnings = captureWarnings(function() { - Blockly.defineBlocksWithJsonArray([ - {"type": BLOCK_TYPE1}, - {"type": undefined}, - {"type": null}, - {"type": BLOCK_TYPE2}]); - }); - - assertNotNullNorUndefined('Block before bad blocks should be defined.', - Blockly.Blocks[BLOCK_TYPE1]); - assertNotNullNorUndefined('Block after bad blocks should be defined.', - Blockly.Blocks[BLOCK_TYPE2]); - assertEquals(Object.keys(Blockly.Blocks).length, blockTypeCount + 2); - assertEquals( - 'Expecting 2 warnings, one for each bad block.', warnings.length, 2); - } finally { - delete Blockly.Blocks[BLOCK_TYPE1]; - delete Blockly.Blocks[BLOCK_TYPE2]; - } -} - -/** Ensure message0 creates an input. */ -function test_json_message0() { - var BLOCK_TYPE = 'test_json_message0'; - var MESSAGE0 = 'message0'; - - var workspace = new Blockly.Workspace(); - var block; - try { - Blockly.defineBlocksWithJsonArray([{ - "type": BLOCK_TYPE, - "message0": MESSAGE0 - }]); - - block = new Blockly.Block(workspace, BLOCK_TYPE); - assertEquals(1, block.inputList.length); - assertEquals(1, block.inputList[0].fieldRow.length); - var textField = block.inputList[0].fieldRow[0]; - assertEquals(Blockly.FieldLabel, textField.constructor); - assertEquals(MESSAGE0, textField.getText()); - } finally { - block && block.dispose(); - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE]; - } -} - -/** Ensure message1 creates a new input. */ -function test_json_message1() { - var BLOCK_TYPE = 'test_json_message1'; - var MESSAGE0 = 'message0'; - var MESSAGE1 = 'message1'; - - var workspace = new Blockly.Workspace(); - var block; - try { - Blockly.defineBlocksWithJsonArray([{ - "type": BLOCK_TYPE, - "message0": MESSAGE0, - "message1": MESSAGE1 - }]); - - block = new Blockly.Block(workspace, BLOCK_TYPE); - assertEquals(2, block.inputList.length); - - assertEquals(1, block.inputList[0].fieldRow.length); - var textField = block.inputList[0].fieldRow[0]; - assertEquals(Blockly.FieldLabel, textField.constructor); - assertEquals(MESSAGE0, textField.getText()); - - assertEquals(1, block.inputList[1].fieldRow.length); - var textField = block.inputList[1].fieldRow[0]; - assertEquals(Blockly.FieldLabel, textField.constructor); - assertEquals(MESSAGE1, textField.getText()); - } finally { - block && block.dispose(); - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE]; - } -} - -/** Ensure message string is dereferenced. */ -function test_json_message0_i18n() { - var BLOCK_TYPE = 'test_json_message0_i18n'; - var MESSAGE0 = '%{BKY_MESSAGE}'; - var MESSAGE = 'message'; - - Blockly.Msg['MESSAGE'] = MESSAGE; - - var workspace = new Blockly.Workspace(); - var block; - try { - Blockly.defineBlocksWithJsonArray([{ - "type": BLOCK_TYPE, - "message0": MESSAGE0 - }]); - - block = new Blockly.Block(workspace, BLOCK_TYPE); - assertEquals(1, block.inputList.length); - assertEquals(1, block.inputList[0].fieldRow.length); - var textField = block.inputList[0].fieldRow[0]; - assertEquals(Blockly.FieldLabel, textField.constructor); - assertEquals(MESSAGE, textField.getText()); - } finally { - block && block.dispose(); // Disposes of textField, too. - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE]; - delete Blockly.Msg['MESSAGE']; - } -} - -function test_json_dropdown() { - var BLOCK_TYPE = 'test_json_dropdown'; - var FIELD_NAME = 'FIELD_NAME'; - var LABEL0 = 'LABEL0'; - var VALUE0 = 'VALUE0'; - var LABEL1 = 'LABEL1'; - var VALUE1 = 'VALUE1'; - - var workspace = new Blockly.Workspace(); - var block; - try { - Blockly.defineBlocksWithJsonArray([{ - "type": BLOCK_TYPE, - "message0": "%1", - "args0": [ - { - "type": "field_dropdown", - "name": FIELD_NAME, - "options": [ - [LABEL0, VALUE0], - [LABEL1, VALUE1] - ] - } - ] - }]); - - block = new Blockly.Block(workspace, BLOCK_TYPE); - assertEquals(1, block.inputList.length); - assertEquals(1, block.inputList[0].fieldRow.length); - var dropdown = block.inputList[0].fieldRow[0]; - assertEquals(dropdown, block.getField(FIELD_NAME)); - assertEquals(Blockly.FieldDropdown, dropdown.constructor); - assertEquals(VALUE0, dropdown.getValue()); - - var options = dropdown.getOptions(); - assertEquals(LABEL0, options[0][0]); - assertEquals(VALUE0, options[0][1]); - assertEquals(LABEL1, options[1][0]); - assertEquals(VALUE1, options[1][1]); - } finally { - block && block.dispose(); // Disposes of dropdown, too. - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE]; - } -} - -function test_json_dropdown_image() { - var BLOCK_TYPE = 'test_json_dropdown'; - var FIELD_NAME = 'FIELD_NAME'; - var IMAGE1_ALT_TEXT = 'Localized message.'; - Blockly.Msg['ALT_TEXT'] = IMAGE1_ALT_TEXT; - var IMAGE0 = { - 'width': 12, - 'height': 34, - 'src': 'http://image0.src', - 'alt': 'IMAGE0 alt text' - }; - var VALUE0 = 'VALUE0'; - var IMAGE1 = { - 'width': 56, - 'height': 78, - 'src': 'http://image1.src', - 'alt': '%{BKY_ALT_TEXT}' - }; - var VALUE1 = 'VALUE1'; - var IMAGE2 = { - 'width': 90, - 'height': 123, - 'src': 'http://image2.src' - }; - var VALUE2 = 'VALUE2'; - - var workspace = new Blockly.Workspace(); - var block; - try { - Blockly.defineBlocksWithJsonArray([{ - "type": BLOCK_TYPE, - "message0": "%1", - "args0": [ - { - "type": "field_dropdown", - "name": FIELD_NAME, - "options": [ - [IMAGE0, VALUE0], - [IMAGE1, VALUE1], - [IMAGE2, VALUE2] - ] - } - ] - }]); - - block = new Blockly.Block(workspace, BLOCK_TYPE); - assertEquals(1, block.inputList.length); - assertEquals(1, block.inputList[0].fieldRow.length); - var dropdown = block.inputList[0].fieldRow[0]; - assertEquals(dropdown, block.getField(FIELD_NAME)); - assertEquals(Blockly.FieldDropdown, dropdown.constructor); - assertEquals(VALUE0, dropdown.getValue()); - - var options = dropdown.getOptions(); - var image0 = options[0][0]; - assertEquals(IMAGE0.width, image0.width); - assertEquals(IMAGE0.height, image0.height); - assertEquals(IMAGE0.src, image0.src); - assertEquals(IMAGE0.alt, image0.alt); - assertEquals(VALUE0, options[0][1]); - - var image1 = options[1][0]; - assertEquals(IMAGE1.width, image1.width); - assertEquals(IMAGE1.height, image1.height); - assertEquals(IMAGE1.src, image1.src); - assertEquals(IMAGE1.alt, IMAGE1_ALT_TEXT); // Via Msg reference - assertEquals(VALUE1, options[1][1]); - - var image2 = options[2][0]; - assertEquals(IMAGE2.width, image2.width); - assertEquals(IMAGE2.height, image2.height); - assertEquals(IMAGE2.src, image2.src); - assert(image2.alt == null); // No alt specified. - assertEquals(VALUE2, options[2][1]); - } finally { - block && block.dispose(); // Disposes of dropdown, too. - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE]; - delete Blockly.Msg['ALTTEXT']; - } -} - -function test_defineBlocksWithJsonArray_nullItem() { - var BLOCK_TYPE1 = 'test_block_before_null'; - var BLOCK_TYPE2 = 'test_block_after_null'; - - assertUndefined(Blockly.Blocks[BLOCK_TYPE1]); - assertUndefined(Blockly.Blocks[BLOCK_TYPE2]); - var blockTypeCount = Object.keys(Blockly.Blocks).length; - - try { - var warnings = captureWarnings(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": BLOCK_TYPE1, - "message0": 'before' - }, - null, - { - "type": BLOCK_TYPE2, - "message0": 'after' - }]); - }); - assertNotNullNorUndefined( - 'Block before null in array should be defined.', - Blockly.Blocks[BLOCK_TYPE1]); - assertNotNullNorUndefined( - 'Block after null in array should be defined.', - Blockly.Blocks[BLOCK_TYPE2]); - assertEquals(Object.keys(Blockly.Blocks).length, blockTypeCount + 2); - assertEquals('Expected 1 warning for the bad block.', warnings.length, 1); - } finally { - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE1]; - delete Blockly.Blocks[BLOCK_TYPE2]; - } -} - -function test_defineBlocksWithJsonArray_undefinedItem() { - var BLOCK_TYPE1 = 'test_block_before_undefined'; - var BLOCK_TYPE2 = 'test_block_after_undefined'; - - assertUndefined(Blockly.Blocks[BLOCK_TYPE1]); - assertUndefined(Blockly.Blocks[BLOCK_TYPE2]); - var blockTypeCount = Object.keys(Blockly.Blocks).length; - - try { - var warnings = captureWarnings(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": BLOCK_TYPE1, - "message0": 'before' - }, - undefined, - { - "type": BLOCK_TYPE2, - "message0": 'after' - }]); - }); - assertNotNullNorUndefined( - 'Block before undefined in array should be defined.', - Blockly.Blocks[BLOCK_TYPE1]); - assertNotNullNorUndefined( - 'Block after undefined in array should be defined.', - Blockly.Blocks[BLOCK_TYPE2]); - assertEquals(Object.keys(Blockly.Blocks).length, blockTypeCount + 2); - assertEquals('Expected 1 warning for the bad block.', warnings.length, 1); - } finally { - workspace.dispose(); - delete Blockly.Blocks[BLOCK_TYPE1]; - delete Blockly.Blocks[BLOCK_TYPE2]; - } -} diff --git a/lib/blockly/tests/jsunit/metrics_test.js b/lib/blockly/tests/jsunit/metrics_test.js deleted file mode 100644 index 870dc54..0000000 --- a/lib/blockly/tests/jsunit/metrics_test.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function assertDimensionsMatch(toCheck, left, top, width, height) { - assertEquals('Top did not match.', top, toCheck.top); - assertEquals('Left did not match.', left, toCheck.left); - assertEquals('Width did not match.', width, toCheck.width); - assertEquals('Height did not match.', height, toCheck.height); -} - -/** - * Make a mock workspace object with two properties: getBlocksBoundingBox and - * scale. - */ -function makeMockWs(scale, x, y, width, height) { - return { - getBlocksBoundingBox: function() { - return { - top: y, - bottom: y + height, - left: x, - right: x + width - } - }, - scale: scale - }; -} - -// Empty workspace. -var test_GetContentDimensionsExact_empty = function() { - var ws = makeMockWs(1, 0, 0, 0, 0) - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - assertDimensionsMatch(defaultZoom, 0, 0, 0, 0); -} - -var test_GetContentDimensionsExact_emptyZoomIn = function() { - var ws = makeMockWs(2, 0, 0, 0, 0) - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - assertDimensionsMatch(zoomIn, 0, 0, 0, 0); -} - -var test_GetContentDimensionsExact_emptyZoomOut = function() { - var ws = makeMockWs(.5, 0, 0, 0, 0) - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - assertDimensionsMatch(zoomOut, 0, 0, 0, 0); -} - -// Non-empty workspace, with top-left corner at ws origin. -var test_GetContentDimensionsExact_nonEmptyAtOrigin = function() { - var ws = makeMockWs(1, 0, 0, 100, 100) - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // Pixel and ws units are the same at default zoom. - assertDimensionsMatch(defaultZoom, 0, 0, 100, 100); -} - -var test_GetContentDimensionsExact_nonEmptyAtOriginZoomIn = function() { - var ws = makeMockWs(2, 0, 0, 100, 100) - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 2 pixels at this zoom level. - assertDimensionsMatch(zoomIn, 0, 0, 200, 200); -} - -var test_GetContentDimensionsExact_nonEmptyAtOriginZoomOut = function() { - var ws = makeMockWs(.5, 0, 0, 100, 100) - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 0.5 pixels at this zoom level. - assertDimensionsMatch(zoomOut, 0, 0, 50, 50); -} - -// Non-empty workspace, with top-left corner in positive ws coordinates. -var test_GetContentDimensionsExact_nonEmptyPositiveOrigin = function() { - var ws = makeMockWs(1, 10, 10, 100, 100) - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // Pixel and ws units are the same at default zoom. - assertDimensionsMatch(defaultZoom, 10, 10, 100, 100); -} - -// Changing zoom will change both width/height and origin location in pixels. -var test_GetContentDimensionsExact_nonEmptyPositiveOriginZoomIn = function() { - var ws = makeMockWs(2, 10, 10, 100, 100) - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 2 pixels at this zoom level. - assertDimensionsMatch(zoomIn, 20, 20, 200, 200); -} - -var test_GetContentDimensionsExact_nonEmptyPositiveOriginZoomOut = function() { - var ws = makeMockWs(.5, 10, 10, 100, 100) - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 0.5 pixels at this zoom level. - assertDimensionsMatch(zoomOut, 5, 5, 50, 50); -} - -// Non-empty workspace, with top-left corner in negative ws coordinates. -var test_GetContentDimensionsExact_nonEmptyNegativeOrigin = function() { - var ws = makeMockWs(1, -10, -10, 100, 100) - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // Pixel and ws units are the same at default zoom. - assertDimensionsMatch(defaultZoom, -10, -10, 100, 100); -} - -// Changing zoom will change both width/height and origin location in pixels. -var test_GetContentDimensionsExact_nonEmptyNegativeOriginZoomIn = function() { - var ws = makeMockWs(2, -10, -10, 100, 100) - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 2 pixels at this zoom level. - assertDimensionsMatch(zoomIn, -20, -20, 200, 200); -} - -var test_GetContentDimensionsExact_nonEmptyNegativeOriginZoomOut = function() { - var ws = makeMockWs(.5, -10, -10, 100, 100) - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 0.5 pixels at this zoom level. - assertDimensionsMatch(zoomOut, -5, -5, 50, 50); -} diff --git a/lib/blockly/tests/jsunit/mocha_jsunit_test_runner.js b/lib/blockly/tests/jsunit/mocha_jsunit_test_runner.js deleted file mode 100644 index 7de2401..0000000 --- a/lib/blockly/tests/jsunit/mocha_jsunit_test_runner.js +++ /dev/null @@ -1,110 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview A mocha test runner that mimics the behaviour of - * goog.testing.junit - * @author samelh@google.com (Sam El-Husseini) - */ -'use strict'; - - -/** - * Setup mocha - */ -mocha.setup({ - ui: 'tdd' -}); -// Add mocha div -var mochaDiv = document.createElement('div'); -mochaDiv.id = 'mocha'; -document.body.appendChild(mochaDiv); -var mochaCss = document.createElement('link'); -mochaCss.setAttribute('href', 'https://unpkg.com/mocha@5.2.0/mocha.css'); -mochaCss.setAttribute('rel', 'stylesheet'); -document.head.appendChild(mochaCss); - - -/** - * Begin by discovering all of the test methods, test methods are any - * function on the window object that begins with the prefix `test` - */ -var allMethods = Object.getOwnPropertyNames(window); -var allTests = []; -for (var i = 0, method; i < allMethods.length, method = allMethods[i]; i++) { - if (method.indexOf('test') === 0 && method !== 'test' && - typeof window[method] === 'function') { - allTests.push(method); - } -} - - -/** - * Split test methods into various suites by grouping them based on the - * test name. Tests the begin with the same prefix are grouped together - * into a suite. - */ -var suites = {}; -for (var i = 0, method; i < allTests.length, method = allTests[i]; i++) { - var testName = method.substr(5); - var underscore = testName.indexOf('_'); - var suiteName = underscore > -1 ? testName.substr(0, underscore) : 'test'; - if (!suites.hasOwnProperty(suiteName)) { - suites[suiteName] = []; - } - suites[suiteName].push(method); -} - - -/** - * Setup chai fail method - */ -function fail() { - chai.fail(); -} - - -/** - * Wrap all unit tests into mocha test cases. Slot them into the different - * suite groups that we found. - */ -suite('jsunit tests', function() { - for (var i = 0, suiteKeys = Object.keys(suites), suiteName; - i < suiteKeys.length, suiteName = suiteKeys[i]; i++) { - suite(suiteName, function() { - for (var j = 0, tests = suites[suiteName], method; - j < tests.length, method = tests[j]; j++) { - test(method, function() { - window[this.test.title](); - }); - } - }); - } -}); - - -/** - * Create a div for failure results, and run the mocha tests. - */ -var failureDiv = document.createElement('div'); -failureDiv.id = 'failureCount'; -failureDiv.style = 'display:none'; -failureDiv.setAttribute('tests_failed', 'unset'); -document.body.appendChild(failureDiv); -mocha.run(function(failures) { - failureDiv.setAttribute('tests_failed', failures); -}); diff --git a/lib/blockly/tests/jsunit/names_test.js b/lib/blockly/tests/jsunit/names_test.js deleted file mode 100644 index 45dfafa..0000000 --- a/lib/blockly/tests/jsunit/names_test.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function test_safeName() { - var varDB = new Blockly.Names('window,door'); - assertEquals('SafeName empty.', 'unnamed', varDB.safeName_('')); - assertEquals('SafeName ok.', 'foobar', varDB.safeName_('foobar')); - assertEquals('SafeName number start.', 'my_9lives', - varDB.safeName_('9lives')); - assertEquals('SafeName number end.', 'lives9', varDB.safeName_('lives9')); - assertEquals('SafeName special chars.', '____', varDB.safeName_('!@#$')); - assertEquals('SafeName reserved.', 'door', varDB.safeName_('door')); -} - -function test_getName() { - var varDB = new Blockly.Names('window,door'); - assertEquals('Name add #1.', 'Foo_bar', varDB.getName('Foo.bar', 'var')); - assertEquals('Name get #1.', 'Foo_bar', varDB.getName('Foo.bar', 'var')); - assertEquals('Name add #2.', 'Foo_bar2', varDB.getName('Foo bar', 'var')); - assertEquals('Name get #2.', 'Foo_bar2', varDB.getName('foo BAR', 'var')); - assertEquals('Name add #3.', 'door2', varDB.getName('door', 'var')); - assertEquals('Name add #4.', 'Foo_bar3', varDB.getName('Foo.bar', 'proc')); - assertEquals('Name get #1b.', 'Foo_bar', varDB.getName('Foo.bar', 'var')); - assertEquals('Name get #4.', 'Foo_bar3', varDB.getName('Foo.bar', 'proc')); -} - -function test_getDistinctName() { - var varDB = new Blockly.Names('window,door'); - assertEquals('Name distinct #1.', 'Foo_bar', - varDB.getDistinctName('Foo.bar', 'var')); - assertEquals('Name distinct #2.', 'Foo_bar2', - varDB.getDistinctName('Foo.bar', 'var')); - assertEquals('Name distinct #3.', 'Foo_bar3', - varDB.getDistinctName('Foo.bar', 'proc')); - varDB.reset(); - assertEquals('Name distinct #4.', 'Foo_bar', - varDB.getDistinctName('Foo.bar', 'var')); -} - -function test_nameEquals() { - assertTrue('Name equals #1.', Blockly.Names.equals('Foo.bar', 'Foo.bar')); - assertFalse('Name equals #2.', Blockly.Names.equals('Foo.bar', 'Foo_bar')); - assertTrue('Name equals #3.', Blockly.Names.equals('Foo.bar', 'FOO.BAR')); -} diff --git a/lib/blockly/tests/jsunit/run_jsunit_tests_in_browser.js b/lib/blockly/tests/jsunit/run_jsunit_tests_in_browser.js deleted file mode 100644 index 90babad..0000000 --- a/lib/blockly/tests/jsunit/run_jsunit_tests_in_browser.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Node.js script to run JsUnit tests in Chrome, via webdriver. - */ -var webdriverio = require('webdriverio'); - -module.exports = runJsUnitTestsInBrowser; - -/** - * Runs the JsUnit tests in this directory in Chrome. It uses webdriverio to - * launch Chrome and load index.html. Outputs a summary of the test results - * to the console. - * @return 0 on success, 1 on failure. - */ -async function runJsUnitTestsInBrowser() { - var options = { - capabilities: { - browserName: 'chrome' - } - }; - // Run in headless mode on Travis. - if (process.env.TRAVIS_CI) { - options.capabilities['goog:chromeOptions'] = { - args: ['--headless', '--no-sandbox', '--disable-dev-shm-usage'] - }; - } - - var url = 'file://' + __dirname + '/index.html'; - console.log('Starting webdriverio...'); - const browser = await webdriverio.remote(options); - console.log('Initialized.\nLoading url: ' + url); - await browser.url(url); - - await browser.waitUntil(async () => { - var elem = await browser.$('#failureCount'); - var text = await elem.getAttribute('tests_failed'); - return text != 'unset'; - }, 6000); - - const elem = await browser.$('#failureCount'); - const numOfFailure = await elem.getAttribute('tests_failed'); - - console.log('============Blockly Unit Test Summary================='); - console.log(numOfFailure); - console.log(numOfFailure + ' tests failed'); - console.log('============Blockly Unit Test Summary================='); - if (parseInt(numOfFailure) !== 0) { - await browser.deleteSession(); - return 1; - } - await browser.deleteSession(); - return 0; -} - -if (require.main === module) { - runJsUnitTestsInBrowser().catch(e => { - console.error(e); - process.exit(1); - }).then(function(result) { - if (result) { - console.log('JSUnit tests failed'); - process.exit(1); - } else { - console.log('JSUnit tests passed'); - process.exit(0); - } - }); -} diff --git a/lib/blockly/tests/jsunit/test_utilities.js b/lib/blockly/tests/jsunit/test_utilities.js deleted file mode 100644 index b47f341..0000000 --- a/lib/blockly/tests/jsunit/test_utilities.js +++ /dev/null @@ -1,171 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Test utilities. - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - - -/** - * The normal blockly event fire function. We sometimes override this. This - * handle lets us reset after an override. - */ -var savedFireFunc = Blockly.Events.fire; - -/** - * A helper function to replace Blockly.Events.fire in tests. - */ -function temporary_fireEvent(event) { - if (!Blockly.Events.isEnabled()) { - return; - } - Blockly.Events.FIRE_QUEUE_.push(event); - Blockly.Events.fireNow_(); -} - -/** - * Check that two arrays have the same content. - * @param {!Array.} array1 The first array. - * @param {!Array.} array2 The second array. - */ -function isEqualArrays(array1, array2) { - assertEquals(array1.length, array2.length); - for (var i = 0; i < array1.length; i++) { - assertEquals(array1[i], array2[i]); - } -} - -/** - * Creates a new method stub. Sets the expected return values and - * the parameters if any exist. - * @param {!Object} scope The scope of the method to be mocked out. - * @param {!string} funcName The name of the function we're going to mock. - * @param {Array.} parameters The parameters to call the mock with. - * @param {Array.} return_values The values to return when called. - * @return {!sinon.SinonStub} The stub method. - */ -function setUpMockMethod(scope, funcName, parameters, return_values) { - var stub = sinon.stub(scope, funcName); - if (return_values) { - for (var i = 0, return_value; return_value = return_values[i]; i++) { - if (parameters && i < parameters.length) { - stub(parameters[i]).returns(return_value); - } - else { - stub.onCall(i).returns(return_value); - } - } - } - // If there are no return values but there are parameters, we are only - // recording specific method calls. - else if (parameters) { - for (var i = 0; i < parameters.length; i++) { - stub(parameters[i]); - } - } - return stub; -} - -/** - * Check if a variable with the given values exists. - * @param {Blockly.Workspace|Blockly.VariableMap} container The workspace or - * variableMap the checked variable belongs to. - * @param {!string} name The expected name of the variable. - * @param {!string} type The expected type of the variable. - * @param {!string} id The expected id of the variable. - */ -function checkVariableValues(container, name, type, id) { - var variable = container.getVariableById(id); - assertNotUndefined(variable); - assertEquals(name, variable.name); - assertEquals(type, variable.type); - assertEquals(id, variable.getId()); -} - -/** - * Create a test get_var_block. - * Will fail if get_var_block isn't defined. - * @param {!Blockly.Workspace} workspace The workspace on which to create the - * block. - * @param {!string} variable_id The id of the variable to reference. - * @return {!Blockly.Block} The created block. - */ -function createMockVarBlock(workspace, variable_id) { - if (!Blockly.Blocks['get_var_block']) { - fail(); - } - // Turn off events to avoid testing XML at the same time. - Blockly.Events.disable(); - var block = new Blockly.Block(workspace, 'get_var_block'); - block.inputList[0].fieldRow[0].setValue(variable_id); - Blockly.Events.enable(); - return block; -} - -function createTwoVariablesAndBlocks(workspace) { - // Create two variables of different types. - workspace.createVariable('name1', 'type1', 'id1'); - workspace.createVariable('name2', 'type2', 'id2'); - // Create blocks to refer to both of them. - createMockVarBlock(workspace, 'id1'); - createMockVarBlock(workspace, 'id2'); -} - -function createVariableAndBlock(workspace) { - workspace.createVariable('name1', 'type1', 'id1'); - createMockVarBlock(workspace, 'id1'); -} - -function defineGetVarBlock() { - Blockly.defineBlocksWithJsonArray([{ - "type": "get_var_block", - "message0": "%1", - "args0": [ - { - "type": "field_variable", - "name": "VAR", - "variableTypes": ["", "type1", "type2"] - } - ] - }]); -} - -function undefineGetVarBlock() { - delete Blockly.Blocks['get_var_block']; -} - -/** - * Capture the strings sent to console.warn() when calling a function. - * @param {function} innerFunc The function where warnings may called. - * @return {string[]} The warning messages (only the first arguments). - */ -function captureWarnings(innerFunc) { - var msgs = []; - var nativeConsoleWarn = console.warn; - try { - console.warn = function(msg) { - msgs.push(msg); - nativeConsoleWarn.apply(console, arguments); - }; - innerFunc(); - } finally { - console.warn = nativeConsoleWarn; - } - return msgs; -} diff --git a/lib/blockly/tests/jsunit/theme_test.js b/lib/blockly/tests/jsunit/theme_test.js deleted file mode 100644 index 22ba32c..0000000 --- a/lib/blockly/tests/jsunit/theme_test.js +++ /dev/null @@ -1,153 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for Blockly.Style - * @author aschmiedt@google.com (Abby Schmiedt) - */ -'use strict'; - -function defineThemeTestBlocks() { - Blockly.defineBlocksWithJsonArray([{ - "type": "stack_block", - "message0": "", - "previousStatement": null, - "nextStatement": null - }, - { - "type": "row_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null - }]); -}; - -function undefineThemeTestBlocks() { - delete Blockly.Blocks['stack_block']; - delete Blockly.Blocks['row_block']; -} - - -function createBlockStyles() { - return { - "styleOne": { - "colourPrimary": "colour1", - "colourSecondary":"colour2", - "colourTertiary":"colour3" - } - }; -} - -function createMultipleBlockStyles() { - return { - "styleOne": { - "colourPrimary": "colour1", - "colourSecondary":"colour2", - "colourTertiary":"colour3" - }, - "styleTwo": { - "colourPrimary": "colour1", - "colourSecondary":"colour2", - "colourTertiary":"colour3" - } - }; -} - -function test_setAllBlockStyles() { - var theme = new Blockly.Theme(createBlockStyles()); - stringifyAndCompare(createBlockStyles(), theme.blockStyles_); - theme.setAllBlockStyles(createMultipleBlockStyles()); - stringifyAndCompare(createMultipleBlockStyles(), theme.blockStyles_); -} - -function test_getAllBlockStyles() { - var theme = new Blockly.Theme(createMultipleBlockStyles()); - var allBlocks = theme.getAllBlockStyles(); - stringifyAndCompare(createMultipleBlockStyles(), allBlocks); - -} - -function test_getBlockStyles() { - var theme = new Blockly.Theme(createBlockStyles()); - var blockStyle = theme.getBlockStyle('styleOne'); - - stringifyAndCompare(blockStyle, createBlockStyles().styleOne); -} - -function test_setBlockStyleUpdate() { - var theme = new Blockly.Theme(createBlockStyles()); - var blockStyle = createBlockStyles(); - blockStyle.styleOne.colourPrimary = 'somethingElse'; - - theme.setBlockStyle('styleOne', blockStyle.styleOne); - - stringifyAndCompare(theme.blockStyles_, blockStyle); -} - -function test_setBlockStyleAdd() { - var theme = new Blockly.Theme(createBlockStyles()); - var blockStyle = createMultipleBlockStyles(); - - theme.setBlockStyle('styleTwo', blockStyle.styleTwo); - - stringifyAndCompare(theme.blockStyles_, blockStyle); -} - -function test_setTheme() { - defineThemeTestBlocks(); - var blockStyles = createBlockStyles(); - var workspace = new Blockly.WorkspaceSvg({}); - var blockA = workspace.newBlock('stack_block'); - var blocks = [blockA]; - - blockA.setStyle = function() {this.styleName_ = 'styleTwo'}; - var callCount = 1; - workspace.refreshToolboxSelection = function() { - return ++callCount; - }; - blockA.styleName_ = 'styleOne'; - - var mockControl_ = setUpMockMethod(Blockly, 'getMainWorkspace', null, [workspace]); - - workspace.setTheme(blockStyles); - - //Checks that the theme was set correctly on Blockly namespace - stringifyAndCompare(workspace.getTheme(), blockStyles); - - //Checks that the setTheme function was called on the block - assertEquals(blockA.getStyleName(), 'styleTwo'); - - //check that the toolbox refreshed method was called - assertEquals(workspace.refreshToolboxSelection(), 3); - - assertEquals(Blockly.Events.FIRE_QUEUE_.pop().element, 'theme'); - - undefineThemeTestBlocks(); - - mockControl_.restore(); -} - -function stringifyAndCompare(val1, val2) { - var stringVal1 = JSON.stringify(val1); - var stringVal2 = JSON.stringify(val2); - assertEquals(stringVal1, stringVal2); -} diff --git a/lib/blockly/tests/jsunit/utils_dom_test.js b/lib/blockly/tests/jsunit/utils_dom_test.js deleted file mode 100644 index 8cb8d28..0000000 --- a/lib/blockly/tests/jsunit/utils_dom_test.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function test_addClass() { - var p = document.createElement('p'); - Blockly.utils.dom.addClass(p, 'one'); - assertEquals('Adding "one"', 'one', p.className); - Blockly.utils.dom.addClass(p, 'one'); - assertEquals('Adding duplicate "one"', 'one', p.className); - Blockly.utils.dom.addClass(p, 'two'); - assertEquals('Adding "two"', 'one two', p.className); - Blockly.utils.dom.addClass(p, 'two'); - assertEquals('Adding duplicate "two"', 'one two', p.className); - Blockly.utils.dom.addClass(p, 'three'); - assertEquals('Adding "three"', 'one two three', p.className); -} - -function test_hasClass() { - var p = document.createElement('p'); - p.className = ' one three two three '; - assertTrue('Has "one"', Blockly.utils.dom.hasClass(p, 'one')); - assertTrue('Has "two"', Blockly.utils.dom.hasClass(p, 'two')); - assertTrue('Has "three"', Blockly.utils.dom.hasClass(p, 'three')); - assertFalse('Has no "four"', Blockly.utils.dom.hasClass(p, 'four')); - assertFalse('Has no "t"', Blockly.utils.dom.hasClass(p, 't')); - } - -function test_removeClass() { - var p = document.createElement('p'); - p.className = ' one three two three '; - Blockly.utils.dom.removeClass(p, 'two'); - assertEquals('Removing "two"', 'one three three', p.className); - Blockly.utils.dom.removeClass(p, 'four'); - assertEquals('Removing "four"', 'one three three', p.className); - Blockly.utils.dom.removeClass(p, 'three'); - assertEquals('Removing "three"', 'one', p.className); - Blockly.utils.dom.removeClass(p, 'ne'); - assertEquals('Removing "ne"', 'one', p.className); - Blockly.utils.dom.removeClass(p, 'one'); - assertEquals('Removing "one"', '', p.className); - Blockly.utils.dom.removeClass(p, 'zero'); - assertEquals('Removing "zero"', '', p.className); -} diff --git a/lib/blockly/tests/jsunit/utils_math_test.js b/lib/blockly/tests/jsunit/utils_math_test.js deleted file mode 100644 index 6e4f4a3..0000000 --- a/lib/blockly/tests/jsunit/utils_math_test.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function test_toRadians() { - var quarter = Math.PI / 2; - assertEquals('-90', -quarter, Blockly.utils.math.toRadians(-90)); - assertEquals('0', 0, Blockly.utils.math.toRadians(0)); - assertEquals('90', quarter, Blockly.utils.math.toRadians(90)); - assertEquals('180', 2 * quarter, Blockly.utils.math.toRadians(180)); - assertEquals('270', 3 * quarter, Blockly.utils.math.toRadians(270)); - assertEquals('360', 4 * quarter, Blockly.utils.math.toRadians(360)); - assertEquals('450', 5 * quarter, Blockly.utils.math.toRadians(360 + 90)); -} - -function test_toDegrees() { - var quarter = Math.PI / 2; - assertEquals('-90', -90, Blockly.utils.math.toDegrees(-quarter)); - assertEquals('0', 0, Blockly.utils.math.toDegrees(0)); - assertEquals('90', 90, Blockly.utils.math.toDegrees(quarter)); - assertEquals('180', 180, Blockly.utils.math.toDegrees(2 * quarter)); - assertEquals('270', 270, Blockly.utils.math.toDegrees(3 * quarter)); - assertEquals('360', 360, Blockly.utils.math.toDegrees(4 * quarter)); - assertEquals('450', 360 + 90, Blockly.utils.math.toDegrees(5 * quarter)); -} diff --git a/lib/blockly/tests/jsunit/utils_string_test.js b/lib/blockly/tests/jsunit/utils_string_test.js deleted file mode 100644 index bdd2a65..0000000 --- a/lib/blockly/tests/jsunit/utils_string_test.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function test_startsWith() { - assertEquals('Does not start with', false, Blockly.utils.string.startsWith('123', '2')); - assertEquals('Start with', true, Blockly.utils.string.startsWith('123', '12')); - assertEquals('Start with empty string 1', true, Blockly.utils.string.startsWith('123', '')); - assertEquals('Start with empty string 2', true, Blockly.utils.string.startsWith('', '')); -} - -function test_commonWordPrefix() { - var len = Blockly.utils.string.commonWordPrefix('one,two,three,four,five'.split(',')); - assertEquals('No prefix', 0, len); - len = Blockly.utils.string.commonWordPrefix('Xone,Xtwo,Xthree,Xfour,Xfive'.split(',')); - assertEquals('No word prefix', 0, len); - len = Blockly.utils.string.commonWordPrefix('abc de,abc de,abc de,abc de'.split(',')); - assertEquals('Full equality', 6, len); - len = Blockly.utils.string.commonWordPrefix('abc deX,abc deY'.split(',')); - assertEquals('One word prefix', 4, len); - len = Blockly.utils.string.commonWordPrefix('abc de,abc deY'.split(',')); - assertEquals('Overflow no', 4, len); - len = Blockly.utils.string.commonWordPrefix('abc de,abc de Y'.split(',')); - assertEquals('Overflow yes', 6, len); - len = Blockly.utils.string.commonWordPrefix(['Hello World']); - assertEquals('List of one', 11, len); - len = Blockly.utils.string.commonWordPrefix([]); - assertEquals('Empty list', 0, len); - len = Blockly.utils.string.commonWordPrefix('turn left,turn right'.split(',')); - assertEquals('No prefix due to &nbsp;', 0, len); - len = Blockly.utils.string.commonWordPrefix('turn\u00A0left,turn\u00A0right'.split(',')); - assertEquals('No prefix due to \\u00A0', 0, len); -} - -function test_commonWordSuffix() { - var len = Blockly.utils.string.commonWordSuffix('one,two,three,four,five'.split(',')); - assertEquals('No prefix', 0, len); - len = Blockly.utils.string.commonWordSuffix('oneX,twoX,threeX,fourX,fiveX'.split(',')); - assertEquals('No word prefix', 0, len); - len = Blockly.utils.string.commonWordSuffix('abc de,abc de,abc de,abc de'.split(',')); - assertEquals('Full equality', 6, len); - len = Blockly.utils.string.commonWordSuffix('Xabc de,Yabc de'.split(',')); - assertEquals('One word prefix', 3, len); - len = Blockly.utils.string.commonWordSuffix('abc de,Yabc de'.split(',')); - assertEquals('Overflow no', 3, len); - len = Blockly.utils.string.commonWordSuffix('abc de,Y abc de'.split(',')); - assertEquals('Overflow yes', 6, len); - len = Blockly.utils.string.commonWordSuffix(['Hello World']); - assertEquals('List of one', 11, len); - len = Blockly.utils.string.commonWordSuffix([]); - assertEquals('Empty list', 0, len); -} - -function test_shortestStringLength() { - var len = Blockly.utils.string.shortestStringLength('one,two,three,four,five'.split(',')); - assertEquals('Length of "one"', 3, len); - len = Blockly.utils.string.shortestStringLength('one,two,three,four,five,'.split(',')); - assertEquals('Length of ""', 0, len); - len = Blockly.utils.string.shortestStringLength(['Hello World']); - assertEquals('List of one', 11, len); - len = Blockly.utils.string.shortestStringLength([]); - assertEquals('Empty list', 0, len); -} - diff --git a/lib/blockly/tests/jsunit/utils_test.js b/lib/blockly/tests/jsunit/utils_test.js deleted file mode 100644 index 1edc696..0000000 --- a/lib/blockly/tests/jsunit/utils_test.js +++ /dev/null @@ -1,221 +0,0 @@ -/** - * @license - * Copyright 2011 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -function test_genUid() { - var uuids = {}; - for (var i = 0; i < 1000; i++) { - var uuid = Blockly.utils.genUid(); - assertFalse('UUID different: ' + uuid, uuid in uuids); - uuids[uuid] = true; - } -} - -function test_tokenizeInterpolation() { - var tokens = Blockly.utils.tokenizeInterpolation(''); - assertArrayEquals('Null interpolation', [], tokens); - - tokens = Blockly.utils.tokenizeInterpolation('Hello'); - assertArrayEquals('No interpolation', ['Hello'], tokens); - - tokens = Blockly.utils.tokenizeInterpolation('Hello%World'); - assertArrayEquals('Unescaped %.', ['Hello%World'], tokens); - - tokens = Blockly.utils.tokenizeInterpolation('Hello%%World'); - assertArrayEquals('Escaped %.', ['Hello%World'], tokens); - - tokens = Blockly.utils.tokenizeInterpolation('Hello %1 World'); - assertArrayEquals('Interpolation.', ['Hello ', 1, ' World'], tokens); - - tokens = Blockly.utils.tokenizeInterpolation('%123Hello%456World%789'); - assertArrayEquals('Interpolations.', [123, 'Hello', 456, 'World', 789], tokens); - - tokens = Blockly.utils.tokenizeInterpolation('%%%x%%0%00%01%'); - assertArrayEquals('Torture interpolations.', ['%%x%0', 0, 1, '%'], tokens); - - Blockly.Msg = Blockly.Msg || {}; - - Blockly.Msg.STRING_REF = 'test string'; - tokens = Blockly.utils.tokenizeInterpolation('%{bky_string_ref}'); - assertArrayEquals('String table reference, lowercase', ['test string'], tokens); - tokens = Blockly.utils.tokenizeInterpolation('%{BKY_STRING_REF}'); - assertArrayEquals('String table reference, uppercase', ['test string'], tokens); - - Blockly.Msg.WITH_PARAM = 'before %1 after'; - tokens = Blockly.utils.tokenizeInterpolation('%{bky_with_param}'); - assertArrayEquals('String table reference, with parameter', ['before ', 1, ' after'], tokens); - - Blockly.Msg.RECURSE = 'before %{bky_string_ref} after'; - tokens = Blockly.utils.tokenizeInterpolation('%{bky_recurse}'); - assertArrayEquals('String table reference, with subreference', ['before test string after'], tokens); - - // Error cases... - tokens = Blockly.utils.tokenizeInterpolation('%{bky_undefined}'); - assertArrayEquals('Undefined string table reference', ['%{bky_undefined}'], tokens); - - Blockly.Msg['1'] = 'Will not match'; - tokens = Blockly.utils.tokenizeInterpolation('before %{1} after'); - assertArrayEquals('Invalid initial digit in string table reference', ['before %{1} after'], tokens); - - Blockly.Msg['TWO WORDS'] = 'Will not match'; - tokens = Blockly.utils.tokenizeInterpolation('before %{two words} after'); - assertArrayEquals('Invalid character in string table reference: space', ['before %{two words} after'], tokens); - - Blockly.Msg['TWO-WORDS'] = 'Will not match'; - tokens = Blockly.utils.tokenizeInterpolation('before %{two-words} after'); - assertArrayEquals('Invalid character in string table reference: dash', ['before %{two-words} after'], tokens); - - Blockly.Msg['TWO.WORDS'] = 'Will not match'; - tokens = Blockly.utils.tokenizeInterpolation('before %{two.words} after'); - assertArrayEquals('Invalid character in string table reference: period', ['before %{two.words} after'], tokens); - - Blockly.Msg['AB&C'] = 'Will not match'; - tokens = Blockly.utils.tokenizeInterpolation('before %{ab&c} after'); - assertArrayEquals('Invalid character in string table reference: &', ['before %{ab&c} after'], tokens); - - Blockly.Msg['UNCLOSED'] = 'Will not match'; - tokens = Blockly.utils.tokenizeInterpolation('before %{unclosed'); - assertArrayEquals('String table reference, with parameter', ['before %{unclosed'], tokens); -} - -function test_replaceMessageReferences() { - Blockly.Msg = Blockly.Msg || {}; - Blockly.Msg.STRING_REF = 'test string'; - Blockly.Msg.SUBREF = 'subref'; - Blockly.Msg.STRING_REF_WITH_ARG = 'test %1 string'; - Blockly.Msg.STRING_REF_WITH_SUBREF = 'test %{bky_subref} string'; - - var resultString = Blockly.utils.replaceMessageReferences(''); - assertEquals('Empty string produces empty string', '', resultString); - - resultString = Blockly.utils.replaceMessageReferences('%%'); - assertEquals('Escaped %', '%', resultString); - resultString = Blockly.utils.replaceMessageReferences('%%{bky_string_ref}'); - assertEquals('Escaped %', '%{bky_string_ref}', resultString); - - resultString = Blockly.utils.replaceMessageReferences('%a'); - assertEquals('Unrecognized % escape code treated as literal', '%a', resultString); - - resultString = Blockly.utils.replaceMessageReferences('%1'); - assertEquals('Interpolation tokens ignored.', '%1', resultString); - resultString = Blockly.utils.replaceMessageReferences('%1 %2'); - assertEquals('Interpolation tokens ignored.', '%1 %2', resultString); - resultString = Blockly.utils.replaceMessageReferences('before %1 after'); - assertEquals('Interpolation tokens ignored.', 'before %1 after', resultString); - - // Blockly.Msg.STRING_REF cases: - resultString = Blockly.utils.replaceMessageReferences('%{bky_string_ref}'); - assertEquals('Message ref dereferenced.', 'test string', resultString); - resultString = Blockly.utils.replaceMessageReferences('before %{bky_string_ref} after'); - assertEquals('Message ref dereferenced.', 'before test string after', resultString); - - // Blockly.Msg.STRING_REF_WITH_ARG cases: - resultString = Blockly.utils.replaceMessageReferences('%{bky_string_ref_with_arg}'); - assertEquals('Message ref dereferenced with argument preserved.', 'test %1 string', resultString); - resultString = Blockly.utils.replaceMessageReferences('before %{bky_string_ref_with_arg} after'); - assertEquals('Message ref dereferenced with argument preserved.', 'before test %1 string after', resultString); - - // Blockly.Msg.STRING_REF_WITH_SUBREF cases: - resultString = Blockly.utils.replaceMessageReferences('%{bky_string_ref_with_subref}'); - assertEquals('Message ref and subref dereferenced.', 'test subref string', resultString); - resultString = Blockly.utils.replaceMessageReferences('before %{bky_string_ref_with_subref} after'); - assertEquals('Message ref and subref dereferenced.', 'before test subref string after', resultString); -} - -function test_arrayRemove() { - var arr = [1, 2, 3, 2]; - assertEquals('Remove Not found', false, Blockly.utils.arrayRemove(arr, 0)); - assertEquals('Remove Not found result', '1,2,3,2', arr.join(',')); - assertEquals('Remove item', true, Blockly.utils.arrayRemove(arr, 2)); - assertEquals('Remove item result', '1,3,2', arr.join(',')); - assertEquals('Remove item again', true, Blockly.utils.arrayRemove(arr, 2)); - assertEquals('Remove item again result', '1,3', arr.join(',')); -} - -function test_XY_REGEX() { - var regex = Blockly.utils.getRelativeXY.XY_REGEX_; - var m; - m = 'INVALID'.match(regex); - assertNull(m); - - m = 'translate(10)'.match(regex); - assertEquals('translate(10), x', '10', m[1]); - assertUndefined('translate(10), y', m[3]); - - m = 'translate(11, 12)'.match(regex); - assertEquals('translate(11, 12), x', '11', m[1]); - assertEquals('translate(11, 12), y', '12', m[3]); - - m = 'translate(13,14)'.match(regex); - assertEquals('translate(13,14), x', '13', m[1]); - assertEquals('translate(13,14), y', '14', m[3]); - - m = 'translate(15 16)'.match(regex); - assertEquals('translate(15 16), x', '15', m[1]); - assertEquals('translate(15 16), y', '16', m[3]); - - m = 'translate(1.23456e+42 0.123456e-42)'.match(regex); - assertEquals('translate(1.23456e+42 0.123456e-42), x', '1.23456e+42', m[1]); - assertEquals('translate(1.23456e+42 0.123456e-42), y', '0.123456e-42', m[3]); -} - -function XY_STYLE_REGEX_() { - var regex = Blockly.utils.getRelativeXY.XY_STYLE_REGEX_; - var m; - m = 'INVALID'.match(regex); - assertNull(m); - - m = 'transform:translate(9px)'.match(regex); - assertEquals('transform:translate(9px), x', '9', m[1]); - assertUndefined('transform:translate(9px), y', m[3]); - - m = 'transform:translate3d(10px)'.match(regex); - assertEquals('transform:translate3d(10px), x', '10', m[1]); - assertUndefined('transform:translate(10px), y', m[3]); - - m = 'transform: translate(11px, 12px)'.match(regex); - assertEquals('transform: translate(11px, 12px), x', '11', m[1]); - assertEquals('transform: translate(11px, 12px), y', '12', m[3]); - - m = 'transform: translate(13px,14px)'.match(regex); - assertEquals('transform: translate(13px,14px), x', '13', m[1]); - assertEquals('transform: translate(13px,14px), y', '14', m[3]); - - m = 'transform: translate(15px 16px)'.match(regex); - assertEquals('transform: translate(15px 16px), x', '15', m[1]); - assertEquals('transform: translate(15px 16px), y', '16', m[3]); - - m = 'transform: translate(1.23456e+42px 0.123456e-42px)'.match(regex); - assertEquals('transform: translate(1.23456e+42px 0.123456e-42px), x', '1.23456e+42', m[1]); - assertEquals('transform: translate(1.23456e+42px 0.123456e-42px), y', '0.123456e-42', m[3]); - - m = 'transform:translate3d(20px, 21px, 22px)'.match(regex); - assertEquals('transform:translate3d(20px, 21px, 22px), x', '21', m[1]); - assertEquals('transform:translate3d(20px, 21px, 22px), y', '22', m[3]); - - m = 'transform:translate3d(23px,24px,25px)'.match(regex); - assertEquals('transform:translate3d(23px,24px,25px), x', '23', m[1]); - assertEquals('transform:translate3d(23px,24px,25px), y', '24', m[3]); - - m = 'transform:translate3d(26px 27px 28px)'.match(regex); - assertEquals('transform:translate3d(26px 27px 28px), x', '26', m[1]); - assertEquals('transform:translate3d(26px 27px 28px), y', '27', m[3]); - - m = 'transform:translate3d(1.23456e+42px 0.123456e-42px 42px)'.match(regex); - assertEquals('transform:translate3d(1.23456e+42px 0.123456e-42px 42px), x', '1.23456e+42', m[1]); - assertEquals('transform:translate3d(1.23456e+42px 0.123456e-42px 42px), y', '0.123456e-42', m[3]); -} diff --git a/lib/blockly/tests/jsunit/variable_map_test.js b/lib/blockly/tests/jsunit/variable_map_test.js deleted file mode 100644 index dc24abd..0000000 --- a/lib/blockly/tests/jsunit/variable_map_test.js +++ /dev/null @@ -1,295 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for variable map. - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - -var variable_map; -var mockControl_; -var workspace; - -function variableMapTest_setUp() { - workspace = new Blockly.Workspace(); - variable_map = new Blockly.VariableMap(workspace); -} - -function variableMapTest_tearDown() { - workspace.dispose(); - if (mockControl_) { - mockControl_.restore(); - } - variable_map = null; -} - -function test_getVariable_ByNameAndType() { - variableMapTest_setUp(); - var var_1 = variable_map.createVariable('name1', 'type1', 'id1'); - var var_2 = variable_map.createVariable('name2', 'type1', 'id2'); - var var_3 = variable_map.createVariable('name3', 'type2', 'id3'); - var result_1 = variable_map.getVariable('name1', 'type1'); - var result_2 = variable_map.getVariable('name2', 'type1'); - var result_3 = variable_map.getVariable('name3', 'type2'); - - // Searching by name + type is correct. - assertEquals(var_1, result_1); - assertEquals(var_2, result_2); - assertEquals(var_3, result_3); - - // Searching only by name defaults to the '' type. - assertNull(variable_map.getVariable('name1')); - assertNull(variable_map.getVariable('name2')); - assertNull(variable_map.getVariable('name3')); - variableMapTest_tearDown(); -} - -function test_getVariable_NotFound() { - variableMapTest_setUp(); - var result = variable_map.getVariable('name1'); - assertNull(result); - variableMapTest_tearDown(); -} - -function test_getVariableById_Trivial() { - variableMapTest_setUp(); - var var_1 = variable_map.createVariable('name1', 'type1', 'id1'); - var var_2 = variable_map.createVariable('name2', 'type1', 'id2'); - var var_3 = variable_map.createVariable('name3', 'type2', 'id3'); - var result_1 = variable_map.getVariableById('id1'); - var result_2 = variable_map.getVariableById('id2'); - var result_3 = variable_map.getVariableById('id3'); - - assertEquals(var_1, result_1); - assertEquals(var_2, result_2); - assertEquals(var_3, result_3); - variableMapTest_tearDown(); -} - -function test_getVariableById_NotFound() { - variableMapTest_setUp(); - var result = variable_map.getVariableById('id1'); - assertNull(result); - variableMapTest_tearDown(); -} - -function test_createVariableTrivial() { - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - checkVariableValues(variable_map, 'name1', 'type1', 'id1'); - variableMapTest_tearDown(); -} - -function test_createVariableAlreadyExists() { - // Expect that when the variable already exists, the variableMap_ is unchanged. - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - - // Assert there is only one variable in the variable_map. - var keys = Object.keys(variable_map.variableMap_); - assertEquals(1, keys.length); - var varMapLength = variable_map.variableMap_[keys[0]].length; - assertEquals(1, varMapLength); - - variable_map.createVariable('name1', 'type1'); - checkVariableValues(variable_map, 'name1', 'type1', 'id1'); - // Check that the size of the variableMap_ did not change. - keys = Object.keys(variable_map.variableMap_); - assertEquals(1, keys.length); - varMapLength = variable_map.variableMap_[keys[0]].length; - assertEquals(1, varMapLength); - variableMapTest_tearDown(); -} - -function test_createVariableNameAlreadyExists() { - // Expect that when a variable with the same name but a different type already - // exists, the new variable is created. - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - - // Assert there is only one variable in the variable_map. - var keys = Object.keys(variable_map.variableMap_); - assertEquals(1, keys.length); - var varMapLength = variable_map.variableMap_[keys[0]].length; - assertEquals(1, varMapLength); - - variable_map.createVariable('name1', 'type2', 'id2'); - checkVariableValues(variable_map, 'name1', 'type1', 'id1'); - checkVariableValues(variable_map, 'name1', 'type2', 'id2'); - // Check that the size of the variableMap_ did change. - keys = Object.keys(variable_map.variableMap_); - assertEquals(2, keys.length); - variableMapTest_tearDown(); -} -function test_createVariableNullAndUndefinedType() { - variableMapTest_setUp(); - variable_map.createVariable('name1', null, 'id1'); - variable_map.createVariable('name2', undefined, 'id2'); - - checkVariableValues(variable_map, 'name1', '', 'id1'); - checkVariableValues(variable_map, 'name2', '', 'id2'); - variableMapTest_tearDown(); -} - -function test_createVariableNullId() { - variableMapTest_setUp(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']); - try { - variable_map.createVariable('name1', 'type1', null); - checkVariableValues(variable_map, 'name1', 'type1', '1'); - } finally { - variableMapTest_tearDown(); - } -} - -function test_createVariableUndefinedId() { - variableMapTest_setUp(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']); - try { - variable_map.createVariable('name1', 'type1', undefined); - checkVariableValues(variable_map, 'name1', 'type1', '1'); - } finally { - variableMapTest_tearDown(); - } -} - -function test_createVariableIdAlreadyExists() { - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - try { - variable_map.createVariable('name2', 'type2', 'id1'); - fail(); - } catch (e) { - // expected - } - variableMapTest_tearDown(); -} - -function test_createVariableMismatchedIdAndType() { - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - try { - variable_map.createVariable('name1', 'type2', 'id1'); - fail(); - } catch (e) { - // expected - } - try { - variable_map.createVariable('name1', 'type1', 'id2'); - fail(); - } catch (e) { - // expected - } - variableMapTest_tearDown(); -} - -function test_createVariableTwoSameTypes() { - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - variable_map.createVariable('name2', 'type1', 'id2'); - - checkVariableValues(variable_map, 'name1', 'type1', 'id1'); - checkVariableValues(variable_map, 'name2', 'type1', 'id2'); - variableMapTest_tearDown(); -} - -function test_getVariablesOfType_Trivial() { - variableMapTest_setUp(); - var var_1 = variable_map.createVariable('name1', 'type1', 'id1'); - var var_2 = variable_map.createVariable('name2', 'type1', 'id2'); - variable_map.createVariable('name3', 'type2', 'id3'); - variable_map.createVariable('name4', 'type3', 'id4'); - var result_array_1 = variable_map.getVariablesOfType('type1'); - var result_array_2 = variable_map.getVariablesOfType('type5'); - isEqualArrays([var_1, var_2], result_array_1); - isEqualArrays([], result_array_2); - variableMapTest_tearDown(); -} - -function test_getVariablesOfType_Null() { - variableMapTest_setUp(); - var var_1 = variable_map.createVariable('name1', '', 'id1'); - var var_2 = variable_map.createVariable('name2', '', 'id2'); - var var_3 = variable_map.createVariable('name3', '', 'id3'); - variable_map.createVariable('name4', 'type1', 'id4'); - var result_array = variable_map.getVariablesOfType(null); - isEqualArrays([var_1, var_2, var_3], result_array); - variableMapTest_tearDown(); -} - -function test_getVariablesOfType_EmptyString() { - variableMapTest_setUp(); - var var_1 = variable_map.createVariable('name1', null, 'id1'); - var var_2 = variable_map.createVariable('name2', null, 'id2'); - var result_array = variable_map.getVariablesOfType(''); - isEqualArrays([var_1, var_2], result_array); - variableMapTest_tearDown(); -} - -function test_getVariablesOfType_Deleted() { - variableMapTest_setUp(); - var variable = variable_map.createVariable('name1', null, 'id1'); - variable_map.deleteVariable(variable); - var result_array = variable_map.getVariablesOfType(''); - isEqualArrays([], result_array); - variableMapTest_tearDown(); -} - -function test_getVariablesOfType_DoesNotExist() { - variableMapTest_setUp(); - var result_array = variable_map.getVariablesOfType('type1'); - isEqualArrays([], result_array); - variableMapTest_tearDown(); -} - -function test_getVariableTypes_Trivial() { - variableMapTest_setUp(); - variable_map.createVariable('name1', 'type1', 'id1'); - variable_map.createVariable('name2', 'type1', 'id2'); - variable_map.createVariable('name3', 'type2', 'id3'); - variable_map.createVariable('name4', 'type3', 'id4'); - var result_array = variable_map.getVariableTypes(); - // The empty string is always an option. - isEqualArrays(['type1', 'type2', 'type3', ''], result_array); - variableMapTest_tearDown(); -} - -function test_getVariableTypes_None() { - variableMapTest_setUp(); - // The empty string is always an option. - var result_array = variable_map.getVariableTypes(); - isEqualArrays([''], result_array); - variableMapTest_tearDown(); -} - -function test_getAllVariables_Trivial() { - variableMapTest_setUp(); - var var_1 = variable_map.createVariable('name1', 'type1', 'id1'); - var var_2 = variable_map.createVariable('name2', 'type1', 'id2'); - var var_3 = variable_map.createVariable('name3', 'type2', 'id3'); - var result_array = variable_map.getAllVariables(); - isEqualArrays([var_1, var_2, var_3], result_array); - variableMapTest_tearDown(); -} - -function test_getAllVariables_None() { - variableMapTest_setUp(); - var result_array = variable_map.getAllVariables(); - isEqualArrays([], result_array); - variableMapTest_tearDown(); -} diff --git a/lib/blockly/tests/jsunit/variable_model_test.js b/lib/blockly/tests/jsunit/variable_model_test.js deleted file mode 100644 index 4eb4cb0..0000000 --- a/lib/blockly/tests/jsunit/variable_model_test.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Tests for variable model. - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - -var variable; -var workspace; - -function variableModelTest_setUp() { - workspace = new Blockly.Workspace(); -} - -function variableModelTest_tearDown() { - workspace.dispose(); - variable = null; -} - -/** - * These tests check the constructor of the variable model. - */ -function testInit_Trivial() { - variableModelTest_setUp(); - variable = new Blockly.VariableModel(workspace, 'test', 'test_type', - 'test_id'); - assertEquals('test', variable.name); - assertEquals('test_type', variable.type); - assertEquals('test_id', variable.id_); - variableModelTest_tearDown(); -} - -function testInit_NullType() { - variableModelTest_setUp(); - variable = new Blockly.VariableModel(workspace, 'test', null, 'test_id'); - assertEquals('', variable.type); - variableModelTest_tearDown(); -} - -function testInit_UndefinedType() { - variableModelTest_setUp(); - variable = new Blockly.VariableModel(workspace, 'test', undefined, 'test_id'); - assertEquals('', variable.type); - variableModelTest_tearDown(); -} - -function testInit_NullId() { - variableModelTest_setUp(); - variable = new Blockly.VariableModel(workspace, 'test', 'test_type', null); - assertEquals('test', variable.name); - assertEquals('test_type', variable.type); - assertNotNull(variable.id_); - variableModelTest_tearDown(); -} - -function testInit_UndefinedId() { - variableModelTest_setUp(); - variable = new Blockly.VariableModel(workspace, 'test', 'test_type', undefined); - assertEquals('test', variable.name); - assertEquals('test_type', variable.type); - assertNotNull(variable.id_); - variableModelTest_tearDown(); -} - -function testInit_OnlyNameProvided() { - variableModelTest_setUp(); - variable = new Blockly.VariableModel(workspace, 'test'); - assertEquals('test', variable.name); - assertEquals('', variable.type); - assertNotNull(variable.id_); - variableModelTest_tearDown(); -} diff --git a/lib/blockly/tests/jsunit/variables_test.js b/lib/blockly/tests/jsunit/variables_test.js deleted file mode 100644 index 6d6515f..0000000 --- a/lib/blockly/tests/jsunit/variables_test.js +++ /dev/null @@ -1,147 +0,0 @@ -/** - * @license - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Tests for variable utility functions in Blockly - * @author fenichel@google.com (Rachel Fenichel) - */ -'use strict'; - -function variablesTest_setUp() { - defineGetVarBlock(); - var workspace = new Blockly.Workspace(); - workspace.createVariable('foo', 'type1', '1'); - workspace.createVariable('bar', 'type1', '2'); - workspace.createVariable('baz', 'type1', '3'); - return workspace; -} - -function variablesTest_tearDown(workspace) { - undefineGetVarBlock(); - workspace.dispose(); -} - -function buildVariablesTest(testImpl) { - return function() { - var workspace = variablesTest_setUp(); - try { - testImpl(workspace); - } finally { - variablesTest_tearDown(workspace); - } - }; -} - -var test_allUsedVarModels = buildVariablesTest( - function(workspace) { - createMockVarBlock(workspace, '1'); - createMockVarBlock(workspace, '2'); - createMockVarBlock(workspace, '3'); - - var result = Blockly.Variables.allUsedVarModels(workspace); - assertEquals('Expected three variables in the list of used variables', - 3, result.length); - } -); - -var test_allUsedVarModels_someUnused = buildVariablesTest( - function(workspace) { - createMockVarBlock(workspace, '2'); - - var result = Blockly.Variables.allUsedVarModels(workspace); - assertEquals('Expected one variable in the list of used variables', - 1, result.length); - assertEquals('Expected variable with ID 2 in the list of used variables', - '2', result[0].getId()); - } -); - -var test_allUsedVarModels_varUsedTwice = buildVariablesTest( - function(workspace) { - createMockVarBlock(workspace, '2'); - createMockVarBlock(workspace, '2'); - - var result = Blockly.Variables.allUsedVarModels(workspace); - // Using the same variable multiple times should not change the number of - // elements in the list. - assertEquals('Expected one variable in the list of used variables', - 1, result.length); - assertEquals('Expected variable with ID 2 in the list of used variables', - '2', result[0].getId()); - } -); - -var test_allUsedVarModels_allUnused = buildVariablesTest( - function(workspace) { - var result = Blockly.Variables.allUsedVarModels(workspace); - assertEquals('Expected no variables in the list of used variables', - 0, result.length); - } -); - -var test_getVariable_byId = buildVariablesTest( - function(workspace) { - var var_1 = workspace.createVariable('name1', 'type1', 'id1'); - var var_2 = workspace.createVariable('name2', 'type1', 'id2'); - var var_3 = workspace.createVariable('name3', 'type2', 'id3'); - var result_1 = Blockly.Variables.getVariable(workspace, 'id1'); - var result_2 = Blockly.Variables.getVariable(workspace, 'id2'); - var result_3 = Blockly.Variables.getVariable(workspace, 'id3'); - - assertEquals(var_1, result_1); - assertEquals(var_2, result_2); - assertEquals(var_3, result_3); - } -); - -var test_getVariable_byNameAndType = buildVariablesTest( - function(workspace) { - var var_1 = workspace.createVariable('name1', 'type1', 'id1'); - var var_2 = workspace.createVariable('name2', 'type1', 'id2'); - var var_3 = workspace.createVariable('name3', 'type2', 'id3'); - var result_1 = - Blockly.Variables.getVariable(workspace, null, 'name1', 'type1'); - var result_2 = - Blockly.Variables.getVariable(workspace, null, 'name2', 'type1'); - var result_3 = - Blockly.Variables.getVariable(workspace, null, 'name3', 'type2'); - - // Searching by name + type is correct. - assertEquals(var_1, result_1); - assertEquals(var_2, result_2); - assertEquals(var_3, result_3); - } -); - -var test_getVariable_byIdThenName = buildVariablesTest( - function(workspace) { - var var_1 = workspace.createVariable('name1', 'type1', 'id1'); - var var_2 = workspace.createVariable('name2', 'type1', 'id2'); - var var_3 = workspace.createVariable('name3', 'type2', 'id3'); - var result_1 = - Blockly.Variables.getVariable(workspace, 'badId', 'name1', 'type1'); - var result_2 = - Blockly.Variables.getVariable(workspace, 'badId', 'name2', 'type1'); - var result_3 = - Blockly.Variables.getVariable(workspace, 'badId', 'name3', 'type2'); - - // Searching by ID failed, but falling back onto name + type is correct. - assertEquals(var_1, result_1); - assertEquals(var_2, result_2); - assertEquals(var_3, result_3); - } -); diff --git a/lib/blockly/tests/jsunit/widget_div_test.js b/lib/blockly/tests/jsunit/widget_div_test.js deleted file mode 100644 index c064b5f..0000000 --- a/lib/blockly/tests/jsunit/widget_div_test.js +++ /dev/null @@ -1,149 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - - -function widgetdiv_testHelper_makeBBox(left, top, width, height) { - return { - left: left, - right: left + width, - top: top, - bottom: top + height - }; -} - -function widgetdiv_testHelper_makeSize(width, height) { - return { - width: width, - height: height - }; -} - -var widgetDiv_test_viewport = widgetdiv_testHelper_makeBBox(0, 0, 1000, 1000); -var widgetDiv_test_widgetSize = widgetdiv_testHelper_makeSize(100, 100); - -// Anchor is always 90 px wide and 90 px tall for this test. -var widgetDiv_test_anchorSize = 90; - -function widgetdiv_testHelper_makeAnchor(left, top) { - return { - left: left, - right: left + widgetDiv_test_anchorSize, - top: top, - bottom: top + widgetDiv_test_anchorSize - }; -} - -function test_widgetDiv_topConflict() { - var anchorTop = 50; - // Anchor placed close to the top. - var anchorBBox = widgetdiv_testHelper_makeAnchor(500, anchorTop); - - // The widget div should be placed just below the anchor. - var calculated = Blockly.WidgetDiv.calculateY_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize); - assertEquals(anchorTop + widgetDiv_test_anchorSize, calculated); -} - -function test_widgetDiv_bottomConflict() { - var anchorTop = 900; - // Anchor placed close to the bottom. - var anchorBBox = widgetdiv_testHelper_makeAnchor(500, anchorTop); - - // The widget div should be placed just above the anchor. - var calculated = Blockly.WidgetDiv.calculateY_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize); - assertEquals(anchorTop - widgetDiv_test_widgetSize.height, calculated); -} - -function test_widgetDiv_noYConflict() { - var anchorTop = 500; - // Anchor placed in the middle. - var anchorBBox = widgetdiv_testHelper_makeAnchor(500, anchorTop); - - // The widget div should be placed just below the anchor. - var calculated = Blockly.WidgetDiv.calculateY_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize); - assertEquals(anchorTop + widgetDiv_test_anchorSize, calculated); -} - - -function test_widgetDiv_leftConflict_LTR() { - var anchorLeft = 50; - // Anchor placed close to the left side. - var anchorBBox = widgetdiv_testHelper_makeAnchor(anchorLeft, 500); - - // The widget div should be placed at the anchor. - var calculated = Blockly.WidgetDiv.calculateX_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize, false /* rtl */); - assertEquals(anchorLeft, calculated); -} - -function test_widgetDiv_rightConflict_LTR() { - var anchorLeft = 950; - // Anchor placed close to the right side. - var anchorBBox = widgetdiv_testHelper_makeAnchor(anchorLeft, 500); - - // The widget div should be placed as far right as possible--at the edge of - // the screen. - var calculated = Blockly.WidgetDiv.calculateX_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize, false /* rtl */); - assertEquals(1000 - widgetDiv_test_widgetSize.width, calculated); -} - -function test_widgetDiv_noXConflict_LTR() { - var anchorLeft = 500; - // Anchor in the middle - var anchorBBox = widgetdiv_testHelper_makeAnchor(anchorLeft, 500); - // The widget div should be placed just at the left side of the anchor. - var calculated = Blockly.WidgetDiv.calculateX_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize, false /* rtl */); - assertEquals(anchorLeft, calculated); -} - -function test_widgetDiv_leftConflict_RTL() { - var anchorLeft = 10; - // Anchor placed close to the left side. - var anchorBBox = widgetdiv_testHelper_makeAnchor(anchorLeft, 500); - // The widget div should be placed as far left as possible--at the edge of - // the screen. - var calculated = Blockly.WidgetDiv.calculateX_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize, true /* rtl */); - assertEquals(0, calculated); -} - -function test_widgetDiv_rightConflict_RTL() { - var anchorLeft = 950; - // Anchor placed close to the right side. - var anchorBBox = widgetdiv_testHelper_makeAnchor(anchorLeft, 500); - - // The widget div should be placed as far right as possible--at the edge of - // the screen. - var calculated = Blockly.WidgetDiv.calculateX_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize, true /* rtl */); - assertEquals(1000 - widgetDiv_test_widgetSize.width, calculated); -} - -function test_widgetDiv_noXConflict_RTL() { - var anchorLeft = 500; - // anchor placed in the middle - var anchorBBox = widgetdiv_testHelper_makeAnchor(anchorLeft, 500); - // The widget div should be placed at the right side of the anchor. - var calculated = Blockly.WidgetDiv.calculateX_(widgetDiv_test_viewport, - anchorBBox, widgetDiv_test_widgetSize, true /* rtl */); - assertEquals(anchorBBox.right - widgetDiv_test_widgetSize.width, calculated); -} diff --git a/lib/blockly/tests/jsunit/workspace_comment_test.js b/lib/blockly/tests/jsunit/workspace_comment_test.js deleted file mode 100644 index e746dfa..0000000 --- a/lib/blockly/tests/jsunit/workspace_comment_test.js +++ /dev/null @@ -1,153 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -var workspace; - -function workspaceCommentTest_setUp() { - workspace = new Blockly.Workspace(); -} - -function workspaceCommentTest_tearDown() { - workspace.dispose(); -} - -function test_noWorkspaceComments() { - workspaceCommentTest_setUp(); - try { - assertEquals('Empty workspace: no comments (1).', 0, workspace.getTopComments(true).length); - assertEquals('Empty workspace: no comments (2).', 0, workspace.getTopComments(false).length); - workspace.clear(); - assertEquals('Empty workspace: no comments (3).', 0, workspace.getTopComments(true).length); - assertEquals('Empty workspace: no comments (4).', 0, workspace.getTopComments(false).length); - } finally { - workspaceCommentTest_tearDown(); - } -} - -function test_oneWorkspaceComment() { - workspaceCommentTest_setUp(); - try { - var comment = new Blockly.WorkspaceComment(workspace, 'comment text', 0, 0, 'comment id'); - assertEquals('One comment on workspace (1).', 1, workspace.getTopComments(true).length); - assertEquals('One comment on workspace (2).', 1, workspace.getTopComments(false).length); - assertEquals('Comment db contains this comment.', comment, workspace.commentDB_['comment id']); - workspace.clear(); - assertEquals('Cleared workspace: no comments (3).', 0, workspace.getTopComments(true).length); - assertEquals('Cleared workspace: no comments (4).', 0, workspace.getTopComments(false).length); - assertFalse('Comment DB does not contain this comment.', 'comment id' in workspace.commentDB_); - } finally { - workspaceCommentTest_tearDown(); - } -} - -function test_getWorkspaceCommentById() { - workspaceCommentTest_setUp(); - try { - var comment = new Blockly.WorkspaceComment(workspace, 'comment text', 0, 0, 'comment id'); - assertEquals('Getting a comment by id.', comment, workspace.getCommentById('comment id')); - assertEquals('No comment found.', null, workspace.getCommentById('not a comment')); - comment.dispose(); - assertEquals('Can\'t find the comment.', null, workspace.getCommentById('comment id')); - } finally { - workspaceCommentTest_tearDown(); - } -} - -function test_disposeWsCommentTwice() { - workspaceCommentTest_setUp(); - try { - var comment = new Blockly.WorkspaceComment(workspace, 'comment text', 0, 0, 'comment id'); - comment.dispose(); - // Nothing should go wrong the second time dispose is called. - comment.dispose(); - } finally { - workspaceCommentTest_tearDown(); - } -} - -function test_wsCommentHeightWidth() { - workspaceCommentTest_setUp(); - try { - var comment = - new Blockly.WorkspaceComment(workspace, 'comment text', 10, 20, 'comment id'); - assertEquals('Initial width', 20, comment.getWidth()); - assertEquals('Initial height', 10, comment.getHeight()); - - comment.setWidth(30); - assertEquals('New width should be different', 30, comment.getWidth()); - assertEquals('New height should not be different', 10, comment.getHeight()); - - comment.setHeight(40); - assertEquals('New width should not be different', 30, comment.getWidth()); - assertEquals('New height should be different', 40, comment.getHeight()); - comment.dispose(); - } finally { - workspaceCommentTest_tearDown(); - } -} - -function test_wsCommentXY() { - workspaceCommentTest_setUp(); - try { - var comment = - new Blockly.WorkspaceComment(workspace, 'comment text', 10, 20, 'comment id'); - var xy = comment.getXY(); - assertEquals('Initial X position', 0, xy.x); - assertEquals('Initial Y position', 0, xy.y); - - comment.moveBy(10, 100); - xy = comment.getXY(); - assertEquals('New X position', 10, xy.x); - assertEquals('New Y position', 100, xy.y); - comment.dispose(); - } finally { - workspaceCommentTest_tearDown(); - } -} - -function test_wsCommentContent() { - workspaceCommentTest_setUp(); - - Blockly.Events.fire = temporary_fireEvent; - temporary_fireEvent.firedEvents_ = []; - try { - var comment = - new Blockly.WorkspaceComment(workspace, 'comment text', 10, 20, 'comment id'); - assertEquals( - 'Check comment text', 'comment text', comment.getContent()); - assertEquals( - 'Workspace undo stack has one event', 1, workspace.undoStack_.length); - - comment.setContent('comment text'); - assertEquals( - 'Comment text has not changed', 'comment text', comment.getContent()); - // Setting the text to the old value does not fire an event. - assertEquals( - 'Workspace undo stack has one event', 1, workspace.undoStack_.length); - - comment.setContent('new comment text'); - assertEquals( - 'Comment text has changed', 'new comment text', comment.getContent()); - assertEquals( - 'Workspace undo stack has two events', 2, workspace.undoStack_.length); - comment.dispose(); - } finally { - workspaceCommentTest_tearDown(); - Blockly.Events.fire = savedFireFunc; - } -} diff --git a/lib/blockly/tests/jsunit/workspace_test.js b/lib/blockly/tests/jsunit/workspace_test.js deleted file mode 100644 index ff85e7f..0000000 --- a/lib/blockly/tests/jsunit/workspace_test.js +++ /dev/null @@ -1,372 +0,0 @@ -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - - -var workspace; -var mockControl_; - -function workspaceTest_setUp() { - defineGetVarBlock(); - workspace = new Blockly.Workspace(); -} - -function workspaceTest_tearDown() { - undefineGetVarBlock(); - if (mockControl_) { - mockControl_.restore(); - } - workspace.dispose(); -} - -function test_emptyWorkspace() { - workspaceTest_setUp(); - try { - assertEquals('Empty workspace (1).', 0, workspace.getTopBlocks(true).length); - assertEquals('Empty workspace (2).', 0, workspace.getTopBlocks(false).length); - assertEquals('Empty workspace (3).', 0, workspace.getAllBlocks().length); - workspace.clear(); - assertEquals('Empty workspace (4).', 0, workspace.getTopBlocks(true).length); - assertEquals('Empty workspace (5).', 0, workspace.getTopBlocks(false).length); - assertEquals('Empty workspace (6).', 0, workspace.getAllBlocks().length); - } finally { - workspaceTest_tearDown(); - } -} - -function test_flatWorkspace() { - workspaceTest_setUp(); - try { - var blockA = workspace.newBlock(''); - assertEquals('One block workspace (1).', 1, workspace.getTopBlocks(true).length); - assertEquals('One block workspace (2).', 1, workspace.getTopBlocks(false).length); - assertEquals('One block workspace (3).', 1, workspace.getAllBlocks().length); - var blockB = workspace.newBlock(''); - assertEquals('Two block workspace (1).', 2, workspace.getTopBlocks(true).length); - assertEquals('Two block workspace (2).', 2, workspace.getTopBlocks(false).length); - assertEquals('Two block workspace (3).', 2, workspace.getAllBlocks().length); - blockA.dispose(); - assertEquals('One block workspace (4).', 1, workspace.getTopBlocks(true).length); - assertEquals('One block workspace (5).', 1, workspace.getTopBlocks(false).length); - assertEquals('One block workspace (6).', 1, workspace.getAllBlocks().length); - workspace.clear(); - assertEquals('Cleared workspace (1).', 0, workspace.getTopBlocks(true).length); - assertEquals('Cleared workspace (2).', 0, workspace.getTopBlocks(false).length); - assertEquals('Cleared workspace (3).', 0, workspace.getAllBlocks().length); - } finally { - workspaceTest_tearDown(); - } -} - -function test_maxBlocksWorkspace() { - workspaceTest_setUp(); - try { - var blockA = workspace.newBlock(''); - var blockB = workspace.newBlock(''); - assertEquals('Infinite capacity.', Infinity, workspace.remainingCapacity()); - workspace.options.maxBlocks = 3; - assertEquals('Three capacity.', 1, workspace.remainingCapacity()); - workspace.options.maxBlocks = 2; - assertEquals('Two capacity.', 0, workspace.remainingCapacity()); - workspace.options.maxBlocks = 1; - assertEquals('One capacity.', -1, workspace.remainingCapacity()); - workspace.options.maxBlocks = 0; - assertEquals('Zero capacity.', -2, workspace.remainingCapacity()); - workspace.clear(); - assertEquals('Cleared capacity.', 0, workspace.remainingCapacity()); - } finally { - workspaceTest_tearDown(); - } -} - -function test_getWorkspaceById() { - var workspaceA = new Blockly.Workspace(); - var workspaceB = new Blockly.Workspace(); - try { - assertEquals('Find workspaceA.', workspaceA, - Blockly.Workspace.getById(workspaceA.id)); - assertEquals('Find workspaceB.', workspaceB, - Blockly.Workspace.getById(workspaceB.id)); - assertEquals('No workspace found.', null, - Blockly.Workspace.getById('I do not exist.')); - workspaceA.dispose(); - assertEquals('Can\'t find workspaceA.', null, - Blockly.Workspace.getById(workspaceA.id)); - assertEquals('WorkspaceB exists.', workspaceB, - Blockly.Workspace.getById(workspaceB.id)); - } finally { - workspaceB.dispose(); - workspaceA.dispose(); - } -} - -function test_getBlockById() { - workspaceTest_setUp(); - try { - var blockA = workspace.newBlock(''); - var blockB = workspace.newBlock(''); - assertEquals('Find blockA.', blockA, workspace.getBlockById(blockA.id)); - assertEquals('Find blockB.', blockB, workspace.getBlockById(blockB.id)); - assertEquals('No block found.', null, - workspace.getBlockById('I do not exist.')); - blockA.dispose(); - assertEquals('Can\'t find blockA.', null, workspace.getBlockById(blockA.id)); - assertEquals('BlockB exists.', blockB, workspace.getBlockById(blockB.id)); - workspace.clear(); - assertEquals('Can\'t find blockB.', null, workspace.getBlockById(blockB.id)); - } finally { - workspaceTest_tearDown(); - } -} - -function test_deleteVariable_InternalTrivial() { - workspaceTest_setUp(); - var var_1 = workspace.createVariable('name1', 'type1', 'id1'); - workspace.createVariable('name2', 'type2', 'id2'); - createMockVarBlock(workspace, 'id1'); - createMockVarBlock(workspace, 'id1'); - createMockVarBlock(workspace, 'id2'); - - var uses = workspace.getVariableUsesById(var_1.getId()); - workspace.deleteVariableInternal_(var_1, uses); - - var variable = workspace.getVariableById('id1'); - var block_var_name = workspace.topBlocks_[0].getVarModels()[0].name; - assertNull(variable); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - assertEquals('name2', block_var_name); - workspaceTest_tearDown(); -} - -// TODO(marisaleung): Test the alert for deleting a variable that is a procedure. - -function test_addTopBlock_TrivialFlyoutIsTrue() { - workspaceTest_setUp(); - var targetWorkspace = new Blockly.Workspace(); - workspace.isFlyout = true; - workspace.targetWorkspace = targetWorkspace; - targetWorkspace.createVariable('name1', '', '1'); - - // Flyout.init usually does this binding. - workspace.variableMap_ = targetWorkspace.getVariableMap(); - - try { - var block = createMockVarBlock(workspace, '1'); - workspace.removeTopBlock(block); - workspace.addTopBlock(block); - checkVariableValues(workspace, 'name1', '', '1'); - } finally { - workspaceTest_tearDown(); - // Have to dispose of the main workspace after the flyout workspace, because - // it holds the variable map. - // Normally the main workspace disposes of the flyout workspace. - targetWorkspace.dispose(); - } -} - -function test_clear_Trivial() { - workspaceTest_setUp(); - workspace.createVariable('name1', 'type1', 'id1'); - workspace.createVariable('name2', 'type2', 'id2'); - mockControl_ = setUpMockMethod(Blockly.Events, 'setGroup', [true, false], - null); - - try { - workspace.clear(); - var topBlocks_length = workspace.topBlocks_.length; - var varMapLength = Object.keys(workspace.variableMap_.variableMap_).length; - assertEquals(0, topBlocks_length); - assertEquals(0, varMapLength); - } finally { - workspaceTest_tearDown(); - } -} - -function test_clear_NoVariables() { - workspaceTest_setUp(); - mockControl_ = setUpMockMethod(Blockly.Events, 'setGroup', [true, false], - null); - - try { - workspace.clear(); - var topBlocks_length = workspace.topBlocks_.length; - var varMapLength = Object.keys(workspace.variableMap_.variableMap_).length; - assertEquals(0, topBlocks_length); - assertEquals(0, varMapLength); - } finally { - workspaceTest_tearDown(); - } -} - -function test_renameVariable_NoReference() { - // Test renaming a variable in the simplest case: when no blocks refer to it. - workspaceTest_setUp(); - var id = 'id1'; - var type = 'type1'; - var oldName = 'name1'; - var newName = 'name2'; - workspace.createVariable(oldName, type, id); - - try { - workspace.renameVariableById(id, newName); - checkVariableValues(workspace, newName, type, id); - // Renaming should not have created a new variable. - assertEquals(1, workspace.getAllVariables().length); - } finally { - workspaceTest_tearDown(); - } -} - -function test_renameVariable_ReferenceExists() { - // Test renaming a variable when a reference to it exists. - // Expect 'renameVariable' to change oldName variable name to newName. - workspaceTest_setUp(); - var newName = 'name2'; - - createVariableAndBlock(workspace); - - workspace.renameVariableById('id1', newName); - checkVariableValues(workspace, newName, 'type1', 'id1'); - // Renaming should not have created a new variable. - assertEquals(1, workspace.getAllVariables().length); - var block_var_name = workspace.topBlocks_[0].getVarModels()[0].name; - assertEquals(newName, block_var_name); - workspaceTest_tearDown(); -} - -function test_renameVariable_TwoVariablesSameType() { - // Expect 'renameVariable' to change oldName variable name to newName. - // Expect oldName block name to change to newName - workspaceTest_setUp(); - var id1 = 'id1'; - var id2 = 'id2'; - var type = 'type1'; - - var oldName = 'name1'; - var newName = 'name2'; - // Create two variables of the same type. - workspace.createVariable(oldName, type, id1); - workspace.createVariable(newName, type, id2); - // Create blocks to refer to both of them. - createMockVarBlock(workspace, id1); - createMockVarBlock(workspace, id2); - - workspace.renameVariableById(id1, newName); - checkVariableValues(workspace, newName, type, id2); - // The old variable should have been deleted. - var variable = workspace.getVariableById(id1); - assertNull(variable); - - // There should only be one variable left. - assertEquals(1, workspace.getAllVariables().length); - - // References should have the correct names. - var block_var_name_1 = workspace.topBlocks_[0].getVarModels()[0].name; - var block_var_name_2 = workspace.topBlocks_[1].getVarModels()[0].name; - assertEquals(newName, block_var_name_1); - assertEquals(newName, block_var_name_2); - - workspaceTest_tearDown(); -} - -function test_renameVariable_TwoVariablesDifferentType() { - // Expect the rename to succeed, because variables with different types are - // allowed to have the same name. - workspaceTest_setUp(); - createTwoVariablesAndBlocks(workspace); - - var newName = 'name2'; - workspace.renameVariableById('id1', newName); - - checkVariableValues(workspace, newName, 'type1', 'id1'); - checkVariableValues(workspace, newName, 'type2', 'id2'); - - // References shoul have the correct names. - var block_var_name_1 = workspace.topBlocks_[0].getVarModels()[0].name; - var block_var_name_2 = workspace.topBlocks_[1].getVarModels()[0].name; - assertEquals(newName, block_var_name_1); - assertEquals(newName, block_var_name_2); - - workspaceTest_tearDown(); -} - -function test_renameVariable_OldCase() { - // Rename a variable with a single reference. Update only the capitalization. - workspaceTest_setUp(); - var newName = 'Name1'; - - createVariableAndBlock(workspace); - - workspace.renameVariableById('id1', newName); - checkVariableValues(workspace, newName, 'type1', 'id1'); - var variable = workspace.getVariableById('id1'); - assertNotEquals('name1', variable.name); - workspaceTest_tearDown(); -} - -function test_renameVariable_TwoVariablesAndOldCase() { - // Test renaming a variable to an in-use name, but with different - // capitalization. The new capitalization should apply everywhere. - - // TODO (fenichel): What about different capitalization but also different - // types? - workspaceTest_setUp(); - var oldName = 'name1'; - var oldCase = 'Name2'; - var newName = 'name2'; - - var id1 = 'id1'; - var id2 = 'id2'; - - var type = 'type1'; - - workspace.createVariable(oldName, type, id1); - workspace.createVariable(oldCase, type, id2); - createMockVarBlock(workspace, id1); - createMockVarBlock(workspace, id2); - - workspace.renameVariableById(id1, newName); - - checkVariableValues(workspace, newName, type, id2); - - // The old variable should have been deleted. - var variable = workspace.getVariableById(id1); - assertNull(variable); - - // There should only be one variable left. - assertEquals(1, workspace.getAllVariables().length); - - // Blocks should now use the new capitalization. - var block_var_name_1 = workspace.topBlocks_[0].getVarModels()[0].name; - var block_var_name_2 = workspace.topBlocks_[1].getVarModels()[0].name; - assertEquals(newName, block_var_name_1); - assertEquals(newName, block_var_name_2); - workspaceTest_tearDown(); -} - -function test_deleteVariableById_Trivial() { - workspaceTest_setUp(); - createTwoVariablesAndBlocks(workspace); - - workspace.deleteVariableById('id1'); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - var variable = workspace.getVariableById('id1'); - var block_var_name = workspace.topBlocks_[0].getVarModels()[0].name; - assertNull(variable); - assertEquals('name2', block_var_name); - workspaceTest_tearDown(); -} diff --git a/lib/blockly/tests/jsunit/workspace_undo_redo_test.js b/lib/blockly/tests/jsunit/workspace_undo_redo_test.js deleted file mode 100644 index 9fc06d1..0000000 --- a/lib/blockly/tests/jsunit/workspace_undo_redo_test.js +++ /dev/null @@ -1,374 +0,0 @@ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /** - * @fileoverview Tests for Blockly.Workspace.undo. - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - - -var workspace; -var mockControl_; -var savedFireFunc = Blockly.Events.fire; - -function temporary_fireEvent(event) { - if (!Blockly.Events.isEnabled()) { - return; - } - Blockly.Events.FIRE_QUEUE_.push(event); - Blockly.Events.fireNow_(); -} - -function undoRedoTest_setUp() { - defineGetVarBlock(); - workspace = new Blockly.Workspace(); - Blockly.Events.fire = temporary_fireEvent; -} - -function undoRedoTest_tearDown() { - undefineGetVarBlock(); - if (mockControl_) { - mockControl_.restore(); - } - workspace.dispose(); - Blockly.Events.fire = savedFireFunc; -} - -/** - * Check that the top block with the given index contains a variable with - * the given name. - * @param {number} blockIndex The index of the top block. - * @param {string} name The expected name of the variable in the block. - */ -function undoRedoTest_checkBlockVariableName(blockIndex, name) { - var blockVarName = workspace.topBlocks_[blockIndex].getVarModels()[0].name; - assertEquals(name, blockVarName); -} - -function createTwoVarsEmptyType() { - workspace.createVariable('name1', '', 'id1'); - workspace.createVariable('name2', '', 'id2'); -} - -function createTwoVarsDifferentTypes() { - workspace.createVariable('name1', 'type1', 'id1'); - workspace.createVariable('name2', 'type2', 'id2'); -} - -function test_undoCreateVariable_Trivial() { - undoRedoTest_setUp(); - createTwoVarsDifferentTypes(); - - workspace.undo(); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - assertNull(workspace.getVariableById('id2')); - workspace.undo(); - assertNull(workspace.getVariableById('id1')); - assertNull(workspace.getVariableById('id2')); - undoRedoTest_tearDown(); -} - -function test_redoAndUndoCreateVariable_Trivial() { - undoRedoTest_setUp(); - createTwoVarsDifferentTypes(); - - workspace.undo(); - workspace.undo(true); - - // Expect that variable 'id2' is recreated - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - - workspace.undo(); - workspace.undo(); - workspace.undo(true); - - // Expect that variable 'id1' is recreated - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - assertNull(workspace.getVariableById('id2')); - undoRedoTest_tearDown(); -} - -function test_undoDeleteVariable_NoBlocks() { - undoRedoTest_setUp(); - createTwoVarsDifferentTypes(); - workspace.deleteVariableById('id1'); - workspace.deleteVariableById('id2'); - - workspace.undo(); - assertNull(workspace.getVariableById('id1')); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - - workspace.undo(); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - undoRedoTest_tearDown(); -} - -function test_undoDeleteVariable_WithBlocks() { - undoRedoTest_setUp(); - - createTwoVariablesAndBlocks(workspace); - - workspace.deleteVariableById('id1'); - workspace.deleteVariableById('id2'); - - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name2'); - assertNull(workspace.getVariableById('id1')); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name2'); - undoRedoTest_checkBlockVariableName(1, 'name1'); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - undoRedoTest_tearDown(); -} - -function test_redoAndUndoDeleteVariable_NoBlocks() { - undoRedoTest_setUp(); - - createTwoVarsDifferentTypes(); - - workspace.deleteVariableById('id1'); - workspace.deleteVariableById('id2'); - - workspace.undo(); - workspace.undo(true); - // Expect that both variables are deleted - assertNull(workspace.getVariableById('id1')); - assertNull(workspace.getVariableById('id2')); - - workspace.undo(); - workspace.undo(); - workspace.undo(true); - // Expect that variable 'id2' is recreated - assertNull(workspace.getVariableById('id1')); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - undoRedoTest_tearDown(); -} - -function test_redoAndUndoDeleteVariable_WithBlocks() { - undoRedoTest_setUp(); - - createTwoVariablesAndBlocks(workspace); - - workspace.deleteVariableById('id1'); - workspace.deleteVariableById('id2'); - - workspace.undo(); - workspace.undo(true); - // Expect that both variables are deleted - assertEquals(0, workspace.topBlocks_.length); - assertNull(workspace.getVariableById('id1')); - assertNull(workspace.getVariableById('id2')); - - workspace.undo(); - workspace.undo(); - workspace.undo(true); - // Expect that variable 'id2' is recreated - undoRedoTest_checkBlockVariableName(0, 'name2'); - assertNull(workspace.getVariableById('id1')); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - undoRedoTest_tearDown(); -} - -function test_redoAndUndoDeleteVariableTwice_NoBlocks() { - undoRedoTest_setUp(); - workspace.createVariable('name1', 'type1', 'id1'); - workspace.deleteVariableById('id1'); - workspace.deleteVariableById('id1'); - - // Check the undoStack only recorded one delete event. - var undoStack = workspace.undoStack_; - assertEquals('var_delete', undoStack[undoStack.length-1].type); - assertNotEquals('var_delete', undoStack[undoStack.length-2].type); - - // undo delete - workspace.undo(); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - - // redo delete - workspace.undo(true); - assertNull(workspace.getVariableById('id1')); - - // redo delete, nothing should happen - workspace.undo(true); - assertNull(workspace.getVariableById('id1')); - undoRedoTest_tearDown(); -} - -function test_redoAndUndoDeleteVariableTwice_WithBlocks() { - undoRedoTest_setUp(); - var id = 'id1'; - workspace.createVariable('name1', 'type1', id); - createMockVarBlock(workspace, id); - workspace.deleteVariableById(id); - workspace.deleteVariableById(id); - - // Check the undoStack only recorded one delete event. - var undoStack = workspace.undoStack_; - assertEquals('var_delete', undoStack[undoStack.length-1].type); - assertEquals('delete', undoStack[undoStack.length-2].type); - assertNotEquals('var_delete', undoStack[undoStack.length-3].type); - - // undo delete - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name1'); - checkVariableValues(workspace, 'name1', 'type1', id); - - // redo delete - workspace.undo(true); - assertEquals(0, workspace.topBlocks_.length); - assertNull(workspace.getVariableById(id)); - - // redo delete, nothing should happen - workspace.undo(true); - assertEquals(0, workspace.topBlocks_.length); - assertNull(workspace.getVariableById(id)); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_OneExists_NoBlocks() { - undoRedoTest_setUp(); - workspace.createVariable('name1', '', 'id1'); - workspace.renameVariableById('id1', 'name2'); - - workspace.undo(); - checkVariableValues(workspace, 'name1', '', 'id1'); - - workspace.undo(true); - checkVariableValues(workspace, 'name2', '', 'id1'); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_OneExists_WithBlocks() { - undoRedoTest_setUp(); - workspace.createVariable('name1', '', 'id1'); - createMockVarBlock(workspace, 'id1'); - workspace.renameVariableById('id1', 'name2'); - - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name1'); - checkVariableValues(workspace, 'name1', '', 'id1'); - - workspace.undo(true); - checkVariableValues(workspace, 'name2', '', 'id1'); - undoRedoTest_checkBlockVariableName(0, 'name2'); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_BothExist_NoBlocks() { - undoRedoTest_setUp(); - createTwoVarsEmptyType(); - workspace.renameVariableById('id1', 'name2'); - - workspace.undo(); - checkVariableValues(workspace, 'name1', '', 'id1'); - checkVariableValues(workspace, 'name2', '', 'id2'); - - workspace.undo(true); - checkVariableValues(workspace, 'name2', '', 'id2'); - assertNull(workspace.getVariableById('id1')); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_BothExist_WithBlocks() { - undoRedoTest_setUp(); - createTwoVarsEmptyType(); - createMockVarBlock(workspace, 'id1'); - createMockVarBlock(workspace, 'id2'); - workspace.renameVariableById('id1', 'name2'); - - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name1'); - undoRedoTest_checkBlockVariableName(1, 'name2'); - checkVariableValues(workspace, 'name1', '', 'id1'); - checkVariableValues(workspace, 'name2', '', 'id2'); - - workspace.undo(true); - undoRedoTest_checkBlockVariableName(0, 'name2'); - undoRedoTest_checkBlockVariableName(1, 'name2'); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_BothExistCaseChange_NoBlocks() { - undoRedoTest_setUp(); - createTwoVarsEmptyType(); - workspace.renameVariableById('id1', 'Name2'); - - workspace.undo(); - checkVariableValues(workspace, 'name1', '', 'id1'); - checkVariableValues(workspace, 'name2', '', 'id2'); - - workspace.undo(true); - checkVariableValues(workspace, 'Name2', '', 'id2'); - assertNull(workspace.getVariable('name1')); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_BothExistCaseChange_WithBlocks() { - undoRedoTest_setUp(); - createTwoVarsEmptyType(); - createMockVarBlock(workspace, 'id1'); - createMockVarBlock(workspace, 'id2'); - workspace.renameVariableById('id1', 'Name2'); - - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name1'); - undoRedoTest_checkBlockVariableName(1, 'name2'); - checkVariableValues(workspace, 'name1', '', 'id1'); - checkVariableValues(workspace, 'name2', '', 'id2'); - - workspace.undo(true); - checkVariableValues(workspace, 'Name2', '', 'id2'); - assertNull(workspace.getVariableById('id1')); - undoRedoTest_checkBlockVariableName(0, 'Name2'); - undoRedoTest_checkBlockVariableName(1, 'Name2'); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_OnlyCaseChange_NoBlocks() { - undoRedoTest_setUp(); - workspace.createVariable('name1', '', 'id1'); - workspace.renameVariableById('id1', 'Name1'); - - workspace.undo(); - checkVariableValues(workspace, 'name1', '', 'id1'); - - workspace.undo(true); - checkVariableValues(workspace, 'Name1', '', 'id1'); - undoRedoTest_tearDown(); -} - -function test_undoRedoRenameVariable_OnlyCaseChange_WithBlocks() { - undoRedoTest_setUp(); - workspace.createVariable('name1', '', 'id1'); - createMockVarBlock(workspace, 'id1'); - workspace.renameVariableById('id1', 'Name1'); - - workspace.undo(); - undoRedoTest_checkBlockVariableName(0, 'name1'); - checkVariableValues(workspace, 'name1', '', 'id1'); - - workspace.undo(true); - checkVariableValues(workspace, 'Name1', '', 'id1'); - undoRedoTest_checkBlockVariableName(0, 'Name1'); - undoRedoTest_tearDown(); -} diff --git a/lib/blockly/tests/jsunit/xml_test.js b/lib/blockly/tests/jsunit/xml_test.js deleted file mode 100644 index c2c6ec7..0000000 --- a/lib/blockly/tests/jsunit/xml_test.js +++ /dev/null @@ -1,386 +0,0 @@ -/** - * @license - * Copyright 2014 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -var mockControl_; -var workspace; -var XML_TEXT = ['', - ' ', - ' ', - ' ', - ' 10', - ' ', - ' ', - ' ', - ' ', - ' item', - ' ', - ' ', - ' ', - ' ', - ' ', - ' ', - ' ', - ' Hello', - ' ', - ' ', - ' ', - ' ', - ' ', - ' ', - ' ', - ''].join('\n'); - -function xmlTest_setUp() { - workspace = new Blockly.Workspace(); -} - -function xmlTest_setUpWithMockBlocks() { - xmlTest_setUp(); - Blockly.defineBlocksWithJsonArray([{ - 'type': 'field_variable_test_block', - 'message0': '%1', - 'args0': [ - { - 'type': 'field_variable', - 'name': 'VAR', - 'variable': 'item' - } - ] - }]); -} - -function xmlTest_tearDown() { - if (mockControl_) { - mockControl_.restore(); - } - workspace.dispose(); -} - -function xmlTest_tearDownWithMockBlocks() { - xmlTest_tearDown(); - delete Blockly.Blocks.field_variable_test_block; -} - -/** - * Check the values of the non variable field DOM. - * @param {!Element} fieldDom The XML DOM of the non variable field. - * @param {!string} name The expected name of the variable. - * @param {!string} text The expected text of the variable. - */ -function xmlTest_checkNonVariableField(fieldDom, name, text) { - assertEquals('textContent', text, fieldDom.textContent); - assertEquals('name', name, fieldDom.getAttribute('name')); - assertNull('id', fieldDom.getAttribute('id')); - assertNull('variabletype', fieldDom.getAttribute('variabletype')); -} - -/** - * Check the values of the variable field DOM. - * @param {!Element} fieldDom The XML DOM of the variable field. - * @param {!string} name The expected name of the variable. - * @param {!string} type The expected type of the variable. - * @param {!string} id The expected ID of the variable. - * @param {!string} text The expected text of the variable. - */ -function xmlTest_checkVariableFieldDomValues(fieldDom, name, type, id, text) { - assertEquals('name', name, fieldDom.getAttribute('name')); - assertEquals('variabletype', type, fieldDom.getAttribute('variabletype')); - assertEquals('id', id, fieldDom.getAttribute('id')); - assertEquals('textContent', text, fieldDom.textContent); -} - -/** - * Check the values of the variable DOM. - * @param {!Element} variableDom The XML DOM of the variable. - * @param {!string} type The expected type of the variable. - * @param {!string} id The expected ID of the variable. - * @param {!string} text The expected text of the variable. - */ -function xmlTest_checkVariableDomValues(variableDom, type, id, text) { - assertEquals('type', type, variableDom.getAttribute('type')); - assertEquals('id', id, variableDom.getAttribute('id')); - assertEquals('textContent', text, variableDom.textContent); -} - -function test_textToDom() { - var dom = Blockly.Xml.textToDom(XML_TEXT); - assertEquals('XML tag', 'xml', dom.nodeName); - assertEquals('Block tags', 6, dom.getElementsByTagName('block').length); -} - -function test_domToText() { - var dom = Blockly.Xml.textToDom(XML_TEXT); - var text = Blockly.Xml.domToText(dom); - assertEquals('Round trip', XML_TEXT.replace(/\s+/g, ''), - text.replace(/\s+/g, '')); -} - -function test_domToWorkspace_BackwardCompatibility() { - // Expect that workspace still loads without serialized variables. - xmlTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '1']); - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' name1' + - ' ' + - ''); - Blockly.Xml.domToWorkspace(dom, workspace); - assertEquals('Block count', 1, workspace.getAllBlocks().length); - checkVariableValues(workspace, 'name1', '', '1'); - } finally { - xmlTest_tearDownWithMockBlocks(); - } -} - -function test_domToWorkspace_VariablesAtTop() { - // Expect that unused variables are preserved. - xmlTest_setUpWithMockBlocks(); - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' name1' + - ' name2' + - ' name3' + - ' ' + - ' ' + - ' name3' + - ' ' + - ''); - Blockly.Xml.domToWorkspace(dom, workspace); - assertEquals('Block count', 1, workspace.getAllBlocks().length); - checkVariableValues(workspace, 'name1', 'type1', 'id1'); - checkVariableValues(workspace, 'name2', 'type2', 'id2'); - checkVariableValues(workspace, 'name3', '', 'id3'); - } finally { - xmlTest_tearDownWithMockBlocks(); - } -} - -function test_domToWorkspace_VariablesAtTop_DuplicateVariablesTag() { - // Expect thrown Error because of duplicate 'variables' tag. - xmlTest_setUpWithMockBlocks(); - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ''); - Blockly.Xml.domToWorkspace(dom, workspace); - fail(); - } - catch (e) { - // expected - } finally { - xmlTest_tearDownWithMockBlocks(); - } -} - -function test_domToWorkspace_VariablesAtTop_MissingType() { - // Expect thrown error when a variable tag is missing the type attribute. - workspace = new Blockly.Workspace(); - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' name1' + - ' ' + - ' ' + - ' name3' + - ' ' + - ''); - Blockly.Xml.domToWorkspace(dom, workspace); - fail(); - } catch (e) { - // expected - } finally { - workspace.dispose(); - } -} - -function test_domToWorkspace_VariablesAtTop_MismatchBlockType() { - // Expect thrown error when the serialized type of a variable does not match - // the type of a variable field that references it. - xmlTest_setUpWithMockBlocks(); - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' name1' + - ' ' + - ' ' + - ' name1' + - ' ' + - ''); - Blockly.Xml.domToWorkspace(dom, workspace); - fail(); - } catch (e) { - // expected - } finally { - xmlTest_tearDownWithMockBlocks(); - } -} - -function test_domToPrettyText() { - var dom = Blockly.Xml.textToDom(XML_TEXT); - var text = Blockly.Xml.domToPrettyText(dom); - assertEquals('Round trip', XML_TEXT.replace(/\s+/g, ''), - text.replace(/\s+/g, '')); -} - -/** - * Tests the that appendDomToWorkspace works in a headless mode. - * Also see test_appendDomToWorkspace() in workspace_svg_test.js. - */ -function test_appendDomToWorkspace() { - Blockly.Blocks.test_block = { - init: function() { - this.jsonInit({ - message0: 'test', - }); - } - }; - - try { - var dom = Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ''); - workspace = new Blockly.Workspace(); - Blockly.Xml.appendDomToWorkspace(dom, workspace); - assertEquals('Block count', 1, workspace.getAllBlocks().length); - var newBlockIds = Blockly.Xml.appendDomToWorkspace(dom, workspace); - assertEquals('Block count', 2, workspace.getAllBlocks().length); - assertEquals('Number of new block ids',1,newBlockIds.length); - } finally { - delete Blockly.Blocks.test_block; - workspace.dispose(); - } -} - -function test_blockToDom_fieldToDom_defaultCase() { - xmlTest_setUpWithMockBlocks(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '1']); - try { - workspace.createVariable('name1'); - - Blockly.Events.disable(); - var block = new Blockly.Block(workspace, 'field_variable_test_block'); - block.inputList[0].fieldRow[0].setValue('1'); - Blockly.Events.enable(); - - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - // Expect type is null and ID is '1' since we don't specify type and ID. - xmlTest_checkVariableFieldDomValues(resultFieldDom, 'VAR', null, '1', - 'name1'); - } finally { - xmlTest_tearDownWithMockBlocks(); - } -} - -function test_blockToDom_fieldToDom_notAFieldVariable() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_angle_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_angle", - "name": "VAR", - "angle": 90 - } - ], - }]); - xmlTest_setUpWithMockBlocks(); - var block = new Blockly.Block(workspace, 'field_angle_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - xmlTest_checkNonVariableField(resultFieldDom, 'VAR', '90'); - delete Blockly.Blocks.field_angle_block; - xmlTest_tearDownWithMockBlocks(); -} - -function test_variablesToDom_oneVariable() { - xmlTest_setUp(); - mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1']); - - workspace.createVariable('name1'); - var resultDom = Blockly.Xml.variablesToDom(workspace.getAllVariables()); - assertEquals(1, resultDom.children.length); - var resultVariableDom = resultDom.children[0]; - assertEquals('name1', resultVariableDom.textContent); - assertEquals(null, resultVariableDom.getAttribute('type')); - assertEquals('1', resultVariableDom.getAttribute('id')); - xmlTest_tearDown(); -} - -function test_variablesToDom_twoVariables_oneBlock() { - xmlTest_setUpWithMockBlocks(); - - workspace.createVariable('name1', '', 'id1'); - workspace.createVariable('name2', 'type2', 'id2'); - // If events are enabled during block construction, it will create a default - // variable. - Blockly.Events.disable(); - var block = new Blockly.Block(workspace, 'field_variable_test_block'); - block.inputList[0].fieldRow[0].setValue('id1'); - Blockly.Events.enable(); - - var resultDom = Blockly.Xml.variablesToDom(workspace.getAllVariables()); - assertEquals(2, resultDom.children.length); - xmlTest_checkVariableDomValues(resultDom.children[0], null, 'id1', - 'name1'); - xmlTest_checkVariableDomValues(resultDom.children[1], 'type2', 'id2', - 'name2'); - xmlTest_tearDownWithMockBlocks(); -} - -function test_variablesToDom_noVariables() { - xmlTest_setUp(); - workspace.createVariable('name1'); - var resultDom = Blockly.Xml.variablesToDom(workspace.getAllVariables()); - assertEquals(1, resultDom.children.length); - xmlTest_tearDown(); -} - -function test_variableFieldXml_caseSensitive() { - var id = 'testId'; - var type = 'testType'; - var name = 'testName'; - - var mockVariableModel = { - type: type, - name: name, - getId: function() { - return id; - } - }; - - var generatedXml = Blockly.Xml.domToText( - Blockly.Variables.generateVariableFieldDom(mockVariableModel)); - var goldenXml = - '' + name + ''; - assertEquals(goldenXml, generatedXml); -} diff --git a/lib/blockly/tests/media/200px.png b/lib/blockly/tests/media/200px.png deleted file mode 100644 index 8671954..0000000 Binary files a/lib/blockly/tests/media/200px.png and /dev/null differ diff --git a/lib/blockly/tests/media/30px.png b/lib/blockly/tests/media/30px.png deleted file mode 100644 index adf98a5..0000000 Binary files a/lib/blockly/tests/media/30px.png and /dev/null differ diff --git a/lib/blockly/tests/media/50px.png b/lib/blockly/tests/media/50px.png deleted file mode 100644 index b3d4fc2..0000000 Binary files a/lib/blockly/tests/media/50px.png and /dev/null differ diff --git a/lib/blockly/tests/media/a.png b/lib/blockly/tests/media/a.png deleted file mode 100644 index 24c8483..0000000 Binary files a/lib/blockly/tests/media/a.png and /dev/null differ diff --git a/lib/blockly/tests/media/arrow.png b/lib/blockly/tests/media/arrow.png deleted file mode 100644 index d310bd2..0000000 Binary files a/lib/blockly/tests/media/arrow.png and /dev/null differ diff --git a/lib/blockly/tests/media/b.png b/lib/blockly/tests/media/b.png deleted file mode 100644 index 416276c..0000000 Binary files a/lib/blockly/tests/media/b.png and /dev/null differ diff --git a/lib/blockly/tests/media/c.png b/lib/blockly/tests/media/c.png deleted file mode 100644 index ba0127d..0000000 Binary files a/lib/blockly/tests/media/c.png and /dev/null differ diff --git a/lib/blockly/tests/media/d.png b/lib/blockly/tests/media/d.png deleted file mode 100644 index 89f5d5c..0000000 Binary files a/lib/blockly/tests/media/d.png and /dev/null differ diff --git a/lib/blockly/tests/media/e.png b/lib/blockly/tests/media/e.png deleted file mode 100644 index 2070b06..0000000 Binary files a/lib/blockly/tests/media/e.png and /dev/null differ diff --git a/lib/blockly/tests/media/f.png b/lib/blockly/tests/media/f.png deleted file mode 100644 index beb8b9e..0000000 Binary files a/lib/blockly/tests/media/f.png and /dev/null differ diff --git a/lib/blockly/tests/media/g.png b/lib/blockly/tests/media/g.png deleted file mode 100644 index aad1e57..0000000 Binary files a/lib/blockly/tests/media/g.png and /dev/null differ diff --git a/lib/blockly/tests/media/h.png b/lib/blockly/tests/media/h.png deleted file mode 100644 index 33cbb44..0000000 Binary files a/lib/blockly/tests/media/h.png and /dev/null differ diff --git a/lib/blockly/tests/media/i.png b/lib/blockly/tests/media/i.png deleted file mode 100644 index cf4d90c..0000000 Binary files a/lib/blockly/tests/media/i.png and /dev/null differ diff --git a/lib/blockly/tests/media/j.png b/lib/blockly/tests/media/j.png deleted file mode 100644 index 81da544..0000000 Binary files a/lib/blockly/tests/media/j.png and /dev/null differ diff --git a/lib/blockly/tests/media/k.png b/lib/blockly/tests/media/k.png deleted file mode 100644 index a9ea5a7..0000000 Binary files a/lib/blockly/tests/media/k.png and /dev/null differ diff --git a/lib/blockly/tests/media/l.png b/lib/blockly/tests/media/l.png deleted file mode 100644 index c43626e..0000000 Binary files a/lib/blockly/tests/media/l.png and /dev/null differ diff --git a/lib/blockly/tests/media/m.png b/lib/blockly/tests/media/m.png deleted file mode 100644 index ee98eb8..0000000 Binary files a/lib/blockly/tests/media/m.png and /dev/null differ diff --git a/lib/blockly/tests/mocha/.eslintrc.json b/lib/blockly/tests/mocha/.eslintrc.json deleted file mode 100644 index b4bb40f..0000000 --- a/lib/blockly/tests/mocha/.eslintrc.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "env": { - "browser": true, - "mocha": true - }, - "globals": { - "chai": false, - "sinon": false, - "assertNull": true, - "assertNotNull": true, - "assertEquals": true, - "assertTrue": true, - "assertFalse": true, - "isEqualArrays": true, - "assertUndefined": true, - "assertNotUndefined": true, - "defineStackBlock": true, - "defineRowBlock": true, - "defineStatementBlock": true - - }, - "extends": "../../.eslintrc.json" -} diff --git a/lib/blockly/tests/mocha/astnode_test.js b/lib/blockly/tests/mocha/astnode_test.js deleted file mode 100644 index ae3f65a..0000000 --- a/lib/blockly/tests/mocha/astnode_test.js +++ /dev/null @@ -1,929 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('ASTNode', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "input_statement", - "message0": "%1 %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "input_statement", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "value_input", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "NAME" - } - ], - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "field_input", - "message0": "%1", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - } - ], - "output": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - } - ]); - this.workspace = new Blockly.Workspace(); - this.cursor = this.workspace.cursor; - var statementInput1 = this.workspace.newBlock('input_statement'); - var statementInput2 = this.workspace.newBlock('input_statement'); - var statementInput3 = this.workspace.newBlock('input_statement'); - var statementInput4 = this.workspace.newBlock('input_statement'); - var fieldWithOutput = this.workspace.newBlock('field_input'); - var valueInput = this.workspace.newBlock('value_input'); - - statementInput1.nextConnection.connect(statementInput2.previousConnection); - statementInput1.inputList[0].connection - .connect(fieldWithOutput.outputConnection); - statementInput2.inputList[1].connection - .connect(statementInput3.previousConnection); - - this.blocks = { - statementInput1: statementInput1, - statementInput2: statementInput2, - statementInput3: statementInput3, - statementInput4: statementInput4, - fieldWithOutput: fieldWithOutput, - valueInput: valueInput - }; - sinon.stub(Blockly, "getMainWorkspace").returns(new Blockly.Workspace()); - }); - teardown(function() { - delete Blockly.Blocks['input_statement']; - delete Blockly.Blocks['field_input']; - delete Blockly.Blocks['value_input']; - - this.workspace.dispose(); - sinon.restore(); - }); - - suite('HelperFunctions', function() { - test('findPreviousEditableField_', function() { - var input = this.blocks.statementInput1.inputList[0]; - var field = input.fieldRow[1]; - var prevField = input.fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(prevField); - var editableField = node.findPreviousEditableField_(field, input); - assertEquals(editableField.getLocation(), prevField); - }); - - test('findPreviousEditableFieldLast_', function() { - var input = this.blocks.statementInput1.inputList[0]; - var field = input.fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var editableField = node.findPreviousEditableField_(field, input, true); - assertEquals(editableField.getLocation(), input.fieldRow[1]); - }); - - test('findNextForInput_', function() { - var input = this.blocks.statementInput1.inputList[0]; - var input2 = this.blocks.statementInput1.inputList[1]; - var connection = input.connection; - var node = Blockly.ASTNode.createConnectionNode(connection); - var newASTNode = node.findNextForInput_(input); - assertEquals(newASTNode.getLocation(), input2.connection); - }); - - test('findPrevForInput_', function() { - var input = this.blocks.statementInput1.inputList[0]; - var input2 = this.blocks.statementInput1.inputList[1]; - var connection = input2.connection; - var node = Blockly.ASTNode.createConnectionNode(connection); - var newASTNode = node.findPrevForInput_(input2); - assertEquals(newASTNode.getLocation(), input.connection); - }); - - test('findNextForField_', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - var field2 = this.blocks.statementInput1.inputList[0].fieldRow[1]; - var node = Blockly.ASTNode.createFieldNode(field); - var newASTNode = node.findNextForField_(field); - assertEquals(newASTNode.getLocation(), field2); - }); - - test('findPrevForField_', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - var field2 = this.blocks.statementInput1.inputList[0].fieldRow[1]; - var node = Blockly.ASTNode.createFieldNode(field2); - var newASTNode = node.findPrevForField_(field2); - assertEquals(newASTNode.getLocation(), field); - }); - - test('navigateBetweenStacks_Forward', function() { - var node = new Blockly.ASTNode( - Blockly.ASTNode.types.NEXT, this.blocks.statementInput1.nextConnection); - var newASTNode = node.navigateBetweenStacks_(true); - assertEquals(newASTNode.getLocation(), this.blocks.statementInput4); - }); - - test('navigateBetweenStacks_Backward', function() { - var node = new Blockly.ASTNode( - Blockly.ASTNode.types.BLOCK, this.blocks.statementInput4); - var newASTNode = node.navigateBetweenStacks_(false); - assertEquals(newASTNode.getLocation(), this.blocks.statementInput1); - }); - test('getOutAstNodeForBlock_', function() { - var node = new Blockly.ASTNode( - Blockly.ASTNode.types.BLOCK, this.blocks.statementInput2); - var newASTNode = node.getOutAstNodeForBlock_(this.blocks.statementInput2); - assertEquals(newASTNode.getLocation(), this.blocks.statementInput1); - }); - test('getOutAstNodeForBlock_OneBlock', function() { - var node = new Blockly.ASTNode( - Blockly.ASTNode.types.BLOCK, this.blocks.statementInput4); - var newASTNode = node.getOutAstNodeForBlock_(this.blocks.statementInput4); - assertEquals(newASTNode.getLocation(), this.blocks.statementInput4); - }); - test('findFirstFieldOrInput_', function() { - var node = new Blockly.ASTNode( - Blockly.ASTNode.types.BLOCK, this.blocks.statementInput4); - var field = this.blocks.statementInput4.inputList[0].fieldRow[0]; - var newASTNode = node.findFirstFieldOrInput_(this.blocks.statementInput4); - assertEquals(newASTNode.getLocation(), field); - }); - - }); - - suite('NavigationFunctions', function() { - suite('Next', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "top_connection", - "message0": "", - "previousStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "fields_and_input", - "message0": "%1 hi %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_dummy" - }, - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "two_fields", - "message0": "%1 hi", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - } - ], - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "fields_and_input2", - "message0": "%1 %2 %3 hi %4 bye", - "args0": [ - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "input_statement", - "name": "NAME" - } - ], - "colour": 230, - "tooltip": "", - "helpUrl": "" - }]); - - this.singleBlockWorkspace = new Blockly.Workspace(); - - var noNextConnection = this.workspace.newBlock('top_connection'); - var fieldAndInputs = this.workspace.newBlock('fields_and_input'); - var twoFields = this.workspace.newBlock('two_fields'); - var fieldAndInputs2 = this.workspace.newBlock('fields_and_input2'); - var singleBlock = this.singleBlockWorkspace.newBlock('two_fields'); - - this.blocks.noNextConnection = noNextConnection; - this.blocks.fieldAndInputs = fieldAndInputs; - this.blocks.twoFields = twoFields; - this.blocks.fieldAndInputs2 = fieldAndInputs2; - this.blocks.singleBlock = singleBlock; - - - }); - teardown(function() { - delete this.blocks.noNextConnection; - delete this.blocks.fieldAndInputs; - delete this.blocks.twoFields; - delete this.blocks.fieldAndInputs2; - delete this.blocks.singleBlock; - - delete Blockly.Blocks['fields_and_input2']; - delete Blockly.Blocks['two_fields']; - delete Blockly.Blocks['fields_and_input']; - delete Blockly.Blocks['top_connection']; - }); - - test('fromPreviousToBlock', function() { - var prevConnection = this.blocks.statementInput1.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(prevConnection); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), this.blocks.statementInput1); - }); - test('fromBlockToNext', function() { - var nextConnection = this.blocks.statementInput1.nextConnection; - var node = Blockly.ASTNode.createBlockNode(this.blocks.statementInput1); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), nextConnection); - }); - test('fromBlockToNull', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.noNextConnection); - var nextNode = node.next(); - assertEquals(nextNode, null); - }); - test('fromNextToPrevious', function() { - var nextConnection = this.blocks.statementInput1.nextConnection; - var prevConnection = this.blocks.statementInput2.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(nextConnection); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), prevConnection); - }); - test('fromNextToNull', function() { - var nextConnection = this.blocks.statementInput2.nextConnection; - var node = Blockly.ASTNode.createConnectionNode(nextConnection); - var nextNode = node.next(); - assertEquals(nextNode, null); - }); - test('fromInputToInput', function() { - var input = this.blocks.statementInput1.inputList[0]; - var inputConnection = this.blocks.statementInput1.inputList[1].connection; - var node = Blockly.ASTNode.createInputNode(input); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), inputConnection); - }); - test('fromInputToStatementInput', function() { - var input = this.blocks.fieldAndInputs2.inputList[1]; - var inputConnection = this.blocks.fieldAndInputs2.inputList[2].connection; - var node = Blockly.ASTNode.createInputNode(input); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), inputConnection); - }); - test('fromInputToField', function() { - var input = this.blocks.fieldAndInputs2.inputList[0]; - var field = this.blocks.fieldAndInputs2.inputList[1].fieldRow[0]; - var node = Blockly.ASTNode.createInputNode(input); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), field); - }); - test('fromInputToNull', function() { - var input = this.blocks.fieldAndInputs2.inputList[2]; - var node = Blockly.ASTNode.createInputNode(input); - var nextNode = node.next(); - assertEquals(nextNode, null); - }); - test('fromOutputToBlock', function() { - var output = this.blocks.fieldWithOutput.outputConnection; - var node = Blockly.ASTNode.createConnectionNode(output); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), this.blocks.fieldWithOutput); - }); - test('fromFieldToInput', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[1]; - var inputConnection = this.blocks.statementInput1.inputList[0].connection; - var node = Blockly.ASTNode.createFieldNode(field); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), inputConnection); - }); - test('fromFieldToField', function() { - var field = this.blocks.fieldAndInputs.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var field2 = this.blocks.fieldAndInputs.inputList[1].fieldRow[0]; - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), field2); - }); - test('fromFieldToNull', function() { - var field = this.blocks.twoFields.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var nextNode = node.next(); - assertEquals(nextNode, null); - }); - test('fromStackToStack', function() { - var node = Blockly.ASTNode.createStackNode(this.blocks.statementInput1); - var nextNode = node.next(); - assertEquals(nextNode.getLocation(), this.blocks.statementInput4); - assertEquals(nextNode.getType(), Blockly.ASTNode.types.STACK); - }); - test('fromStackToNull', function() { - var node = Blockly.ASTNode.createStackNode(this.blocks.singleBlock); - var nextNode = node.next(); - assertEquals(nextNode, null); - }); - }); - - suite('Previous', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "start_block", - "message0": "", - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "fields_and_input", - "message0": "%1 hi %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_dummy" - }, - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "fields_and_input2", - "message0": "%1 %2 %3 hi %4 bye", - "args0": [ - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "input_statement", - "name": "NAME" - } - ], - "colour": 230, - "tooltip": "", - "helpUrl": "" - }]); - - var noPrevConnection = this.workspace.newBlock('start_block'); - var fieldsAndInputs = this.workspace.newBlock('fields_and_input'); - var fieldsAndInputs2 = this.workspace.newBlock('fields_and_input2'); - - this.blocks.noPrevConnection = noPrevConnection; - this.blocks.fieldsAndInputs = fieldsAndInputs; - this.blocks.fieldsAndInputs2 = fieldsAndInputs2; - }); - teardown(function() { - delete this.blocks.noPrevConnection; - delete this.blocks.fieldAndInputs; - delete this.blocks.fieldsAndInputs2; - - delete Blockly.Blocks['fields_and_input2']; - delete Blockly.Blocks['start_block']; - delete Blockly.Blocks['fields_and_input']; - }); - - test('fromPreviousToNull', function() { - var prevConnection = this.blocks.statementInput1.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(prevConnection); - var prevNode = node.prev(); - assertEquals(prevNode, null); - }); - test('fromPreviousToNext', function() { - var prevConnection = this.blocks.statementInput2.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(prevConnection); - var prevNode = node.prev(); - var nextConnection = this.blocks.statementInput1.nextConnection; - assertEquals(prevNode.getLocation(), nextConnection); - }); - test('fromPreviousToInput', function() { - var prevConnection = this.blocks.statementInput3.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(prevConnection); - var prevNode = node.prev(); - assertEquals(prevNode, null); - }); - test('fromBlockToPrevious', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.statementInput1); - var prevNode = node.prev(); - var prevConnection = this.blocks.statementInput1.previousConnection; - assertEquals(prevNode.getLocation(), prevConnection); - }); - test('fromBlockToNull', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.noPrevConnection); - var prevNode = node.prev(); - assertEquals(prevNode, null); - }); - test('fromBlockToOutput', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.fieldWithOutput); - var prevNode = node.prev(); - var outputConnection = this.blocks.fieldWithOutput.outputConnection; - assertEquals(prevNode.getLocation(), outputConnection); - }); - test('fromNextToBlock', function() { - var nextConnection = this.blocks.statementInput1.nextConnection; - var node = Blockly.ASTNode.createConnectionNode(nextConnection); - var prevNode = node.prev(); - assertEquals(prevNode.getLocation(), this.blocks.statementInput1); - }); - test('fromInputToField', function() { - var input = this.blocks.statementInput1.inputList[0]; - var node = Blockly.ASTNode.createInputNode(input); - var prevNode = node.prev(); - assertEquals(prevNode.getLocation(), input.fieldRow[1]); - }); - test('fromInputToNull', function() { - var input = this.blocks.fieldsAndInputs2.inputList[0]; - var node = Blockly.ASTNode.createInputNode(input); - var prevNode = node.prev(); - assertEquals(prevNode, null); - }); - test('fromInputToInput', function() { - var input = this.blocks.fieldsAndInputs2.inputList[2]; - var inputConnection = this.blocks.fieldsAndInputs2.inputList[1].connection; - var node = Blockly.ASTNode.createInputNode(input); - var prevNode = node.prev(); - assertEquals(prevNode.getLocation(), inputConnection); - }); - test('fromOutputToNull', function() { - var output = this.blocks.fieldWithOutput.outputConnection; - var node = Blockly.ASTNode.createConnectionNode(output); - var prevNode = node.prev(); - assertEquals(prevNode, null); - }); - test('fromFieldToNull', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var prevNode = node.prev(); - assertEquals(prevNode, null); - }); - test('fromFieldToInput', function() { - var field = this.blocks.fieldsAndInputs2.inputList[1].fieldRow[0]; - var inputConnection = this.blocks.fieldsAndInputs2.inputList[0].connection; - var node = Blockly.ASTNode.createFieldNode(field); - var prevNode = node.prev(); - assertEquals(prevNode.getLocation(), inputConnection); - }); - test('fromFieldToField', function() { - var field = this.blocks.fieldsAndInputs.inputList[1].fieldRow[0]; - var field2 = this.blocks.fieldsAndInputs.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var prevNode = node.prev(); - assertEquals(prevNode.getLocation(), field2); - }); - test('fromStackToStack', function() { - var node = Blockly.ASTNode.createStackNode(this.blocks.statementInput4); - var prevNode = node.prev(); - assertEquals(prevNode.getLocation(), this.blocks.statementInput1); - assertEquals(prevNode.getType(), Blockly.ASTNode.types.STACK); - }); - }); - - suite('In', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "dummy_input", - "message0": "Hello", - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "dummy_inputValue", - "message0": "Hello %1 %2", - "args0": [ - { - "type": "input_dummy" - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "colour": 230, - "tooltip": "", - "helpUrl": "" - }]); - var dummyInput = this.workspace.newBlock('dummy_input'); - var dummyInputValue = this.workspace.newBlock('dummy_inputValue'); - var fieldWithOutput2 = this.workspace.newBlock('field_input'); - - this.blocks.dummyInput = dummyInput; - this.blocks.dummyInputValue = dummyInputValue; - this.blocks.fieldWithOutput2 = fieldWithOutput2; - this.emptyWorkspace = new Blockly.Workspace(); - }); - teardown(function() { - delete this.blocks.dummyInput; - delete this.blocks.dummyInputValue; - delete this.blocks.fieldWithOutput2; - delete this.emptyWorkspace; - - delete Blockly.Blocks['dummy_input']; - delete Blockly.Blocks['dummy_inputValue']; - }); - - test('fromInputToOutput', function() { - var input = this.blocks.statementInput1.inputList[0]; - var node = Blockly.ASTNode.createInputNode(input); - var inNode = node.in(); - var outputConnection = this.blocks.fieldWithOutput.outputConnection; - assertEquals(inNode.getLocation(), outputConnection); - }); - test('fromInputToNull', function() { - var input = this.blocks.statementInput2.inputList[0]; - var node = Blockly.ASTNode.createInputNode(input); - var inNode = node.in(); - assertEquals(inNode, null); - }); - test('fromInputToPrevious', function() { - var input = this.blocks.statementInput2.inputList[1]; - var previousConnection = this.blocks.statementInput3.previousConnection; - var node = Blockly.ASTNode.createInputNode(input); - var inNode = node.in(); - assertEquals(inNode.getLocation(), previousConnection); - }); - test('fromBlockToInput', function() { - var input = this.blocks.valueInput.inputList[0]; - var node = Blockly.ASTNode.createBlockNode(this.blocks.valueInput); - var inNode = node.in(); - assertEquals(inNode.getLocation(), input.connection); - }); - test('fromBlockToField', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.statementInput1); - var inNode = node.in(); - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - assertEquals(inNode.getLocation(), field); - }); - test('fromBlockToPrevious', function() { - var prevConnection = this.blocks.statementInput4.previousConnection; - var node = Blockly.ASTNode.createStackNode(this.blocks.statementInput4); - var inNode = node.in(); - assertEquals(inNode.getLocation(), prevConnection); - assertEquals(inNode.getType(), Blockly.ASTNode.types.PREVIOUS); - }); - test('fromBlockToNull_DummyInput', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.dummyInput); - var inNode = node.in(); - assertEquals(inNode, null); - }); - test('fromBlockToInput_DummyInputValue', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.dummyInputValue); - var inputConnection = this.blocks.dummyInputValue.inputList[1].connection; - var inNode = node.in(); - assertEquals(inNode.getLocation(), inputConnection); - }); - test('fromOuputToNull', function() { - var output = this.blocks.fieldWithOutput.outputConnection; - var node = Blockly.ASTNode.createConnectionNode(output); - var inNode = node.in(); - assertEquals(inNode, null); - }); - test('fromFieldToNull', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var inNode = node.in(); - assertEquals(inNode, null); - }); - test('fromWorkspaceToStack', function() { - var coordinate = new Blockly.utils.Coordinate(100, 100); - var node = Blockly.ASTNode.createWorkspaceNode(this.workspace, coordinate); - var inNode = node.in(); - assertEquals(inNode.getLocation(), this.workspace.getTopBlocks()[0]); - assertEquals(inNode.getType(), Blockly.ASTNode.types.STACK); - }); - test('fromWorkspaceToNull', function() { - var coordinate = new Blockly.utils.Coordinate(100, 100); - var node = Blockly.ASTNode.createWorkspaceNode( - this.emptyWorkspace, coordinate); - var inNode = node.in(); - assertEquals(inNode, null); - }); - test('fromStackToPrevious', function() { - var node = Blockly.ASTNode.createStackNode(this.blocks.statementInput1); - var previous = this.blocks.statementInput1.previousConnection; - var inNode = node.in(); - assertEquals(inNode.getLocation(), previous); - assertEquals(inNode.getType(), Blockly.ASTNode.types.PREVIOUS); - }); - test('fromStackToOutput', function() { - var node = Blockly.ASTNode.createStackNode(this.blocks.fieldWithOutput2); - var output = this.blocks.fieldWithOutput2.outputConnection; - var inNode = node.in(); - assertEquals(inNode.getLocation(), output); - assertEquals(inNode.getType(), Blockly.ASTNode.types.OUTPUT); - }); - test('fromStackToBlock', function() { - var node = Blockly.ASTNode.createStackNode(this.blocks.dummyInput); - var inNode = node.in(); - assertEquals(inNode.getLocation(), this.blocks.dummyInput); - assertEquals(inNode.getType(), Blockly.ASTNode.types.BLOCK); - }); - }); - - suite('Out', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "start_block", - "message0": "", - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "output_next", - "message0": "", - "output": null, - "colour": 230, - "tooltip": "", - "helpUrl": "", - "nextStatement": null - }]); - var noPrevConnection = this.workspace.newBlock('start_block'); - var secondBlock = this.workspace.newBlock('input_statement'); - var outputNextBlock = this.workspace.newBlock('output_next'); - var fieldWithOutput2 = this.workspace.newBlock('field_input'); - - noPrevConnection.nextConnection.connect(secondBlock.previousConnection); - secondBlock.inputList[0].connection - .connect(outputNextBlock.outputConnection); - this.blocks.noPrevConnection = noPrevConnection; - this.blocks.secondBlock = secondBlock; - this.blocks.outputNextBlock = outputNextBlock; - this.blocks.fieldWithOutput2 = fieldWithOutput2; - }); - teardown(function() { - delete this.blocks.noPrevConnection; - delete this.blocks.secondBlock; - delete this.blocks.outputNextBlock; - delete this.blocks.fieldWithOutput2; - - delete Blockly.Blocks['start_block']; - delete Blockly.Blocks['output_next']; - }); - - test('fromInputToBlock', function() { - var input = this.blocks.statementInput1.inputList[0]; - var node = Blockly.ASTNode.createInputNode(input); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.BLOCK); - chai.assert.equal(outNode.getLocation(), this.blocks.statementInput1); - }); - test('fromOutputToInput', function() { - var output = this.blocks.fieldWithOutput.outputConnection; - var node = Blockly.ASTNode.createConnectionNode(output); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.INPUT); - chai.assert.equal(outNode.getLocation(), - this.blocks.statementInput1.inputList[0].connection); - }); - test('fromOutputToStack', function() { - var output = this.blocks.fieldWithOutput2.outputConnection; - var node = Blockly.ASTNode.createConnectionNode(output); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.fieldWithOutput2); - }); - test('fromFieldToBlock', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.BLOCK); - chai.assert.equal(outNode.getLocation(), this.blocks.statementInput1); - }); - test('fromStackToWorkspace', function() { - var stub = sinon.stub(this.blocks.statementInput4, - "getRelativeToSurfaceXY").returns({x: 10, y:10}); - var node = Blockly.ASTNode.createStackNode(this.blocks.statementInput4); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.WORKSPACE); - chai.assert.equal(outNode.wsCoordinate_.x, 10); - chai.assert.equal(outNode.wsCoordinate_.y, -10); - stub.restore(); - }); - test('fromPreviousToInput', function() { - var previous = this.blocks.statementInput3.previousConnection; - var inputConnection = this.blocks.statementInput2.inputList[1].connection; - var node = Blockly.ASTNode.createConnectionNode(previous); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.INPUT); - chai.assert.equal(outNode.getLocation(), inputConnection); - }); - test('fromPreviousToStack', function() { - var previous = this.blocks.statementInput2.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(previous); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.statementInput1); - }); - test('fromNextToInput', function() { - var next = this.blocks.statementInput3.nextConnection; - var inputConnection = this.blocks.statementInput2.inputList[1].connection; - var node = Blockly.ASTNode.createConnectionNode(next); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.INPUT); - chai.assert.equal(outNode.getLocation(), inputConnection); - }); - test('fromNextToStack', function() { - var next = this.blocks.statementInput2.nextConnection; - var node = Blockly.ASTNode.createConnectionNode(next); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.statementInput1); - }); - test('fromNextToStack_NoPreviousConnection', function() { - var next = this.blocks.secondBlock.nextConnection; - var node = Blockly.ASTNode.createConnectionNode(next); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.noPrevConnection); - }); - /** - * This is where there is a block with both an output connection and a - * next connection attached to an input. - */ - test('fromNextToInput_OutputAndPreviousConnection', function() { - var next = this.blocks.outputNextBlock.nextConnection; - var node = Blockly.ASTNode.createConnectionNode(next); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.INPUT); - chai.assert.equal(outNode.getLocation(), - this.blocks.secondBlock.inputList[0].connection); - }); - test('fromBlockToStack', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.statementInput2); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.statementInput1); - }); - test('fromBlockToInput', function() { - var input = this.blocks.statementInput2.inputList[1].connection; - var node = Blockly.ASTNode.createBlockNode(this.blocks.statementInput3); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.INPUT); - chai.assert.equal(outNode.getLocation(), input); - }); - test('fromTopBlockToStack', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.statementInput1); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.statementInput1); - }); - test('fromBlockToStack_OutputConnection', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.fieldWithOutput2); - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.STACK); - chai.assert.equal(outNode.getLocation(), this.blocks.fieldWithOutput2); - }); - test('fromBlockToInput_OutputConnection', function() { - var node = Blockly.ASTNode.createBlockNode(this.blocks.outputNextBlock); - var inputConnection = this.blocks.secondBlock.inputList[0].connection; - var outNode = node.out(); - chai.assert.equal(outNode.getType(), Blockly.ASTNode.types.INPUT); - chai.assert.equal(outNode.getLocation(), inputConnection); - }); - }); - - suite('createFunctions', function() { - test('createFieldNode', function() { - var field = this.blocks.statementInput1.inputList[0].fieldRow[0]; - var node = Blockly.ASTNode.createFieldNode(field); - assertEquals(node.getLocation(), field); - assertEquals(node.getType(), Blockly.ASTNode.types.FIELD); - assertFalse(node.isConnection()); - }); - test('createConnectionNode', function() { - var prevConnection = this.blocks.statementInput4.previousConnection; - var node = Blockly.ASTNode.createConnectionNode(prevConnection); - assertEquals(node.getLocation(), prevConnection); - assertEquals(node.getType(), Blockly.ASTNode.types.PREVIOUS); - assertTrue(node.isConnection()); - }); - test('createInputNode', function() { - var input = this.blocks.statementInput1.inputList[0]; - var node = Blockly.ASTNode.createInputNode(input); - assertEquals(node.getLocation(), input.connection); - assertEquals(node.getType(), Blockly.ASTNode.types.INPUT); - assertTrue(node.isConnection()); - }); - test('createWorkspaceNode', function() { - var coordinate = new Blockly.utils.Coordinate(100, 100); - var node = Blockly.ASTNode - .createWorkspaceNode(this.workspace, coordinate); - assertEquals(node.getLocation(), this.workspace); - assertEquals(node.getType(), Blockly.ASTNode.types.WORKSPACE); - assertEquals(node.getWsCoordinate(), coordinate); - assertFalse(node.isConnection()); - }); - test('createStatementConnectionNode', function() { - var nextConnection = this.blocks.statementInput1.inputList[1].connection; - var inputConnection = this.blocks.statementInput1.inputList[1].connection; - var node = Blockly.ASTNode.createConnectionNode(nextConnection); - assertEquals(node.getLocation(), inputConnection); - assertEquals(node.getType(), Blockly.ASTNode.types.INPUT); - assertTrue(node.isConnection()); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/block_test.js b/lib/blockly/tests/mocha/block_test.js deleted file mode 100644 index d0cc4f1..0000000 --- a/lib/blockly/tests/mocha/block_test.js +++ /dev/null @@ -1,1151 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Blocks', function() { - setup(function() { - this.workspace = new Blockly.Workspace(); - Blockly.defineBlocksWithJsonArray([ - { - "type": "stack_block", - "message0": "", - "previousStatement": null, - "nextStatement": null - }, - { - "type": "row_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null - }, - { - "type": "statement_block", - "message0": "%1", - "args0": [ - { - "type": "input_statement", - "name": "STATEMENT" - } - ], - "previousStatement": null, - "nextStatement": null - }]); - }); - teardown(function() { - this.workspace.dispose(); - delete Blockly.Blocks['stack_block']; - delete Blockly.Blocks['row_block']; - delete Blockly.Blocks['statement_block']; - }); - - suite('Connection Management', function() { - suite('Unplug', function() { - function assertUnpluggedNoheal(blocks) { - // A has nothing connected to it. - assertEquals(0, blocks.A.getChildren().length); - // B and C are still connected. - assertEquals(blocks.B, blocks.C.getParent()); - // B is the top of its stack. - assertNull(blocks.B.getParent()); - } - function assertUnpluggedHealed(blocks) { - // A and C are connected. - assertEquals(1, blocks.A.getChildren().length); - assertEquals(blocks.A, blocks.C.getParent()); - // B has nothing connected to it. - assertEquals(0, blocks.B.getChildren().length); - // B is the top of its stack. - assertNull(blocks.B.getParent()); - } - function assertUnpluggedHealFailed(blocks) { - // A has nothing connected to it. - assertEquals(0, blocks.A.getChildren().length); - // B has nothing connected to it. - assertEquals(0, blocks.B.getChildren().length); - // B is the top of its stack. - assertNull(blocks.B.getParent()); - // C is the top of its stack. - assertNull(blocks.C.getParent()); - } - - suite('Row', function() { - setup(function() { - var blockA = this.workspace.newBlock('row_block'); - var blockB = this.workspace.newBlock('row_block'); - var blockC = this.workspace.newBlock('row_block'); - - blockA.inputList[0].connection.connect(blockB.outputConnection); - blockB.inputList[0].connection.connect(blockC.outputConnection); - - assertEquals(blockB, blockC.getParent()); - - this.blocks = { - A: blockA, - B: blockB, - C: blockC - }; - }); - - test('Don\'t heal', function() { - this.blocks.B.unplug(false); - assertUnpluggedNoheal(this.blocks); - }); - test('Heal', function() { - this.blocks.B.unplug(true); - // Each block has only one input, and the types work. - assertUnpluggedHealed(this.blocks); - }); - test('Heal with bad checks', function() { - var blocks = this.blocks; - - // A and C can't connect, but both can connect to B. - blocks.A.inputList[0].connection.setCheck('type1'); - blocks.C.outputConnection.setCheck('type2'); - - // Each block has only one input, but the types don't work. - blocks.B.unplug(true); - assertUnpluggedHealFailed(blocks); - }); - test('A has multiple inputs', function() { - var blocks = this.blocks; - // Add extra input to parent - blocks.A.appendValueInput("INPUT").setCheck(null); - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - }); - test('B has multiple inputs', function() { - var blocks = this.blocks; - // Add extra input to middle block - blocks.B.appendValueInput("INPUT").setCheck(null); - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - }); - test('C has multiple inputs', function() { - var blocks = this.blocks; - // Add extra input to child block - blocks.C.appendValueInput("INPUT").setCheck(null); - // Child block input count doesn't matter. - blocks.B.unplug(true); - assertUnpluggedHealed(blocks); - }); - test('C is Shadow', function() { - var blocks = this.blocks; - blocks.C.setShadow(true); - blocks.B.unplug(true); - // Even though we're asking to heal, it will appear as if it has not - // healed because shadows always stay with the parent. - assertUnpluggedNoheal(blocks); - }); - }); - suite('Stack', function() { - setup(function() { - var blockA = this.workspace.newBlock('stack_block'); - var blockB = this.workspace.newBlock('stack_block'); - var blockC = this.workspace.newBlock('stack_block'); - - blockA.nextConnection.connect(blockB.previousConnection); - blockB.nextConnection.connect(blockC.previousConnection); - - assertEquals(blockB, blockC.getParent()); - - this.blocks = { - A: blockA, - B: blockB, - C: blockC - }; - }); - - test('Don\'t heal', function() { - this.blocks.B.unplug(); - assertUnpluggedNoheal(this.blocks); - }); - test('Heal', function() { - this.blocks.B.unplug(true); - assertUnpluggedHealed(this.blocks); - }); - test('Heal with bad checks', function() { - var blocks = this.blocks; - // A and C can't connect, but both can connect to B. - blocks.A.nextConnection.setCheck('type1'); - blocks.C.previousConnection.setCheck('type2'); - - // The types don't work. - blocks.B.unplug(true); - - assertUnpluggedHealFailed(blocks); - }); - test('C is Shadow', function() { - var blocks = this.blocks; - blocks.C.setShadow(true); - blocks.B.unplug(true); - // Even though we're asking to heal, it will appear as if it has not - // healed because shadows always stay with the parent. - assertUnpluggedNoheal(blocks); - }); - }); - }); - suite('Dispose', function() { - function assertDisposedNoheal(blocks) { - chai.assert.isFalse(blocks.A.disposed); - // A has nothing connected to it. - chai.assert.equal(0, blocks.A.getChildren().length); - // B is disposed. - chai.assert.isTrue(blocks.B.disposed); - // And C is disposed. - chai.assert.isTrue(blocks.C.disposed); - } - function assertDisposedHealed(blocks) { - chai.assert.isFalse(blocks.A.disposed); - chai.assert.isFalse(blocks.C.disposed); - // A and C are connected. - assertEquals(1, blocks.A.getChildren().length); - assertEquals(blocks.A, blocks.C.getParent()); - // B is disposed. - chai.assert.isTrue(blocks.B.disposed); - } - function assertDisposedHealFailed(blocks) { - chai.assert.isFalse(blocks.A.disposed); - chai.assert.isFalse(blocks.C.disposed); - // A has nothing connected to it. - chai.assert.equal(0, blocks.A.getChildren().length); - // B is disposed. - chai.assert.isTrue(blocks.B.disposed); - // C is the top of its stack. - assertNull(blocks.C.getParent()); - } - - suite('Row', function() { - setup(function() { - var blockA = this.workspace.newBlock('row_block'); - var blockB = this.workspace.newBlock('row_block'); - var blockC = this.workspace.newBlock('row_block'); - - blockA.inputList[0].connection.connect(blockB.outputConnection); - blockB.inputList[0].connection.connect(blockC.outputConnection); - - assertEquals(blockB, blockC.getParent()); - - this.blocks = { - A: blockA, - B: blockB, - C: blockC - }; - }); - - test('Don\'t heal', function() { - this.blocks.B.dispose(false); - assertDisposedNoheal(this.blocks); - }); - test('Heal', function() { - this.blocks.B.dispose(true); - // Each block has only one input, and the types work. - assertDisposedHealed(this.blocks); - }); - test('Heal with bad checks', function() { - var blocks = this.blocks; - - // A and C can't connect, but both can connect to B. - blocks.A.inputList[0].connection.setCheck('type1'); - blocks.C.outputConnection.setCheck('type2'); - - // Each block has only one input, but the types don't work. - blocks.B.dispose(true); - assertDisposedHealFailed(blocks); - }); - test('A has multiple inputs', function() { - var blocks = this.blocks; - // Add extra input to parent - blocks.A.appendValueInput("INPUT").setCheck(null); - blocks.B.dispose(true); - assertDisposedHealed(blocks); - }); - test('B has multiple inputs', function() { - var blocks = this.blocks; - // Add extra input to middle block - blocks.B.appendValueInput("INPUT").setCheck(null); - blocks.B.dispose(true); - assertDisposedHealed(blocks); - }); - test('C has multiple inputs', function() { - var blocks = this.blocks; - // Add extra input to child block - blocks.C.appendValueInput("INPUT").setCheck(null); - // Child block input count doesn't matter. - blocks.B.dispose(true); - assertDisposedHealed(blocks); - }); - test('C is Shadow', function() { - var blocks = this.blocks; - blocks.C.setShadow(true); - blocks.B.dispose(true); - // Even though we're asking to heal, it will appear as if it has not - // healed because shadows always get destroyed. - assertDisposedNoheal(blocks); - }); - }); - suite('Stack', function() { - setup(function() { - var blockA = this.workspace.newBlock('stack_block'); - var blockB = this.workspace.newBlock('stack_block'); - var blockC = this.workspace.newBlock('stack_block'); - - blockA.nextConnection.connect(blockB.previousConnection); - blockB.nextConnection.connect(blockC.previousConnection); - - assertEquals(blockB, blockC.getParent()); - - this.blocks = { - A: blockA, - B: blockB, - C: blockC - }; - }); - - test('Don\'t heal', function() { - this.blocks.B.dispose(); - assertDisposedNoheal(this.blocks); - }); - test('Heal', function() { - this.blocks.B.dispose(true); - assertDisposedHealed(this.blocks); - }); - test('Heal with bad checks', function() { - var blocks = this.blocks; - // A and C can't connect, but both can connect to B. - blocks.A.nextConnection.setCheck('type1'); - blocks.C.previousConnection.setCheck('type2'); - - // The types don't work. - blocks.B.dispose(true); - - assertDisposedHealFailed(blocks); - }); - test('C is Shadow', function() { - var blocks = this.blocks; - blocks.C.setShadow(true); - blocks.B.dispose(true); - // Even though we're asking to heal, it will appear as if it has not - // healed because shadows always get destroyed. - assertDisposedNoheal(blocks); - }); - }); - }); - suite('Remove Input', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": "value_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "VALUE" - } - ] - }, - { - "type": "statement_block", - "message0": "%1", - "args0": [ - { - "type": "input_statement", - "name": "STATEMENT" - } - ] - }, - ]); - }); - teardown(function() { - delete Blockly.Blocks['value_block']; - delete Blockly.Blocks['statement_block']; - }); - - suite('Value', function() { - setup(function() { - this.blockA = this.workspace.newBlock('value_block'); - }); - - test('No Connected', function() { - this.blockA.removeInput('VALUE'); - chai.assert.isNull(this.blockA.getInput('VALUE')); - }); - test('Block Connected', function() { - var blockB = this.workspace.newBlock('row_block'); - this.blockA.getInput('VALUE').connection - .connect(blockB.outputConnection); - - this.blockA.removeInput('VALUE'); - chai.assert.isFalse(blockB.disposed); - chai.assert.equal(this.blockA.getChildren().length, 0); - }); - test('Shadow Connected', function() { - var blockB = this.workspace.newBlock('row_block'); - blockB.setShadow(true); - this.blockA.getInput('VALUE').connection - .connect(blockB.outputConnection); - - this.blockA.removeInput('VALUE'); - chai.assert.isTrue(blockB.disposed); - chai.assert.equal(this.blockA.getChildren().length, 0); - }); - }); - suite('Statement', function() { - setup(function() { - this.blockA = this.workspace.newBlock('statement_block'); - }); - - test('No Connected', function() { - this.blockA.removeInput('STATEMENT'); - chai.assert.isNull(this.blockA.getInput('STATEMENT')); - }); - test('Block Connected', function() { - var blockB = this.workspace.newBlock('stack_block'); - this.blockA.getInput('STATEMENT').connection - .connect(blockB.previousConnection); - - this.blockA.removeInput('STATEMENT'); - chai.assert.isFalse(blockB.disposed); - chai.assert.equal(this.blockA.getChildren().length, 0); - }); - test('Shadow Connected', function() { - var blockB = this.workspace.newBlock('stack_block'); - blockB.setShadow(true); - this.blockA.getInput('STATEMENT').connection - .connect(blockB.previousConnection); - - this.blockA.removeInput('STATEMENT'); - chai.assert.isTrue(blockB.disposed); - chai.assert.equal(this.blockA.getChildren().length, 0); - }); - }); - }); - suite('Connection Tracking', function() { - setup(function() { - this.workspace.dispose(); - // The new rendered workspace will get disposed by the parent teardown. - this.workspace = Blockly.inject('blocklyDiv'); - - this.getInputs = function() { - return this.workspace - .connectionDBList[Blockly.INPUT_VALUE].connections_; - }; - this.getOutputs = function() { - return this.workspace - .connectionDBList[Blockly.OUTPUT_VALUE].connections_; - }; - this.getNext = function() { - return this.workspace - .connectionDBList[Blockly.NEXT_STATEMENT].connections_; - }; - this.getPrevious = function() { - return this.workspace - .connectionDBList[Blockly.PREVIOUS_STATEMENT].connections_; - }; - - this.assertConnectionsEmpty = function() { - chai.assert.isEmpty(this.getInputs()); - chai.assert.isEmpty(this.getOutputs()); - chai.assert.isEmpty(this.getNext()); - chai.assert.isEmpty(this.getPrevious()); - }; - - this.clock = sinon.useFakeTimers(); - }); - teardown(function() { - this.clock.restore(); - }); - suite('Deserialization', function() { - test('Stack', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - }); - test('Multi-Stack', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 3); - }); - test('Collapsed Stack', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - }); - test('Collapsed Multi-Stack', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 3); - }); - test('Row', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 1); - }); - test('Multi-Row', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - }); - test('Collapsed Row', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 0); - }); - test('Collapsed Multi-Row', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 0); - }); - test('Collapsed Multi-Row Middle', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 2); - chai.assert.equal(this.getInputs().length, 1); - }); - test('Statement', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 2); - }); - test('Multi-Statement', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - }); - test('Collapsed Statement', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - }); - test('Collapsed Multi-Statement', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - }); - test('Collapsed Multi-Statement Middle', function() { - Blockly.Xml.appendDomToWorkspace(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 2); - chai.assert.equal(this.getNext().length, 3); - }); - }); - suite('Programmatic Block Creation', function() { - test('Stack', function() { - var block = this.workspace.newBlock('stack_block'); - this.assertConnectionsEmpty(); - block.initSvg(); - block.render(); - - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - }); - test('Row', function() { - var block = this.workspace.newBlock('row_block'); - this.assertConnectionsEmpty(); - block.initSvg(); - block.render(); - - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 1); - }); - test('Statement', function() { - var block = this.workspace.newBlock('statement_block'); - this.assertConnectionsEmpty(); - block.initSvg(); - block.render(); - - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 2); - }); - }); - suite('setCollapsed', function() { - test('Stack', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - - block.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - - block.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - }); - test('Multi-Stack', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 3); - - block.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 3); - - block.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 3); - }); - test('Row', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 1); - - block.setCollapsed(true); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 0); - - block.setCollapsed(false); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 1); - }); - test('Multi-Row', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - - block.setCollapsed(true); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 0); - - block.setCollapsed(false); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - }); - test('Multi-Row Middle', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - - block = block.getInputTargetBlock('INPUT'); - block.setCollapsed(true); - chai.assert.equal(this.getOutputs().length, 2); - chai.assert.equal(this.getInputs().length, 1); - - block.setCollapsed(false); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - }); - test('Multi-Row Double Collapse', function() { - // Collapse middle -> Collapse top -> - // Uncollapse top -> Uncollapse middle - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - - var middleBlock = block.getInputTargetBlock('INPUT'); - middleBlock.setCollapsed(true); - chai.assert.equal(this.getOutputs().length, 2); - chai.assert.equal(this.getInputs().length, 1); - - block.setCollapsed(true); - chai.assert.equal(this.getOutputs().length, 1); - chai.assert.equal(this.getInputs().length, 0); - - block.setCollapsed(false); - chai.assert.equal(this.getOutputs().length, 2); - chai.assert.equal(this.getInputs().length, 1); - - middleBlock.setCollapsed(false); - chai.assert.equal(this.getOutputs().length, 3); - chai.assert.equal(this.getInputs().length, 3); - }); - test('Statement', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 2); - - block.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - - block.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 2); - }); - test('Multi-Statement', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - - block.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - - block.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - }); - test('Multi-Statement Middle', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - - block = block.getInputTargetBlock('STATEMENT'); - block.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 2); - chai.assert.equal(this.getNext().length, 3); - - block.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - }); - test('Multi-Statement Double Collapse', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - this.assertConnectionsEmpty(); - this.clock.tick(1); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - - var middleBlock = block.getInputTargetBlock('STATEMENT'); - middleBlock.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 2); - chai.assert.equal(this.getNext().length, 3); - - block.setCollapsed(true); - chai.assert.equal(this.getPrevious().length, 1); - chai.assert.equal(this.getNext().length, 1); - - block.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 2); - chai.assert.equal(this.getNext().length, 3); - - middleBlock.setCollapsed(false); - chai.assert.equal(this.getPrevious().length, 3); - chai.assert.equal(this.getNext().length, 6); - }); - }); - }); - }); - suite('Comments', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": "empty_block", - "message0": "", - "args0": [] - }, - ]); - this.eventSpy = sinon.spy(Blockly.Events, 'fire'); - }); - teardown(function() { - delete Blockly.Blocks['empty_block']; - this.eventSpy.restore(); - }); - suite('Set/Get Text', function() { - function assertCommentEvent(eventSpy, oldValue, newValue) { - var calls = eventSpy.getCalls(); - var event = calls[calls.length - 1].args[0]; - chai.assert.equal(event.type, Blockly.Events.BLOCK_CHANGE); - chai.assert.equal(event.element, 'comment'); - chai.assert.equal(event.oldValue, oldValue); - chai.assert.equal(event.newValue, newValue); - } - function assertNoCommentEvent(eventSpy) { - var calls = eventSpy.getCalls(); - var event = calls[calls.length - 1].args[0]; - chai.assert.notEqual(event.type, Blockly.Events.BLOCK_CHANGE); - } - suite('Headless', function() { - setup(function() { - this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - }); - test('Text', function() { - this.block.setCommentText('test text'); - chai.assert.equal(this.block.getCommentText(), 'test text'); - assertCommentEvent(this.eventSpy, null, 'test text'); - }); - test('Text Empty', function() { - this.block.setCommentText(''); - chai.assert.equal(this.block.getCommentText(), ''); - assertCommentEvent(this.eventSpy, null, ''); - }); - test('Text Null', function() { - this.block.setCommentText(null); - chai.assert.equal(this.block.getCommentText(), null); - assertNoCommentEvent(this.eventSpy); - }); - test('Text -> Null', function() { - this.block.setCommentText('first text'); - - this.block.setCommentText(null); - chai.assert.equal(this.block.getCommentText(), null); - assertCommentEvent(this.eventSpy, 'first text', null); - }); - }); - suite('Rendered', function() { - setup(function() { - this.workspace = Blockly.inject('blocklyDiv', { - comments: true, - scrollbars: true - }); - this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - }); - teardown(function() { - this.workspace.dispose(); - }); - test('Text', function() { - this.block.setCommentText('test text'); - chai.assert.equal(this.block.getCommentText(), 'test text'); - assertCommentEvent(this.eventSpy, null, 'test text'); - }); - test('Text Empty', function() { - this.block.setCommentText(''); - chai.assert.equal(this.block.getCommentText(), ''); - assertCommentEvent(this.eventSpy, null, ''); - }); - test('Text Null', function() { - this.block.setCommentText(null); - chai.assert.equal(this.block.getCommentText(), null); - assertNoCommentEvent(this.eventSpy); - }); - test('Text -> Null', function() { - this.block.setCommentText('first text'); - - this.block.setCommentText(null); - chai.assert.equal(this.block.getCommentText(), null); - assertCommentEvent(this.eventSpy, 'first text', null); - }); - test('Set While Visible - Editable', function() { - this.block.setCommentText('test1'); - var icon = this.block.getCommentIcon(); - icon.setVisible(true); - - this.block.setCommentText('test2'); - chai.assert.equal(this.block.getCommentText(), 'test2'); - assertCommentEvent(this.eventSpy, 'test1', 'test2'); - chai.assert.equal(icon.textarea_.value, 'test2'); - }); - test('Set While Visible - NonEditable', function() { - this.block.setCommentText('test1'); - var editableStub = sinon.stub(this.block, 'isEditable').returns(false); - var icon = this.block.getCommentIcon(); - icon.setVisible(true); - - this.block.setCommentText('test2'); - chai.assert.equal(this.block.getCommentText(), 'test2'); - assertCommentEvent(this.eventSpy, 'test1', 'test2'); - chai.assert.equal(icon.paragraphElement_.firstChild.textContent, - 'test2'); - - editableStub.restore(); - }); - test('Get Text While Editing', function() { - this.block.setCommentText('test1'); - var icon = this.block.getCommentIcon(); - icon.setVisible(true); - icon.textarea_.value = 'test2'; - icon.textarea_.dispatchEvent(new Event('input')); - - chai.assert.equal(this.block.getCommentText(), 'test2'); - }); - }); - }); - }); - suite('Icon Management', function() { - suite('Bubbles and Collapsing', function() { - setup(function() { - this.workspace.dispose(); - this.workspace = Blockly.inject('blocklyDiv'); - }); - teardown(function() { - this.workspace.dispose(); - }); - - test('Has Icon', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - block.setCommentText('test text'); - block.comment.setVisible(true); - chai.assert.isTrue(block.comment.isVisible()); - block.setCollapsed(true); - chai.assert.isFalse(block.comment.isVisible()); - }); - test('Child Has Icon', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - var childBlock = block.getInputTargetBlock('STATEMENT'); - childBlock.setCommentText('test text'); - childBlock.comment.setVisible(true); - chai.assert.isTrue(childBlock.comment.isVisible()); - block.setCollapsed(true); - chai.assert.isFalse(childBlock.comment.isVisible()); - }); - test('Next Block Has Icon', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - var nextBlock = block.getNextBlock(); - nextBlock.setCommentText('test text'); - nextBlock.comment.setVisible(true); - chai.assert.isTrue(nextBlock.comment.isVisible()); - block.setCollapsed(true); - chai.assert.isTrue(nextBlock.comment.isVisible()); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/comment_test.js b/lib/blockly/tests/mocha/comment_test.js deleted file mode 100644 index 901edd6..0000000 --- a/lib/blockly/tests/mocha/comment_test.js +++ /dev/null @@ -1,141 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Comments', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": "empty_block", - "message0": "", - "args0": [] - }, - ]); - - this.workspace = Blockly.inject('blocklyDiv', { - comments: true, - scrollbars: true - }); - this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - this.comment = new Blockly.Comment(this.block); - this.comment.computeIconLocation(); - }); - teardown(function() { - delete Blockly.Blocks['empty_block']; - this.workspace.dispose(); - }); - suite('Visibility and Editability', function() { - setup(function() { - this.comment.setText('test text'); - this.eventSpy = sinon.stub(Blockly.Events, 'fire'); - }); - teardown(function() { - this.eventSpy.restore(); - }); - function assertEvent(eventSpy, type, element, oldValue, newValue) { - var calls = eventSpy.getCalls(); - var event = calls[calls.length - 1].args[0]; - chai.assert.equal(event.type, type); - chai.assert.equal(event.element, element); - chai.assert.equal(event.oldValue, oldValue); - chai.assert.equal(event.newValue, newValue); - } - function assertEditable(comment) { - chai.assert.isNotOk(comment.paragraphElement_); - chai.assert.isOk(comment.textarea_); - chai.assert.equal(comment.textarea_.value, 'test text'); - } - function assertNotEditable(comment) { - chai.assert.isNotOk(comment.textarea_); - chai.assert.isOk(comment.paragraphElement_); - chai.assert.equal(comment.paragraphElement_.firstChild.textContent, - 'test text'); - } - test('Editable', function() { - this.comment.setVisible(true); - chai.assert.isTrue(this.comment.isVisible()); - assertEditable(this.comment); - assertEvent(this.eventSpy, Blockly.Events.UI, 'commentOpen', false, true); - }); - test('Not Editable', function() { - var editableStub = sinon.stub(this.block, 'isEditable').returns(false); - - this.comment.setVisible(true); - chai.assert.isTrue(this.comment.isVisible()); - assertNotEditable(this.comment); - assertEvent(this.eventSpy, Blockly.Events.UI, 'commentOpen', false, true); - - editableStub.restore(); - }); - test('Editable -> Not Editable', function() { - this.comment.setVisible(true); - var editableStub = sinon.stub(this.block, 'isEditable').returns(false); - - this.comment.updateEditable(); - chai.assert.isTrue(this.comment.isVisible()); - assertNotEditable(this.comment); - assertEvent(this.eventSpy, Blockly.Events.UI, 'commentOpen', false, true); - - editableStub.restore(); - }); - test('Not Editable -> Editable', function() { - var editableStub = sinon.stub(this.block, 'isEditable').returns(false); - this.comment.setVisible(true); - editableStub.returns(true); - - this.comment.updateEditable(); - chai.assert.isTrue(this.comment.isVisible()); - assertEditable(this.comment); - assertEvent(this.eventSpy, Blockly.Events.UI, 'commentOpen', false, true); - - editableStub.restore(); - }); - }); - suite('Set/Get Bubble Size', function() { - function assertBubbleSize(comment, height, width) { - var size = comment.getBubbleSize(); - chai.assert.equal(size.height, height); - chai.assert.equal(size.width, width); - } - function assertBubbleSizeDefault(comment) { - assertBubbleSize(comment, 80, 160); - } - test('Set Size While Visible', function() { - this.comment.setVisible(true); - var bubbleSizeSpy = sinon.spy(this.comment.bubble_, 'setBubbleSize'); - - assertBubbleSizeDefault(this.comment); - this.comment.setBubbleSize(100, 100); - assertBubbleSize(this.comment, 100, 100); - chai.assert(bubbleSizeSpy.calledOnce); - - this.comment.setVisible(false); - assertBubbleSize(this.comment, 100, 100); - - bubbleSizeSpy.restore(); - }); - test('Set Size While Invisible', function() { - assertBubbleSizeDefault(this.comment); - this.comment.setBubbleSize(100, 100); - assertBubbleSize(this.comment, 100, 100); - - this.comment.setVisible(true); - assertBubbleSize(this.comment, 100, 100); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/connection_db_test.js b/lib/blockly/tests/mocha/connection_db_test.js deleted file mode 100644 index e918ef8..0000000 --- a/lib/blockly/tests/mocha/connection_db_test.js +++ /dev/null @@ -1,279 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Connection Database', function() { - setup(function() { - this.database = new Blockly.ConnectionDB(); - - this.assertOrder = function() { - var length = this.database.connections_.length; - for (var i = 1; i < length; i++) { - chai.assert.isAtMost(this.database.connections_[i - 1].y_, - this.database.connections_[i].y_); - } - }; - this.createConnection = function(x, y, type, opt_database) { - var workspace = { - connectionDBList: [] - }; - workspace.connectionDBList[type] = opt_database || this.database; - var connection = new Blockly.RenderedConnection( - {workspace: workspace}, type); - connection.x_ = x; - connection.y_ = y; - return connection; - }; - this.createSimpleTestConnections = function() { - for (var i = 0; i < 10; i++) { - var connection = this.createConnection(0, i, Blockly.PREVIOUS_STATEMENT); - this.database.addConnection(connection, i); - } - }; - }); - // TODO: Re-enable once flyout checking is handled by the connection - // (better yet - let it be handled by the flyout, but that's out of the - // scope of this). - test.skip('Add Connection', function() { - var y2 = {y_: 2}; - var y4 = {y_: 4}; - var y1 = {y_: 1}; - var y3a = {y_: 3}; - var y3b = {y_: 3}; - - this.database.addConnection(y2, 2); - chai.assert.sameOrderedMembers( - this.database.connections_, [y2]); - - this.database.addConnection(y4, 4); - chai.assert.sameOrderedMembers( - this.database.connections_, [y2, y4]); - - this.database.addConnection(y1, 1); - chai.assert.sameOrderedMembers( - this.database.connections_, [y1, y2, y4]); - - this.database.addConnection(y3a, 3); - chai.assert.sameOrderedMembers( - this.database.connections_, [y1, y2, y3a, y4]); - - this.database.addConnection(y3b, 3); - chai.assert.sameOrderedMembers( - this.database.connections_, [y1, y2, y3b, y3a, y4]); - - }); - test.skip('Remove Connection', function() { - var y2 = {y_: 2}; - var y4 = {y_: 4}; - var y1 = {y_: 1}; - var y3a = {y_: 3}; - var y3b = {y_: 3}; - var y3c = {y_: 3}; - - this.database.addConnection(y2, 2); - this.database.addConnection(y4, 4); - this.database.addConnection(y1, 1); - this.database.addConnection(y3c, 3); - this.database.addConnection(y3b, 3); - this.database.addConnection(y3a, 3); - - chai.assert.sameOrderedMembers( - this.database.connections_, [y1, y2, y3a, y3b, y3c, y4]); - - this.database.removeConnection(y2, 2); - chai.assert.sameOrderedMembers( - this.database.connections_, [y1, y3a, y3b, y3c, y4]); - - this.database.removeConnection(y4, 4); - chai.assert.sameOrderedMembers( - this.database.connections_, [y1, y3a, y3b, y3c]); - - this.database.removeConnection(y1, 1); - chai.assert.sameOrderedMembers( - this.database.connections_, [y3a, y3b, y3c]); - - this.database.removeConnection(y3a, 3); - chai.assert.sameOrderedMembers( - this.database.connections_, [y3b, y3c]); - - this.database.removeConnection(y3c, 3); - chai.assert.sameOrderedMembers( - this.database.connections_, [y3b]); - - this.database.removeConnection(y3b, 3); - chai.assert.isEmpty(this.database.connections_); - }); - suite('Get Neighbors', function() { - test('Empty Database', function() { - var connection = this.createConnection(0, 0, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - chai.assert.isEmpty(this.database.getNeighbours(connection), 100); - }); - test('Block At Top', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createConnection(0, 0, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - var neighbors = this.database.getNeighbours(checkConnection, 4); - chai.assert.sameMembers(neighbors, this.database.connections_.slice(0, 5)); - }); - test('Block In Middle', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createConnection(0, 4, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - var neighbors = this.database.getNeighbours(checkConnection, 2); - chai.assert.sameMembers(neighbors, this.database.connections_.slice(2, 7)); - }); - test('Block At End', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createConnection(0, 9, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - var neighbors = this.database.getNeighbours(checkConnection, 4); - chai.assert.sameMembers(neighbors, this.database.connections_.slice(5, 10)); - }); - test('Out of Range X', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createConnection(10, 9, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - var neighbors = this.database.getNeighbours(checkConnection, 4); - chai.assert.isEmpty(neighbors); - }); - test('Out of Range Y', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createConnection(0, 19, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - var neighbors = this.database.getNeighbours(checkConnection, 4); - chai.assert.isEmpty(neighbors); - }); - test('Out of Range Diagonal', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createConnection(-2, -2, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - var neighbors = this.database.getNeighbours(checkConnection, 2); - chai.assert.isEmpty(neighbors); - }); - }); - suite('Ordering', function() { - test('Simple', function() { - for (var i = 0; i < 10; i++) { - var connection = this.createConnection(0, i, Blockly.NEXT_STATEMENT); - this.database.addConnection(connection, i); - } - this.assertOrder(); - }); - test('Quasi-Random', function() { - var xCoords = [-29, -47, -77, 2, 43, 34, -59, -52, -90, -36, -91, 38, - 87, -20, 60, 4, -57, 65, -37, -81, 57, 58, -96, 1, 67, -79, 34, 93, - -90, -99, -62, 4, 11, -36, -51, -72, 3, -50, -24, -45, -92, -38, 37, - 24, -47, -73, 79, -20, 99, 43, -10, -87, 19, 35, -62, -36, 49, 86, - -24, -47, -89, 33, -44, 25, -73, -91, 85, 6, 0, 89, -94, 36, -35, 84, - -9, 96, -21, 52, 10, -95, 7, -67, -70, 62, 9, -40, -95, -9, -94, 55, - 57, -96, 55, 8, -48, -57, -87, 81, 23, 65]; - var yCoords = [-81, 82, 5, 47, 30, 57, -12, 28, 38, 92, -25, -20, 23, - -51, 73, -90, 8, 28, -51, -15, 81, -60, -6, -16, 77, -62, -42, -24, - 35, 95, -46, -7, 61, -16, 14, 91, 57, -38, 27, -39, 92, 47, -98, 11, - -33, -72, 64, 38, -64, -88, -35, -59, -76, -94, 45, -25, -100, -95, - 63, -97, 45, 98, 99, 34, 27, 52, -18, -45, 66, -32, -38, 70, -73, - -23, 5, -2, -13, -9, 48, 74, -97, -11, 35, -79, -16, -77, 83, -57, - -53, 35, -44, 100, -27, -15, 5, 39, 33, -19, -20, -95]; - - var length = xCoords.length; - for (var i = 0; i < length; i++) { - var connection = this.createConnection(xCoords[i], yCoords[i], - Blockly.NEXT_STATEMENT); - this.database.addConnection(connection, yCoords[i]); - } - this.assertOrder(); - }); - }); - // Does not cover logic for isConnectionAllowed - suite('Search For Closest', function() { - setup(function() { - this.allowedStub = null; - - this.createCheckConnection = function(x, y) { - var checkConnection = this.createConnection(x, y, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - this.allowedStub = sinon.stub(checkConnection, 'isConnectionAllowed') - .callsFake(function(candidate, maxRadius) { - if (this.distanceFrom(candidate) > maxRadius) { - return false; - } - // Ignore non-distance parameters. - return true; - }); - return checkConnection; - }; - }); - teardown(function() { - if (this.allowedStub) { - this.allowedStub.restore(); - } - }); - test('Empty Database', function() { - var checkConnection = this.createConnection(0, 0, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - chai.assert.isNull(this.database.searchForClosest( - checkConnection, 100, {x: 0, y: 0}).connection); - }); - test('Too Far', function() { - var connection = this.createConnection(0, 100, Blockly.PREVIOUS_STATEMENT); - this.database.addConnection(connection, 100); - - var checkConnection = this.createConnection(0, 0, Blockly.NEXT_STATEMENT, - new Blockly.ConnectionDB()); - chai.assert.isNull(this.database.searchForClosest( - checkConnection, 50, {x: 0, y: 0}).connection); - }); - test('Single in Range', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createCheckConnection(0, 14); - - var last = this.database.connections_[9]; - var closest = this.database.searchForClosest( - checkConnection, 5, {x: 0, y: 0}).connection; - chai.assert.equal(last, closest); - }); - test('Many in Range', function() { - this.createSimpleTestConnections(); - - var checkConnection = this.createCheckConnection(0, 10); - - var last = this.database.connections_[9]; - var closest = this.database.searchForClosest( - checkConnection, 5, {x: 0, y: 0}).connection; - chai.assert.equal(last, closest); - }); - test('No Y-Coord Priority', function() { - var connection1 = this.createConnection(6, 6, Blockly.PREVIOUS_STATEMENT); - this.database.addConnection(connection1, 6); - var connection2 = this.createConnection(5, 5, Blockly.PREVIOUS_STATEMENT); - this.database.addConnection(connection2, 5); - - var checkConnection = this.createCheckConnection(4, 6); - - var closest = this.database.searchForClosest( - checkConnection, 3, {x: 0, y: 0}).connection; - chai.assert.equal(connection2, closest); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/connection_test.js b/lib/blockly/tests/mocha/connection_test.js deleted file mode 100644 index 0e87764..0000000 --- a/lib/blockly/tests/mocha/connection_test.js +++ /dev/null @@ -1,198 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Connections', function() { - suite('Can Connect With Reason', function() { - test('Target Null', function() { - var connection = new Blockly.Connection({}, Blockly.INPUT_VALUE); - chai.assert.equal(connection.canConnectWithReason_(null), - Blockly.Connection.REASON_TARGET_NULL); - }); - test('Target Self', function() { - var block = {workspace: 1}; - var connection1 = new Blockly.Connection(block, Blockly.INPUT_VALUE); - var connection2 = new Blockly.Connection(block, Blockly.OUTPUT_VALUE); - - chai.assert.equal(connection1.canConnectWithReason_(connection2), - Blockly.Connection.REASON_SELF_CONNECTION); - }); - test('Different Workspaces', function() { - var connection1 = new Blockly.Connection( - {workspace: 1}, Blockly.INPUT_VALUE); - var connection2 = new Blockly.Connection( - {workspace: 2}, Blockly.OUTPUT_VALUE); - - chai.assert.equal(connection1.canConnectWithReason_(connection2), - Blockly.Connection.REASON_DIFFERENT_WORKSPACES); - }); - suite('Types', function() { - setup(function() { - // We have to declare each separately so that the connections belong - // on different blocks. - var prevBlock = { isShadow: function() {}}; - var nextBlock = { isShadow: function() {}}; - var outBlock = { isShadow: function() {}}; - var inBlock = { isShadow: function() {}}; - this.previous = new Blockly.Connection( - prevBlock, Blockly.PREVIOUS_STATEMENT); - this.next = new Blockly.Connection( - nextBlock, Blockly.NEXT_STATEMENT); - this.output = new Blockly.Connection( - outBlock, Blockly.OUTPUT_VALUE); - this.input = new Blockly.Connection( - inBlock, Blockly.INPUT_VALUE); - }); - test('Previous, Next', function() { - chai.assert.equal(this.previous.canConnectWithReason_(this.next), - Blockly.Connection.CAN_CONNECT); - }); - test('Previous, Output', function() { - chai.assert.equal(this.previous.canConnectWithReason_(this.output), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Previous, Input', function() { - chai.assert.equal(this.previous.canConnectWithReason_(this.input), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Next, Previous', function() { - chai.assert.equal(this.next.canConnectWithReason_(this.previous), - Blockly.Connection.CAN_CONNECT); - }); - test('Next, Output', function() { - chai.assert.equal(this.next.canConnectWithReason_(this.output), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Next, Input', function() { - chai.assert.equal(this.next.canConnectWithReason_(this.input), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Output, Previous', function() { - chai.assert.equal(this.output.canConnectWithReason_(this.previous), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Output, Next', function() { - chai.assert.equal(this.output.canConnectWithReason_(this.next), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Output, Input', function() { - chai.assert.equal(this.output.canConnectWithReason_(this.input), - Blockly.Connection.CAN_CONNECT); - }); - test('Input, Previous', function() { - chai.assert.equal(this.input.canConnectWithReason_(this.previous), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Input, Next', function() { - chai.assert.equal(this.input.canConnectWithReason_(this.next), - Blockly.Connection.REASON_WRONG_TYPE); - }); - test('Input, Output', function() { - chai.assert.equal(this.input.canConnectWithReason_(this.output), - Blockly.Connection.CAN_CONNECT); - }); - }); - suite('Shadows', function() { - test('Previous Shadow', function() { - var prevBlock = { isShadow: function() { return true; }}; - var nextBlock = { isShadow: function() { return false; }}; - var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT); - var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT); - - chai.assert.equal(prev.canConnectWithReason_(next), - Blockly.Connection.CAN_CONNECT); - }); - test('Next Shadow', function() { - var prevBlock = { isShadow: function() { return false; }}; - var nextBlock = { isShadow: function() { return true; }}; - var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT); - var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT); - - chai.assert.equal(prev.canConnectWithReason_(next), - Blockly.Connection.REASON_SHADOW_PARENT); - }); - test('Prev and Next Shadow', function() { - var prevBlock = { isShadow: function() { return true; }}; - var nextBlock = { isShadow: function() { return true; }}; - var prev = new Blockly.Connection(prevBlock, Blockly.PREVIOUS_STATEMENT); - var next = new Blockly.Connection(nextBlock, Blockly.NEXT_STATEMENT); - - chai.assert.equal(prev.canConnectWithReason_(next), - Blockly.Connection.CAN_CONNECT); - }); - test('Output Shadow', function() { - var outBlock = { isShadow: function() { return true; }}; - var inBlock = { isShadow: function() { return false; }}; - var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE); - var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE); - - chai.assert.equal(outCon.canConnectWithReason_(inCon), - Blockly.Connection.CAN_CONNECT); - }); - test('Input Shadow', function() { - var outBlock = { isShadow: function() { return false; }}; - var inBlock = { isShadow: function() { return true; }}; - var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE); - var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE); - - chai.assert.equal(outCon.canConnectWithReason_(inCon), - Blockly.Connection.REASON_SHADOW_PARENT); - }); - test('Output and Input Shadow', function() { - var outBlock = { isShadow: function() { return true; }}; - var inBlock = { isShadow: function() { return true; }}; - var outCon = new Blockly.Connection(outBlock, Blockly.OUTPUT_VALUE); - var inCon = new Blockly.Connection(inBlock, Blockly.INPUT_VALUE); - - chai.assert.equal(outCon.canConnectWithReason_(inCon), - Blockly.Connection.CAN_CONNECT); - }); - }); - }); - suite('Check Types', function() { - setup(function() { - this.con1 = new Blockly.Connection({}, Blockly.PREVIOUS_STATEMENT); - this.con2 = new Blockly.Connection({}, Blockly.NEXT_STATEMENT); - }); - test('No Types', function() { - chai.assert.isTrue(this.con1.checkType_(this.con2)); - }); - test('Same Type', function() { - this.con1.setCheck('type1'); - this.con2.setCheck('type1'); - chai.assert.isTrue(this.con1.checkType_(this.con2)); - }); - test('Same Types', function() { - this.con1.setCheck(['type1', 'type2']); - this.con2.setCheck(['type1', 'type2']); - chai.assert.isTrue(this.con1.checkType_(this.con2)); - }); - test('Single Same Type', function() { - this.con1.setCheck(['type1', 'type2']); - this.con2.setCheck(['type1', 'type3']); - chai.assert.isTrue(this.con1.checkType_(this.con2)); - }); - test('One Typed, One Promiscuous', function() { - this.con1.setCheck('type1'); - chai.assert.isTrue(this.con1.checkType_(this.con2)); - }); - test('No Compatible Types', function() { - this.con1.setCheck('type1'); - this.con2.setCheck('type2'); - chai.assert.isFalse(this.con1.checkType_(this.con2)); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/cursor_test.js b/lib/blockly/tests/mocha/cursor_test.js deleted file mode 100644 index efe38a8..0000000 --- a/lib/blockly/tests/mocha/cursor_test.js +++ /dev/null @@ -1,134 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Cursor', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "input_statement", - "message0": "%1 %2 %3 %4", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "field_input", - "name": "NAME", - "text": "default" - }, - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "input_statement", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }, - { - "type": "field_input", - "message0": "%1", - "args0": [ - { - "type": "field_input", - "name": "NAME", - "text": "default" - } - ], - "output": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - } - ]); - this.workspace = new Blockly.Workspace(); - this.workspace.setCursor(new Blockly.Cursor()); - this.cursor = this.workspace.getCursor(); - var blockA = this.workspace.newBlock('input_statement'); - var blockB = this.workspace.newBlock('input_statement'); - var blockC = this.workspace.newBlock('input_statement'); - var blockD = this.workspace.newBlock('input_statement'); - var blockE = this.workspace.newBlock('field_input'); - - blockA.nextConnection.connect(blockB.previousConnection); - blockA.inputList[0].connection.connect(blockE.outputConnection); - blockB.inputList[1].connection.connect(blockC.previousConnection); - - this.blocks = { - A: blockA, - B: blockB, - C: blockC, - D: blockD, - E: blockE - }; - }); - teardown(function() { - delete Blockly.Blocks['input_statement']; - delete Blockly.Blocks['field_input']; - - this.workspace.dispose(); - }); - - test('Next - From a Previous skip over next connection and block', function() { - var prevNode = Blockly.ASTNode.createConnectionNode(this.blocks.A.previousConnection); - this.cursor.setCurNode(prevNode); - this.cursor.next(); - var curNode = this.cursor.getCurNode(); - assertEquals(curNode.getLocation(), this.blocks.B.previousConnection); - }); - test('Next - From last block in a stack go to next connection', function() { - var prevNode = Blockly.ASTNode.createConnectionNode(this.blocks.B.previousConnection); - this.cursor.setCurNode(prevNode); - this.cursor.next(); - var curNode = this.cursor.getCurNode(); - assertEquals(curNode.getLocation(), this.blocks.B.nextConnection); - }); - - test('In - From output connection', function() { - var fieldBlock = this.blocks.E; - var outputNode = Blockly.ASTNode.createConnectionNode(fieldBlock.outputConnection); - this.cursor.setCurNode(outputNode); - this.cursor.in(); - var curNode = this.cursor.getCurNode(); - assertEquals(curNode.getLocation(), fieldBlock.inputList[0].fieldRow[0]); - }); - - test('Prev - From previous connection skip over next connection', function() { - var prevConnection = this.blocks.B.previousConnection; - var prevConnectionNode = Blockly.ASTNode.createConnectionNode(prevConnection); - this.cursor.setCurNode(prevConnectionNode); - this.cursor.prev(); - var curNode = this.cursor.getCurNode(); - assertEquals(curNode.getLocation(), this.blocks.A.previousConnection); - }); - - test('Out - From field skip over block node', function() { - var field = this.blocks.E.inputList[0].fieldRow[0]; - var fieldNode = Blockly.ASTNode.createFieldNode(field); - this.cursor.setCurNode(fieldNode); - this.cursor.out(); - var curNode = this.cursor.getCurNode(); - assertEquals(curNode.getLocation(), this.blocks.E.outputConnection); - }); -}); diff --git a/lib/blockly/tests/mocha/dropdowndiv_test.js b/lib/blockly/tests/mocha/dropdowndiv_test.js deleted file mode 100644 index 541c262..0000000 --- a/lib/blockly/tests/mocha/dropdowndiv_test.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('DropDownDiv', function() { - suite('Positioning', function() { - setup(function() { - this.boundsStub = sinon.stub(Blockly.DropDownDiv, 'getBoundsInfo_') - .returns({ - left: 0, - right: 100, - top: 0, - bottom: 100, - width: 100, - height: 100 - }); - this.sizeStub = sinon.stub(Blockly.utils.style, 'getSize') - .returns({ - width: 60, - height: 60 - }); - this.clientHeightStub = sinon.stub(document.documentElement, 'clientHeight') - .get(function() { return 1000; }); - this.clientTopStub = sinon.stub(document.documentElement, 'clientTop') - .get(function() { return 0; }); - }); - teardown(function() { - this.boundsStub.restore(); - this.sizeStub.restore(); - this.clientHeightStub.restore(); - this.clientTopStub.restore(); - }); - test('Below, in Bounds', function() { - var metrics = Blockly.DropDownDiv.getPositionMetrics(50, 0, 50, -10); - // "Above" in value actually means below in render. - chai.assert.isAtLeast(metrics.initialY, 0); - chai.assert.isAbove(metrics.finalY, 0); - chai.assert.isTrue(metrics.arrowVisible); - chai.assert.isTrue(metrics.arrowAtTop); - }); - test('Above, in Bounds', function() { - var metrics = Blockly.DropDownDiv.getPositionMetrics(50, 100, 50, 90); - // "Below" in value actually means above in render. - chai.assert.isAtMost(metrics.initialY, 100); - chai.assert.isBelow(metrics.finalY, 100); - chai.assert.isTrue(metrics.arrowVisible); - chai.assert.isFalse(metrics.arrowAtTop); - }); - test('Below, out of Bounds', function() { - var metrics = Blockly.DropDownDiv.getPositionMetrics(50, 60, 50, 50); - // "Above" in value actually means below in render. - chai.assert.isAtLeast(metrics.initialY, 60); - chai.assert.isAbove(metrics.finalY, 60); - chai.assert.isTrue(metrics.arrowVisible); - chai.assert.isTrue(metrics.arrowAtTop); - }); - test('Above, in Bounds', function() { - var metrics = Blockly.DropDownDiv.getPositionMetrics(50, 100, 50, 90); - // "Below" in value actually means above in render. - chai.assert.isAtMost(metrics.initialY, 100); - chai.assert.isBelow(metrics.finalY, 100); - chai.assert.isTrue(metrics.arrowVisible); - chai.assert.isFalse(metrics.arrowAtTop); - }); - test('No Solution, Render At Top', function() { - this.clientHeightStub.get(function() { return 100; }); - var metrics = Blockly.DropDownDiv.getPositionMetrics(50, 60, 50, 50); - // "Above" in value actually means below in render. - chai.assert.equal(metrics.initialY, 0); - chai.assert.equal(metrics.finalY, 0); - chai.assert.isFalse(metrics.arrowVisible); - chai.assert.isNotOk(metrics.arrowAtTop); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/event_test.js b/lib/blockly/tests/mocha/event_test.js deleted file mode 100644 index cf86769..0000000 --- a/lib/blockly/tests/mocha/event_test.js +++ /dev/null @@ -1,395 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Events', function() { - setup(function() { - this.workspace = new Blockly.Workspace(); - Blockly.defineBlocksWithJsonArray([{ - 'type': 'field_variable_test_block', - 'message0': '%1', - 'args0': [ - { - 'type': 'field_variable', - 'name': 'VAR', - 'variable': 'item' - } - ], - }, - { - 'type': 'simple_test_block', - 'message0': 'simple test block' - }]); - }); - - teardown(function() { - delete Blockly.Blocks['field_variable_test_block']; - delete Blockly.Blocks['simple_test_block']; - this.workspace.dispose(); - - // Clear Blockly.Event state. - Blockly.Events.setGroup(false); - Blockly.Events.disabled_ = 0; - }); - - function checkExactEventValues(event, values) { - var keys = Object.keys(values); - for (var i = 0; i < keys.length; i++) { - var field = keys[i]; - assertEquals(values[field], event[field]); - } - } - - function checkCreateEventValues(event, block, ids, type) { - var expected_xml = Blockly.Xml.domToText(Blockly.Xml.blockToDom(block)); - var result_xml = Blockly.Xml.domToText(event.xml); - assertEquals(expected_xml, result_xml); - isEqualArrays(ids, event.ids); - assertEquals(type, event.type); - } - - function checkDeleteEventValues(event, block, ids, type) { - var expected_xml = Blockly.Xml.domToText(Blockly.Xml.blockToDom(block)); - var result_xml = Blockly.Xml.domToText(event.oldXml); - assertEquals(expected_xml, result_xml); - isEqualArrays(ids, event.ids); - assertEquals(type, event.type); - } - - suite('Constructors', function() { - test('Abstract', function() { - var event = new Blockly.Events.Abstract(); - assertUndefined(event.blockId); - assertUndefined(event.workspaceId); - assertUndefined(event.varId); - checkExactEventValues(event, {'group': '', 'recordUndo': true}); - }); - - test('UI event without block', function() { - Blockly.Events.setGroup('testGroup'); - var event = new Blockly.Events.Ui(null, 'foo', 'bar', 'baz'); - checkExactEventValues(event, - { - 'blockId': null, - 'workspaceId': null, - 'type': 'ui', - 'oldValue': 'bar', - 'newValue': 'baz', - 'element': 'foo', - 'recordUndo': false, - 'group': 'testGroup' - }); - }); - - suite('With simple blocks', function() { - setup(function() { - this.FAKE_ID = 'hedgehog'; - sinon.stub(Blockly.utils, "genUid").returns(this.FAKE_ID); - - // Disable events while constructing the block: this is a test of the - // Blockly.Event constructors, not the block constructor. - Blockly.Events.disable(); - this.block = new Blockly.Block(this.workspace, 'simple_test_block'); - Blockly.Events.enable(); - sinon.restore(); - }); - - teardown(function() { - }); - - test('Block base', function() { - var event = new Blockly.Events.BlockBase(this.block); - assertUndefined(event.varId); - checkExactEventValues(event, - { - 'blockId': this.FAKE_ID, - 'workspaceId': this.workspace.id, - 'group': '', - 'recordUndo': true - }); - }); - - test('Create', function() { - var event = new Blockly.Events.Create(this.block); - checkCreateEventValues(event, this.block, [this.FAKE_ID], 'create'); - }); - - test('Block create', function() { - var event = new Blockly.Events.BlockCreate(this.block); - checkCreateEventValues(event, this.block, [this.FAKE_ID], 'create'); - }); - - test('Delete', function() { - var event = new Blockly.Events.Delete(this.block); - checkDeleteEventValues(event, this.block, [this.FAKE_ID], 'delete'); - }); - - test('Block delete', function() { - var event = new Blockly.Events.BlockDelete(this.block); - checkDeleteEventValues(event, this.block, [this.FAKE_ID], 'delete'); - }); - - test('UI event with block', function() { - Blockly.Events.setGroup('testGroup'); - var event = new Blockly.Events.Ui(this.block, 'foo', 'bar', 'baz'); - checkExactEventValues(event, - { - 'blockId': this.FAKE_ID, - 'workspaceId': this.workspace.id, - 'type': 'ui', - 'oldValue': 'bar', - 'newValue': 'baz', - 'element': 'foo', - 'recordUndo': false, - 'group': 'testGroup' - }); - }); - - suite('Move', function() { - test('Move by coordinate', function() { - var coordinate = new Blockly.utils.Coordinate(3, 4); - this.block.xy_ = coordinate; - - var event = new Blockly.Events.Move(this.block); - checkExactEventValues(event, - {'oldCoordinate': coordinate, 'type': 'move'}); - }); - - test('Block move by coordinate', function() { - var coordinate = new Blockly.utils.Coordinate(3, 4); - this.block.xy_ = coordinate; - - var event = new Blockly.Events.BlockMove(this.block); - checkExactEventValues(event, - {'oldCoordinate': coordinate, 'type': 'move'}); - }); - - suite('Move by parent', function() { - setup(function() { - sinon.stub(Blockly.utils, "genUid").returns("parent"); - Blockly.Events.disable(); - this.parentBlock = new Blockly.Block(this.workspace, 'simple_test_block'); - Blockly.Events.enable(); - sinon.restore(); - - this.block.parentBlock_ = this.parentBlock; - this.block.xy_ = new Blockly.utils.Coordinate(3, 4); - }); - - teardown(function() { - this.block.parentBlock_ = null; - }); - - test('Move by parent', function() { - // Expect the oldParentId to be set but not the oldCoordinate to be set. - var event = new Blockly.Events.Move(this.block); - checkExactEventValues(event, {'oldCoordinate': undefined, - 'oldParentId': 'parent', 'type': 'move'}); - }); - - test('Block move by parent', function() { - // Expect the oldParentId to be set but not the oldCoordinate to be set. - var event = new Blockly.Events.BlockMove(this.block); - checkExactEventValues(event, {'oldCoordinate': undefined, - 'oldParentId': 'parent', 'type': 'move'}); - }); - }); - }); - }); - - suite('With variable getter blocks', function() { - setup(function() { - // Disable events while constructing the block: this is a test of the - // Blockly.Event constructors, not the block constructor. - Blockly.Events.disable(); - this.block = new Blockly.Block(this.workspace, 'field_variable_test_block'); - Blockly.Events.enable(); - }); - - teardown(function() { - - }); - - test('Change', function() { - var event = - new Blockly.Events.Change(this.block, 'field', 'VAR', 'id1', 'id2'); - checkExactEventValues(event, {'element': 'field', 'name': 'VAR', - 'oldValue': 'id1', 'newValue': 'id2', 'type': 'change'}); - }); - - test('Block change', function() { - var event = new Blockly.Events.BlockChange( - this.block, 'field', 'VAR', 'id1', 'id2'); - checkExactEventValues(event, {'element': 'field', 'name': 'VAR', - 'oldValue': 'id1', 'newValue': 'id2', 'type': 'change'}); - }); - }); - }); - - suite('Variable events', function() { - setup(function() { - this.variable = this.workspace.createVariable('name1', 'type1', 'id1'); - }); - - /** - * Check if a variable with the given values exists. - * @param {Blockly.Workspace|Blockly.VariableMap} container The workspace or - * variableMap the checked variable belongs to. - * @param {!string} name The expected name of the variable. - * @param {!string} type The expected type of the variable. - * @param {!string} id The expected id of the variable. - */ - function checkVariableValues(container, name, type, id) { - var variable = container.getVariableById(id); - assertNotUndefined(variable); - assertEquals(name, variable.name); - assertEquals(type, variable.type); - assertEquals(id, variable.getId()); - } - suite('Constructors', function() { - test('Var base', function() { - var event = new Blockly.Events.VarBase(this.variable); - assertUndefined(event.blockId); - checkExactEventValues(event, {'varId': 'id1', - 'workspaceId': this.workspace.id, 'group': '', 'recordUndo': true}); - }); - - test('Var create', function() { - var event = new Blockly.Events.VarCreate(this.variable); - checkExactEventValues(event, {'varName': 'name1', 'varType': 'type1', - 'type': 'var_create'}); - }); - - test('Var delete', function() { - var event = new Blockly.Events.VarDelete(this.variable); - checkExactEventValues(event, {'varName': 'name1', 'varType': 'type1', - 'varId':'id1', 'type': 'var_delete'}); - }); - - test('Var rename', function() { - var event = new Blockly.Events.VarRename(this.variable, 'name2'); - checkExactEventValues(event, {'varId': 'id1', 'oldName': 'name1', - 'newName': 'name2', 'type': 'var_rename'}); - }); - }); - - suite('fromJson', function() { - test('Var create', function() { - var event = new Blockly.Events.VarCreate(this.variable); - var event2 = new Blockly.Events.VarCreate(null); - var json = event.toJson(); - event2.fromJson(json); - - assertEquals(JSON.stringify(json), JSON.stringify(event2.toJson())); - }); - test('Var delete', function() { - var event = new Blockly.Events.VarDelete(this.variable); - var event2 = new Blockly.Events.VarDelete(null); - var json = event.toJson(); - event2.fromJson(json); - - assertEquals(JSON.stringify(json), JSON.stringify(event2.toJson())); - }); - test('Var rename', function() { - var event = new Blockly.Events.VarRename(this.variable, ''); - var event2 = new Blockly.Events.VarRename(null); - var json = event.toJson(); - event2.fromJson(json); - - assertEquals(JSON.stringify(json), JSON.stringify(event2.toJson())); - }); - }); - - suite('toJson', function() { - test('Var create', function() { - var variable = this.workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarCreate(variable); - var json = event.toJson(); - var expectedJson = ({type: "var_create", varId: "id1", varType: "type1", - varName: "name1"}); - - assertEquals(JSON.stringify(expectedJson), JSON.stringify(json)); - }); - - test('Var delete', function() { - var event = new Blockly.Events.VarDelete(this.variable); - var json = event.toJson(); - var expectedJson = ({type: "var_delete", varId: "id1", varType: "type1", - varName: "name1"}); - - assertEquals(JSON.stringify(expectedJson), JSON.stringify(json)); - }); - - test('Var rename', function() { - var event = new Blockly.Events.VarRename(this.variable, 'name2'); - var json = event.toJson(); - var expectedJson = ({type: "var_rename", varId: "id1", oldName: "name1", - newName: "name2"}); - - assertEquals(JSON.stringify(expectedJson), JSON.stringify(json)); - }); - }); - - suite.skip('Run Forward', function() { - test('Var create', function() { - var json = {type: "var_create", varId: "id1", varType: "type1", - varName: "name1"}; - var event = Blockly.Events.fromJson(json, this.workspace); - assertNull(this.workspace.getVariableById('id1')); - event.run(true); - checkVariableValues(this.workspace, 'name1', 'type1', 'id1'); - }); - - test('Var delete', function() { - var event = new Blockly.Events.VarDelete(this.variable); - assertNotNull(this.workspace.getVariableById('id1')); - event.run(true); - assertNull(this.workspace.getVariableById('id1')); - }); - - test('Var rename', function() { - var event = new Blockly.Events.VarRename(this.variable, 'name2'); - event.run(true); - assertNull(this.workspace.getVariable('name1')); - checkVariableValues(this.workspace, 'name2', 'type1', 'id1'); - }); - }); - suite.skip('Run Backward', function() { - test('Var create', function() { - var variable = this.workspace.createVariable('name1', 'type1', 'id1'); - var event = new Blockly.Events.VarCreate(variable); - assertNotNull(this.workspace.getVariableById('id1')); - event.run(false); - }); - - test('Var delete', function() { - var json = {type: "var_delete", varId: "id1", varType: "type1", - varName: "name1"}; - var event = Blockly.Events.fromJson(json, this.workspace); - assertNull(this.workspace.getVariableById('id1')); - event.run(false); - checkVariableValues(this.workspace, 'name1', 'type1', 'id1'); - }); - - test('Var rename', function() { - var event = new Blockly.Events.VarRename(this.variable, 'name2'); - event.run(false); - assertNull(this.workspace.getVariable('name2')); - checkVariableValues(this.workspace, 'name1', 'type1', 'id1'); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_angle_test.js b/lib/blockly/tests/mocha/field_angle_test.js deleted file mode 100644 index aeb1f89..0000000 --- a/lib/blockly/tests/mocha/field_angle_test.js +++ /dev/null @@ -1,425 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Angle Fields', function() { - function assertValue(angleField, expectedValue, opt_expectedText) { - var actualValue = angleField.getValue(); - var actualText = angleField.getText(); - opt_expectedText = opt_expectedText || String(expectedValue); - assertEquals(String(actualValue), String(expectedValue)); - assertEquals(Number(actualValue), expectedValue); - assertEquals(actualText, opt_expectedText); - } - function assertValueDefault(angleField) { - assertValue(angleField, 0); - } - suite('Constructor', function() { - test('Empty', function() { - var angleField = new Blockly.FieldAngle(); - assertValueDefault(angleField); - }); - test('Undefined', function() { - var angleField = new Blockly.FieldAngle(undefined); - assertValueDefault(angleField); - }); - test('NaN', function() { - var angleField = new Blockly.FieldAngle(NaN); - assertValueDefault(angleField); - }); - test('Integer', function() { - var angleField = new Blockly.FieldAngle(1); - assertValue(angleField, 1); - }); - test('Float', function() { - var angleField = new Blockly.FieldAngle(1.5); - assertValue(angleField, 1.5); - }); - test('Integer String', function() { - var angleField = new Blockly.FieldAngle('1'); - assertValue(angleField, 1); - }); - test('Float String', function() { - var angleField = new Blockly.FieldAngle('1.5'); - assertValue(angleField, 1.5); - }); - test('> 360°', function() { - var angleField = new Blockly.FieldAngle(362); - assertValue(angleField, 2); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var angleField = Blockly.FieldAngle.fromJson({}); - assertValueDefault(angleField); - }); - test('Undefined', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:undefined }); - assertValueDefault(angleField); - }); - test('NaN', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:NaN }); - assertValueDefault(angleField); - }); - test('Integer', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:1 }); - assertValue(angleField, 1); - }); - test('Float', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:1.5 }); - assertValue(angleField, 1.5); - }); - test('Integer String', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:'1' }); - assertValue(angleField, 1); - }); - test('Float String', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:'1.5' }); - assertValue(angleField, 1.5); - }); - test('> 360°', function() { - var angleField = Blockly.FieldAngle.fromJson({ angle:362 }); - assertValue(angleField, 2); - }); - }); - suite('setValue', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.angleField = new Blockly.FieldAngle(); - }); - test('Null', function() { - this.angleField.setValue(null); - assertValueDefault(this.angleField); - }); - test('Undefined', function() { - this.angleField.setValue(undefined); - assertValueDefault(this.angleField); - }); - test('Non-Parsable String', function() { - this.angleField.setValue('bad'); - assertValueDefault(this.angleField); - }); - test('NaN', function() { - this.angleField.setValue(NaN); - assertValueDefault(this.angleField); - }); - test('Integer', function() { - this.angleField.setValue(2); - assertValue(this.angleField, 2); - }); - test('Float', function() { - this.angleField.setValue(2.5); - assertValue(this.angleField, 2.5); - }); - test('Integer String', function() { - this.angleField.setValue('2'); - assertValue(this.angleField, 2); - }); - test('Float', function() { - this.angleField.setValue('2.5'); - assertValue(this.angleField, 2.5); - }); - test('>360°', function() { - this.angleField.setValue(362); - assertValue(this.angleField, 2); - }); - test('Infinity', function() { - this.angleField.setValue(Infinity); - assertValueDefault(this.angleField); - }); - test('Negative Infinity String', function() { - this.angleField.setValue('-Infinity'); - assertValueDefault(this.angleField); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.angleField = new Blockly.FieldAngle(1); - }); - test('Null', function() { - this.angleField.setValue(null); - assertValue(this.angleField, 1); - }); - test('Undefined', function() { - this.angleField.setValue(undefined); - assertValue(this.angleField, 1); - }); - test('Non-Parsable String', function() { - this.angleField.setValue('bad'); - assertValue(this.angleField, 1); - }); - test('NaN', function() { - this.angleField.setValue(NaN); - assertValue(this.angleField, 1); - }); - test('Integer', function() { - this.angleField.setValue(2); - assertValue(this.angleField, 2); - }); - test('Float', function() { - this.angleField.setValue(2.5); - assertValue(this.angleField, 2.5); - }); - test('Integer String', function() { - this.angleField.setValue('2'); - assertValue(this.angleField, 2); - }); - test('Float', function() { - this.angleField.setValue('2.5'); - assertValue(this.angleField, 2.5); - }); - test('>360°', function() { - this.angleField.setValue(362); - assertValue(this.angleField, 2); - }); - test('Infinity', function() { - this.angleField.setValue(Infinity); - assertValue(this.angleField, 1); - }); - test('Negative Infinity String', function() { - this.angleField.setValue('-Infinity'); - assertValue(this.angleField, 1); - }); - }); - }); - suite('Validators', function() { - setup(function() { - this.angleField = new Blockly.FieldAngle(1); - this.angleField.htmlInput_ = Object.create(null); - this.angleField.htmlInput_.oldValue_ = '1'; - this.angleField.htmlInput_.untypedDefaultValue_ = 1; - }); - teardown(function() { - this.angleField.setValidator(null); - this.angleField.htmlInput_ = null; - }); - suite('Null Validator', function() { - setup(function() { - this.angleField.setValidator(function() { - return null; - }); - }); - test('When Editing', function() { - this.angleField.isBeingEdited_ = true; - this.angleField.htmlInput_.value = '2'; - this.angleField.onHtmlInputChange_(null); - assertValue(this.angleField, 1, '2'); - this.angleField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.angleField.setValue(2); - assertValue(this.angleField, 1); - }); - }); - suite('Force Mult of 30 Validator', function() { - setup(function() { - this.angleField.setValidator(function(newValue) { - return Math.round(newValue / 30) * 30; - }); - }); - test('When Editing', function() { - this.angleField.isBeingEdited_ = true; - this.angleField.htmlInput_.value = '25'; - this.angleField.onHtmlInputChange_(null); - assertValue(this.angleField, 30, '25'); - this.angleField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.angleField.setValue(25); - assertValue(this.angleField, 30); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.angleField.setValidator(function() {}); - }); - test('When Editing', function() { - this.angleField.isBeingEdited_ = true; - this.angleField.htmlInput_.value = '2'; - this.angleField.onHtmlInputChange_(null); - assertValue(this.angleField, 2); - this.angleField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.angleField.setValue(2); - assertValue(this.angleField, 2); - }); - }); - }); - suite('Customizations', function() { - suite('Clockwise', function() { - test('JS Configuration', function() { - var field = new Blockly.FieldAngle(0, null, { - clockwise: true - }); - chai.assert.isTrue(field.clockwise_); - }); - test('JSON Definition', function() { - var field = Blockly.FieldAngle.fromJson({ - value: 0, - clockwise: true - }); - chai.assert.isTrue(field.clockwise_); - }); - test('Constant', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.CLOCKWISE = true; - var field = new Blockly.FieldAngle(); - chai.assert.isTrue(field.clockwise_); - }); - }); - suite('Offset', function() { - test('JS Configuration', function() { - var field = new Blockly.FieldAngle(0, null, { - offset: 90 - }); - chai.assert.equal(field.offset_, 90); - }); - test('JSON Definition', function() { - var field = Blockly.FieldAngle.fromJson({ - value: 0, - offset: 90 - }); - chai.assert.equal(field.offset_, 90); - }); - test('Constant', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.OFFSET = 90; - var field = new Blockly.FieldAngle(); - chai.assert.equal(field.offset_, 90); - }); - test('Null', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.OFFSET = 90; - var field = Blockly.FieldAngle.fromJson({ - value: 0, - offset: null - }); - chai.assert.equal(field.offset_, 90); - }); - }); - suite('Wrap', function() { - test('JS Configuration', function() { - var field = new Blockly.FieldAngle(0, null, { - wrap: 180 - }); - chai.assert.equal(field.wrap_, 180); - }); - test('JSON Definition', function() { - var field = Blockly.FieldAngle.fromJson({ - value: 0, - wrap: 180 - }); - chai.assert.equal(field.wrap_, 180); - }); - test('Constant', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.WRAP = 180; - var field = new Blockly.FieldAngle(); - chai.assert.equal(field.wrap_, 180); - }); - test('Null', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.WRAP = 180; - var field = Blockly.FieldAngle.fromJson({ - value: 0, - wrap: null - }); - chai.assert.equal(field.wrap_, 180); - }); - }); - suite('Round', function() { - test('JS Configuration', function() { - var field = new Blockly.FieldAngle(0, null, { - round: 30 - }); - chai.assert.equal(field.round_, 30); - }); - test('JSON Definition', function() { - var field = Blockly.FieldAngle.fromJson({ - value: 0, - round: 30 - }); - chai.assert.equal(field.round_, 30); - }); - test('Constant', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.ROUND = 30; - var field = new Blockly.FieldAngle(); - chai.assert.equal(field.round_, 30); - }); - test('Null', function() { - // Note: Generally constants should be set at compile time, not - // runtime (since they are constants) but for testing purposes we - // can do this. - Blockly.FieldAngle.ROUND = 30; - var field = Blockly.FieldAngle.fromJson({ - value: 0, - round: null - }); - chai.assert.equal(field.round_, 30); - }); - }); - suite('Mode', function() { - suite('Compass', function() { - test('JS Configuration', function() { - var field = new Blockly.FieldAngle(0, null, { - mode: 'compass' - }); - chai.assert.equal(field.offset_, 90); - chai.assert.isTrue(field.clockwise_); - }); - test('JS Configuration', function() { - var field = Blockly.FieldAngle.fromJson({ - value: 0, - mode: 'compass' - }); - chai.assert.equal(field.offset_, 90); - chai.assert.isTrue(field.clockwise_); - }); - }); - suite('Protractor', function() { - test('JS Configuration', function() { - var field = new Blockly.FieldAngle(0, null, { - mode: 'protractor' - }); - chai.assert.equal(field.offset_, 0); - chai.assert.isFalse(field.clockwise_); - }); - test('JS Configuration', function() { - var field = Blockly.FieldAngle.fromJson({ - value: 0, - mode: 'protractor' - }); - chai.assert.equal(field.offset_, 0); - chai.assert.isFalse(field.clockwise_); - }); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_checkbox_test.js b/lib/blockly/tests/mocha/field_checkbox_test.js deleted file mode 100644 index 76084a6..0000000 --- a/lib/blockly/tests/mocha/field_checkbox_test.js +++ /dev/null @@ -1,225 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Checkbox Fields', function() { - function assertValue(checkboxField, expectedValue, expectedText) { - var actualValue = checkboxField.getValue(); - var actualText = checkboxField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedText); - } - function assertValueDefault(checkboxField) { - assertValue(checkboxField, 'FALSE', 'false'); - } - suite('Constructor', function() { - test('Empty', function() { - var checkboxField = new Blockly.FieldCheckbox(); - assertValueDefault(checkboxField); - }); - test('Undefined', function() { - var checkboxField = new Blockly.FieldCheckbox(undefined); - assertValueDefault(checkboxField); - }); - test('True', function() { - var checkboxField = new Blockly.FieldCheckbox(true); - assertValue(checkboxField, 'TRUE', 'true'); - }); - test('False', function() { - var checkboxField = new Blockly.FieldCheckbox(false); - assertValue(checkboxField, 'FALSE', 'false'); - }); - test('String TRUE', function() { - var checkboxField = new Blockly.FieldCheckbox('TRUE'); - assertValue(checkboxField, 'TRUE', 'true'); - }); - test('String FALSE', function() { - var checkboxField = new Blockly.FieldCheckbox('FALSE'); - assertValue(checkboxField, 'FALSE', 'false'); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var checkboxField = Blockly.FieldCheckbox.fromJson({}); - assertValueDefault(checkboxField); - }); - test('Undefined', function() { - var checkboxField = Blockly.FieldCheckbox.fromJson({ checked: undefined}); - assertValueDefault(checkboxField); - }); - test('True', function() { - var checkboxField = Blockly.FieldCheckbox.fromJson({ checked: true}); - assertValue(checkboxField, 'TRUE', 'true'); - }); - test('False', function() { - var checkboxField = Blockly.FieldCheckbox.fromJson({ checked: false}); - assertValue(checkboxField, 'FALSE', 'false'); - }); - test('String TRUE', function() { - var checkboxField = Blockly.FieldCheckbox.fromJson({ checked: 'TRUE'}); - assertValue(checkboxField, 'TRUE', 'true'); - }); - test('String FALSE', function() { - var checkboxField = Blockly.FieldCheckbox.fromJson({ checked: 'FALSE'}); - assertValue(checkboxField, 'FALSE', 'false'); - }); - }); - suite('setValue', function() { - suite('True -> New Value', function() { - setup(function() { - this.checkboxField = new Blockly.FieldCheckbox('TRUE'); - }); - test('Null', function() { - this.checkboxField.setValue(null); - assertValue(this.checkboxField, 'TRUE', 'true'); - }); - test('Undefined', function() { - this.checkboxField.setValue(undefined); - assertValue(this.checkboxField, 'TRUE', 'true'); - }); - test('Non-Parsable String', function() { - this.checkboxField.setValue('bad'); - assertValue(this.checkboxField, 'TRUE', 'true'); - }); - test('False', function() { - this.checkboxField.setValue('FALSE'); - assertValue(this.checkboxField, 'FALSE', 'false'); - }); - }); - suite('False -> New Value', function() { - setup(function() { - this.checkboxField = new Blockly.FieldCheckbox('FALSE'); - }); - test('Null', function() { - this.checkboxField.setValue(null); - assertValue(this.checkboxField, 'FALSE', 'false'); - }); - test('Undefined', function() { - this.checkboxField.setValue(undefined); - assertValue(this.checkboxField, 'FALSE', 'false'); - }); - test('Non-Parsable String', function() { - this.checkboxField.setValue('bad'); - assertValue(this.checkboxField, 'FALSE', 'false'); - }); - test('True', function() { - this.checkboxField.setValue('TRUE'); - assertValue(this.checkboxField, 'TRUE', 'true'); - }); - }); - }); - suite('Validators', function() { - setup(function() { - this.checkboxField = new Blockly.FieldCheckbox(true); - }); - teardown(function() { - this.checkboxField.setValidator(null); - }); - suite('Null Validator', function() { - setup(function() { - this.checkboxField.setValidator(function() { - return null; - }); - }); - test('New Value', function() { - this.checkboxField.setValue('FALSE'); - assertValue(this.checkboxField, 'TRUE', 'true'); - }); - }); - suite('Always True Validator', function() { - setup(function() { - this.checkboxField.setValidator(function() { - return 'TRUE'; - }); - }); - test('New Value', function() { - this.checkboxField.setValue('FALSE'); - assertValue(this.checkboxField, 'TRUE', 'true'); - }); - }); - suite('Always False Validator', function() { - setup(function() { - this.checkboxField.setValidator(function() { - return 'FALSE'; - }); - }); - test('New Value', function() { - this.checkboxField.setValue('TRUE'); - assertValue(this.checkboxField, 'FALSE', 'false'); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.checkboxField.setValidator(function() {}); - }); - test('New Value', function() { - this.checkboxField.setValue('FALSE'); - assertValue(this.checkboxField, 'FALSE', 'false'); - }); - }); - }); - suite('Customizations', function() { - suite('Check Character', function() { - function assertCharacter(field, char) { - field.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - field.initView(); - chai.assert(field.textContent_.nodeValue, char); - } - test('Constant', function() { - var checkChar = Blockly.FieldCheckbox.CHECK_CHAR; - // Note: Developers shouldn't actually do this. IMO they should change - // the file and then recompile. But this is fine for testing. - Blockly.FieldCheckbox.CHECK_CHAR = '\u2661'; - var field = new Blockly.FieldCheckbox(true); - assertCharacter(field, '\u2661'); - Blockly.FieldCheckbox.CHECK_CHAR = checkChar; - }); - test('JS Constructor', function() { - var field = new Blockly.FieldCheckbox(true, null, { - checkCharacter: '\u2661' - }); - assertCharacter(field, '\u2661'); - }); - test('JSON Definition', function() { - var field = Blockly.FieldCheckbox.fromJson({ - checkCharacter: '\u2661' - }); - assertCharacter(field, '\u2661'); - }); - test('setCheckCharacter', function() { - var field = new Blockly.FieldCheckbox(); - assertCharacter(field, Blockly.FieldCheckbox.CHECK_CHAR); - field.setCheckCharacter('\u2661'); - // Don't call assertCharacter b/c we don't want to re-initialize. - chai.assert.equal(field.textContent_.nodeValue, '\u2661'); - }); - test('setCheckCharacter Before Init', function() { - var field = new Blockly.FieldCheckbox(); - field.setCheckCharacter('\u2661'); - assertCharacter(field, '\u2661'); - }); - test('Remove Custom Character', function() { - var field = new Blockly.FieldCheckbox(true, null, { - 'checkCharacter': '\u2661' - }); - assertCharacter(field, '\u2661'); - field.setCheckCharacter(null); - chai.assert(field.textContent_.nodeValue, - Blockly.FieldCheckbox.CHECK_CHAR); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_colour_test.js b/lib/blockly/tests/mocha/field_colour_test.js deleted file mode 100644 index d28620e..0000000 --- a/lib/blockly/tests/mocha/field_colour_test.js +++ /dev/null @@ -1,375 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Colour Fields', function() { - function assertValue(colourField, expectedValue, expectedText) { - var actualValue = colourField.getValue(); - var actualText = colourField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedText); - } - function assertValueDefault(colourField) { - var expectedValue = Blockly.FieldColour.COLOURS[0]; - var expectedText = expectedValue; - var m = expectedValue.match(/^#(.)\1(.)\2(.)\3$/); - if (m) { - expectedText = '#' + m[1] + m[2] + m[3]; - } - assertValue(colourField, expectedValue, expectedText); - } - - setup(function() { - this.previousColours = Blockly.FieldColour.COLOURS; - Blockly.FieldColour.Colours = [ - '#ffffff', '#ff0000', '#00ff00', '#0000ff', '#ffffff' - ]; - }); - teardown(function() { - Blockly.FieldColour.Colours = this.previousColours; - }); - suite('Constructor', function() { - test('Empty', function() { - var colourField = new Blockly.FieldColour(); - assertValueDefault(colourField); - }); - test('Undefined', function() { - var colourField = new Blockly.FieldColour(undefined); - assertValueDefault(colourField); - }); - test('#AAAAAA', function() { - var colourField = new Blockly.FieldColour('#AAAAAA'); - assertValue(colourField, '#aaaaaa', '#aaa'); - }); - test('#aaaaaa', function() { - var colourField = new Blockly.FieldColour('#aaaaaa'); - assertValue(colourField, '#aaaaaa', '#aaa'); - }); - test('#AAAA00', function() { - var colourField = new Blockly.FieldColour('#AAAA00'); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('#aaaa00', function() { - var colourField = new Blockly.FieldColour('#aaaa00'); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('#BCBCBC', function() { - var colourField = new Blockly.FieldColour('#BCBCBC'); - assertValue(colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#bcbcbc', function() { - var colourField = new Blockly.FieldColour('#bcbcbc'); - assertValue(colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#AA0', function() { - var colourField = new Blockly.FieldColour('#AA0'); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('#aa0', function() { - var colourField = new Blockly.FieldColour('#aa0'); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('rgb(170, 170, 0)', function() { - var colourField = new Blockly.FieldColour('rgb(170, 170, 0)'); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('red', function() { - var colourField = new Blockly.FieldColour('red'); - assertValue(colourField, '#ff0000', '#f00'); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var colourField = new Blockly.FieldColour.fromJson({}); - assertValueDefault(colourField); - }); - test('Undefined', function() { - var colourField = new Blockly.FieldColour.fromJson({ colour:undefined }); - assertValueDefault(colourField); - }); - test('#AAAAAA', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#AAAAAA' }); - assertValue(colourField, '#aaaaaa', '#aaa'); - }); - test('#aaaaaa', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#aaaaaa' }); - assertValue(colourField, '#aaaaaa', '#aaa'); - }); - test('#AAAA00', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#AAAA00' }); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('#aaaa00', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#aaaa00' }); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('#BCBCBC', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#BCBCBC' }); - assertValue(colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#bcbcbc', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#bcbcbc' }); - assertValue(colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#AA0', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#AA0' }); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('#aa0', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: '#aa0' }); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('rgb(170, 170, 0)', function() { - var colourField = Blockly.FieldColour.fromJson( - { colour: 'rgb(170, 170, 0)' }); - assertValue(colourField, '#aaaa00', '#aa0'); - }); - test('red', function() { - var colourField = Blockly.FieldColour.fromJson({ colour: 'red' }); - assertValue(colourField, '#ff0000', '#f00'); - }); - }); - suite('setValue', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.colourField = new Blockly.FieldColour(); - }); - test('Null', function() { - this.colourField.setValue(null); - assertValueDefault(this.colourField); - }); - test('Undefined', function() { - this.colourField.setValue(undefined); - assertValueDefault(this.colourField); - }); - test('Non-Parsable String', function() { - this.colourField.setValue('not_a_colour'); - assertValueDefault(this.colourField); - }); - test('#000000', function() { - this.colourField.setValue('#000000'); - assertValue(this.colourField, '#000000', '#000'); - }); - test('#bcbcbc', function() { - this.colourField.setValue('#bcbcbc'); - assertValue(this.colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#aa0', function() { - this.colourField.setValue('#aa0'); - assertValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('rgb(170, 170, 0)', function() { - this.colourField.setValue('rgb(170, 170, 0)'); - assertValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('red', function() { - this.colourField.setValue('red'); - assertValue(this.colourField, '#ff0000', '#f00'); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.colourField = new Blockly.FieldColour('#aaaaaa'); - }); - test('Null', function() { - this.colourField.setValue(null); - assertValue(this.colourField, '#aaaaaa', '#aaa'); - }); - test('Undefined', function() { - this.colourField.setValue(undefined); - assertValue(this.colourField, '#aaaaaa', '#aaa'); - }); - test('Non-Parsable String', function() { - this.colourField.setValue('not_a_colour'); - assertValue(this.colourField, '#aaaaaa', '#aaa'); - }); - test('#000000', function() { - this.colourField.setValue('#000000'); - assertValue(this.colourField, '#000000', '#000'); - }); - test('#bcbcbc', function() { - this.colourField.setValue('#bcbcbc'); - assertValue(this.colourField, '#bcbcbc', '#bcbcbc'); - }); - test('#aa0', function() { - this.colourField.setValue('#aa0'); - assertValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('rgb(170, 170, 0)', function() { - this.colourField.setValue('rgb(170, 170, 0)'); - assertValue(this.colourField, '#aaaa00', '#aa0'); - }); - test('red', function() { - this.colourField.setValue('red'); - assertValue(this.colourField, '#ff0000', '#f00'); - }); - }); - }); - suite('Validators', function() { - setup(function() { - this.colourField = new Blockly.FieldColour('#aaaaaa'); - }); - teardown(function() { - this.colourField.setValidator(null); - }); - suite('Null Validator', function() { - setup(function() { - this.colourField.setValidator(function() { - return null; - }); - }); - test('New Value', function() { - this.colourField.setValue('#000000'); - assertValue(this.colourField, '#aaaaaa', '#aaa'); - }); - }); - suite('Force Full Red Validator', function() { - setup(function() { - this.colourField.setValidator(function(newValue) { - return '#ff' + newValue.substr(3, 4); - }); - }); - test('New Value', function() { - this.colourField.setValue('#000000'); - assertValue(this.colourField, '#ff0000', '#f00'); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.colourField.setValidator(function() {}); - }); - test('New Value', function() { - this.colourField.setValue('#000000'); - assertValue(this.colourField, '#000000', '#000'); - }); - }); - }); - suite('Customizations', function() { - suite('Colours and Titles', function() { - function assertColoursAndTitles(field, colours, titles) { - var editor = field.dropdownCreate_(); - var index = 0; - var node = editor.firstChild.firstChild; - while (node) { - chai.assert.equal(node.getAttribute('title'), titles[index]); - chai.assert.equal( - Blockly.utils.colour.parse( - node.style.backgroundColor), - colours[index]); - - var nextNode = node.nextSibling; - if (!nextNode) { - nextNode = node.parentElement.nextSibling; - if (!nextNode) { - break; - } - nextNode = nextNode.firstChild; - } - node = nextNode; - - index++; - } - } - test('Constants', function() { - var colours = Blockly.FieldColour.COLOURS; - var titles = Blockly.FieldColour.TITLES; - // Note: Developers shouldn't actually do this. IMO they should - // change the file and then recompile. But this is fine for testing. - Blockly.FieldColour.COLOURS = ['#aaaaaa']; - Blockly.FieldColour.TITLES = ['grey']; - var field = new Blockly.FieldColour(); - - assertColoursAndTitles(field, ['#aaaaaa'], ['grey']); - - Blockly.FieldColour.COLOURS = colours; - Blockly.FieldColour.TITLES = titles; - }); - test('JS Constructor', function() { - var field = new Blockly.FieldColour('#aaaaaa', null, { - colourOptions: ['#aaaaaa'], - colourTitles: ['grey'] - }); - assertColoursAndTitles(field, ['#aaaaaa'], ['grey']); - }); - test('JSON Definition', function() { - var field = Blockly.FieldColour.fromJson({ - colour: '#aaaaaa', - colourOptions: ['#aaaaaa'], - colourTitles: ['grey'] - }); - assertColoursAndTitles(field, ['#aaaaaa'], ['grey']); - }); - test('setColours', function() { - var field = new Blockly.FieldColour(); - field.setColours(['#aaaaaa'], ['grey']); - assertColoursAndTitles(field, ['#aaaaaa'], ['grey']); - }); - test('Titles Undefined', function() { - var field = new Blockly.FieldColour(); - field.setColours(['#aaaaaa']); - assertColoursAndTitles(field, ['#aaaaaa'], ['#aaaaaa']); - }); - test('Some Titles Undefined', function() { - var field = new Blockly.FieldColour(); - field.setColours(['#aaaaaa', '#ff0000'], ['grey']); - assertColoursAndTitles(field, - ['#aaaaaa', '#ff0000'], ['grey', '#ff0000']); - }); - // This is kinda derpy behavior, but I wanted to document it. - test('Overwriting Colours While Leaving Titles', function() { - var field = new Blockly.FieldColour(); - field.setColours(['#aaaaaa'], ['grey']); - field.setColours(['#ff0000']); - assertColoursAndTitles(field, ['#ff0000'], ['grey']); - }); - }); - suite('Columns', function() { - function assertColumns(field, columns) { - var editor = field.dropdownCreate_(); - chai.assert.equal(editor.firstChild.children.length, columns); - } - test('Constants', function() { - var columns = Blockly.FieldColour.COLUMNS; - // Note: Developers shouldn't actually do this. IMO they should edit - // the file and tehn recompile. But this is fine for testing. - Blockly.FieldColour.COLUMNS = 3; - var field = new Blockly.FieldColour(); - - assertColumns(field, 3); - - Blockly.FieldColour.COLUMNS = columns; - }); - test('JS Constructor', function() { - var field = new Blockly.FieldColour('#ffffff', null, { - columns: 3 - }); - assertColumns(field, 3); - }); - test('JSON Definition', function() { - var field = Blockly.FieldColour.fromJson({ - 'colour': '#ffffff', - 'columns': 3 - }); - assertColumns(field, 3); - }); - test('setColumns', function() { - var field = new Blockly.FieldColour(); - field.setColumns(3); - assertColumns(field, 3); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_date_test.js b/lib/blockly/tests/mocha/field_date_test.js deleted file mode 100644 index 852eed5..0000000 --- a/lib/blockly/tests/mocha/field_date_test.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* If you want to run date tests add the date picker here: - * https://github.com/google/blockly/blob/master/core/blockly.js#L41 - * before unskipping. - */ -suite.skip('Date Fields', function() { - function assertValue(dateField, expectedValue) { - var actualValue = dateField.getValue(); - var actualText = dateField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedValue); - } - function assertValueDefault(dateField) { - var today = new goog.date.Date().toIsoString(true); - assertValue(dateField, today); - } - suite('Constructor', function() { - test('Empty', function() { - var dateField = new Blockly.FieldDate(); - assertValueDefault(dateField); - }); - test('Undefined', function() { - var dateField = new Blockly.FieldDate(undefined); - assertValueDefault(dateField); - }); - test('Non-Parsable String', function() { - var dateField = new Blockly.FieldDate('bad'); - assertValueDefault(dateField); - }); - test('2020-02-20', function() { - var dateField = new Blockly.FieldDate('2020-02-20'); - assertValue(dateField, '2020-02-20'); - }); - test('Invalid Date - Month(2020-13-20)', function() { - var dateField = new Blockly.FieldDate('2020-13-20'); - assertValueDefault(dateField); - }); - test('Invalid Date - Day(2020-02-32)', function() { - var dateField = new Blockly.FieldDate('2020-02-32'); - assertValueDefault(dateField); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var dateField = Blockly.FieldDate.fromJson({}); - assertValueDefault(dateField); - }); - test('Undefined', function() { - var dateField = Blockly.FieldDate.fromJson({ date: undefined }); - assertValueDefault(dateField); - }); - test('Non-Parsable String', function() { - var dateField = Blockly.FieldDate.fromJson({ date: 'bad' }); - assertValueDefault(dateField); - }); - test('2020-02-20', function() { - var dateField = Blockly.FieldDate.fromJson({ date: '2020-02-20' }); - assertValue(dateField, '2020-02-20'); - }); - test('Invalid Date - Month(2020-13-20)', function() { - var dateField = Blockly.FieldDate.fromJson({ date: '2020-13-20' }); - assertValueDefault(dateField); - }); - test('Invalid Date - Day(2020-02-32)', function() { - var dateField = Blockly.FieldDate.fromJson({ date: '2020-02-32' }); - assertValueDefault(dateField); - }); - }); - suite('setValue', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.dateField = new Blockly.FieldDate(); - }); - test('Null', function() { - this.dateField.setValue(null); - assertValueDefault(this.dateField); - }); - test('Undefined', function() { - this.dateField.setValue(undefined); - assertValueDefault(this.dateField); - }); - test('Non-Parsable String', function() { - this.dateField.setValue('bad'); - assertValueDefault(this.dateField); - }); - test('Invalid Date - Month(2020-13-20)', function() { - this.dateField.setValue('2020-13-20'); - assertValueDefault(this.dateField); - }); - test('Invalid Date - Day(2020-02-32)', function() { - this.dateField.setValue('2020-02-32'); - assertValueDefault(this.dateField); - }); - test('3030-03-30', function() { - this.dateField.setValue('3030-03-30'); - assertValue(this.dateField, '3030-03-30'); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.dateField = new Blockly.FieldDate('2020-02-20'); - }); - test('Null', function() { - this.dateField.setValue(null); - assertValue(this.dateField, '2020-02-20'); - }); - test('Undefined', function() { - this.dateField.setValue(undefined); - assertValue(this.dateField, '2020-02-20'); - }); - test('Non-Parsable String', function() { - this.dateField.setValue('bad'); - assertValue(this.dateField, '2020-02-20'); - }); - test('Invalid Date - Month(2020-13-20)', function() { - this.dateField.setValue('2020-13-20'); - assertValue(this.dateField, '2020-02-20'); - }); - test('Invalid Date - Day(2020-02-32)', function() { - this.dateField.setValue('2020-02-32'); - assertValue(this.dateField, '2020-02-20'); - }); - test('3030-03-30', function() { - this.dateField.setValue('3030-03-30'); - assertValue(this.dateField, '3030-03-30'); - }); - }); - }); - suite('Validators', function() { - setup(function() { - this.dateField = new Blockly.FieldDate('2020-02-20'); - }); - teardown(function() { - this.dateField.setValidator(null); - }); - suite('Null Validator', function() { - setup(function() { - this.dateField.setValidator(function() { - return null; - }); - }); - test('New Value', function() { - this.dateField.setValue('3030-03-30'); - assertValue(this.dateField, '2020-02-20'); - }); - }); - suite('Force Day 20s Validator', function() { - setup(function() { - this.dateField.setValidator(function(newValue) { - return newValue.substr(0, 8) + '2' + newValue.substr(9, 1); - }); - }); - test('New Value', function() { - this.dateField.setValue('3030-03-30'); - assertValue(this.dateField, '3030-03-20'); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.dateField.setValidator(function() {}); - }); - test('New Value', function() { - this.dateField.setValue('3030-03-30'); - assertValue(this.dateField, '3030-03-30'); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_dropdown_test.js b/lib/blockly/tests/mocha/field_dropdown_test.js deleted file mode 100644 index 896e2ef..0000000 --- a/lib/blockly/tests/mocha/field_dropdown_test.js +++ /dev/null @@ -1,204 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Dropdown Fields', function() { - function assertValue(dropdownField, expectedValue, expectedText) { - var actualValue = dropdownField.getValue(); - var actualText = dropdownField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedText); - } - suite('Constructor', function() { - test('Empty', function() { - chai.assert.throws(function() { - new Blockly.FieldDropdown(); - }); - }); - test('Undefined', function() { - chai.assert.throws(function() { - new Blockly.FieldDropdown(undefined); - }); - }); - test('Array Items not Arrays', function() { - var stub = sinon.stub(console, 'error'); - chai.assert.throws(function() { - new Blockly.FieldDropdown([1, 2, 3]); - }); - chai.assert(stub.calledThrice); - stub.restore(); - }); - test('Array Items with Invalid IDs', function() { - var stub = sinon.stub(console, 'error'); - chai.assert.throws(function() { - new Blockly.FieldDropdown([['1', 1], ['2', 2], ['3', 3]]); - }); - chai.assert(stub.calledThrice); - stub.restore(); - }); - test('Array Items with Invalid Content', function() { - var stub = sinon.stub(console, 'error'); - chai.assert.throws(function() { - new Blockly.FieldDropdown([[1, '1'], [2, '2'], [3, '3']]); - }); - chai.assert(stub.calledThrice); - stub.restore(); - }); - test('Text Dropdown', function() { - var dropdownField = new Blockly.FieldDropdown( - [['a', 'A'], ['b', 'B'], ['c', 'C']]); - assertValue(dropdownField, 'A', 'a'); - }); - test('Image Dropdown', function() { - var dropdownField = new Blockly.FieldDropdown([ - [{ src:'scrA', alt:'a' }, 'A'], - [{ src:'scrB', alt:'b' }, 'B'], - [{ src:'scrC', alt:'c' }, 'C']]); - assertValue(dropdownField, 'A', 'a'); - }); - test('Dynamic Dropdown Text', function() { - var dynamicDropdownFunc = function() { - return [['a', 'A'], ['b', 'B'], ['c', 'C']]; - }; - var dropdownField = new Blockly.FieldDropdown(dynamicDropdownFunc); - assertValue(dropdownField, 'A', 'a'); - }); - test('Dynamic Dropdown Image', function() { - var dynamicDropdownFunc = function() { - return [ - [{ src:'scrA', alt:'a' }, 'A'], - [{ src:'scrB', alt:'b' }, 'B'], - [{ src:'scrC', alt:'c' }, 'C'] - ]; - }; - var dropdownField = new Blockly.FieldDropdown(dynamicDropdownFunc); - assertValue(dropdownField, 'A', 'a'); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - chai.assert.throws(function() { - Blockly.FieldDropdown.fromJson({}); - }); - }); - test('Undefined', function() { - chai.assert.throws(function() { - Blockly.FieldDropdown.fromJson({ options: undefined }); - }); - }); - test('Array Items not Arrays', function() { - var stub = sinon.stub(console, 'error'); - chai.assert.throws(function() { - Blockly.FieldDropdown.fromJson({ options: [1, 2, 3] }); - }); - chai.assert(stub.calledThrice); - stub.restore(); - }); - test('Array Items with Invalid IDs', function() { - var stub = sinon.stub(console, 'error'); - chai.assert.throws(function() { - Blockly.FieldDropdown.fromJson( - { options:[['1', 1], ['2', 2], ['3', 3]] }); - }); - chai.assert(stub.calledThrice); - stub.restore(); - }); - test('Array Items with Invalid Content', function() { - var stub = sinon.stub(console, 'error'); - chai.assert.throws(function() { - Blockly.FieldDropdown.fromJson( - { options:[[1, '1'], [2, '2'], [3, '3']] }); - }); - chai.assert(stub.calledThrice); - stub.restore(); - }); - test('Text Dropdown', function() { - var dropdownField = Blockly.FieldDropdown.fromJson( - { options:[['a', 'A'], ['b', 'B'], ['c', 'C']] }); - assertValue(dropdownField, 'A', 'a'); - }); - test('Image Dropdown', function() { - var dropdownField = Blockly.FieldDropdown.fromJson({ options:[ - [{ src:'scrA', alt:'a' }, 'A'], - [{ src:'scrB', alt:'b' }, 'B'], - [{ src:'scrC', alt:'c' }, 'C']] }); - assertValue(dropdownField, 'A', 'a'); - }); - }); - suite('setValue', function() { - setup(function() { - this.dropdownField = new Blockly.FieldDropdown( - [['a', 'A'], ['b', 'B'], ['c', 'C']]); - }); - test('Null', function() { - this.dropdownField.setValue(null); - assertValue(this.dropdownField, 'A', 'a'); - }); - test('Undefined', function() { - this.dropdownField.setValue(undefined); - assertValue(this.dropdownField, 'A', 'a'); - }); - test('Invalid ID', function() { - this.dropdownField.setValue('bad'); - assertValue(this.dropdownField, 'A', 'a'); - }); - test('Valid ID', function() { - this.dropdownField.setValue('B'); - assertValue(this.dropdownField, 'B', 'b'); - }); - }); - suite('Validators', function() { - setup(function() { - this.dropdownField = new Blockly.FieldDropdown([ - ["1a","1A"], ["1b","1B"], ["1c","1C"], - ["2a","2A"], ["2b","2B"], ["2c","2C"]]); - }); - teardown(function() { - this.dropdownField.setValidator(null); - }); - suite('Null Validator', function() { - setup(function() { - this.dropdownField.setValidator(function() { - return null; - }); - }); - test('New Value', function() { - this.dropdownField.setValue('1B'); - assertValue(this.dropdownField, '1A', '1a'); - }); - }); - suite('Force 1s Validator', function() { - setup(function() { - this.dropdownField.setValidator(function(newValue) { - return '1' + newValue.charAt(1); - }); - }); - test('New Value', function() { - this.dropdownField.setValue('2B'); - assertValue(this.dropdownField, '1B', '1b'); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.dropdownField.setValidator(function() {}); - }); - test('New Value', function() { - this.dropdownField.setValue('1B'); - assertValue(this.dropdownField, '1B', '1b'); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_image_test.js b/lib/blockly/tests/mocha/field_image_test.js deleted file mode 100644 index 415faf8..0000000 --- a/lib/blockly/tests/mocha/field_image_test.js +++ /dev/null @@ -1,249 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Image Fields', function() { - function assertValue(imageField, expectedValue, expectedText) { - var actualValue = imageField.getValue(); - var actualText = imageField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedText); - } - suite('Constructor', function() { - test('Empty', function() { - chai.assert.throws(function() { - new Blockly.FieldImage(); - }); - }); - test('Undefined Src', function() { - chai.assert.throws(function() { - new Blockly.FieldImage(undefined, 1, 1); - }); - }); - test('Undefined Size', function() { - chai.assert.throws(function() { - new Blockly.FieldImage('src', undefined, undefined); - }); - }); - test('Zero Size', function() { - chai.assert.throws(function() { - new Blockly.FieldImage('src', 0, 0); - }); - }); - test('Non-Parsable String for Size', function() { - chai.assert.throws(function() { - new Blockly.FieldImage('src', 'bad', 'bad'); - }); - }); - test('With Alt', function() { - var imageField = new Blockly.FieldImage('src', 1, 1, 'alt'); - assertValue(imageField, 'src', 'alt'); - }); - test('Without Alt', function() { - var imageField = new Blockly.FieldImage('src', 1, 1); - assertValue(imageField, 'src', ''); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - chai.assert.throws(function() { - Blockly.FieldImage.fromJson({}); - }); - }); - test('Undefined Src', function() { - chai.assert.throws(function() { - Blockly.FieldImage.fromJson({ - src: undefined, - width: 1, - height: 1 - }); - }); - }); - test('Undefined Size', function() { - chai.assert.throws(function() { - Blockly.FieldImage.fromJson({ - src: 'src', - width: undefined, - height: undefined - }); - }); - }); - test('Non-Parsable String for Size', function() { - chai.assert.throws(function() { - Blockly.FieldImage.fromJson({ - src: 'src', - width: 'bad', - height: 'bad' - }); - }); - }); - test('With Alt', function() { - var imageField = Blockly.FieldImage.fromJson({ - src: 'src', - width: 1, - height: 1, - alt: 'alt' - }); - assertValue(imageField, 'src', 'alt'); - }); - test('Without Alt', function() { - var imageField = Blockly.FieldImage.fromJson({ - src: 'src', - width: 1, - height: 1 - }); - assertValue(imageField, 'src', ''); - }); - }); - suite('setValue', function() { - setup(function() { - this.imageField = new Blockly.FieldImage('src', 1, 1, 'alt'); - }); - test('Null', function() { - this.imageField.setValue(null); - assertValue(this.imageField, 'src', 'alt'); - }); - test('Undefined', function() { - this.imageField.setValue(undefined); - assertValue(this.imageField, 'src', 'alt'); - }); - test('Good Src', function() { - this.imageField.setValue('newSrc'); - assertValue(this.imageField, 'newSrc', 'alt'); - }); - }); - suite('Customizations', function() { - suite('On Click Handler', function() { - setup(function() { - this.onClick = function() { - console.log('on click'); - }; - }); - teardown(function() { - delete this.onClick; - }); - test('JS Constructor', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, this.onClick); - chai.assert.equal(field.clickHandler_, this.onClick); - }); - test('setOnClickHandler', function() { - var field = new Blockly.FieldImage('src', 10, 10); - field.setOnClickHandler(this.onClick); - chai.assert.equal(field.clickHandler_, this.onClick); - }); - test('Remove Click Handler', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, this.onClick); - field.setOnClickHandler(null); - chai.assert.equal(field.clickHandler_, null); - }); - }); - suite('Alt', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldImage('src', 10, 10, 'alt'); - chai.assert.equal(field.altText_, 'alt'); - }); - test('JSON Definition', function() { - var field = Blockly.FieldImage.fromJson({ - src: 'src', - width: 10, - height: 10, - alt: 'alt' - }); - chai.assert.equal(field.altText_, 'alt'); - }); - test('Deprecated - setText', function() { - var field = new Blockly.FieldImage('src', 10, 10, 'alt'); - chai.assert.throws(function() { - field.setText('newAlt'); - }); - }); - suite('SetAlt', function() { - setup(function() { - this.imageField = new Blockly.FieldImage('src', 10, 10, 'alt'); - }); - test('Null', function() { - this.imageField.setAlt(null); - assertValue(this.imageField, 'src', ''); - }); - test('Empty String', function() { - this.imageField.setAlt(''); - assertValue(this.imageField, 'src', ''); - }); - test('Good Alt', function() { - this.imageField.setAlt('newAlt'); - assertValue(this.imageField, 'src', 'newAlt'); - }); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, null, null, { - alt: 'alt' - }); - chai.assert.equal(field.altText_, 'alt'); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldImage('src', 10, 10, 'alt', null, null, { - alt: 'configAlt' - }); - chai.assert.equal(field.altText_, 'configAlt'); - }); - test('JS Configuration - Ignore - \'\'', function() { - var field = new Blockly.FieldImage('src', 10, 10, '', null, null, { - alt: 'configAlt' - }); - chai.assert.equal(field.altText_, 'configAlt'); - }); - test('JS Configuration - Ignore - Config \'\'', function() { - var field = new Blockly.FieldImage('src', 10, 10, 'alt', null, null, { - alt: '' - }); - chai.assert.equal(field.altText_, ''); - }); - }); - suite('Flip RTL', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, null, true); - chai.assert.isTrue(field.getFlipRtl()); - }); - test('JSON Definition', function() { - var field = Blockly.FieldImage.fromJson({ - src: 'src', - width: 10, - height: 10, - flipRtl: true - }); - chai.assert.isTrue(field.getFlipRtl()); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, null, null, { - flipRtl: true - }); - chai.assert.isTrue(field.getFlipRtl()); - }); - test('JS Configuration - Ignore - True', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, null, true, { - flipRtl: false - }); - chai.assert.isFalse(field.getFlipRtl()); - }); - test('JS Configuration - Ignore - False', function() { - var field = new Blockly.FieldImage('src', 10, 10, null, null, false, { - flipRtl: true - }); - chai.assert.isTrue(field.getFlipRtl()); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_label_serializable_test.js b/lib/blockly/tests/mocha/field_label_serializable_test.js deleted file mode 100644 index adb0dc0..0000000 --- a/lib/blockly/tests/mocha/field_label_serializable_test.js +++ /dev/null @@ -1,241 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Label Serializable Fields', function() { - function assertValue(labelField, expectedValue) { - var actualValue = labelField.getValue(); - var actualText = labelField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedValue); - } - function assertValueDefault(labelField) { - assertValue(labelField, ''); - } - function assertHasClass(labelField, cssClass) { - labelField.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - labelField.initView(); - chai.assert.isTrue(Blockly.utils.dom.hasClass( - labelField.textElement_, cssClass)); - } - function assertDoesNotHaveClass(labelField, cssClass) { - labelField.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - labelField.initView(); - chai.assert.isFalse(Blockly.utils.dom.hasClass( - labelField.textElement_, cssClass)); - } - suite('Constructor', function() { - test('Empty', function() { - var labelField = new Blockly.FieldLabelSerializable(); - assertValueDefault(labelField); - }); - test('Null', function() { - var labelField = new Blockly.FieldLabelSerializable(null); - assertValueDefault(labelField); - }); - test('Undefined', function() { - var labelField = new Blockly.FieldLabelSerializable(undefined); - assertValueDefault(labelField); - }); - test('String', function() { - var labelField = new Blockly.FieldLabelSerializable('value'); - assertValue(labelField, 'value'); - }); - test('Number (Truthy)', function() { - var labelField = new Blockly.FieldLabelSerializable(1); - assertValue(labelField, '1'); - }); - test('Number (Falsy)', function() { - var labelField = new Blockly.FieldLabelSerializable(0); - assertValue(labelField, '0'); - }); - test('Boolean True', function() { - var labelField = new Blockly.FieldLabelSerializable(true); - assertValue(labelField, 'true'); - }); - test('Boolean False', function() { - var labelField = new Blockly.FieldLabelSerializable(false); - assertValue(labelField, 'false'); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var labelField = new Blockly.FieldLabelSerializable.fromJson({}); - assertValueDefault(labelField); - }); - test('Null', function() { - var labelField = new Blockly.FieldLabelSerializable - .fromJson({ text:null }); - assertValueDefault(labelField); - }); - test('Undefined', function() { - var labelField = new Blockly.FieldLabelSerializable - .fromJson({ text:undefined }); - assertValueDefault(labelField); - }); - test('String', function() { - var labelField = Blockly.FieldLabelSerializable - .fromJson({ text:'value' }); - assertValue(labelField, 'value'); - }); - test('Number (Truthy)', function() { - var labelField = Blockly.FieldLabelSerializable.fromJson({ text:1 }); - assertValue(labelField, '1'); - }); - test('Number (Falsy)', function() { - var labelField = Blockly.FieldLabelSerializable.fromJson({ text:0 }); - assertValue(labelField, '0'); - }); - test('Boolean True', function() { - var labelField = Blockly.FieldLabelSerializable.fromJson({ text:true }); - assertValue(labelField, 'true'); - }); - test('Boolean False', function() { - var labelField = Blockly.FieldLabelSerializable.fromJson({ text:false }); - assertValue(labelField, 'false'); - }); - }); - suite('setValue', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.labelField = new Blockly.FieldLabelSerializable(); - }); - test('Null', function() { - this.labelField.setValue(null); - assertValueDefault(this.labelField); - }); - test('Undefined', function() { - this.labelField.setValue(undefined); - assertValueDefault(this.labelField); - }); - test('New String', function() { - this.labelField.setValue('newValue'); - assertValue(this.labelField, 'newValue'); - }); - test('Number (Truthy)', function() { - this.labelField.setValue(1); - assertValue(this.labelField, '1'); - }); - test('Number (Falsy)', function() { - this.labelField.setValue(0); - assertValue(this.labelField, '0'); - }); - test('Boolean True', function() { - this.labelField.setValue(true); - assertValue(this.labelField, 'true'); - }); - test('Boolean False', function() { - this.labelField.setValue(false); - assertValue(this.labelField, 'false'); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.labelField = new Blockly.FieldLabelSerializable('value'); - }); - test('Null', function() { - this.labelField.setValue(null); - assertValue(this.labelField, 'value'); - }); - test('Undefined', function() { - this.labelField.setValue(undefined); - assertValue(this.labelField, 'value'); - }); - test('New String', function() { - this.labelField.setValue('newValue'); - assertValue(this.labelField, 'newValue'); - }); - test('Number (Truthy)', function() { - this.labelField.setValue(1); - assertValue(this.labelField, '1'); - }); - test('Number (Falsy)', function() { - this.labelField.setValue(0); - assertValue(this.labelField, '0'); - }); - test('Boolean True', function() { - this.labelField.setValue(true); - assertValue(this.labelField, 'true'); - }); - test('Boolean False', function() { - this.labelField.setValue(false); - assertValue(this.labelField, 'false'); - }); - }); - }); - suite('Customizations', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldLabelSerializable('text', 'testClass'); - assertHasClass(field, 'testClass'); - }); - test('JSON Definition', function() { - var field = Blockly.FieldLabelSerializable.fromJson({ - class: 'testClass' - }); - assertHasClass(field, 'testClass'); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldLabelSerializable('text', null, { - class: 'testClass' - }); - assertHasClass(field, 'testClass'); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldLabelSerializable('text', 'paramClass', { - class: 'configClass' - }); - assertDoesNotHaveClass(field, 'paramClass'); - assertHasClass(field, 'configClass'); - }); - test('JS Configuration - Ignore - \'\'', function() { - var field = new Blockly.FieldLabelSerializable('text', '', { - class: 'configClass' - }); - assertHasClass(field, 'configClass'); - }); - test('JS Configuration - Ignore - Config \'\'', function() { - var field = new Blockly.FieldLabelSerializable('text', 'paramClass', { - class: '' - }); - assertDoesNotHaveClass(field, 'paramClass'); - }); - suite('setClass', function() { - test('setClass', function() { - var field = new Blockly.FieldLabelSerializable(); - field.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - field.initView(); - field.setClass('testClass'); - // Don't call assertHasClass b/c we don't want to re-initialize. - chai.assert.isTrue(Blockly.utils.dom.hasClass( - field.textElement_, 'testClass')); - }); - test('setClass Before Initialization', function() { - var field = new Blockly.FieldLabelSerializable(); - field.setClass('testClass'); - assertHasClass(field, 'testClass'); - }); - test('Remove Class', function() { - var field = new Blockly.FieldLabelSerializable('text', null, { - class: 'testClass' - }); - assertHasClass(field, 'testClass'); - field.setClass(null); - chai.assert.isFalse(Blockly.utils.dom.hasClass( - field.textElement_, 'testClass')); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_label_test.js b/lib/blockly/tests/mocha/field_label_test.js deleted file mode 100644 index b707a72..0000000 --- a/lib/blockly/tests/mocha/field_label_test.js +++ /dev/null @@ -1,230 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Label Fields', function() { - function assertValue(labelField, expectedValue) { - var actualValue = labelField.getValue(); - var actualText = labelField.getText(); - assertEquals(actualValue, expectedValue); - assertEquals(actualText, expectedValue); - } - function assertValueDefault(labelField) { - assertValue(labelField, ''); - } - function assertHasClass(labelField, cssClass) { - labelField.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - labelField.initView(); - chai.assert.isTrue(Blockly.utils.dom.hasClass( - labelField.textElement_, cssClass)); - } - function assertDoesNotHaveClass(labelField, cssClass) { - labelField.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - labelField.initView(); - chai.assert.isFalse(Blockly.utils.dom.hasClass( - labelField.textElement_, cssClass)); - } - suite('Constructor', function() { - test('Empty', function() { - var labelField = new Blockly.FieldLabel(); - assertValueDefault(labelField); - }); - test('Undefined', function() { - var labelField = new Blockly.FieldLabel(undefined); - assertValueDefault(labelField); - }); - test('String', function() { - var labelField = new Blockly.FieldLabel('value'); - assertValue(labelField, 'value'); - }); - test('Number (Truthy)', function() { - var labelField = new Blockly.FieldLabel(1); - assertValue(labelField, '1'); - }); - test('Number (Falsy)', function() { - var labelField = new Blockly.FieldLabel(0); - assertValue(labelField, '0'); - }); - test('Boolean True', function() { - var labelField = new Blockly.FieldLabel(true); - assertValue(labelField, 'true'); - }); - test('Boolean False', function() { - var labelField = new Blockly.FieldLabel(false); - assertValue(labelField, 'false'); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var labelField = new Blockly.FieldLabel.fromJson({}); - assertValueDefault(labelField); - }); - test('Undefined', function() { - var labelField = new Blockly.FieldLabel.fromJson({ text:undefined }); - assertValueDefault(labelField); - }); - test('String', function() { - var labelField = Blockly.FieldLabel.fromJson({ text:'value' }); - assertValue(labelField, 'value'); - }); - test('Number (Truthy)', function() { - var labelField = Blockly.FieldLabel.fromJson({ text:1 }); - assertValue(labelField, '1'); - }); - test('Number (Falsy)', function() { - var labelField = Blockly.FieldLabel.fromJson({ text:0 }); - assertValue(labelField, '0'); - }); - test('Boolean True', function() { - var labelField = Blockly.FieldLabel.fromJson({ text:true }); - assertValue(labelField, 'true'); - }); - test('Boolean False', function() { - var labelField = Blockly.FieldLabel.fromJson({ text:false }); - assertValue(labelField, 'false'); - }); - }); - suite('setValue', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.labelField = new Blockly.FieldLabel(); - }); - test('Null', function() { - this.labelField.setValue(null); - assertValueDefault(this.labelField); - }); - test('Undefined', function() { - this.labelField.setValue(undefined); - assertValueDefault(this.labelField); - }); - test('New String', function() { - this.labelField.setValue('newValue'); - assertValue(this.labelField, 'newValue'); - }); - test('Number (Truthy)', function() { - this.labelField.setValue(1); - assertValue(this.labelField, '1'); - }); - test('Number (Falsy)', function() { - this.labelField.setValue(0); - assertValue(this.labelField, '0'); - }); - test('Boolean True', function() { - this.labelField.setValue(true); - assertValue(this.labelField, 'true'); - }); - test('Boolean False', function() { - this.labelField.setValue(false); - assertValue(this.labelField, 'false'); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.labelField = new Blockly.FieldLabel('value'); - }); - test('Null', function() { - this.labelField.setValue(null); - assertValue(this.labelField, 'value'); - }); - test('Undefined', function() { - this.labelField.setValue(undefined); - assertValue(this.labelField, 'value'); - }); - test('New String', function() { - this.labelField.setValue('newValue'); - assertValue(this.labelField, 'newValue'); - }); - test('Number (Truthy)', function() { - this.labelField.setValue(1); - assertValue(this.labelField, '1'); - }); - test('Number (Falsy)', function() { - this.labelField.setValue(0); - assertValue(this.labelField, '0'); - }); - test('Boolean True', function() { - this.labelField.setValue(true); - assertValue(this.labelField, 'true'); - }); - test('Boolean False', function() { - this.labelField.setValue(false); - assertValue(this.labelField, 'false'); - }); - }); - }); - suite('Customizations', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldLabel('text', 'testClass'); - assertHasClass(field, 'testClass'); - }); - test('JSON Definition', function() { - var field = Blockly.FieldLabel.fromJson({ - class: 'testClass' - }); - assertHasClass(field, 'testClass'); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldLabel('text', null, { - class: 'testClass' - }); - assertHasClass(field, 'testClass'); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldLabel('text', 'paramClass', { - class: 'configClass' - }); - assertDoesNotHaveClass(field, 'paramClass'); - assertHasClass(field, 'configClass'); - }); - test('JS Configuration - Ignore - \'\'', function() { - var field = new Blockly.FieldLabel('text', '', { - class: 'configClass' - }); - assertHasClass(field, 'configClass'); - }); - test('JS Configuration - Ignore - Config \'\'', function() { - var field = new Blockly.FieldLabel('text', 'paramClass', { - class: '' - }); - assertDoesNotHaveClass(field, 'paramClass'); - }); - suite('setClass', function() { - test('setClass', function() { - var field = new Blockly.FieldLabel(); - field.fieldGroup_ = Blockly.utils.dom.createSvgElement('g', {}, null); - field.initView(); - field.setClass('testClass'); - // Don't call assertHasClass b/c we don't want to re-initialize. - chai.assert.isTrue(Blockly.utils.dom.hasClass( - field.textElement_, 'testClass')); - }); - test('setClass Before Initialization', function() { - var field = new Blockly.FieldLabel(); - field.setClass('testClass'); - assertHasClass(field, 'testClass'); - }); - test('Remove Class', function() { - var field = new Blockly.FieldLabel('text', null, { - class: 'testClass' - }); - assertHasClass(field, 'testClass'); - field.setClass(null); - chai.assert.isFalse(Blockly.utils.dom.hasClass( - field.textElement_, 'testClass')); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_number_test.js b/lib/blockly/tests/mocha/field_number_test.js deleted file mode 100644 index 1a4d9f7..0000000 --- a/lib/blockly/tests/mocha/field_number_test.js +++ /dev/null @@ -1,503 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Number Fields', function() { - function assertValue(numberField, expectedValue, opt_expectedText) { - var actualValue = numberField.getValue(); - var actualText = numberField.getText(); - opt_expectedText = opt_expectedText || String(expectedValue); - assertEquals(String(actualValue), String(expectedValue)); - assertEquals(Number(actualValue), expectedValue); - assertEquals(actualText, opt_expectedText); - } - function assertValueDefault(numberField) { - assertValue(numberField, 0); - } - function assertNumberField(numberField, expectedMin, expectedMax, - expectedPrecision, expectedValue) { - assertValue(numberField, expectedValue); - chai.assert.equal(numberField.getMin(), expectedMin); - chai.assert.equal(numberField.getMax(), expectedMax); - chai.assert.equal(numberField.getPrecision(), expectedPrecision); - } - function assertNumberFieldDefault(numberField) { - assertNumberField(numberField, -Infinity, Infinity, 0, 0); - } - function createNumberFieldSameValuesConstructor(value) { - return new Blockly.FieldNumber(value, value, value, value); - } - function createNumberFieldSameValuesJson(value) { - return Blockly.FieldNumber.fromJson( - { 'value': value, min: value, max: value, precision: value }); - } - function assertNumberFieldSameValues(numberField, value) { - assertNumberField(numberField, value, value, value, value); - } - suite('Constructor', function() { - test('Empty', function() { - var numberField = new Blockly.FieldNumber(); - assertNumberFieldDefault(numberField); - }); - test('Undefined', function() { - var numberField = createNumberFieldSameValuesConstructor(undefined); - assertNumberFieldDefault(numberField); - }); - test('NaN', function() { - var numberField = createNumberFieldSameValuesConstructor(NaN); - assertNumberFieldDefault(numberField); - }); - test('Integer', function() { - var numberField = createNumberFieldSameValuesConstructor(1); - assertNumberFieldSameValues(numberField, 1); - }); - test('Float', function() { - var numberField = createNumberFieldSameValuesConstructor(1.5); - assertNumberFieldSameValues(numberField, 1.5); - }); - test('Integer String', function() { - var numberField = createNumberFieldSameValuesConstructor('1'); - assertNumberFieldSameValues(numberField, 1); - }); - test('Float String', function() { - var numberField = createNumberFieldSameValuesConstructor('1.5'); - assertNumberFieldSameValues(numberField, 1.5); - }); - test('Infinity', function() { - var numberField = createNumberFieldSameValuesConstructor('Infinity'); - assertNumberFieldSameValues(numberField, Infinity); - }); - test('Negative Infinity String', function() { - var numberField = createNumberFieldSameValuesConstructor('-Infinity'); - assertNumberFieldSameValues(numberField, -Infinity); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var numberField = Blockly.FieldNumber.fromJson({}); - assertNumberFieldDefault(numberField); - }); - test('Undefined', function() { - var numberField = createNumberFieldSameValuesJson(undefined); - assertNumberFieldDefault(numberField); - }); - test('NaN', function() { - var numberField = createNumberFieldSameValuesJson(NaN); - assertNumberFieldDefault(numberField); - }); - test('Integer', function() { - var numberField = createNumberFieldSameValuesJson(1); - assertNumberFieldSameValues(numberField, 1); - }); - test('Float', function() { - var numberField = createNumberFieldSameValuesJson(1.5); - assertNumberFieldSameValues(numberField, 1.5); - }); - test('Integer String', function() { - var numberField = createNumberFieldSameValuesJson('1'); - assertNumberFieldSameValues(numberField, 1); - }); - test('Float String', function() { - var numberField = createNumberFieldSameValuesJson('1.5'); - assertNumberFieldSameValues(numberField, 1.5); - }); - test('Infinity', function() { - var numberField = createNumberFieldSameValuesJson('Infinity'); - assertNumberFieldSameValues(numberField, Infinity); - }); - test('Negative Infinity String', function() { - var numberField = createNumberFieldSameValuesJson('-Infinity'); - assertNumberFieldSameValues(numberField, -Infinity); - }); - }); - suite('setValue', function() { - suite('Value Types', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.numberField = new Blockly.FieldNumber(); - }); - test('Null', function() { - this.numberField.setValue(null); - assertValueDefault(this.numberField); - }); - test('Undefined', function() { - this.numberField.setValue(undefined); - assertValueDefault(this.numberField); - }); - test('Non-Parsable String', function() { - this.numberField.setValue('bad'); - assertValueDefault(this.numberField); - }); - test('NaN', function() { - this.numberField.setValue(NaN); - assertValueDefault(this.numberField); - }); - test('Integer', function() { - this.numberField.setValue(2); - assertValue(this.numberField, 2); - }); - test('Float', function() { - this.numberField.setValue(2.5); - assertValue(this.numberField, 2.5); - }); - test('Integer String', function() { - this.numberField.setValue('2'); - assertValue(this.numberField, 2); - }); - test('Float String', function() { - this.numberField.setValue('2.5'); - assertValue(this.numberField, 2.5); - }); - test('Infinity', function() { - this.numberField.setValue(Infinity); - assertValue(this.numberField, Infinity); - }); - test('Negative Infinity String', function() { - this.numberField.setValue('-Infinity'); - assertValue(this.numberField, -Infinity); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.numberField = new Blockly.FieldNumber(1); - }); - test('Null', function() { - this.numberField.setValue(null); - assertValue(this.numberField, 1); - }); - test('Undefined', function() { - this.numberField.setValue(undefined); - assertValue(this.numberField, 1); - }); - test('Non-Parsable String', function() { - this.numberField.setValue('bad'); - assertValue(this.numberField, 1); - }); - test('NaN', function() { - this.numberField.setValue(NaN); - assertValue(this.numberField, 1); - }); - test('Integer', function() { - this.numberField.setValue(2); - assertValue(this.numberField, 2); - }); - test('Float', function() { - this.numberField.setValue(2.5); - assertValue(this.numberField, 2.5); - }); - test('Integer String', function() { - this.numberField.setValue('2'); - assertValue(this.numberField, 2); - }); - test('Float String', function() { - this.numberField.setValue('2.5'); - assertValue(this.numberField, 2.5); - }); - test('Infinity', function() { - this.numberField.setValue(Infinity); - assertValue(this.numberField, Infinity); - }); - test('Negative Infinity String', function() { - this.numberField.setValue('-Infinity'); - assertValue(this.numberField, -Infinity); - }); - }); - }); - suite('Constraints', function() { - suite('Precision', function() { - test('Float', function() { - var numberField = new Blockly.FieldNumber(); - numberField.setValue(123.456); - assertValue(numberField, 123.456); - }); - test('0.01', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ precision: .01 }); - numberField.setValue(123.456); - assertValue(numberField, 123.46); - }); - test('0.5', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ precision: .5 }); - numberField.setValue(123.456); - assertValue(numberField, 123.5); - }); - test('1', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ precision: 1 }); - numberField.setValue(123.456); - assertValue(numberField, 123); - }); - test('1.5', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ precision: 1.5 }); - numberField.setValue(123.456); - assertValue(numberField, 123); - }); - test('null', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ precision: null}); - numberField.setValue(123.456); - assertValue(numberField, 123.456); - }); - }); - suite('Min', function() { - test('-10', function() { - var numberField = new Blockly.FieldNumber.fromJson({ min: -10 }); - numberField.setValue(-20); - assertValue(numberField, -10); - numberField.setValue(0); - assertValue(numberField, 0); - numberField.setValue(20); - assertValue(numberField, 20); - }); - test('0', function() { - var numberField = new Blockly.FieldNumber.fromJson({ min: 0 }); - numberField.setValue(-20); - assertValue(numberField, 0); - numberField.setValue(0); - assertValue(numberField, 0); - numberField.setValue(20); - assertValue(numberField, 20); - }); - test('+10', function() { - var numberField = new Blockly.FieldNumber.fromJson({ min: 10 }); - numberField.setValue(-20); - assertValue(numberField, 10); - numberField.setValue(0); - assertValue(numberField, 10); - numberField.setValue(20); - assertValue(numberField, 20); - }); - test('null', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ min: null}); - numberField.setValue(-20); - assertValue(numberField, -20); - }); - }); - suite('Max', function() { - test('-10', function() { - var numberField = new Blockly.FieldNumber.fromJson({ max: -10 }); - numberField.setValue(-20); - assertValue(numberField, -20); - numberField.setValue(0); - assertValue(numberField, -10); - numberField.setValue(20); - assertValue(numberField, -10); - }); - test('0', function() { - var numberField = new Blockly.FieldNumber.fromJson({ max: 0 }); - numberField.setValue(-20); - assertValue(numberField, -20); - numberField.setValue(0); - assertValue(numberField, 0); - numberField.setValue(20); - assertValue(numberField, 0); - }); - test('+10', function() { - var numberField = new Blockly.FieldNumber.fromJson({ max: 10 }); - numberField.setValue(-20); - assertValue(numberField, -20); - numberField.setValue(0); - assertValue(numberField, 0); - numberField.setValue(20); - assertValue(numberField, 10); - }); - test('null', function() { - var numberField = new Blockly.FieldNumber - .fromJson({ max: null}); - numberField.setValue(20); - assertValue(numberField, 20); - }); - }); - }); - }); - suite('Validators', function() { - setup(function() { - this.numberField = new Blockly.FieldNumber(1); - this.numberField.htmlInput_ = Object.create(null); - this.numberField.htmlInput_.oldValue_ = '1'; - this.numberField.htmlInput_.untypedDefaultValue_ = 1; - }); - teardown(function() { - this.numberField.setValidator(null); - this.numberField.htmlInput_ = null; - }); - suite('Null Validator', function() { - setup(function() { - this.numberField.setValidator(function() { - return null; - }); - }); - test('When Editing', function() { - this.numberField.isBeingEdited_ = true; - this.numberField.htmlInput_.value = '2'; - this.numberField.onHtmlInputChange_(null); - assertValue(this.numberField, 1, '2'); - this.numberField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.numberField.setValue(2); - assertValue(this.numberField, 1); - }); - }); - suite('Force End with 6 Validator', function() { - setup(function() { - this.numberField.setValidator(function(newValue) { - return String(newValue).replace(/.$/, "6"); - }); - }); - test('When Editing', function() { - this.numberField.isBeingEdited_ = true; - this.numberField.htmlInput_.value = '25'; - this.numberField.onHtmlInputChange_(null); - assertValue(this.numberField, 26, '25'); - this.numberField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.numberField.setValue(25); - assertValue(this.numberField, 26); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.numberField.setValidator(function() {}); - }); - test('When Editing', function() { - this.numberField.isBeingEdited_ = true; - this.numberField.htmlInput_.value = '2'; - this.numberField.onHtmlInputChange_(null); - assertValue(this.numberField, 2); - this.numberField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.numberField.setValue(2); - assertValue(this.numberField, 2); - }); - }); - }); - suite('Customizations', function() { - suite('Min', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldNumber(0, -10); - assertNumberField(field, -10, Infinity, 0, 0); - }); - test('JSON Definition', function() { - var field = Blockly.FieldNumber.fromJson({ - min: -10, - }); - assertNumberField(field, -10, Infinity, 0, 0); - }); - test('Set Constraints', function() { - var field = new Blockly.FieldNumber(); - field.setConstraints(-10); - assertNumberField(field, -10, Infinity, 0, 0); - }); - test('Set Min', function() { - var field = new Blockly.FieldNumber(); - field.setMin(-10); - assertNumberField(field, -10, Infinity, 0, 0); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldNumber( - undefined, undefined, undefined, undefined, undefined, { - min: -10 - }); - assertNumberField(field, -10, Infinity, 0, 0); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldNumber( - undefined, -1, undefined, undefined, undefined, { - min: -10 - }); - assertNumberField(field, -10, Infinity, 0, 0); - }); - }); - suite('Max', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldNumber(0, undefined, 10); - assertNumberField(field, -Infinity, 10, 0, 0); - }); - test('JSON Definition', function() { - var field = Blockly.FieldNumber.fromJson({ - max: 10, - }); - assertNumberField(field, -Infinity, 10, 0, 0); - }); - test('Set Constraints', function() { - var field = new Blockly.FieldNumber(); - field.setConstraints(undefined, 10); - assertNumberField(field, -Infinity, 10, 0, 0); - }); - test('Set Max', function() { - var field = new Blockly.FieldNumber(); - field.setMax(10); - assertNumberField(field, -Infinity, 10, 0, 0); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldNumber( - undefined, undefined, undefined, undefined, undefined, { - max: 10 - }); - assertNumberField(field, -Infinity, 10, 0, 0); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldNumber( - undefined, undefined, 1, undefined, undefined, { - max: 10 - }); - assertNumberField(field, -Infinity, 10, 0, 0); - }); - }); - suite('Precision', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldNumber(0, undefined, undefined, 1); - assertNumberField(field, -Infinity, Infinity, 1, 0); - }); - test('JSON Definition', function() { - var field = Blockly.FieldNumber.fromJson({ - precision: 1, - }); - assertNumberField(field, -Infinity, Infinity, 1, 0); - }); - test('Set Constraints', function() { - var field = new Blockly.FieldNumber(); - field.setConstraints(undefined, undefined, 1); - assertNumberField(field, -Infinity, Infinity, 1, 0); - }); - test('Set Precision', function() { - var field = new Blockly.FieldNumber(); - field.setPrecision(1); - assertNumberField(field, -Infinity, Infinity, 1, 0); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldNumber( - undefined, undefined, undefined, undefined, undefined, { - precision: 1 - }); - assertNumberField(field, -Infinity, Infinity, 1, 0); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldNumber( - undefined, undefined, undefined, .5, undefined, { - precision: 1 - }); - assertNumberField(field, -Infinity, Infinity, 1, 0); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_registry_test.js b/lib/blockly/tests/mocha/field_registry_test.js deleted file mode 100644 index 574e6df..0000000 --- a/lib/blockly/tests/mocha/field_registry_test.js +++ /dev/null @@ -1,123 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Tests for Blockly.fieldRegistry - * @author bekawestberg@gmail.com (Beka Westberg) - */ -'use strict'; - -suite('Field Registry', function() { - function CustomFieldType(value) { - CustomFieldType.superClass_.constructor.call(this, value); - } - Blockly.utils.object.inherits(CustomFieldType, Blockly.Field); - CustomFieldType.fromJson = function(options) { - return new CustomFieldType(options['value']); - }; - - teardown(function() { - if (Blockly.fieldRegistry.typeMap_['field_custom_test']) { - delete Blockly.fieldRegistry.typeMap_['field_custom_test']; - } - }); - suite('Registration', function() { - test('Simple', function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - }); - test('Empty String Key', function() { - chai.assert.throws(function() { - Blockly.fieldRegistry.register('', CustomFieldType); - }, 'Invalid field type'); - }); - test('Class as Key', function() { - chai.assert.throws(function() { - Blockly.fieldRegistry.register(CustomFieldType, ''); - }, 'Invalid field type'); - }); - test('fromJson as Key', function() { - chai.assert.throws(function() { - Blockly.fieldRegistry.register(CustomFieldType.fromJson, ''); - }, 'Invalid field type'); - }); - test('Overwrite a Key', function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - chai.assert.throws(function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - }, 'already registered'); - }); - test('Null Value', function() { - chai.assert.throws(function() { - Blockly.fieldRegistry.register('field_custom_test', null); - }, 'fromJson function'); - }); - test('No fromJson', function() { - var fromJson = CustomFieldType.fromJson; - delete CustomFieldType.fromJson; - chai.assert.throws(function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - }, 'fromJson function'); - CustomFieldType.fromJson = fromJson; - }); - test('fromJson not a function', function() { - var fromJson = CustomFieldType.fromJson; - CustomFieldType.fromJson = true; - chai.assert.throws(function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - }, 'fromJson function'); - CustomFieldType.fromJson = fromJson; - }); - }); - suite('Retrieval', function() { - test('Simple', function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - - var json = { - type: 'field_custom_test', - value: 'ok' - }; - - var field = Blockly.fieldRegistry.fromJson(json); - chai.assert.isNotNull(field); - chai.assert.equal('ok', field.getValue()); - }); - test('Not Registered', function() { - var json = { - type: 'field_custom_test', - value: 'ok' - }; - - var spy = sinon.stub(console, 'warn'); - var field = Blockly.fieldRegistry.fromJson(json); - chai.assert.isNull(field); - chai.assert.isTrue(spy.called); - spy.restore(); - }); - test('Case Different', function() { - Blockly.fieldRegistry.register('field_custom_test', CustomFieldType); - - var json = { - type: 'FIELD_CUSTOM_TEST', - value: 'ok' - }; - - var field = Blockly.fieldRegistry.fromJson(json); - chai.assert.isNotNull(field); - chai.assert.equal('ok', field.getValue()); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_test.js b/lib/blockly/tests/mocha/field_test.js deleted file mode 100644 index f700fa1..0000000 --- a/lib/blockly/tests/mocha/field_test.js +++ /dev/null @@ -1,537 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Abstract Fields', function() { - suite('Is Serializable', function() { - // Both EDITABLE and SERIALIZABLE are default. - function FieldDefault() { - this.name = 'NAME'; - } - FieldDefault.prototype = Object.create(Blockly.Field.prototype); - // EDITABLE is false and SERIALIZABLE is default. - function FieldFalseDefault() { - this.name = 'NAME'; - } - FieldFalseDefault.prototype = Object.create(Blockly.Field.prototype); - FieldFalseDefault.prototype.EDITABLE = false; - // EDITABLE is default and SERIALIZABLE is true. - function FieldDefaultTrue() { - this.name = 'NAME'; - } - FieldDefaultTrue.prototype = Object.create(Blockly.Field.prototype); - FieldDefaultTrue.prototype.SERIALIZABLE = true; - // EDITABLE is false and SERIALIZABLE is true. - function FieldFalseTrue() { - this.name = 'NAME'; - } - FieldFalseTrue.prototype = Object.create(Blockly.Field.prototype); - FieldFalseTrue.prototype.EDITABLE = false; - FieldFalseTrue.prototype.SERIALIZABLE = true; - - /* Test Backwards Compatibility */ - test('Editable Default(true), Serializable Default(false)', function() { - // An old default field should be serialized. - var field = new FieldDefault(); - var stub = sinon.stub(console, 'warn'); - assertEquals(true, field.isSerializable()); - chai.assert(stub.calledOnce); - stub.restore(); - }); - test('Editable False, Serializable Default(false)', function() { - // An old non-editable field should not be serialized. - var field = new FieldFalseDefault(); - assertEquals(false, field.isSerializable()); - }); - /* Test Other Cases */ - test('Editable Default(true), Serializable True', function() { - // A field that is both editable and serializable should be serialized. - var field = new FieldDefaultTrue(); - assertEquals(true, field.isSerializable()); - }); - test('Editable False, Serializable True', function() { - // A field that is not editable, but overrides serializable to true - // should be serialized (e.g. field_label_serializable) - var field = new FieldFalseTrue(); - assertEquals(true, field.isSerializable()); - }); - }); - suite('setValue', function() { - function addSpies(field) { - if (!this.isSpying) { - sinon.spy(field, 'doValueInvalid_'); - sinon.spy(field, 'doValueUpdate_'); - sinon.spy(field, 'forceRerender'); - this.isSpying = true; - } - } - function removeSpies(field) { - if (this.isSpying) { - field.doValueInvalid_.restore(); - field.doValueUpdate_.restore(); - field.forceRerender.restore(); - this.isSpying = false; - } - } - setup(function() { - this.field = new Blockly.Field(); - this.field.isDirty_ = false; - this.cachedDoClassValidation = this.field.doClassValidation_; - this.cachedDoValueUpdate = this.field.doValueUpdate_; - this.cachedDoValueInvalid = this.field.doValueInvalid_; - }); - teardown(function() { - removeSpies(this.field); - this.field.doClassValidation_ = this.cachedDoClassValidation; - this.field.doValueUpdate_ = this.cachedDoValueUpdate; - this.field.doValueInvalid_ = this.cachedDoValueInvalid; - this.field.setValidator(null); - }); - test('Null', function() { - addSpies(this.field); - this.field.setValue(null); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.notCalled); - }); - test('No Validators, Dirty (Default)', function() { - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - chai.assert(this.field.forceRerender.calledOnce); - }); - test('No Validators, Not Dirty', function() { - this.field.doValueUpdate_ = function(newValue) { - this.value_ = newValue; - this.isDirty_ = false; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - chai.assert(this.field.forceRerender.notCalled); - }); - test('Class Validator Returns Invalid, Not Dirty (Default)', function() { - this.field.doClassValidation_ = function() { - return null; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.calledOnce); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.notCalled); - }); - test('Class Validator Returns Invalid, Dirty', function() { - this.field.doClassValidation_ = function() { - return null; - }; - this.field.doValueInvalid_ = function() { - this.isDirty_ = true; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.calledOnce); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.calledOnce); - }); - test('Class Validator Returns Valid, Not Dirty', function() { - this.field.doClassValidation_ = function(newValue) { - return newValue; - }; - this.field.doValueUpdate_ = function() { - this.isDirty_ = false; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - chai.assert(this.field.forceRerender.notCalled); - }); - test('Class Validator Returns Valid, Dirty (Default)', function() { - this.field.doClassValidation_ = function(newValue) { - return newValue; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - chai.assert(this.field.forceRerender.calledOnce); - }); - test('Local Validator Returns Invalid, Not Dirty (Default)', function() { - this.field.setValidator(function() { - return null; - }); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.calledOnce); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.notCalled); - }); - test('Local Validator Returns Invalid, Dirty', function() { - this.field.setValidator(function() { - return null; - }); - this.field.doValueInvalid_ = function() { - this.isDirty_ = true; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.calledOnce); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.calledOnce); - }); - test('Local Validator Returns Valid, Not Dirty', function() { - this.field.setValidator(function(newValue) { - return newValue; - }); - this.field.doValueUpdate_ = function() { - this.isDirty_ = false; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - chai.assert(this.field.forceRerender.notCalled); - }); - test('Local Validator Returns Valid, Dirty (Default)', function() { - this.field.setValidator(function(newValue) { - return newValue; - }); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - chai.assert(this.field.forceRerender.calledOnce); - }); - test('New Value Matches Old Value', function() { - this.field.setValue('value'); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.notCalled); - }); - test('New Value (Class)Validates to Old Value', function() { - this.field.setValue('value'); - this.field.doClassValidation_ = function() { - return 'value'; - }; - addSpies(this.field); - this.field.setValue('notValue'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.notCalled); - }); - test('New Value (Local)Validates to Old Value', function() { - this.field.setValue('value'); - this.field.setValidator(function() { - return 'value'; - }); - addSpies(this.field); - this.field.setValue('notValue'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.notCalled); - chai.assert(this.field.forceRerender.notCalled); - }); - test('New Value (Class)Validates to not Old Value', function() { - this.field.setValue('value'); - this.field.doClassValidation_ = function() { - return 'notValue'; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('New Value (Local)Validates to not Old Value', function() { - this.field.setValue('value'); - this.field.setValidator(function() { - return 'notValue'; - }); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('Class Validator Returns Null', function() { - this.field.doClassValidation_ = function() { - return null; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.calledOnce); - chai.assert(this.field.doValueUpdate_.notCalled); - }); - test('Class Validator Returns Same', function() { - this.field.doClassValidation_ = function(newValue) { - return newValue; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('Class Validator Returns Different', function() { - this.field.doClassValidation_ = function() { - return 'differentValue'; - }; - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('Class Validator Returns Undefined', function() { - this.field.doClassValidation_ = function() {}; - addSpies(this.field); - this.field.setValue('value'); - chai.assert.equal(this.field.getValue(), 'value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('Local Validator Returns Null', function() { - this.field.setValidator(function() { - return null; - }); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.calledOnce); - chai.assert(this.field.doValueUpdate_.notCalled); - }); - test('Local Validator Returns Same', function() { - this.field.setValidator(function(newValue) { - return newValue; - }); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('Local Validator Returns Different', function() { - this.field.setValidator(function() { - return 'differentValue'; - }); - addSpies(this.field); - this.field.setValue('value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - test('Local Validator Returns Undefined', function() { - this.field.setValidator(function() {}); - addSpies(this.field); - this.field.setValue('value'); - chai.assert.equal(this.field.getValue(), 'value'); - chai.assert(this.field.doValueInvalid_.notCalled); - chai.assert(this.field.doValueUpdate_.calledOnce); - }); - }); - suite('Customization', function() { - // All this field does is wrap the abstract field. - function CustomField(opt_config) { - CustomField.superClass_.constructor.call( - this, 'value', null, opt_config); - } - Blockly.utils.object.inherits(CustomField, Blockly.Field); - CustomField.fromJson = function(options) { - return new CustomField(options); - }; - - suite('Tooltip', function() { - test('JS Constructor', function() { - var field = new Blockly.Field('value', null, { - tooltip: 'test tooltip', - }); - chai.assert.equal(field.tooltip_, 'test tooltip'); - }); - test('JS Constructor - Dynamic', function() { - var returnTooltip = function() { - return 'dynamic tooltip text'; - }; - var field = new Blockly.Field('value', null, { - tooltip: returnTooltip - }); - chai.assert.equal(field.tooltip_, returnTooltip); - }); - test('JSON Definition', function() { - var field = CustomField.fromJson({ - tooltip: "test tooltip" - }); - chai.assert.equal(field.tooltip_, 'test tooltip'); - }); - suite('W/ Msg References', function() { - setup(function() { - Blockly.Msg['TOOLTIP'] = 'test tooltip'; - }); - teardown(function() { - delete Blockly.Msg['TOOLTIP']; - }); - test('JS Constructor', function() { - var field = new Blockly.Field('value', null, { - tooltip: '%{BKY_TOOLTIP}', - }); - chai.assert.equal(field.tooltip_, 'test tooltip'); - }); - test('JSON Definition', function() { - var field = CustomField.fromJson({ - tooltip: "%{BKY_TOOLTIP}" - }); - chai.assert.equal(field.tooltip_, 'test tooltip'); - }); - }); - suite('setTooltip', function() { - setup(function() { - this.workspace = new Blockly.WorkspaceSvg({}); - this.workspace.createDom(); - }); - teardown(function() { - this.workspace = null; - }); - test('Before Append', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - field.setTooltip('tooltip'); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - }, - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - chai.assert.equal(field.getClickTarget_().tooltip, 'tooltip'); - delete Blockly.Blocks['tooltip']; - }); - test('After Append', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - field.setTooltip('tooltip'); - }, - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - chai.assert.equal(field.getClickTarget_().tooltip, 'tooltip'); - delete Blockly.Blocks['tooltip']; - }); - test('After Block Creation', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - }, - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - field.setTooltip('tooltip'); - chai.assert.equal(field.getClickTarget_().tooltip, 'tooltip'); - delete Blockly.Blocks['tooltip']; - }); - test('Dynamic Function', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - field.setTooltip(this.tooltipFunc); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - }, - - tooltipFunc: function() { - return this.getFieldValue('TOOLTIP'); - } - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - chai.assert.equal(field.getClickTarget_().tooltip, block.tooltipFunc); - delete Blockly.Blocks['tooltip']; - }); - test('Element', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - field.setTooltip(this.element); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - }, - element: { - tooltip: 'tooltip' - } - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - chai.assert.equal(field.getClickTarget_().tooltip, block.element); - delete Blockly.Blocks['tooltip']; - }); - test('Null', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - field.setTooltip(null); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - }, - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - chai.assert.equal(field.getClickTarget_().tooltip, block); - delete Blockly.Blocks['tooltip']; - }); - test('Undefined', function() { - Blockly.Blocks['tooltip'] = { - init: function() { - var field = new Blockly.FieldTextInput('default'); - this.appendDummyInput() - .appendField(field, 'TOOLTIP'); - }, - }; - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ).children[0], this.workspace); - var field = block.getField('TOOLTIP'); - chai.assert.equal(field.getClickTarget_().tooltip, block); - delete Blockly.Blocks['tooltip']; - }); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_textinput_test.js b/lib/blockly/tests/mocha/field_textinput_test.js deleted file mode 100644 index 7e94da5..0000000 --- a/lib/blockly/tests/mocha/field_textinput_test.js +++ /dev/null @@ -1,278 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Text Input Fields', function() { - function assertValue(textInputField, expectedValue, opt_expectedText) { - var actualValue = textInputField.getValue(); - var actualText = textInputField.getText(); - opt_expectedText = opt_expectedText || expectedValue; - assertEquals(actualValue, expectedValue); - assertEquals(actualText, opt_expectedText); - } - function assertValueDefault(textInputField) { - assertValue(textInputField, ''); - } - suite('Constructor', function() { - test('Empty', function() { - var textInputField = new Blockly.FieldTextInput(); - assertValueDefault(textInputField); - }); - test('Undefined', function() { - var textInputField = new Blockly.FieldTextInput(undefined); - assertValueDefault(textInputField); - }); - test('String', function() { - var textInputField = new Blockly.FieldTextInput('value'); - assertValue(textInputField, 'value'); - }); - test('Number (Truthy)', function() { - var textInputField = new Blockly.FieldTextInput(1); - assertValue(textInputField, '1'); - }); - test('Number (Falsy)', function() { - var textInputField = new Blockly.FieldTextInput(0); - assertValue(textInputField, '0'); - }); - test('Boolean True', function() { - var textInputField = new Blockly.FieldTextInput(true); - assertValue(textInputField, 'true'); - }); - test('Boolean False', function() { - var textInputField = new Blockly.FieldTextInput(false); - assertValue(textInputField, 'false'); - }); - }); - suite('fromJson', function() { - test('Empty', function() { - var textInputField = new Blockly.FieldTextInput.fromJson({}); - assertValueDefault(textInputField); - }); - test('Undefined', function() { - var textInputField = new Blockly.FieldTextInput - .fromJson({ text: undefined}); - assertValueDefault(textInputField); - }); - test('String', function() { - var textInputField = Blockly.FieldTextInput.fromJson({ text:'value' }); - assertValue(textInputField, 'value'); - }); - test('Number (Truthy)', function() { - var textInputField = Blockly.FieldTextInput.fromJson({ text:1 }); - assertValue(textInputField, '1'); - }); - test('Number (Falsy)', function() { - var textInputField = Blockly.FieldTextInput.fromJson({ text:0 }); - assertValue(textInputField, '0'); - }); - test('Boolean True', function() { - var textInputField = Blockly.FieldTextInput.fromJson({ text:true }); - assertValue(textInputField, 'true'); - }); - test('Boolean False', function() { - var textInputField = Blockly.FieldTextInput.fromJson({ text:false }); - assertValue(textInputField, 'false'); - }); - }); - suite('setValue', function() { - suite('Empty -> New Value', function() { - setup(function() { - this.textInputField = new Blockly.FieldTextInput(); - }); - test('Null', function() { - this.textInputField.setValue(null); - assertValueDefault(this.textInputField); - }); - test('Undefined', function() { - this.textInputField.setValue(undefined); - assertValueDefault(this.textInputField); - }); - test('New String', function() { - this.textInputField.setValue('newValue'); - assertValue(this.textInputField, 'newValue'); - }); - test('Number (Truthy)', function() { - this.textInputField.setValue(1); - assertValue(this.textInputField, '1'); - }); - test('Number (Falsy)', function() { - this.textInputField.setValue(0); - assertValue(this.textInputField, '0'); - }); - test('Boolean True', function() { - this.textInputField.setValue(true); - assertValue(this.textInputField, 'true'); - }); - test('Boolean False', function() { - this.textInputField.setValue(false); - assertValue(this.textInputField, 'false'); - }); - }); - suite('Value -> New Value', function() { - setup(function() { - this.textInputField = new Blockly.FieldTextInput('value'); - }); - test('Null', function() { - this.textInputField.setValue(null); - assertValue(this.textInputField, 'value'); - }); - test('Undefined', function() { - this.textInputField.setValue(undefined); - assertValue(this.textInputField, 'value'); - }); - test('New String', function() { - this.textInputField.setValue('newValue'); - assertValue(this.textInputField, 'newValue'); - }); - test('Number (Truthy)', function() { - this.textInputField.setValue(1); - assertValue(this.textInputField, '1'); - }); - test('Number (Falsy)', function() { - this.textInputField.setValue(0); - assertValue(this.textInputField, '0'); - }); - test('Boolean True', function() { - this.textInputField.setValue(true); - assertValue(this.textInputField, 'true'); - }); - test('Boolean False', function() { - this.textInputField.setValue(false); - assertValue(this.textInputField, 'false'); - }); - }); - }); - suite('Validators', function() { - setup(function() { - this.textInputField = new Blockly.FieldTextInput('value'); - this.textInputField.htmlInput_ = Object.create(null); - this.textInputField.htmlInput_.oldValue_ = 'value'; - this.textInputField.htmlInput_.untypedDefaultValue_ = 'value'; - }); - teardown(function() { - this.textInputField.setValidator(null); - Blockly.FieldTextInput.htmlInput_ = null; - }); - suite('Null Validator', function() { - setup(function() { - this.textInputField.setValidator(function() { - return null; - }); - }); - test('When Editing', function() { - this.textInputField.isBeingEdited_ = true; - this.textInputField.htmlInput_.value = 'newValue'; - this.textInputField.onHtmlInputChange_(null); - assertValue(this.textInputField, 'value', 'newValue'); - this.textInputField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.textInputField.setValue('newValue'); - assertValue(this.textInputField, 'value'); - }); - }); - suite('Remove \'a\' Validator', function() { - setup(function() { - this.textInputField.setValidator(function(newValue) { - return newValue.replace(/a/g, ''); - }); - }); - test('When Editing', function() { - this.textInputField.isBeingEdited_ = true; - this.textInputField.htmlInput_.value = 'bbbaaa'; - this.textInputField.onHtmlInputChange_(null); - assertValue(this.textInputField, 'bbb', 'bbbaaa'); - this.textInputField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.textInputField.setValue('bbbaaa'); - assertValue(this.textInputField, 'bbb'); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.textInputField.setValidator(function() {}); - }); - test('When Editing', function() { - this.textInputField.isBeingEdited_ = true; - this.textInputField.htmlInput_.value = 'newValue'; - this.textInputField.onHtmlInputChange_(null); - assertValue(this.textInputField, 'newValue'); - this.textInputField.isBeingEdited_ = false; - }); - test('When Not Editing', function() { - this.textInputField.setValue('newValue'); - assertValue(this.textInputField, 'newValue'); - }); - }); - }); - suite('Customization', function() { - suite('Spellcheck', function() { - setup(function() { - this.prepField = function(field) { - field.sourceBlock_ = { - workspace: { - scale: 1 - } - }; - Blockly.WidgetDiv.DIV = document.createElement('div'); - this.stub = sinon.stub(field, 'resizeEditor_'); - }; - - this.assertSpellcheck = function(field, value) { - this.prepField(field); - field.showEditor_(); - chai.assert.equal(field.htmlInput_.getAttribute('spellcheck'), - value.toString()); - }; - }); - teardown(function() { - if (this.stub) { - this.stub.restore(); - } - }); - test('Default', function() { - var field = new Blockly.FieldTextInput('test'); - this.assertSpellcheck(field, true); - }); - test('JS Constructor', function() { - var field = new Blockly.FieldTextInput('test', null, { - spellcheck: false - }); - this.assertSpellcheck(field, false); - }); - test('JSON Definition', function() { - var field = Blockly.FieldTextInput.fromJson({ - text: 'test', - spellcheck: false - }); - this.assertSpellcheck(field, false); - }); - test('setSpellcheck Editor Hidden', function() { - var field = new Blockly.FieldTextInput('test'); - field.setSpellcheck(false); - this.assertSpellcheck(field, false); - }); - test('setSpellcheck Editor Shown', function() { - var field = new Blockly.FieldTextInput('test'); - this.prepField(field); - field.showEditor_(); - field.setSpellcheck(false); - chai.assert.equal(field.htmlInput_.getAttribute('spellcheck'), 'false'); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/field_variable_test.js b/lib/blockly/tests/mocha/field_variable_test.js deleted file mode 100644 index 0c64742..0000000 --- a/lib/blockly/tests/mocha/field_variable_test.js +++ /dev/null @@ -1,356 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Variable Fields', function() { - var FAKE_VARIABLE_NAME = 'yertle'; - var FAKE_ID = 'turtle'; - - function getMockBlock(workspace) { - return { - 'workspace': workspace, - 'isShadow': function() { - return false; - }, - 'renameVarById': Blockly.Block.prototype.renameVarById, - 'updateVarName': Blockly.Block.prototype.updateVarName, - }; - } - function initField(fieldVariable, workspace) { - var mockBlock = getMockBlock(workspace); - fieldVariable.setSourceBlock(mockBlock); - // No view to initialize, but still need to init the model. - fieldVariable.initModel(); - return fieldVariable; - } - function createAndInitFieldConstructor(workspace, variableName) { - return initField(new Blockly.FieldVariable(variableName), workspace); - } - function createAndInitFieldJson(workspace, variableName) { - return initField(Blockly.FieldVariable.fromJson( - { variable:variableName }), workspace); - } - function assertValue(variableField, expectedName, opt_expectedId) { - var actualName = variableField.getText(); - var actualId = variableField.getValue(); - opt_expectedId = opt_expectedId || FAKE_ID; - assertEquals(actualName, expectedName); - assertEquals(actualId, opt_expectedId); - } - function assertValueDefault(variableField) { - assertValue(variableField, FAKE_VARIABLE_NAME, FAKE_ID); - } - - setup(function() { - this.workspace = new Blockly.Workspace(); - - sinon.stub(Blockly.utils, 'genUid') - .returns(FAKE_ID); - sinon.stub(Blockly.Variables, 'generateUniqueName') - .returns(FAKE_VARIABLE_NAME); - }); - teardown(function() { - this.workspace.dispose(); - sinon.restore(); - }); - - test('Dropdown contains variables', function() { - // Expect that the dropdown options will contain the variables that exist - this.workspace.createVariable('name1', '', 'id1'); - this.workspace.createVariable('name2', '', 'id2'); - var fieldVariable = createAndInitFieldConstructor(this.workspace, 'name1'); - - // Expect that variables created after field creation will show up too. - this.workspace.createVariable('name3', '', 'id3'); - - var result_options = Blockly.FieldVariable.dropdownCreate.call( - fieldVariable); - - // Expect three variable options, a rename option, and a delete option. - assertEquals(result_options.length, 5); - isEqualArrays(result_options[0], ['name1', 'id1']); - isEqualArrays(result_options[1], ['name2', 'id2']); - isEqualArrays(result_options[2], ['name3', 'id3']); - }); - suite('Constructor', function() { - test('Null', function() { - var variableField = createAndInitFieldConstructor(this.workspace, null); - assertValueDefault(variableField); - }); - test('Undefined', function() { - var variableField = createAndInitFieldConstructor( - this.workspace, undefined); - assertValueDefault(variableField); - }); - test('No Value Before InitModel', function() { - var fieldVariable = new Blockly.FieldVariable('name1'); - assertEquals('', fieldVariable.getText()); - assertNull(fieldVariable.getValue()); - }); - test('Given Variable Name', function() { - var fieldVariable = createAndInitFieldConstructor( - this.workspace, 'name1'); - assertValue(fieldVariable, 'name1'); - }); - }); - suite('fromJson', function() { - test('Null', function() { - var variableField = createAndInitFieldJson(this.workspace, null); - assertValueDefault(variableField); - }); - test('Undefined', function() { - var variableField = createAndInitFieldJson(this.workspace, undefined); - assertValueDefault(variableField); - }); - test('No Value Before InitModel', function() { - var variableField = new Blockly.FieldVariable('name1'); - assertEquals('', variableField.getText()); - assertNull(variableField.getValue()); - }); - test('Given Variable Name', function() { - var variableField = createAndInitFieldJson(this.workspace, 'name1'); - assertValue(variableField, 'name1'); - }); - }); - suite('setValue', function() { - test('Null', function() { - var variableField = createAndInitFieldConstructor( - this.workspace, 'name1'); - variableField.setValue(null); - assertValue(variableField, 'name1'); - }); - test('Undefined', function() { - var variableField = createAndInitFieldConstructor( - this.workspace, 'name1'); - var stub = sinon.stub(console, 'warn'); - variableField.setValue(undefined); - assertValue(variableField, 'name1'); - chai.assert(stub.calledOnce); - stub.restore(); - }); - test('New Variable ID', function() { - this.workspace.createVariable('name2', null, 'id2'); - - var variableField = createAndInitFieldConstructor( - this.workspace, 'name1'); - var oldId = variableField.getValue(); - - variableField.setValue('id2'); - // Setting value by ID gives us the right text as well. - assertEquals('name2', variableField.getText()); - assertEquals('id2', variableField.getValue()); - chai.assert.notEqual(oldId, variableField.getValue()); - }); - test('Variable Does not Exist', function() { - var variableField = createAndInitFieldConstructor( - this.workspace, 'name1'); - var stub = sinon.stub(console, 'warn'); - variableField.setValue('id1'); - assertValue(variableField, 'name1'); - chai.assert(stub.calledOnce); - stub.restore(); - }); - }); - suite('Validators', function() { - setup(function() { - this.workspace.createVariable('name1', null, 'id1'); - this.workspace.createVariable('name2', null, 'id2'); - this.workspace.createVariable('name3', null, 'id3'); - this.variableField = createAndInitFieldConstructor(this.workspace, 'name1'); - }); - teardown(function() { - this.variableField.setValidator(null); - }); - suite('Null Validator', function() { - setup(function() { - this.variableField.setValidator(function() { - return null; - }); - }); - test('New Value', function() { - this.variableField.setValue('id2'); - assertValue(this.variableField, 'name1', 'id1'); - }); - }); - suite('Force \'id\' ID Validator', function() { - setup(function() { - this.variableField.setValidator(function(newValue) { - return 'id' + newValue.charAt(newValue.length - 1); - }); - }); - test('New Value', function() { - // Must create the var so that the field doesn't throw an error. - this.workspace.createVariable('thing2', null, 'other2'); - this.variableField.setValue('other2'); - assertValue(this.variableField, 'name2', 'id2'); - }); - }); - suite('Returns Undefined Validator', function() { - setup(function() { - this.variableField.setValidator(function() {}); - }); - test('New Value', function() { - this.variableField.setValue('id2'); - assertValue(this.variableField, 'name2', 'id2'); - }); - }); - }); - suite('Customizations', function() { - suite('Types and Default Types', function() { - test('JS Constructor', function() { - var field = new Blockly.FieldVariable( - 'test', undefined, ['Type1'], 'Type1'); - chai.assert.deepEqual(field.variableTypes, ['Type1']); - chai.assert.equal(field.defaultType_, 'Type1'); - }); - test('JSON Definition', function() { - var field = Blockly.FieldVariable.fromJson({ - variable: 'test', - variableTypes: ['Type1'], - defaultType: 'Type1' - }); - chai.assert.deepEqual(field.variableTypes, ['Type1']); - chai.assert.equal(field.defaultType_, 'Type1'); - }); - test('JS Configuration - Simple', function() { - var field = new Blockly.FieldVariable( - 'test', undefined, undefined, undefined, { - variableTypes: ['Type1'], - defaultType: 'Type1' - }); - chai.assert.deepEqual(field.variableTypes, ['Type1']); - chai.assert.equal(field.defaultType_, 'Type1'); - }); - test('JS Configuration - Ignore', function() { - var field = new Blockly.FieldVariable( - 'test', undefined, ['Type2'], 'Type2', { - variableTypes: ['Type1'], - defaultType: 'Type1' - }); - chai.assert.deepEqual(field.variableTypes, ['Type1']); - chai.assert.equal(field.defaultType_, 'Type1'); - }); - }); - }); - suite('Get variable types', function() { - setup(function() { - this.workspace.createVariable('name1', 'type1'); - this.workspace.createVariable('name2', 'type2'); - }); - test('variableTypes is undefined', function() { - // Expect that since variableTypes is undefined, only type empty string - // will be returned (regardless of what types are available on the workspace). - var fieldVariable = new Blockly.FieldVariable('name1'); - var resultTypes = fieldVariable.getVariableTypes_(); - isEqualArrays(resultTypes, ['']); - }); - test('variableTypes is explicit', function() { - // Expect that since variableTypes is defined, it will be the return - // value, regardless of what types are available on the workspace. - var fieldVariable = new Blockly.FieldVariable( - 'name1', null, ['type1', 'type2'], 'type1'); - var resultTypes = fieldVariable.getVariableTypes_(); - isEqualArrays(resultTypes, ['type1', 'type2']); - assertEquals('Default type was wrong', 'type1', - fieldVariable.defaultType_); - }); - test('variableTypes is null', function() { - // Expect all variable types to be returned. - // The field does not need to be initialized to do this--it just needs - // a pointer to the workspace. - var fieldVariable = new Blockly.FieldVariable('name1'); - var mockBlock = getMockBlock(this.workspace); - fieldVariable.setSourceBlock(mockBlock); - fieldVariable.variableTypes = null; - - var resultTypes = fieldVariable.getVariableTypes_(); - // The empty string is always one of the options. - isEqualArrays(resultTypes, ['type1', 'type2', '']); - }); - test('variableTypes is the empty list', function() { - var fieldVariable = new Blockly.FieldVariable('name1'); - var mockBlock = getMockBlock(this.workspace); - fieldVariable.setSourceBlock(mockBlock); - fieldVariable.variableTypes = []; - - chai.assert.throws(function() { - fieldVariable.getVariableTypes_(); - }); - }); - }); - suite('Default types', function() { - test('Default type exists', function() { - var fieldVariable = new Blockly.FieldVariable(null, null, ['b'], 'b'); - assertEquals('The variable field\'s default type should be "b"', - 'b', fieldVariable.defaultType_); - }); - test('No default type', function() { - var fieldVariable = new Blockly.FieldVariable(null); - assertEquals('The variable field\'s default type should be the empty string', - '', fieldVariable.defaultType_); - assertNull('The variable field\'s allowed types should be null', - fieldVariable.variableTypes); - }); - test('Default type mismatch', function() { - // Invalid default type when creating a variable field. - chai.assert.throws(function() { - var _fieldVariable = new Blockly.FieldVariable(null, null, ['a'], 'b'); - }); - }); - test('Default type mismatch with empty array', function() { - // Invalid default type when creating a variable field. - chai.assert.throws(function() { - var _fieldVariable = new Blockly.FieldVariable(null, null, ['a']); - }); - }); - }); - suite('Renaming Variables', function() { - setup(function() { - this.workspace.createVariable('name1', null, 'id1'); - Blockly.defineBlocksWithJsonArray([{ - "type": "field_variable_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_variable", - "name": "VAR", - "variable": "name1" - } - ], - }]); - this.variableBlock = new Blockly.Block(this.workspace, - 'field_variable_test_block'); - this.variableField = this.variableBlock.getField('VAR'); - }); - teardown(function() { - this.variableBlock.dispose(); - this.variableBlock = null; - this.variableField = null; - delete Blockly.Blocks['field_variable_test_block']; - }); - test('Rename & Keep Old ID', function() { - this.workspace.renameVariableById('id1', 'name2'); - chai.assert.equal(this.variableField.getText(), 'name2'); - chai.assert.equal(this.variableField.getValue(), 'id1'); - }); - test('Rename & Get New ID', function() { - this.workspace.createVariable('name2', null, 'id2'); - this.workspace.renameVariableById('id1', 'name2'); - chai.assert.equal(this.variableField.getText(), 'name2'); - chai.assert.equal(this.variableField.getValue(), 'id2'); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/gesture_test.js b/lib/blockly/tests/mocha/gesture_test.js deleted file mode 100644 index 460e885..0000000 --- a/lib/blockly/tests/mocha/gesture_test.js +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Tests for gesture. - * @author marisaleung@google.com (Marisa Leung) - */ -'use strict'; - -suite('Gesture', function() { - - setup(function() { - this.workspace = new Blockly.Workspace(); - this.e = {}; - }); - - teardown(function() { - this.e = null; - this.workspace.dispose(); - }); - - test('Constructor', function() { - var gesture = new Blockly.Gesture(this.e, this.workspace); - assertEquals(gesture.mostRecentEvent_, this.e); - assertEquals(gesture.creatorWorkspace_, this.workspace); - }); - - test('Field click - Click in workspace', function() { - var block = new Blockly.Block(this.workspace); - var field = new Blockly.Field(); - field.setSourceBlock(block); - field.showEditor_ = function() {}; - var gesture = new Blockly.Gesture(this.e, this.workspace); - gesture.setStartField(field); - - var isFieldClick = gesture.isFieldClick_(); - assertEquals(isFieldClick, true); - }); - - function gestureIsFieldClick_InFlyoutHelper(flyout, expectedResult){ - // Assign workspace flyout - this.workspace.flyout_ = flyout; - // Create a Field inside of a Block - var block = new Blockly.Block(this.workspace); - var field = new Blockly.Field(); - field.setSourceBlock(block); - field.showEditor_ = function() {}; - // Create gesture from the flyout - var gesture = new Blockly.Gesture(this.e, this.workspace.flyout_); - // Populate gesture with click start information - gesture.setStartField(field); - gesture.setStartFlyout_(this.workspace.flyout_); - - var isFieldClick = gesture.isFieldClick_(); - assertEquals(isFieldClick, expectedResult); - } - - test('Field click - Auto close flyout', function() { - var flyout = new Blockly.VerticalFlyout({}); - flyout.autoClose = false; - gestureIsFieldClick_InFlyoutHelper.call(this, flyout, true); - }); - - test('Field click - Always open flyout', function() { - var flyout = new Blockly.VerticalFlyout({}); - flyout.autoClose = false; - gestureIsFieldClick_InFlyoutHelper.call(this, flyout, true); - }); - - test('Workspace click - Shift click enters accessibility mode', function() { - var event = { - shiftKey : true, - clientX : 10, - clientY : 10, - - }; - var ws = Blockly.inject('blocklyDiv', {}); - var gesture = new Blockly.Gesture(this.e, ws); - assertFalse(Blockly.keyboardAccessibilityMode); - gesture.doWorkspaceClick_(event); - assertTrue(Blockly.keyboardAccessibilityMode); - }); -}); diff --git a/lib/blockly/tests/mocha/index.html b/lib/blockly/tests/mocha/index.html deleted file mode 100644 index f535ba2..0000000 --- a/lib/blockly/tests/mocha/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Mocha Tests for Blockly - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - - - - - - - - diff --git a/lib/blockly/tests/mocha/input_test.js b/lib/blockly/tests/mocha/input_test.js deleted file mode 100644 index e2d1815..0000000 --- a/lib/blockly/tests/mocha/input_test.js +++ /dev/null @@ -1,308 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Inputs', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": "empty_block", - "message0": "", - "args0": [] - }, - ]); - - this.workspace = Blockly.inject('blocklyDiv'); - this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - - this.renderStub = sinon.stub(this.block, 'render'); - this.bumpNeighboursStub = sinon.stub(this.block, 'bumpNeighbours'); - - this.dummy = this.block.appendDummyInput('DUMMY'); - this.value = this.block.appendValueInput('VALUE'); - this.statement = this.block.appendStatementInput('STATEMENT'); - - this.renderStub.resetHistory(); - this.bumpNeighboursStub.resetHistory(); - }); - teardown(function() { - this.renderStub.restore(); - this.bumpNeighboursStub.restore(); - - delete Blockly.Blocks['empty_block']; - this.workspace.dispose(); - }); - suite('Insert Field At', function() { - suite('Index Bounds', function() { - test('< 0', function() { - var field = new Blockly.FieldLabel('field'); - chai.assert.throws(function() { - this.dummy.insertFieldAt(-1, field); - }); - }); - test('> length', function() { - var field = new Blockly.FieldLabel('field'); - chai.assert.throws(function() { - this.dummy.insertFieldAt(1, field); - }); - }); - }); - suite('Values', function() { - // We're mostly just testing that it doesn't throw errors. - test('Field', function() { - var field = new Blockly.FieldLabel('field'); - this.dummy.insertFieldAt(0, field); - chai.assert.equal(this.dummy.fieldRow[0], field); - }); - test('String', function() { - this.dummy.insertFieldAt(0, 'field'); - chai.assert.instanceOf(this.dummy.fieldRow[0], Blockly.FieldLabel); - }); - test('Empty String', function() { - this.dummy.insertFieldAt(0, ''); - chai.assert.isEmpty(this.dummy.fieldRow); - }); - test('Empty String W/ Name', function() { - this.dummy.insertFieldAt(0, '', 'NAME'); - chai.assert.instanceOf(this.dummy.fieldRow[0], Blockly.FieldLabel); - }); - test('Null', function() { - this.dummy.insertFieldAt(0, null); - chai.assert.isEmpty(this.dummy.fieldRow); - }); - test('Undefined', function() { - this.dummy.insertFieldAt(0, undefined); - chai.assert.isEmpty(this.dummy.fieldRow); - }); - }); - suite('Prefixes and Suffixes', function() { - test('Prefix', function() { - var field = new Blockly.FieldLabel('field'); - var prefix = new Blockly.FieldLabel('prefix'); - field.prefixField = prefix; - - this.dummy.appendField(field); - chai.assert.deepEqual(this.dummy.fieldRow, [prefix, field]); - }); - test('Suffix', function() { - var field = new Blockly.FieldLabel('field'); - var suffix = new Blockly.FieldLabel('suffix'); - field.suffixField = suffix; - - this.dummy.appendField(field); - chai.assert.deepEqual(this.dummy.fieldRow, [field, suffix]); - }); - test('Prefix and Suffix', function() { - var field = new Blockly.FieldLabel('field'); - var prefix = new Blockly.FieldLabel('prefix'); - var suffix = new Blockly.FieldLabel('suffix'); - field.prefixField = prefix; - field.suffixField = suffix; - - this.dummy.appendField(field); - chai.assert.deepEqual(this.dummy.fieldRow, [prefix, field, suffix]); - }); - test('Dropdown - Prefix', function() { - var field = new Blockly.FieldDropdown( - [ - ['prefix option1', 'OPTION1'], - ['prefix option2', 'OPTION2'] - ] - ); - - this.dummy.appendField(field); - chai.assert.equal(this.dummy.fieldRow.length, 2); - }); - test('Dropdown - Suffix', function() { - var field = new Blockly.FieldDropdown( - [ - ['option1 suffix', 'OPTION1'], - ['option2 suffix', 'OPTION2'] - ] - ); - - this.dummy.appendField(field); - chai.assert.equal(this.dummy.fieldRow.length, 2); - }); - test('Dropdown - Prefix and Suffix', function() { - var field = new Blockly.FieldDropdown( - [ - ['prefix option1 suffix', 'OPTION1'], - ['prefix option2 suffix', 'OPTION2'] - ] - ); - - this.dummy.appendField(field); - chai.assert.equal(this.dummy.fieldRow.length, 3); - }); - }); - suite('Field Initialization', function() { - test('Rendered', function() { - var field = new Blockly.FieldLabel('field'); - var setBlockSpy = sinon.spy(field, 'setSourceBlock'); - var initSpy = sinon.spy(field, 'init'); - - this.dummy.insertFieldAt(0, field); - chai.assert(setBlockSpy.calledOnce); - chai.assert.equal(setBlockSpy.getCall(0).args[0], this.block); - chai.assert(initSpy.calledOnce); - console.log(this.renderStub.callCount); - chai.assert(this.renderStub.calledOnce); - chai.assert(this.bumpNeighboursStub.calledOnce); - - setBlockSpy.restore(); - initSpy.restore(); - }); - // TODO: InsertFieldAt does not properly handle initialization in - // headless mode. - test.skip('Headless', function() { - var field = new Blockly.FieldLabel('field'); - var setBlockSpy = sinon.spy(field, 'setSourceBlock'); - var initModelSpy = sinon.spy(field, 'initModel'); - - this.block.rendered = false; - - this.dummy.insertFieldAt(0, field); - chai.assert(setBlockSpy.calledOnce); - chai.assert.equal(setBlockSpy.getCall(0).args[0], this.block); - chai.assert(initModelSpy.calledOnce); - chai.assert(this.renderStub.notCalled); - chai.assert(this.bumpNeighboursStub.notCalled); - - setBlockSpy.restore(); - initModelSpy.restore(); - }); - }); - }); - suite('Remove Field', function() { - test('Field Not Found', function() { - chai.assert.throws(function() { - this.dummy.removeField('FIELD'); - }); - }); - test('Rendered', function() { - var field = new Blockly.FieldLabel('field'); - var disposeSpy = sinon.spy(field, 'dispose'); - this.dummy.appendField(field, 'FIELD'); - - this.renderStub.resetHistory(); - this.bumpNeighboursStub.resetHistory(); - - this.dummy.removeField('FIELD'); - chai.assert(disposeSpy.calledOnce); - chai.assert(this.renderStub.calledOnce); - chai.assert(this.bumpNeighboursStub.calledOnce); - }); - test('Headless', function() { - var field = new Blockly.FieldLabel('field'); - var disposeSpy = sinon.spy(field, 'dispose'); - this.dummy.appendField(field, 'FIELD'); - - this.renderStub.resetHistory(); - this.bumpNeighboursStub.resetHistory(); - - this.block.rendered = false; - - this.dummy.removeField('FIELD'); - chai.assert(disposeSpy.calledOnce); - chai.assert(this.renderStub.notCalled); - chai.assert(this.bumpNeighboursStub.notCalled); - }); - }); - suite('Field Ordering/Manipulation', function() { - setup(function() { - this.a = new Blockly.FieldLabel('a'); - this.b = new Blockly.FieldLabel('b'); - this.c = new Blockly.FieldLabel('c'); - }); - test('Append A, B, C', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.appendField(this.c, 'C'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.a, this.b, this.c]); - }); - test('Append B, C; Insert A at Start', function() { - this.dummy.appendField(this.b, 'B'); - this.dummy.appendField(this.c, 'C'); - this.dummy.insertFieldAt(0, this.a, 'A'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.a, this.b, this.c]); - }); - test('Append A, C; Insert B Between', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.c, 'C'); - this.dummy.insertFieldAt(1, this.b, 'B'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.a, this.b, this.c]); - }); - test('Append A, B; Insert C at End', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.insertFieldAt(2, this.c, 'C'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.a, this.b, this.c]); - }); - test('Append A, B, C; Remove A, B, C', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.appendField(this.c, 'C'); - - this.dummy.removeField('A'); - this.dummy.removeField('B'); - this.dummy.removeField('C'); - - chai.assert.isEmpty(this.dummy.fieldRow); - }); - test('Append A, B, C; Remove A', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.appendField(this.c, 'C'); - - this.dummy.removeField('A'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.b, this.c]); - }); - test('Append A, B, C; Remove B', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.appendField(this.c, 'C'); - - this.dummy.removeField('B'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.a, this.c]); - }); - test('Append A, B, C; Remove C', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.appendField(this.c, 'C'); - - this.dummy.removeField('C'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.a, this.b]); - }); - test('Append A, B; Remove A; Append C', function() { - this.dummy.appendField(this.a, 'A'); - this.dummy.appendField(this.b, 'B'); - this.dummy.removeField('A'); - this.dummy.appendField(this.c, 'C'); - - chai.assert.deepEqual(this.dummy.fieldRow, [this.b, this.c]); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/key_map_test.js b/lib/blockly/tests/mocha/key_map_test.js deleted file mode 100644 index b206d8a..0000000 --- a/lib/blockly/tests/mocha/key_map_test.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Key Map Tests', function() { - setup(function() { - Blockly.user.keyMap.setKeyMap(Blockly.user.keyMap.createDefaultKeyMap()); - }); - - test('Test adding a new action to key map', function() { - var newAction = new Blockly.Action('test_action', 'test', function(){ - return "test"; - }); - Blockly.user.keyMap.setActionForKey('65', newAction); - assertEquals(Blockly.user.keyMap.map_['65'].name, 'test_action'); - }); - - test('Test giving an old action a new key', function() { - Blockly.user.keyMap.setActionForKey(Blockly.utils.KeyCodes.F, - Blockly.navigation.ACTION_PREVIOUS); - assertEquals(Blockly.user.keyMap.map_[Blockly.utils.KeyCodes.W], undefined); - assertEquals(Blockly.user.keyMap.map_[Blockly.utils.KeyCodes.F], - Blockly.navigation.ACTION_PREVIOUS); - }); - - test('Test get key by action defined', function() { - var key = Blockly.user.keyMap.getKeyByAction(Blockly.navigation.ACTION_PREVIOUS); - assertEquals(key, Blockly.utils.KeyCodes.W); - }); - - test('Test get key by action undefined', function() { - var key = Blockly.user.keyMap.getKeyByAction(new Blockly.Action('something')); - assertEquals(key, undefined); - }); - - test('Test set key map', function() { - var testKeyMap = Blockly.user.keyMap.createDefaultKeyMap(); - testKeyMap['randomKey'] = new Blockly.Action('test','',null); - Blockly.user.keyMap.setKeyMap(testKeyMap); - assertEquals(Blockly.user.keyMap.map_['randomKey'].name, 'test'); - }); - - test('Test get key map returns a clone', function() { - var keyMap = Blockly.user.keyMap.getKeyMap(); - keyMap['randomKey'] = new Blockly.Action('test', '', null); - assertEquals(Blockly.user.keyMap.map_['randomKey'], undefined); - }); - - test('Test serialize key code with modifiers', function() { - var mockEvent = { - getModifierState: function(){ - return true; - }, - keyCode: 65 - }; - var serializedKey = Blockly.user.keyMap.serializeKeyEvent(mockEvent); - assertEquals(serializedKey, 'ShiftControlAltMeta65'); - }); - - test('Test serialize key code without modifiers', function() { - var mockEvent = { - getModifierState: function(){ - return false; - }, - keyCode: 65 - }; - var serializedKey = Blockly.user.keyMap.serializeKeyEvent(mockEvent); - assertEquals(serializedKey, '65'); - }); - teardown(function() {}); -}); diff --git a/lib/blockly/tests/mocha/metrics_test.js b/lib/blockly/tests/mocha/metrics_test.js deleted file mode 100644 index 4869468..0000000 --- a/lib/blockly/tests/mocha/metrics_test.js +++ /dev/null @@ -1,117 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Metrics tests. - * @author samelh@google.com (Sam El-Husseini) - */ -'use strict'; - -suite('Metrics', function() { - function assertDimensionsMatch(toCheck, left, top, width, height) { - assertEquals('Top did not match.', top, toCheck.top); - assertEquals('Left did not match.', left, toCheck.left); - assertEquals('Width did not match.', width, toCheck.width); - assertEquals('Height did not match.', height, toCheck.height); - } - - // Make a mock workspace object with two properties: - // getBlocksBoundingBox and scale. - function makeMockWs(scale, x, y, width, height) { - return { - getBlocksBoundingBox: function() { - return { - top: y, - bottom: y + height, - left: x, - right: x + width - }; - }, - scale: scale - }; - } - - test('GetContentDimensionsExact - empty', function() { - var ws = makeMockWs(1, 0, 0, 0, 0); - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - assertDimensionsMatch(defaultZoom, 0, 0, 0, 0); - }); - test('GetContentDimensionsExact - empty zoom in', function() { - var ws = makeMockWs(2, 0, 0, 0, 0); - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - assertDimensionsMatch(zoomIn, 0, 0, 0, 0); - }); - test('GetContentDimensionsExact - empty zoom out', function() { - var ws = makeMockWs(.5, 0, 0, 0, 0); - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - assertDimensionsMatch(zoomOut, 0, 0, 0, 0); - }); - test('GetContentDimensionsExact - non empty at origin', function() { - var ws = makeMockWs(1, 0, 0, 100, 100); - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // Pixel and ws units are the same at default zoom. - assertDimensionsMatch(defaultZoom, 0, 0, 100, 100); - }); - test('GetContentDimensionsExact - non empty at origin zoom in', function() { - var ws = makeMockWs(2, 0, 0, 100, 100); - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 2 pixels at this zoom level. - assertDimensionsMatch(zoomIn, 0, 0, 200, 200); - }); - test('GetContentDimensionsExact - non empty at origin zoom out', function() { - var ws = makeMockWs(.5, 0, 0, 100, 100); - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 0.5 pixels at this zoom level. - assertDimensionsMatch(zoomOut, 0, 0, 50, 50); - }); - test('GetContentDimensionsExact - non empty positive origin', function() { - var ws = makeMockWs(1, 10, 10, 100, 100); - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // Pixel and ws units are the same at default zoom. - assertDimensionsMatch(defaultZoom, 10, 10, 100, 100); - }); - test('GetContentDimensionsExact - non empty positive origin zoom in', function() { - var ws = makeMockWs(2, 10, 10, 100, 100); - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 2 pixels at this zoom level. - assertDimensionsMatch(zoomIn, 20, 20, 200, 200); - }); - test('GetContentDimensionsExact - non empty positive origin zoom out', function() { - var ws = makeMockWs(.5, 10, 10, 100, 100); - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 0.5 pixels at this zoom level. - assertDimensionsMatch(zoomOut, 5, 5, 50, 50); - }); - test('GetContentDimensionsExact - non empty negative origin', function() { - var ws = makeMockWs(1, -10, -10, 100, 100); - var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // Pixel and ws units are the same at default zoom. - assertDimensionsMatch(defaultZoom, -10, -10, 100, 100); - }); - test('GetContentDimensionsExact - non empty negative origin zoom in', function() { - var ws = makeMockWs(2, -10, -10, 100, 100); - var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 2 pixels at this zoom level. - assertDimensionsMatch(zoomIn, -20, -20, 200, 200); - }); - test('GetContentDimensionsExact - non empty negative origin zoom out', function() { - var ws = makeMockWs(.5, -10, -10, 100, 100); - var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws); - // 1 ws unit = 0.5 pixels at this zoom level. - assertDimensionsMatch(zoomOut, -5, -5, 50, 50); - }); -}); diff --git a/lib/blockly/tests/mocha/mocha.opts b/lib/blockly/tests/mocha/mocha.opts deleted file mode 100644 index b0986b1..0000000 --- a/lib/blockly/tests/mocha/mocha.opts +++ /dev/null @@ -1,3 +0,0 @@ ---ui tdd ---file ../blockly_uncompressed.js ---reporter landing diff --git a/lib/blockly/tests/mocha/names_test.js b/lib/blockly/tests/mocha/names_test.js deleted file mode 100644 index 5ec208e..0000000 --- a/lib/blockly/tests/mocha/names_test.js +++ /dev/null @@ -1,68 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly names tests. - * @author samelh@google.com (Sam El-Husseini) - */ -'use strict'; - -suite('Names', function() { - - test('Safe name', function() { - var varDB = new Blockly.Names('window,door'); - assertEquals('SafeName empty.', 'unnamed', varDB.safeName_('')); - assertEquals('SafeName ok.', 'foobar', varDB.safeName_('foobar')); - assertEquals('SafeName number start.', 'my_9lives', - varDB.safeName_('9lives')); - assertEquals('SafeName number end.', 'lives9', varDB.safeName_('lives9')); - assertEquals('SafeName special chars.', '____', varDB.safeName_('!@#$')); - assertEquals('SafeName reserved.', 'door', varDB.safeName_('door')); - }); - - test('Get name', function() { - var varDB = new Blockly.Names('window,door'); - assertEquals('Name add #1.', 'Foo_bar', varDB.getName('Foo.bar', 'var')); - assertEquals('Name get #1.', 'Foo_bar', varDB.getName('Foo.bar', 'var')); - assertEquals('Name add #2.', 'Foo_bar2', varDB.getName('Foo bar', 'var')); - assertEquals('Name get #2.', 'Foo_bar2', varDB.getName('foo BAR', 'var')); - assertEquals('Name add #3.', 'door2', varDB.getName('door', 'var')); - assertEquals('Name add #4.', 'Foo_bar3', varDB.getName('Foo.bar', 'proc')); - assertEquals('Name get #1b.', 'Foo_bar', varDB.getName('Foo.bar', 'var')); - assertEquals('Name get #4.', 'Foo_bar3', varDB.getName('Foo.bar', 'proc')); - }); - - test('Get distinct name', function() { - var varDB = new Blockly.Names('window,door'); - assertEquals('Name distinct #1.', 'Foo_bar', - varDB.getDistinctName('Foo.bar', 'var')); - assertEquals('Name distinct #2.', 'Foo_bar2', - varDB.getDistinctName('Foo.bar', 'var')); - assertEquals('Name distinct #3.', 'Foo_bar3', - varDB.getDistinctName('Foo.bar', 'proc')); - varDB.reset(); - assertEquals('Name distinct #4.', 'Foo_bar', - varDB.getDistinctName('Foo.bar', 'var')); - }); - - test('name equals', function() { - assertTrue('Name equals #1.', Blockly.Names.equals('Foo.bar', 'Foo.bar')); - assertFalse('Name equals #2.', Blockly.Names.equals('Foo.bar', 'Foo_bar')); - assertTrue('Name equals #3.', Blockly.Names.equals('Foo.bar', 'FOO.BAR')); - }); - -}); diff --git a/lib/blockly/tests/mocha/navigation_modify_test.js b/lib/blockly/tests/mocha/navigation_modify_test.js deleted file mode 100644 index 6fa8d5d..0000000 --- a/lib/blockly/tests/mocha/navigation_modify_test.js +++ /dev/null @@ -1,422 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Insert/Modify', function() { - setup(function() { - var xmlText = '' + - '' + - '' + - '' + - '' + - '' + - '' + - ''; - defineStackBlock(); - defineRowBlock(); - defineStatementBlock(); - - var toolbox = document.getElementById('toolbox-connections'); - this.workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); - Blockly.Xml.domToWorkspace(Blockly.Xml.textToDom(xmlText), this.workspace); - - this.stack_block_1 = this.workspace.getBlockById('stack_block_1'); - this.stack_block_2 = this.workspace.getBlockById('stack_block_2'); - this.row_block_1 = this.workspace.getBlockById('row_block_1'); - this.row_block_2 = this.workspace.getBlockById('row_block_2'); - this.statement_block_1 = this.workspace.getBlockById('statement_block_1'); - this.statement_block_2 = this.workspace.getBlockById('statement_block_2'); - - Blockly.navigation.enableKeyboardAccessibility(); - }); - - teardown(function() { - delete Blockly.Blocks['stack_block']; - delete Blockly.Blocks['row_block']; - delete Blockly.Blocks['statement_block']; - this.workspace.dispose(); - }); - - suite('Marked Connection', function() { - // TODO: Marked connection or cursor connection is already connected. - suite('Marker on next', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_1.nextConnection)); - }); - test('Cursor on workspace', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createWorkspaceNode(this.workspace, - new Blockly.utils.Coordinate(0, 0))); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on compatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.previousConnection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.stack_block_1.getNextBlock().id, 'stack_block_2'); - }); - test('Cursor on incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.nextConnection)); - // Connect method will try to find a way to connect blocks with - // incompatible types. - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.stack_block_1.getNextBlock(), this.stack_block_2); - }); - test('Cursor on really incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.outputConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - chai.assert.isNull(this.stack_block_1.getNextBlock()); - }); - test('Cursor on block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_2)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.stack_block_1.getNextBlock().id, 'stack_block_2'); - }); - }); - - suite('Marker on previous', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_1.previousConnection)); - }); - test('Cursor on compatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.nextConnection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.stack_block_1.getPreviousBlock().id, 'stack_block_2'); - }); - test('Cursor on incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.previousConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - chai.assert.isNull(this.stack_block_1.getPreviousBlock()); - }); - test('Cursor on really incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.outputConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - chai.assert.isNull(this.stack_block_1.getNextBlock()); - }); - test('Cursor on block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_2)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.stack_block_1.getPreviousBlock().id, 'stack_block_2'); - }); - test('Cursor on incompatible block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_1)); - chai.assert.isFalse(Blockly.navigation.modify_()); - chai.assert.isNull(this.stack_block_1.getPreviousBlock()); - }); - }); - - suite('Marker on value input', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.inputList[0].connection)); - }); - test('Cursor on compatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_2.outputConnection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.row_block_2.getParent().id, 'row_block_1'); - }); - test('Cursor on incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_2.inputList[0].connection)); - // Connect method will try to find a way to connect blocks with - // incompatible types. - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.row_block_1.inputList[0].connection.targetBlock(), - this.row_block_2); - }); - test('Cursor on really incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_1.previousConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_2)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.row_block_2.getParent().id, 'row_block_1'); - }); - }); - - suite('Marked Statement input', function() { - setup(function() { - this.statement_block_1.inputList[0].connection.connect( - this.stack_block_1.previousConnection); - this.stack_block_1.nextConnection.connect(this.stack_block_2.previousConnection); - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createInputNode( - this.statement_block_1.inputList[0])); - }); - test('Cursor on block inside statement', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.previousConnection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.stack_block_2.previousConnection.targetBlock(), - this.statement_block_1); - }); - test('Cursor on stack', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createStackNode( - this.statement_block_2)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.statement_block_2.getParent().id, 'statement_block_1'); - }); - test('Cursor on incompatible type', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.outputConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - chai.assert.equal(this.row_block_1.getParent(), null); - }); - - }); - - suite('Marker on output', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.outputConnection)); - }); - test('Cursor on compatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_2.inputList[0].connection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.row_block_1.getParent().id, 'row_block_2'); - }); - test('Cursor on incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_2.outputConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on really incompatible connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_1.previousConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_2)); - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.equal(this.row_block_1.getParent().id, 'row_block_2'); - }); - }); - }); - - - suite('Marked Workspace', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createWorkspaceNode( - this.workspace, new Blockly.utils.Coordinate(100, 200))); - }); - test('Cursor on row block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_1)); - chai.assert.isTrue(Blockly.navigation.modify_()); - var pos = this.row_block_1.getRelativeToSurfaceXY(); - chai.assert.equal(100, pos.x); - chai.assert.equal(200, pos.y); - }); - - test('Cursor on output connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.outputConnection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - var pos = this.row_block_1.getRelativeToSurfaceXY(); - chai.assert.equal(100, pos.x); - chai.assert.equal(200, pos.y); - }); - - test('Cursor on previous connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_1.previousConnection)); - chai.assert.isTrue(Blockly.navigation.modify_()); - var pos = this.stack_block_1.getRelativeToSurfaceXY(); - chai.assert.equal(100, pos.x); - chai.assert.equal(200, pos.y); - }); - - test('Cursor on input connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_1.inputList[0].connection)); - // Move the source block to the marked location on the workspace. - chai.assert.isTrue(Blockly.navigation.modify_()); - }); - - test('Cursor on next connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_1.nextConnection)); - // Move the source block to the marked location on the workspace. - chai.assert.isTrue(Blockly.navigation.modify_()); - }); - - test('Cursor on child block (row)', function() { - this.row_block_1.inputList[0].connection.connect( - this.row_block_2.outputConnection); - - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_2)); - - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.isNull(this.row_block_2.getParent()); - var pos = this.row_block_2.getRelativeToSurfaceXY(); - chai.assert.equal(100, pos.x); - chai.assert.equal(200, pos.y); - }); - - test('Cursor on child block (stack)', function() { - this.stack_block_1.nextConnection.connect( - this.stack_block_2.previousConnection); - - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_2)); - - chai.assert.isTrue(Blockly.navigation.modify_()); - chai.assert.isNull(this.stack_block_2.getParent()); - var pos = this.stack_block_2.getRelativeToSurfaceXY(); - chai.assert.equal(100, pos.x); - chai.assert.equal(200, pos.y); - }); - - test('Cursor on workspace', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createWorkspaceNode( - this.workspace, new Blockly.utils.Coordinate(100, 100))); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - }); - - suite('Marked Block', function() { - // TODO: Decide whether it ever makes sense to mark a block, and what to do - // if so. For now all of these attempted modifications will fail. - suite('Marked any block', function() { - // These tests are using a stack block, but do not depend on the type of - // the block. - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_1)); - }); - test('Cursor on workspace', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createWorkspaceNode( - this.workspace, new Blockly.utils.Coordinate(100, 100))); - chai.assert.isFalse(Blockly.navigation.modify_()); - - }); - }); - suite('Marked stack block', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_1)); - }); - test('Cursor on row block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_1)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on stack block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_1)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on next connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.nextConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on previous connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.stack_block_2.previousConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - }); - suite('Marked row block', function() { - setup(function() { - this.workspace.getMarker().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_1)); - }); - test('Cursor on stack block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.stack_block_1)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on row block', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createBlockNode( - this.row_block_1)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on value input connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_2.inputList[0].connection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - test('Cursor on output connection', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode( - this.row_block_2.outputConnection)); - chai.assert.isFalse(Blockly.navigation.modify_()); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/navigation_test.js b/lib/blockly/tests/mocha/navigation_test.js deleted file mode 100644 index f4ed069..0000000 --- a/lib/blockly/tests/mocha/navigation_test.js +++ /dev/null @@ -1,741 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Navigation tests. - * @author aschmiedt@google.com (Abby Schmiedt) - */ -'use strict'; - - -suite('Navigation', function() { - function createNavigationWorkspace(enableKeyboardNav) { - var toolbox = document.getElementById('toolbox-categories'); - var workspace = Blockly.inject('blocklyDiv', {toolbox: toolbox}); - if (enableKeyboardNav) { - Blockly.navigation.enableKeyboardAccessibility(); - Blockly.navigation.currentState_ = Blockly.navigation.STATE_WS; - } - return workspace; - } - - // Test that toolbox key handlers call through to the right functions and - // transition correctly between toolbox, workspace, and flyout. - suite('Tests toolbox keys', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "basic_block", - "message0": "%1", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "default" - } - ] - }]); - this.workspace = createNavigationWorkspace(true); - Blockly.navigation.focusToolbox_(); - this.mockEvent = { - getModifierState: function() { - return false; - } - }; - - this.firstCategory_ = this.workspace.getToolbox().tree_.firstChild_; - this.secondCategory_ = this.firstCategory_.getNextShownNode(); - }); - - teardown(function() { - delete Blockly.Blocks['basic_block']; - this.workspace.dispose(); - }); - - test('Next', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.S; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - chai.assert.equal(this.workspace.getToolbox().tree_.getSelectedItem(), - this.secondCategory_); - }); - - // Should be a no-op. - test('Next at end', function() { - this.workspace.getToolbox().tree_.getSelectedItem().selectNext(); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.S; - // Go forward one so that we can go back one. - Blockly.navigation.onKeyPress(this.mockEvent); - var startCategory = this.workspace.getToolbox().tree_.getSelectedItem(); - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - chai.assert.equal(this.workspace.getToolbox().tree_.getSelectedItem(), - startCategory); - }); - - test('Previous', function() { - // Go forward one so that we can go back one: - this.workspace.getToolbox().tree_.getSelectedItem().selectNext(); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.W; - chai.assert.equal(this.workspace.getToolbox().tree_.getSelectedItem(), - this.secondCategory_); - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - chai.assert.equal(this.workspace.getToolbox().tree_.getSelectedItem(), - this.firstCategory_); - }); - - // Should be a no-op. - test('Previous at start', function() { - var startCategory = this.workspace.getToolbox().tree_.getSelectedItem(); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.W; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - chai.assert.equal(this.workspace.getToolbox().tree_.getSelectedItem(), - startCategory); - }); - - test('Out', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.A; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - // TODO (fenichel/aschmiedt): Decide whether out should go to the - // workspace. - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - }); - - test('Go to flyout', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.D; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_FLYOUT); - var flyoutCursor = Blockly.navigation.getFlyoutCursor_(); - - chai.assert.equal(flyoutCursor.getCurNode().getLocation().getFieldValue("TEXT"), - "FirstCategory-FirstBlock"); - }); - - test('Focuses workspace from toolbox (e)', function() { - Blockly.navigation.currentState_ = Blockly.navigation.STATE_TOOLBOX; - this.mockEvent.keyCode = Blockly.utils.KeyCodes.E; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - }); - test('Focuses workspace from toolbox (escape)', function() { - Blockly.navigation.currentState_ = Blockly.navigation.STATE_TOOLBOX; - this.mockEvent.keyCode = Blockly.utils.KeyCodes.E; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - }); - // More tests: - // - nested categories - }); - - // Test that flyout key handlers call through to the right functions and - // transition correctly between toolbox, workspace, and flyout. - suite('Tests flyout keys', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "basic_block", - "message0": "%1", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "default" - } - ] - }]); - this.workspace = createNavigationWorkspace(true); - Blockly.navigation.focusToolbox_(); - Blockly.navigation.focusFlyout_(); - this.mockEvent = { - getModifierState: function() { - return false; - } - }; - }); - - teardown(function() { - delete Blockly.Blocks['basic_block']; - this.workspace.dispose(); - }); - - // Should be a no-op - test('Previous at beginning', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.W; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_FLYOUT); - chai.assert.equal(Blockly.navigation.getFlyoutCursor_().getCurNode().getLocation().getFieldValue("TEXT"), - "FirstCategory-FirstBlock"); - }); - - test('Previous', function() { - var flyoutBlocks = this.workspace.getFlyout().getWorkspace().getTopBlocks(); - Blockly.navigation.getFlyoutCursor_().setCurNode( - Blockly.ASTNode.createStackNode(flyoutBlocks[1])); - var flyoutBlock = Blockly.navigation.getFlyoutCursor_().getCurNode().getLocation(); - chai.assert.equal(flyoutBlock.getFieldValue("TEXT"), - "FirstCategory-SecondBlock"); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.W; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_FLYOUT); - flyoutBlock = Blockly.navigation.getFlyoutCursor_().getCurNode().getLocation(); - chai.assert.equal(flyoutBlock.getFieldValue("TEXT"), - "FirstCategory-FirstBlock"); - }); - - test('Next', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.S; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_FLYOUT); - var flyoutBlock = Blockly.navigation.getFlyoutCursor_().getCurNode().getLocation(); - chai.assert.equal(flyoutBlock.getFieldValue("TEXT"), - "FirstCategory-SecondBlock"); - }); - - test('Out', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.A; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - }); - - test('MARK', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.ENTER; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - chai.assert.equal(this.workspace.getTopBlocks().length, 1); - }); - - test('EXIT', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.ESC; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - }); - }); - - // Test that workspace key handlers call through to the right functions and - // transition correctly between toolbox, workspace, and flyout. - suite('Tests workspace keys', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "basic_block", - "message0": "%1", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "default" - } - ], - "previousStatement": null, - "nextStatement": null - }]); - this.workspace = createNavigationWorkspace(true); - this.basicBlock = this.workspace.newBlock('basic_block'); - this.firstCategory_ = this.workspace.getToolbox().tree_.firstChild_; - this.mockEvent = { - getModifierState: function() { - return false; - } - }; - }); - - teardown(function() { - delete Blockly.Blocks['basic_block']; - this.workspace.dispose(); - }); - - test('Previous', function() { - sinon.spy(this.workspace.getCursor(), 'prev'); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.W; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.isTrue(this.workspace.getCursor().prev.calledOnce); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - this.workspace.getCursor().prev.restore(); - }); - - test('Next', function() { - var cursor = this.workspace.getCursor(); - sinon.spy(cursor, 'next'); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.S; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.isTrue(cursor.next.calledOnce); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - cursor.next.restore(); - }); - - test('Out', function() { - var cursor = this.workspace.getCursor(); - sinon.spy(cursor, 'out'); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.A; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.isTrue(cursor.out.calledOnce); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - cursor.out.restore(); - }); - - test('In', function() { - var cursor = this.workspace.getCursor(); - sinon.spy(cursor, 'in'); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.D; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.isTrue(cursor.in.calledOnce); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - cursor.in.restore(); - }); - - test('Insert', function() { - sinon.spy(Blockly.navigation, 'modify_'); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.I; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.isTrue(Blockly.navigation.modify_.calledOnce); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - Blockly.navigation.modify_.restore(); - }); - - test('Mark', function() { - this.workspace.getCursor().setCurNode( - Blockly.ASTNode.createConnectionNode(this.basicBlock.previousConnection)); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.ENTER; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - var markedNode = this.workspace.getMarker().getCurNode(); - chai.assert.equal(markedNode.getLocation(), this.basicBlock.previousConnection); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - }); - - test('Toolbox', function() { - this.mockEvent.keyCode = Blockly.utils.KeyCodes.T; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - chai.assert.equal(this.workspace.getToolbox().tree_.getSelectedItem(), this.firstCategory_); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_TOOLBOX); - }); - }); - - suite('Test key press', function() { - setup(function() { - this.workspace = new Blockly.Workspace({readOnly: false}); - Blockly.user.keyMap.setKeyMap(Blockly.user.keyMap.createDefaultKeyMap()); - Blockly.mainWorkspace = this.workspace; - Blockly.keyboardAccessibilityMode = true; - Blockly.navigation.currentState_ = Blockly.navigation.STATE_WS; - - this.mockEvent = { - getModifierState: function() { - return false; - } - }; - }); - test('Action does not exist', function() { - var block = new Blockly.Block(this.workspace); - var field = new Blockly.FieldDropdown([['a','b'], ['c','d']]); - field.setSourceBlock(block); - sinon.spy(field, 'onBlocklyAction'); - this.workspace.getCursor().setCurNode(Blockly.ASTNode.createFieldNode(field)); - - this.mockEvent.keyCode = Blockly.utils.KeyCodes.N; - var isHandled = Blockly.navigation.onKeyPress(this.mockEvent); - chai.assert.isFalse(isHandled); - chai.assert.isFalse(field.onBlocklyAction.calledOnce); - - field.onBlocklyAction.restore(); - }); - - test('Action exists - field handles action', function() { - var block = new Blockly.Block(this.workspace); - var field = new Blockly.FieldDropdown([['a','b'], ['c','d']]); - field.setSourceBlock(block); - sinon.stub(field, 'onBlocklyAction').callsFake(function(){ - return true; - }); - this.workspace.getCursor().setCurNode(Blockly.ASTNode.createFieldNode(field)); - - var isHandled = Blockly.navigation.onBlocklyAction(Blockly.navigation.ACTION_OUT); - chai.assert.isTrue(isHandled); - chai.assert.isTrue(field.onBlocklyAction.calledOnce); - - field.onBlocklyAction.restore(); - }); - - test('Action exists - field does not handle action', function() { - var block = new Blockly.Block(this.workspace); - var field = new Blockly.FieldDropdown([['a','b'], ['c','d']]); - field.setSourceBlock(block); - sinon.spy(field, 'onBlocklyAction'); - this.workspace.getCursor().setCurNode(Blockly.ASTNode.createFieldNode(field)); - - this.mockEvent.keyCode = Blockly.utils.KeyCodes.A; - var isHandled = Blockly.navigation.onBlocklyAction(Blockly.navigation.ACTION_OUT); - chai.assert.isTrue(isHandled); - chai.assert.isTrue(field.onBlocklyAction.calledOnce); - - field.onBlocklyAction.restore(); - }); - - test('Toggle Action Off', function() { - this.mockEvent.keyCode = 'Control75'; - sinon.spy(Blockly.navigation, 'onBlocklyAction'); - Blockly.keyboardAccessibilityMode = true; - - var isHandled = Blockly.navigation.onKeyPress(this.mockEvent); - chai.assert.isTrue(isHandled); - chai.assert.isTrue(Blockly.navigation.onBlocklyAction.calledOnce); - chai.assert.isFalse(Blockly.keyboardAccessibilityMode); - Blockly.navigation.onBlocklyAction.restore(); - }); - - test('Toggle Action On', function() { - this.mockEvent.keyCode = 'Control75'; - sinon.stub(Blockly.navigation, 'focusWorkspace_'); - Blockly.keyboardAccessibilityMode = false; - - var isHandled = Blockly.navigation.onKeyPress(this.mockEvent); - chai.assert.isTrue(isHandled); - chai.assert.isTrue(Blockly.navigation.focusWorkspace_.calledOnce); - chai.assert.isTrue(Blockly.keyboardAccessibilityMode); - Blockly.navigation.focusWorkspace_.restore(); - this.workspace.dispose(); - }); - - suite('Test key press in read only mode', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_block", - "message0": "%1 %2", - "args0": [ - { - "type": "field_dropdown", - "name": "NAME", - "options": [ - [ - "a", - "optionA" - ] - ] - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }]); - this.workspace = new Blockly.Workspace({readOnly: true}); - this.workspace.setCursor(new Blockly.Cursor()); - Blockly.mainWorkspace = this.workspace; - Blockly.keyboardAccessibilityMode = true; - Blockly.navigation.currentState_ = Blockly.navigation.STATE_WS; - - this.fieldBlock1 = this.workspace.newBlock('field_block'); - this.mockEvent = { - getModifierState: function() { - return false; - } - }; - }); - - teardown(function() { - delete Blockly.Blocks['field_block']; - this.workspace.dispose(); - }); - - test('Perform valid action for read only', function() { - var astNode = Blockly.ASTNode.createBlockNode(this.fieldBlock1); - this.workspace.getCursor().setCurNode(astNode); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.S; - chai.assert.isTrue(Blockly.navigation.onKeyPress(this.mockEvent)); - }); - - test('Perform invalid action for read only', function() { - var astNode = Blockly.ASTNode.createBlockNode(this.fieldBlock1); - this.workspace.getCursor().setCurNode(astNode); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.I; - chai.assert.isFalse(Blockly.navigation.onKeyPress(this.mockEvent)); - }); - - test('Try to perform action on a field', function() { - var field = this.fieldBlock1.inputList[0].fieldRow[0]; - var astNode = Blockly.ASTNode.createFieldNode(field); - this.workspace.getCursor().setCurNode(astNode); - this.mockEvent.keyCode = Blockly.utils.KeyCodes.ENTER; - chai.assert.isFalse(Blockly.navigation.onKeyPress(this.mockEvent)); - }); - }); - }); - - suite('Insert Functions', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "basic_block", - "message0": "", - "previousStatement": null, - "nextStatement": null, - }]); - - this.workspace = createNavigationWorkspace(true); - - var basicBlock = this.workspace.newBlock('basic_block'); - var basicBlock2 = this.workspace.newBlock('basic_block'); - - this.basicBlock = basicBlock; - this.basicBlock2 = basicBlock2; - }); - - teardown(function() { - delete Blockly.Blocks['basic_block']; - this.workspace.dispose(); - }); - - test('Insert from flyout with a valid connection marked', function() { - var previousConnection = this.basicBlock.previousConnection; - var prevNode = Blockly.ASTNode.createConnectionNode(previousConnection); - this.workspace.getMarker().setCurNode(prevNode); - - Blockly.navigation.focusToolbox_(); - Blockly.navigation.focusFlyout_(); - Blockly.navigation.insertFromFlyout(); - - var insertedBlock = this.basicBlock.previousConnection.targetBlock(); - - chai.assert.isTrue(insertedBlock !== null); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - }); - - test('Insert Block from flyout without marking a connection', function() { - Blockly.navigation.focusToolbox_(); - Blockly.navigation.focusFlyout_(); - Blockly.navigation.insertFromFlyout(); - - var numBlocks = this.workspace.getTopBlocks().length; - - // Make sure the block was not connected to anything - chai.assert.isNull(this.basicBlock.previousConnection.targetConnection); - chai.assert.isNull(this.basicBlock.nextConnection.targetConnection); - - // Make sure that the block was added to the workspace - chai.assert.equal(numBlocks, 3); - chai.assert.equal(Blockly.navigation.currentState_, - Blockly.navigation.STATE_WS); - }); - - test('Connect two blocks that are on the workspace', function() { - var targetNode = Blockly.ASTNode.createConnectionNode(this.basicBlock.previousConnection); - this.workspace.getMarker().setCurNode(targetNode); - - var sourceNode = Blockly.ASTNode.createConnectionNode(this.basicBlock2.nextConnection); - this.workspace.getCursor().setCurNode(sourceNode); - - Blockly.navigation.modify_(); - var insertedBlock = this.basicBlock.previousConnection.targetBlock(); - - chai.assert.isNotNull(insertedBlock); - }); - }); - - suite('Connect Blocks', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "basic_block", - "message0": "", - "previousStatement": null, - "nextStatement": null, - }, - { - "type": "inline_block", - "message0": "%1 %2", - "args0": [ - { - "type": "input_value", - "name": "NAME" - }, - { - "type": "input_value", - "name": "NAME" - } - ], - "inputsInline": true, - "output": null, - "tooltip": "", - "helpUrl": "" - }]); - - this.workspace = createNavigationWorkspace(true); - - var basicBlock = this.workspace.newBlock('basic_block'); - var basicBlock2 = this.workspace.newBlock('basic_block'); - var basicBlock3 = this.workspace.newBlock('basic_block'); - var basicBlock4 = this.workspace.newBlock('basic_block'); - - var inlineBlock1 = this.workspace.newBlock('inline_block'); - var inlineBlock2 = this.workspace.newBlock('inline_block'); - - - this.basicBlock = basicBlock; - this.basicBlock2 = basicBlock2; - this.basicBlock3 = basicBlock3; - this.basicBlock4 = basicBlock4; - - this.inlineBlock1 = inlineBlock1; - this.inlineBlock2 = inlineBlock2; - - this.basicBlock.nextConnection.connect(this.basicBlock2.previousConnection); - - this.basicBlock3.nextConnection.connect(this.basicBlock4.previousConnection); - - this.inlineBlock1.inputList[0].connection.connect(this.inlineBlock2.outputConnection); - }); - - teardown(function() { - delete Blockly.Blocks['basic_block']; - this.workspace.dispose(); - }); - - test('Connect cursor on previous into stack', function() { - var markedLocation = this.basicBlock2.previousConnection; - var cursorLocation = this.basicBlock3.previousConnection; - - Blockly.navigation.connect_(cursorLocation, markedLocation); - - chai.assert.equal(this.basicBlock.nextConnection.targetBlock(), this.basicBlock3); - chai.assert.equal(this.basicBlock2.previousConnection.targetBlock(), this.basicBlock4); - }); - - test('Connect marker on previous into stack', function() { - var markedLocation = this.basicBlock3.previousConnection; - var cursorLocation = this.basicBlock2.previousConnection; - - Blockly.navigation.connect_(cursorLocation, markedLocation); - - chai.assert.equal(this.basicBlock.nextConnection.targetBlock(), this.basicBlock3); - chai.assert.equal(this.basicBlock2.previousConnection.targetBlock(), this.basicBlock4); - - }); - - test('Connect cursor on next into stack', function() { - var markedLocation = this.basicBlock2.previousConnection; - var cursorLocation = this.basicBlock4.nextConnection; - - Blockly.navigation.connect_(cursorLocation, markedLocation); - - chai.assert.equal(this.basicBlock.nextConnection.targetBlock(), this.basicBlock4); - chai.assert.equal(this.basicBlock3.nextConnection.targetConnection, null); - }); - - test('Connect cursor with parents', function() { - var markedLocation = this.basicBlock3.previousConnection; - var cursorLocation = this.basicBlock2.nextConnection; - - Blockly.navigation.connect_(cursorLocation, markedLocation); - - chai.assert.equal(this.basicBlock3.previousConnection.targetBlock(), this.basicBlock2); - }); - - test('Try to connect input that is descendant of output', function() { - var markedLocation = this.inlineBlock2.inputList[0].connection; - var cursorLocation = this.inlineBlock1.outputConnection; - - Blockly.navigation.connect_(cursorLocation, markedLocation); - - chai.assert.equal(this.inlineBlock2.outputConnection.targetBlock(), null); - chai.assert.equal(this.inlineBlock1.outputConnection.targetBlock(), this.inlineBlock2); - }); - }); - - - suite('Test cursor move on block delete', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "basic_block", - "message0": "", - "previousStatement": null, - "nextStatement": null, - }]); - this.workspace = createNavigationWorkspace(true); - this.basicBlockA = this.workspace.newBlock('basic_block'); - this.basicBlockB = this.workspace.newBlock('basic_block'); - }); - - teardown(function() { - delete Blockly.Blocks['basic_block']; - this.workspace.dispose(); - }); - - test('Delete block - has parent ', function() { - this.basicBlockA.nextConnection.connect(this.basicBlockB.previousConnection); - var astNode = Blockly.ASTNode.createBlockNode(this.basicBlockB); - // Set the cursor to be on the child block - this.workspace.getCursor().setCurNode(astNode); - // Remove the child block - this.basicBlockB.dispose(); - chai.assert.equal(this.workspace.getCursor().getCurNode().getType(), - Blockly.ASTNode.types.NEXT); - }); - - test('Delete block - no parent ', function() { - var astNode = Blockly.ASTNode.createBlockNode(this.basicBlockB); - this.workspace.getCursor().setCurNode(astNode); - this.basicBlockB.dispose(); - chai.assert.equal(this.workspace.getCursor().getCurNode().getType(), - Blockly.ASTNode.types.WORKSPACE); - }); - - test('Delete parent block', function() { - this.basicBlockA.nextConnection.connect(this.basicBlockB.previousConnection); - var astNode = Blockly.ASTNode.createBlockNode(this.basicBlockB); - // Set the cursor to be on the child block - this.workspace.getCursor().setCurNode(astNode); - // Remove the parent block - this.basicBlockA.dispose(); - chai.assert.equal(this.workspace.getCursor().getCurNode().getType(), - Blockly.ASTNode.types.WORKSPACE); - }); - - test('Delete top block in stack', function() { - this.basicBlockA.nextConnection.connect(this.basicBlockB.previousConnection); - var astNode = Blockly.ASTNode.createStackNode(this.basicBlockA); - // Set the cursor to be on the stack - this.workspace.getCursor().setCurNode(astNode); - // Remove the top block in the stack - this.basicBlockA.dispose(); - chai.assert.equal(this.workspace.getCursor().getCurNode().getType(), - Blockly.ASTNode.types.WORKSPACE); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/procedures_test.js b/lib/blockly/tests/mocha/procedures_test.js deleted file mode 100644 index 85adf8c..0000000 --- a/lib/blockly/tests/mocha/procedures_test.js +++ /dev/null @@ -1,574 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -goog.require('Blockly.Blocks.procedures'); -goog.require('Blockly.Msg'); - -suite('Procedures', function() { - setup(function() { - this.workspace = new Blockly.Workspace(); - this.workspace.setTheme(new Blockly.Theme({ - "procedure_blocks": { - "colourPrimary": "290" - } - })); - - this.callForAllTypes = function(func, startName) { - var typesArray = [ - ['procedures_defnoreturn', 'procedures_callnoreturn'], - ['procedures_defreturn', 'procedures_callreturn'] - ]; - - for (var i = 0, types; types = typesArray[i]; i++) { - var context = Object.create(null); - context.workspace = this.workspace; - context.defType = types[0]; - context.callType = types[1]; - - context.defBlock = new Blockly.Block(this.workspace, context.defType); - context.defBlock.setFieldValue(startName, 'NAME'); - context.callBlock = new Blockly.Block(this.workspace, context.callType); - context.callBlock.setFieldValue(startName, 'NAME'); - func.call(context); - context.defBlock.dispose(); - context.callBlock.dispose(); - } - }; - }); - teardown(function() { - this.workspace.dispose(); - }); - - suite('isNameUsed', function() { - test('No Blocks', function() { - chai.assert.isFalse( - Blockly.Procedures.isNameUsed('name1', this.workspace) - ); - }); - test('True', function() { - this.callForAllTypes(function() { - chai.assert.isTrue( - Blockly.Procedures.isNameUsed('name1', this.workspace) - ); - }, 'name1'); - }); - test('False', function() { - this.callForAllTypes(function() { - chai.assert.isFalse( - Blockly.Procedures.isNameUsed('name2', this.workspace) - ); - }, 'name1'); - }); - }); - suite('rename', function() { - test('Simple, Programmatic', function() { - this.callForAllTypes(function() { - this.defBlock.setFieldValue( - this.defBlock.getFieldValue('NAME') + '2', - 'NAME' - ); - chai.assert.equal(this.defBlock.getFieldValue('NAME'), 'start name2'); - chai.assert.equal(this.callBlock.getFieldValue('NAME'), 'start name2'); - }, 'start name'); - }); - test('Simple, Input', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'start name'; - defInput.htmlInput_.untypedDefaultValue_ = 'start name'; - - defInput.htmlInput_.value = defInput.htmlInput_.oldValue_ + '2'; - defInput.onHtmlInputChange_(null); - chai.assert.equal(this.defBlock.getFieldValue('NAME'), 'start name2'); - chai.assert.equal(this.callBlock.getFieldValue('NAME'), 'start name2'); - }, 'start name'); - }); - test('lower -> CAPS', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'start name'; - defInput.htmlInput_.untypedDefaultValue_ = 'start name'; - - defInput.htmlInput_.value = 'START NAME'; - defInput.onHtmlInputChange_(null); - chai.assert.equal(this.defBlock.getFieldValue('NAME'), 'START NAME'); - chai.assert.equal(this.callBlock.getFieldValue('NAME'), 'START NAME'); - }, 'start name'); - }); - test('CAPS -> lower', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'START NAME'; - defInput.htmlInput_.untypedDefaultValue_ = 'START NAME'; - - defInput.htmlInput_.value = 'start name'; - defInput.onHtmlInputChange_(null); - chai.assert.equal(this.defBlock.getFieldValue('NAME'), 'start name'); - chai.assert.equal(this.callBlock.getFieldValue('NAME'), 'start name'); - }, 'START NAME'); - }); - test('Whitespace', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'start name'; - defInput.htmlInput_.untypedDefaultValue_ = 'start name'; - - defInput.htmlInput_.value = defInput.htmlInput_.oldValue_ + ' '; - defInput.onHtmlInputChange_(null); - chai.assert.equal(this.defBlock.getFieldValue('NAME'), 'start name'); - chai.assert.equal(this.callBlock.getFieldValue('NAME'), 'start name'); - }, 'start name'); - }); - test('Whitespace then Text', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'start name'; - defInput.htmlInput_.untypedDefaultValue_ = 'start name'; - - defInput.htmlInput_.value = defInput.htmlInput_.oldValue_ + ' '; - defInput.onHtmlInputChange_(null); - defInput.htmlInput_.value = defInput.htmlInput_.oldValue_ + '2'; - defInput.onHtmlInputChange_(null); - chai.assert.equal(this.defBlock.getFieldValue('NAME'), 'start name 2'); - chai.assert.equal(this.callBlock.getFieldValue('NAME'), 'start name 2'); - }, 'start name'); - }); - test('Set Empty', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'start name'; - defInput.htmlInput_.untypedDefaultValue_ = 'start name'; - - defInput.htmlInput_.value = ''; - defInput.onHtmlInputChange_(null); - chai.assert.equal( - this.defBlock.getFieldValue('NAME'), - Blockly.Msg['UNNAMED_KEY']); - chai.assert.equal( - this.callBlock.getFieldValue('NAME'), - Blockly.Msg['UNNAMED_KEY']); - }, 'start name'); - }); - test('Set Empty, and Create New', function() { - this.callForAllTypes(function() { - var defInput = this.defBlock.getField('NAME'); - defInput.htmlInput_ = Object.create(null); - defInput.htmlInput_.oldValue_ = 'start name'; - defInput.htmlInput_.untypedDefaultValue_ = 'start name'; - - defInput.htmlInput_.value = ''; - defInput.onHtmlInputChange_(null); - var newDefBlock = new Blockly.Block(this.workspace, this.defType); - newDefBlock.setFieldValue('new name', 'NAME'); - chai.assert.equal( - this.defBlock.getFieldValue('NAME'), - Blockly.Msg['UNNAMED_KEY']); - chai.assert.equal( - this.callBlock.getFieldValue('NAME'), - Blockly.Msg['UNNAMED_KEY']); - - newDefBlock.dispose(); - }, 'start name'); - }); - }); - suite('getCallers', function() { - test('Simple', function() { - this.callForAllTypes(function() { - var callers = Blockly.Procedures.getCallers('name1', this.workspace); - chai.assert.equal(callers.length, 1); - chai.assert.equal(callers[0], this.callBlock); - }, 'name1'); - }); - test('Multiple Callers', function() { - this.callForAllTypes(function() { - var caller2 = new Blockly.Block(this.workspace, this.callType); - caller2.setFieldValue('name1', 'NAME'); - var caller3 = new Blockly.Block(this.workspace, this.callType); - caller3.setFieldValue('name1', 'NAME'); - - var callers = Blockly.Procedures.getCallers('name1', this.workspace); - chai.assert.equal(callers.length, 3); - chai.assert.equal(callers[0], this.callBlock); - chai.assert.equal(callers[1], caller2); - chai.assert.equal(callers[2], caller3); - - caller2.dispose(); - caller3.dispose(); - }, 'name1'); - }); - test('Multiple Procedures', function() { - this.callForAllTypes(function() { - var def2 = new Blockly.Block(this.workspace, this.defType); - def2.setFieldValue('name2', 'NAME'); - var caller2 = new Blockly.Block(this.workspace, this.callType); - caller2.setFieldValue('name2', 'NAME'); - - var callers = Blockly.Procedures.getCallers('name1', this.workspace); - chai.assert.equal(callers.length, 1); - chai.assert.equal(callers[0], this.callBlock); - - def2.dispose(); - caller2.dispose(); - }, 'name1'); - }); - // This can occur if you: - // 1) Create an uppercase definition and call block. - // 2) Delete both blocks. - // 3) Create a lowercase definition and call block. - // 4) Retrieve the uppercase call block from the trashcan. - // (And vise versa for creating lowercase blocks first) - // When converted to code all function names will be lowercase, so a - // caller should still be returned for a differently-cased procedure. - test('Call Different Case', function() { - this.callForAllTypes(function() { - this.callBlock.setFieldValue('NAME1', 'NAME'); - var callers = Blockly.Procedures.getCallers('name1', this.workspace); - chai.assert.equal(callers.length, 1); - chai.assert.equal(callers[0], this.callBlock); - }, 'name'); - }); - test('Multiple Workspaces', function() { - this.callForAllTypes(function() { - var workspace = new Blockly.Workspace({ - theme: this.workspace.getTheme() - }); - var def2 = new Blockly.Block(workspace, this.defType); - def2.setFieldValue('name', 'NAME'); - var caller2 = new Blockly.Block(workspace, this.callType); - caller2.setFieldValue('name', 'NAME'); - - var callers = Blockly.Procedures.getCallers('name', this.workspace); - chai.assert.equal(callers.length, 1); - chai.assert.equal(callers[0], this.callBlock); - - callers = Blockly.Procedures.getCallers('name', workspace); - chai.assert.equal(callers.length, 1); - chai.assert.equal(callers[0], caller2); - - def2.dispose(); - caller2.dispose(); - }, 'name'); - }); - }); - suite('getDefinition', function() { - test('Simple', function() { - this.callForAllTypes(function() { - var def = Blockly.Procedures.getDefinition('name1', this.workspace); - chai.assert.equal(def, this.defBlock); - }, 'name1'); - }); - test('Multiple Procedures', function() { - this.callForAllTypes(function() { - var def2 = new Blockly.Block(this.workspace, this.defType); - def2.setFieldValue('name2', 'NAME'); - var caller2 = new Blockly.Block(this.workspace, this.callType); - caller2.setFieldValue('name2', 'NAME'); - - var def = Blockly.Procedures.getDefinition('name1', this.workspace); - chai.assert.equal(def, this.defBlock); - - def2.dispose(); - caller2.dispose(); - }, 'name1'); - }); - test('Multiple Workspaces', function() { - this.callForAllTypes(function() { - var workspace = new Blockly.Workspace({ - theme: this.workspace.getTheme() - }); - var def2 = new Blockly.Block(workspace, this.defType); - def2.setFieldValue('name', 'NAME'); - var caller2 = new Blockly.Block(workspace, this.callType); - caller2.setFieldValue('name', 'NAME'); - - var def = Blockly.Procedures.getDefinition('name', this.workspace); - chai.assert.equal(def, this.defBlock); - - def = Blockly.Procedures.getDefinition('name', workspace); - chai.assert.equal(def, def2); - - def2.dispose(); - caller2.dispose(); - }, 'name'); - }); - }); - suite('Mutation', function() { - setup(function() { - this.findParentStub = sinon.stub(Blockly.Mutator, 'findParentWs') - .returns(this.workspace); - }); - teardown(function() { - this.findParentStub.restore(); - }); - suite('Composition', function() { - suite('Statements', function() { - function setStatementValue(mainWorkspace, defBlock, value) { - var mutatorWorkspace = new Blockly.Workspace({ - parentWorkspace: mainWorkspace - }); - defBlock.decompose(mutatorWorkspace); - var containerBlock = mutatorWorkspace.getTopBlocks()[0]; - var statementField = containerBlock.getField('STATEMENTS'); - statementField.setValue(value); - defBlock.compose(containerBlock); - } - test('Has Statements', function() { - var defBlock = new Blockly.Block(this.workspace, 'procedures_defreturn'); - setStatementValue(this.workspace, defBlock, true); - chai.assert.isTrue(defBlock.hasStatements_); - }); - test('Has No Statements', function() { - var defBlock = new Blockly.Block(this.workspace, 'procedures_defreturn'); - setStatementValue(this.workspace, defBlock, false); - chai.assert.isFalse(defBlock.hasStatements_); - }); - test('Saving Statements', function() { - var blockXml = Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - var defBlock = Blockly.Xml.domToBlock(blockXml, this.workspace); - setStatementValue(this.workspace, defBlock, false); - chai.assert.isNull(defBlock.getInput('STACK')); - setStatementValue(this.workspace, defBlock, true); - chai.assert.isNotNull(defBlock.getInput('STACK')); - var statementBlocks = defBlock.getChildren(); - chai.assert.equal(statementBlocks.length, 1); - var block = statementBlocks[0]; - chai.assert.equal(block.type, 'procedures_ifreturn'); - chai.assert.equal(block.id, 'test'); - }); - }); - suite('Untyped Arguments', function() { - function createMutator(argArray) { - this.mutatorWorkspace = new Blockly.Workspace({ - parentWorkspace: this.workspace - }); - this.containerBlock = this.defBlock.decompose(this.mutatorWorkspace); - this.connection = this.containerBlock.getInput('STACK').connection; - for (var i = 0; i < argArray.length; i++) { - this.argBlock = new Blockly.Block( - this.mutatorWorkspace, 'procedures_mutatorarg'); - this.argBlock.setFieldValue(argArray[i], 'NAME'); - this.connection.connect(this.argBlock.previousConnection); - this.connection = this.argBlock.nextConnection; - } - this.defBlock.compose(this.containerBlock); - } - function assertArgs(argArray) { - chai.assert.equal(this.defBlock.arguments_.length, argArray.length); - for (var i = 0; i < argArray.length; i++) { - chai.assert.equal(this.defBlock.arguments_[i], argArray[i]); - } - chai.assert.equal(this.callBlock.arguments_.length, argArray.length); - for (var i = 0; i < argArray.length; i++) { - chai.assert.equal(this.callBlock.arguments_[i], argArray[i]); - } - } - function clearVariables() { - // TODO: Update this for typed vars. - var variables = this.workspace.getVariablesOfType(''); - var variableMap = this.workspace.getVariableMap(); - for (var i = 0, variable; variable = variables[i]; i++) { - variableMap.deleteVariable(variable); - } - } - test('Simple Add Arg', function() { - this.callForAllTypes(function() { - var args = ['arg1']; - createMutator.call(this, args); - assertArgs.call(this, args); - clearVariables.call(this); - }, 'name'); - }); - // TODO: Reenable the following two once arg name validation has been - // moved to the arg blocks. - test.skip('Add Identical Arg', function() { - this.callForAllTypes(function() { - var args = ['x', 'x']; - createMutator.call(this, args); - assertArgs.call(this, ['x', 'i']); - clearVariables.call(this); - }); - }); - test.skip('Add Identical (except case) Arg', function() { - this.callForAllTypes(function() { - var args = ['x', 'X']; - createMutator.call(this, args); - assertArgs.call(this, ['x', 'i']); - clearVariables.call(this); - }); - }); - test('Multiple Args', function() { - this.callForAllTypes(function() { - var args = ['arg1', 'arg2', 'arg3']; - createMutator.call(this, args); - assertArgs.call(this, args); - clearVariables.call(this); - }, 'name'); - }); - test('Simple Change Arg', function() { - this.callForAllTypes(function() { - createMutator.call(this, ['arg1']); - this.argBlock.setFieldValue('arg2', 'NAME'); - this.defBlock.compose(this.containerBlock); - assertArgs.call(this, ['arg2']); - clearVariables.call(this); - }, 'name'); - }); - test('lower -> CAPS', function() { - this.callForAllTypes(function() { - createMutator.call(this, ['arg']); - this.argBlock.setFieldValue('ARG', 'NAME'); - this.defBlock.compose(this.containerBlock); - assertArgs.call(this, ['ARG']); - clearVariables.call(this); - }, 'name'); - }); - test('CAPS -> lower', function() { - this.callForAllTypes(function() { - createMutator.call(this, ['ARG']); - this.argBlock.setFieldValue('arg', 'NAME'); - this.defBlock.compose(this.containerBlock); - assertArgs.call(this, ['arg']); - clearVariables.call(this); - }, 'name'); - }); - // Test case for #1958 - test('Set Arg Empty', function() { - this.callForAllTypes(function() { - var args = ['arg1']; - createMutator.call(this, args); - this.argBlock.setFieldValue('', 'NAME'); - this.defBlock.compose(this.containerBlock); - assertArgs.call(this, args); - clearVariables.call(this); - }, 'name'); - }); - test('Whitespace', function() { - this.callForAllTypes(function() { - var args = ['arg1']; - createMutator.call(this, args); - this.argBlock.setFieldValue(' ', 'NAME'); - this.defBlock.compose(this.containerBlock); - assertArgs.call(this, args); - clearVariables.call(this); - }, 'name'); - }); - test('Whitespace and Text', function() { - this.callForAllTypes(function() { - createMutator.call(this, ['arg1']); - this.argBlock.setFieldValue(' text ', 'NAME'); - this.defBlock.compose(this.containerBlock); - assertArgs.call(this, ['text']); - clearVariables.call(this); - }, 'name'); - }); - test('<>', function() { - this.callForAllTypes(function() { - var args = ['<>']; - createMutator.call(this, args); - assertArgs.call(this, args); - clearVariables.call(this); - }, 'name'); - }); - }); - }); - suite('Decomposition', function() { - suite('Statements', function() { - test('Has Statement Input', function() { - this.callForAllTypes(function() { - var mutatorWorkspace = new Blockly.Workspace({ - parentWorkspace: this.workspace - }); - this.defBlock.decompose(mutatorWorkspace); - var statementInput = mutatorWorkspace.getTopBlocks()[0] - .getInput('STATEMENT_INPUT'); - if (this.defType == 'procedures_defreturn') { - chai.assert.isNotNull(statementInput); - } else { - chai.assert.isNull(statementInput); - } - }, 'name'); - }); - test('Has Statements', function() { - var defBlock = new Blockly.Block(this.workspace, 'procedures_defreturn'); - defBlock.hasStatements_ = true; - var mutatorWorkspace = new Blockly.Workspace({ - parentWorkspace: this.workspace - }); - defBlock.decompose(mutatorWorkspace); - var statementValue = mutatorWorkspace.getTopBlocks()[0] - .getField('STATEMENTS').getValueBoolean(); - chai.assert.isTrue(statementValue); - }); - test('No Has Statements', function() { - var defBlock = new Blockly.Block(this.workspace, 'procedures_defreturn'); - defBlock.hasStatements_ = false; - var mutatorWorkspace = new Blockly.Workspace({ - parentWorkspace: this.workspace - }); - defBlock.decompose(mutatorWorkspace); - var statementValue = mutatorWorkspace.getTopBlocks()[0] - .getField('STATEMENTS').getValueBoolean(); - chai.assert.isFalse(statementValue); - }); - }); - suite('Untyped Arguments', function() { - function assertArguments(argumentsArray) { - this.defBlock.arguments_ = argumentsArray; - var mutatorWorkspace = new Blockly.Workspace({ - parentWorkspace: this.workspace - }); - this.defBlock.decompose(mutatorWorkspace); - var argBlocks = mutatorWorkspace.getBlocksByType('procedures_mutatorarg'); - chai.assert.equal(argBlocks.length, argumentsArray.length); - - for (var i = 0; i < argumentsArray.length; i++) { - var argString = argumentsArray[i]; - var argBlockValue = argBlocks[i].getFieldValue('NAME'); - chai.assert.equal(argBlockValue, argString); - } - } - test('Simple Single Arg', function() { - this.callForAllTypes(function() { - assertArguments.call(this, ['arg']); - }, 'name'); - }); - test('Multiple Args', function() { - this.callForAllTypes(function() { - assertArguments.call(this, ['arg1', 'arg2']); - }, 'name'); - }); - test('<>', function() { - this.callForAllTypes(function() { - assertArguments.call(this, ['<>']); - }, 'name'); - }); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/run_mocha_tests_in_browser.js b/lib/blockly/tests/mocha/run_mocha_tests_in_browser.js deleted file mode 100644 index 4f68d5c..0000000 --- a/lib/blockly/tests/mocha/run_mocha_tests_in_browser.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Node.js script to run Mocha tests in Chrome, via webdriver. - */ -var webdriverio = require('webdriverio'); - -module.exports = runMochaTestsInBrowser; - -/** - * Runs the Mocha tests in this directory in Chrome. It uses webdriverio to - * launch Chrome and load index.html. Outputs a summary of the test results - * to the console. - * @return 0 on success, 1 on failure. - */ -async function runMochaTestsInBrowser() { - var options = { - capabilities: { - browserName: 'chrome' - } - }; - // Run in headless mode on Travis. - if (process.env.TRAVIS_CI) { - options.capabilities['goog:chromeOptions'] = { - args: ['--headless', '--no-sandbox', '--disable-dev-shm-usage'] - }; - } - - var url = 'file://' + __dirname + '/index.html'; - console.log('Starting webdriverio...'); - const browser = await webdriverio.remote(options); - console.log('Initialized.\nLoading url: ' + url); - await browser.url(url); - - await browser.waitUntil(async () => { - var elem = await browser.$('#failureCount'); - var text = await elem.getAttribute('tests_failed'); - return text != 'unset'; - }, 6000); - - const elem = await browser.$('#failureCount'); - const numOfFailure = await elem.getAttribute('tests_failed'); - - console.log('============Blockly Mocha Test Summary================='); - console.log(numOfFailure); - console.log(numOfFailure + ' tests failed'); - console.log('============Blockly Mocha Test Summary================='); - if (parseInt(numOfFailure) !== 0) { - await browser.deleteSession(); - return 1; - } - await browser.deleteSession(); - return 0; -} - -if (require.main === module) { - runMochaTestsInBrowser().catch(e => { - console.error(e); - process.exit(1); - }).then(function(result) { - if (result) { - console.log('Mocha tests failed'); - process.exit(1); - } else { - console.log('Mocha tests passed'); - process.exit(0); - } - }); -} diff --git a/lib/blockly/tests/mocha/test_helpers.js b/lib/blockly/tests/mocha/test_helpers.js deleted file mode 100644 index b65430e..0000000 --- a/lib/blockly/tests/mocha/test_helpers.js +++ /dev/null @@ -1,194 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* exported assertEquals, assertNotEquals, assertArrayEquals, assertTrue, assertFalse, - assertNull, assertNotNull, assertNotNullNorUndefined, assert, - isEqualArrays, assertUndefined, assertNotUndefined, - defineRowBlock, defineStackBlock, defineStatementBlock */ -function _argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) { - return args.length == expectedNumberOfNonCommentArgs + 1; -} - -function _commentArg(expectedNumberOfNonCommentArgs, args) { - if (_argumentsIncludeComments(expectedNumberOfNonCommentArgs, args)) { - return args[0]; - } - - return null; -} - -function _nonCommentArg(desiredNonCommentArgIndex, expectedNumberOfNonCommentArgs, args) { - return _argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) ? - args[desiredNonCommentArgIndex] : - args[desiredNonCommentArgIndex - 1]; -} - -function _validateArguments(expectedNumberOfNonCommentArgs, args) { - if (!( args.length == expectedNumberOfNonCommentArgs || - (args.length == expectedNumberOfNonCommentArgs + 1 && (typeof(args[0]) == 'string') || args[0] == null))) { - throw Error('Incorrect arguments passed to assert function'); - } -} -/** - * Converts from JSUnit assertEquals to chai.assert.equal. - */ -function assertEquals() { - _validateArguments(2, arguments); - var var1 = _nonCommentArg(1, 2, arguments); - var var2 = _nonCommentArg(2, 2, arguments); - var comment = _commentArg(2, arguments); - chai.assert.equal(var1, var2, comment); -} - -/** - * Converts from JSUnit assertNotEquals to chai.assert.notEquals. - */ -function assertNotEquals() { - _validateArguments(2, arguments); - var var1 = _nonCommentArg(1, 2, arguments); - var var2 = _nonCommentArg(2, 2, arguments); - var comment = _commentArg(2, arguments); - chai.assert.notEqual(var1, var2, comment); -} - -/** - * Converts from JSUnit assertTrue to chai.assert.isTrue. - */ -function assertTrue() { - _validateArguments(1, arguments); - var commentArg = _commentArg(1, arguments); - var booleanValue = _nonCommentArg(1, 1, arguments); - if (typeof(booleanValue) != 'boolean') { - throw Error('Bad argument to assertTrue(boolean)'); - } - - chai.assert.isTrue(booleanValue, commentArg); -} - -/** - * Converts from JSUnit assertFalse to chai.assert.isNotTrue. - */ -function assertFalse() { - _validateArguments(1, arguments); - var commentArg = _commentArg(1, arguments); - var booleanValue = _nonCommentArg(1, 1, arguments); - - if (typeof(booleanValue) != 'boolean') { - throw Error('Bad argument to assertFalse(boolean)'); - } - - chai.assert.isNotTrue(booleanValue, commentArg); -} - -/** - * Converts from JSUnit assertNull to chai.assert.isNull. - */ -function assertNull() { - _validateArguments(1, arguments); - var commentArg = _commentArg(1, arguments); - var val = _nonCommentArg(1, 1, arguments); - chai.assert.isNull(val, commentArg); -} - -function assertNotNull() { - _validateArguments(1, arguments); - var commentArg = _commentArg(1, arguments); - var val = _nonCommentArg(1, 1, arguments); - chai.assert.isNotNull(val, commentArg); -} - -function assertNotNullNorUndefined() { - assertNotNull(arguments); -} - -function assert() { - chai.assert(arguments); -} - -/** - * Check that two arrays have the same content. - * @param {!Array.} array1 The first array. - * @param {!Array.} array2 The second array. - */ -function isEqualArrays(array1, array2) { - assertEquals(array1.length, array2.length); - for (var i = 0; i < array1.length; i++) { - assertEquals(array1[i], array2[i]); - } -} - -function assertUndefined() { - _validateArguments(1, arguments); - var commentArg = _commentArg(1, arguments); - var val = _nonCommentArg(1, 1, arguments); - chai.assert.isUndefined(val, commentArg); -} - -function assertNotUndefined() { - _validateArguments(1, arguments); - var commentArg = _commentArg(1, arguments); - var val = _nonCommentArg(1, 1, arguments); - chai.assert.isDefined(val, commentArg); -} - -function assertArrayEquals() { - _validateArguments(2, arguments); - var var1 = _nonCommentArg(1, 2, arguments); - var var2 = _nonCommentArg(2, 2, arguments); - isEqualArrays(var1, var2); -} - -function defineStackBlock() { - Blockly.defineBlocksWithJsonArray([{ - "type": "stack_block", - "message0": "", - "previousStatement": null, - "nextStatement": null - }]); -} - -function defineRowBlock() { - Blockly.defineBlocksWithJsonArray([{ - "type": "row_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null - }]); -} - -function defineStatementBlock() { - Blockly.defineBlocksWithJsonArray([{ - "type": "statement_block", - "message0": "%1", - "args0": [ - { - "type": "input_statement", - "name": "NAME" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": 230, - "tooltip": "", - "helpUrl": "" - }]); -} diff --git a/lib/blockly/tests/mocha/theme_test.js b/lib/blockly/tests/mocha/theme_test.js deleted file mode 100644 index 4f17b73..0000000 --- a/lib/blockly/tests/mocha/theme_test.js +++ /dev/null @@ -1,155 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Blockly Theme tests. - * @author samelh@google.com (Sam El-Husseini) - */ -'use strict'; - -suite('Theme', function() { - - function defineThemeTestBlocks() { - Blockly.defineBlocksWithJsonArray([{ - "type": "stack_block", - "message0": "", - "previousStatement": null, - "nextStatement": null - }, - { - "type": "row_block", - "message0": "%1", - "args0": [ - { - "type": "input_value", - "name": "INPUT" - } - ], - "output": null - }]); - } - - function undefineThemeTestBlocks() { - delete Blockly.Blocks['stack_block']; - delete Blockly.Blocks['row_block']; - } - - - function createBlockStyles() { - return { - "styleOne": { - "colourPrimary": "colour1", - "colourSecondary":"colour2", - "colourTertiary":"colour3" - } - }; - } - - function createMultipleBlockStyles() { - return { - "styleOne": { - "colourPrimary": "colour1", - "colourSecondary":"colour2", - "colourTertiary":"colour3" - }, - "styleTwo": { - "colourPrimary": "colour1", - "colourSecondary":"colour2", - "colourTertiary":"colour3" - } - }; - } - - function stringifyAndCompare(val1, val2) { - var stringVal1 = JSON.stringify(val1); - var stringVal2 = JSON.stringify(val2); - assertEquals(stringVal1, stringVal2); - } - - test('Set All BlockStyles', function() { - var theme = new Blockly.Theme(createBlockStyles()); - stringifyAndCompare(createBlockStyles(), theme.blockStyles_); - theme.setAllBlockStyles(createMultipleBlockStyles()); - stringifyAndCompare(createMultipleBlockStyles(), theme.blockStyles_); - }); - - test('Get All BlockStyles', function() { - var theme = new Blockly.Theme(createMultipleBlockStyles()); - var allBlocks = theme.getAllBlockStyles(); - stringifyAndCompare(createMultipleBlockStyles(), allBlocks); - }); - - test('Get BlockStyles', function() { - var theme = new Blockly.Theme(createBlockStyles()); - var blockStyle = theme.getBlockStyle('styleOne'); - - stringifyAndCompare(blockStyle, createBlockStyles().styleOne); - }); - - test('Set BlockStyle Update', function() { - var theme = new Blockly.Theme(createBlockStyles()); - var blockStyle = createBlockStyles(); - blockStyle.styleOne.colourPrimary = 'somethingElse'; - - theme.setBlockStyle('styleOne', blockStyle.styleOne); - - stringifyAndCompare(theme.blockStyles_, blockStyle); - }); - - test('Set BlockStyle Add', function() { - var theme = new Blockly.Theme(createBlockStyles()); - var blockStyle = createMultipleBlockStyles(); - - theme.setBlockStyle('styleTwo', blockStyle.styleTwo); - - stringifyAndCompare(theme.blockStyles_, blockStyle); - }); - - test('Set Theme', function() { - defineThemeTestBlocks(); - var blockStyles = createBlockStyles(); - var workspace = new Blockly.WorkspaceSvg({}); - var blockA = workspace.newBlock('stack_block'); - - blockA.setStyle = function() {this.styleName_ = 'styleTwo';}; - var callCount = 1; - workspace.refreshToolboxSelection = function() { - return ++callCount; - }; - blockA.styleName_ = 'styleOne'; - - var stub = sinon.stub(Blockly, "getMainWorkspace").returns(workspace); - - workspace.setTheme(blockStyles); - - // Checks that the theme was set correctly on Blockly namespace - stringifyAndCompare(workspace.getTheme(), blockStyles); - - // Checks that the setTheme function was called on the block - assertEquals(blockA.getStyleName(), 'styleTwo'); - - // check that the toolbox refreshed method was called - assertEquals(workspace.refreshToolboxSelection(), 3); - - assertEquals(Blockly.Events.FIRE_QUEUE_.pop().element, 'theme'); - - undefineThemeTestBlocks(); - - stub.restore(); - }); - -}); diff --git a/lib/blockly/tests/mocha/trashcan_test.js b/lib/blockly/tests/mocha/trashcan_test.js deleted file mode 100644 index c2e8584..0000000 --- a/lib/blockly/tests/mocha/trashcan_test.js +++ /dev/null @@ -1,311 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite("Trashcan", function() { - var themeManager = new Blockly.ThemeManager(Blockly.Themes.Classic); - var workspace = { - addChangeListener: function(func) { - this.listener = func; - }, - triggerListener: function(event) { - this.listener(event); - }, - getThemeManager: function() { - return themeManager; - }, - options: { - maxTrashcanContents: Infinity - } - }; - function sendDeleteEvent(xmlString) { - var xml = Blockly.Xml.textToDom( - '' + - xmlString + ''); - xml = xml.children[0]; - var event = { - type: Blockly.Events.BLOCK_DELETE, - oldXml: xml - }; - workspace.triggerListener(event); - } - - setup(function() { - this.trashcan = new Blockly.Trashcan(workspace); - this.setLidStub = sinon.stub(this.trashcan, 'setLidAngle_'); - }); - teardown(function() { - this.setLidStub.restore(); - this.trashcan = null; - }); - - suite("Events", function() { - test("Delete", function() { - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 1); - }); - test("Non-Delete", function() { - var event = { - type: 'dummy_type' - }; - workspace.triggerListener(event); - chai.assert.equal(this.trashcan.contents_.length, 0); - }); - test("Non-Delete w/ oldXml", function() { - var xml = Blockly.Xml.textToDom( - '' + - ' ' + - '' - ); - xml = xml.children[0]; - var event = { - type: 'dummy_type', - oldXml: xml - }; - workspace.triggerListener(event); - chai.assert.equal(this.trashcan.contents_.length, 0); - }); - test("Shadow Delete", function() { - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 0); - }); - }); - suite("Unique Contents", function() { - test("Simple", function() { - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 1); - }); - test("Different Coords", function() { - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 1); - }); - test("Different IDs", function() { - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 1); - }); - test("No Disabled - Disabled True", function() { - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Editable - Editable False", function() { - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Movable - Movable False", function() { - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Field Values", function() { - sendDeleteEvent( - '' + - ' dummy_value1' + - '' - ); - sendDeleteEvent( - '' + - ' dummy_value2' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Values - Values", function() { - sendDeleteEvent(''); - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Value Blocks", function() { - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Statements - Statements", function() { - sendDeleteEvent(''); - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Statement Blocks", function() { - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Next - Next", function() { - sendDeleteEvent(''); - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Next Blocks", function() { - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - sendDeleteEvent( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Comment - Comment", function() { - sendDeleteEvent(''); - sendDeleteEvent( - '' + - ' comment_text' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Comment Text", function() { - sendDeleteEvent( - '' + - ' comment_text1' + - '' - ); - sendDeleteEvent( - '' + - ' comment_text2' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Comment Size", function() { - sendDeleteEvent( - '' + - ' comment_text' + - '' - ); - sendDeleteEvent( - '' + - ' comment_text' + - '' - ); - // TODO (#2574): These blocks are treated as different, but appear - // identical when the trashcan is opened. - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Comment Pinned", function() { - sendDeleteEvent( - '' + - ' comment_text' + - '' - ); - sendDeleteEvent( - '' + - ' comment_text' + - '' - ); - // TODO (#2574): These blocks are treated as different, but appear - // identical when the trashcan is opened. - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("No Mutator - Mutator", function() { - sendDeleteEvent(''); - sendDeleteEvent( - '' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - test("Different Mutator", function() { - sendDeleteEvent( - '' + - ' ' + - '' - ); - sendDeleteEvent( - '' + - ' ' + - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 2); - }); - }); - suite("Max Contents", function() { - test("Max 0", function() { - workspace.options.maxTrashcanContents = 0; - sendDeleteEvent( - '' - ); - chai.assert.equal(this.trashcan.contents_.length, 0); - workspace.options.maxTrashcanContents = Infinity; - }); - test("Last In First Out", function() { - workspace.options.maxTrashcanContents = 1; - sendDeleteEvent(''); - sendDeleteEvent(''); - chai.assert.equal(this.trashcan.contents_.length, 1); - chai.assert.equal( - Blockly.Xml.textToDom(this.trashcan.contents_[0]) - .getAttribute('type'), - 'dummy_type2' - ); - workspace.options.maxTrashcanContents = Infinity; - }); - }); -}); diff --git a/lib/blockly/tests/mocha/utils_test.js b/lib/blockly/tests/mocha/utils_test.js deleted file mode 100644 index eb22c28..0000000 --- a/lib/blockly/tests/mocha/utils_test.js +++ /dev/null @@ -1,107 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('Utils', function() { - test('genUid', function() { - var uuids = {}; - chai.assert.equal([1,2,3].indexOf(4), -1); - for (var i = 0; i < 1000; i++) { - var uuid = Blockly.utils.genUid(); - chai.assert.isFalse(uuid in uuids, 'UUID different: ' + uuid); - uuids[uuid] = true; - } - }); - - suite('DOM', function() { - test('addClass', function() { - var p = document.createElement('p'); - Blockly.utils.dom.addClass(p, 'one'); - assertEquals('Adding "one"', 'one', p.className); - Blockly.utils.dom.addClass(p, 'one'); - assertEquals('Adding duplicate "one"', 'one', p.className); - Blockly.utils.dom.addClass(p, 'two'); - assertEquals('Adding "two"', 'one two', p.className); - Blockly.utils.dom.addClass(p, 'two'); - assertEquals('Adding duplicate "two"', 'one two', p.className); - Blockly.utils.dom.addClass(p, 'three'); - assertEquals('Adding "three"', 'one two three', p.className); - }); - - test('hasClass', function() { - var p = document.createElement('p'); - p.className = ' one three two three '; - assertTrue('Has "one"', Blockly.utils.dom.hasClass(p, 'one')); - assertTrue('Has "two"', Blockly.utils.dom.hasClass(p, 'two')); - assertTrue('Has "three"', Blockly.utils.dom.hasClass(p, 'three')); - assertFalse('Has no "four"', Blockly.utils.dom.hasClass(p, 'four')); - assertFalse('Has no "t"', Blockly.utils.dom.hasClass(p, 't')); - }); - - test('removeClass', function() { - var p = document.createElement('p'); - p.className = ' one three two three '; - Blockly.utils.dom.removeClass(p, 'two'); - assertEquals('Removing "two"', 'one three three', p.className); - Blockly.utils.dom.removeClass(p, 'four'); - assertEquals('Removing "four"', 'one three three', p.className); - Blockly.utils.dom.removeClass(p, 'three'); - assertEquals('Removing "three"', 'one', p.className); - Blockly.utils.dom.removeClass(p, 'ne'); - assertEquals('Removing "ne"', 'one', p.className); - Blockly.utils.dom.removeClass(p, 'one'); - assertEquals('Removing "one"', '', p.className); - Blockly.utils.dom.removeClass(p, 'zero'); - assertEquals('Removing "zero"', '', p.className); - }); - }); - - suite('String', function() { - test('shortest string length', function() { - var len = Blockly.utils.string.shortestStringLength('one,two,three,four,five'.split(',')); - assertEquals('Length of "one"', 3, len); - len = Blockly.utils.string.shortestStringLength('one,two,three,four,five,'.split(',')); - assertEquals('Length of ""', 0, len); - len = Blockly.utils.string.shortestStringLength(['Hello World']); - assertEquals('List of one', 11, len); - len = Blockly.utils.string.shortestStringLength([]); - assertEquals('Empty list', 0, len); - }); - - test('comment word prefix', function() { - var len = Blockly.utils.string.commonWordPrefix('one,two,three,four,five'.split(',')); - assertEquals('No prefix', 0, len); - len = Blockly.utils.string.commonWordPrefix('Xone,Xtwo,Xthree,Xfour,Xfive'.split(',')); - assertEquals('No word prefix', 0, len); - len = Blockly.utils.string.commonWordPrefix('abc de,abc de,abc de,abc de'.split(',')); - assertEquals('Full equality', 6, len); - len = Blockly.utils.string.commonWordPrefix('abc deX,abc deY'.split(',')); - assertEquals('One word prefix', 4, len); - len = Blockly.utils.string.commonWordPrefix('abc de,abc deY'.split(',')); - assertEquals('Overflow no', 4, len); - len = Blockly.utils.string.commonWordPrefix('abc de,abc de Y'.split(',')); - assertEquals('Overflow yes', 6, len); - len = Blockly.utils.string.commonWordPrefix(['Hello World']); - assertEquals('List of one', 11, len); - len = Blockly.utils.string.commonWordPrefix([]); - assertEquals('Empty list', 0, len); - len = Blockly.utils.string.commonWordPrefix('turn left,turn right'.split(',')); - assertEquals('No prefix due to &nbsp;', 0, len); - len = Blockly.utils.string.commonWordPrefix('turn\u00A0left,turn\u00A0right'.split(',')); - assertEquals('No prefix due to \\u00A0', 0, len); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/xml_procedures_test.js b/lib/blockly/tests/mocha/xml_procedures_test.js deleted file mode 100644 index 7af53e6..0000000 --- a/lib/blockly/tests/mocha/xml_procedures_test.js +++ /dev/null @@ -1,317 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -goog.require('Blockly.Blocks.procedures'); -goog.require('Blockly.Msg'); - -suite('Procedures XML', function() { - suite('Deserialization', function() { - setup(function() { - this.workspace = new Blockly.Workspace(); - this.workspace.setTheme(new Blockly.Theme({ - "procedure_blocks": { - "colourPrimary": "290" - } - })); - - this.callForAllTypes = function(func) { - var typesArray = [ - ['procedures_defnoreturn', 'procedures_callnoreturn'], - ['procedures_defreturn', 'procedures_callreturn'] - ]; - - for (var i = 0, types; types = typesArray[i]; i++) { - var context = Object.create(null); - context.workspace = this.workspace; - context.defType = types[0]; - context.callType = types[1]; - - func.call(context); - - this.workspace.clear(); - } - }; - }); - teardown(function() { - this.workspace.dispose(); - }); - - suite('Definition Blocks', function() { - test('Minimal', function() { - this.callForAllTypes(function() { - var xml = Blockly.Xml.textToDom( - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - // TODO: Is this how you want this to work? or do you want it to - // be 'unnamed'? - chai.assert.equal(block.getFieldValue('NAME'), ''); - chai.assert.isArray(block.arguments_); - chai.assert.isEmpty(block.arguments_); - chai.assert.isArray(block.argumentVarModels_); - chai.assert.isEmpty(block.argumentVarModels_); - chai.assert.isNotNull(block.getInput('STACK')); - }); - }); - // This is like what's in the toolbox. - test('Common', function() { - this.callForAllTypes(function() { - var xml = Blockly.Xml.textToDom( - '' + - ' do something' + - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.isArray(block.arguments_); - chai.assert.isEmpty(block.arguments_); - chai.assert.isArray(block.argumentVarModels_); - chai.assert.isEmpty(block.argumentVarModels_); - chai.assert.isNotNull(block.getInput('STACK')); - }); - }); - test('Arg Vars Pre-Created', function() { - this.callForAllTypes(function() { - this.workspace.createVariable('x', '', 'arg'); - var xml = Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - ' ' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.deepEqual(block.arguments_, ['x']); - chai.assert.deepEqual(block.argumentVarModels_, - [this.workspace.getVariableById('arg')]); - chai.assert.isNotNull(block.getInput('STACK')); - }); - }); - test('Arg Vars Not Created', function() { - this.callForAllTypes(function() { - var xml = Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - ' ' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.deepEqual(block.arguments_, ['x']); - chai.assert.deepEqual(block.argumentVarModels_, - [this.workspace.getVariableById('arg')]); - chai.assert.isNotNull(block.getInput('STACK')); - }); - }); - // TODO: I don't know a lot about typing vars, and even less out it in - // this context. Is allowing typed vars to be args the correct behavior? - test('Arg Vars Pre-Created Typed', function() { - this.callForAllTypes(function() { - this.workspace.createVariable('x', 'type', 'arg'); - var xml = Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - ' ' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.deepEqual(block.arguments_, ['x']); - chai.assert.deepEqual(block.argumentVarModels_, - [this.workspace.getVariableById('arg')]); - chai.assert.isNotNull(block.getInput('STACK')); - }); - }); - test('Statements False', function() { - var xml = Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.isArray(block.arguments_); - chai.assert.isEmpty(block.arguments_); - chai.assert.isArray(block.argumentVarModels_); - chai.assert.isEmpty(block.argumentVarModels_); - chai.assert.isNull(block.getInput('STACK')); - }); - test('Statements True', function() { - var xml = Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(xml, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.isArray(block.arguments_); - chai.assert.isEmpty(block.arguments_); - chai.assert.isArray(block.argumentVarModels_); - chai.assert.isEmpty(block.argumentVarModels_); - chai.assert.isNotNull(block.getInput('STACK')); - }); - }); - suite('Call Blocks', function() { - test('Caller W/ Def', function() { - this.callForAllTypes(function() { - Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' do something' + - '' - ), this.workspace); - var callerXML = Blockly.Xml.textToDom( - '' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(callerXML, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.isArray(block.arguments_); - chai.assert.isEmpty(block.arguments_); - // TODO: argumentVarModels_ is undefined for call_return, but - // defined for call_noreturn. Make it defined for both. - /* chai.assert.isArray(block.argumentVarModels_); - chai.assert.isEmpty(block.argumentVarModels_); */ - }); - }); - // TODO: I couldn't get this test (of creating a definition) to work - // b/c of the events delay. - test.skip('Caller No Def', function() { - this.callForAllTypes(function() { - var callerXML = Blockly.Xml.textToDom( - '' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(callerXML, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.isArray(block.arguments_); - chai.assert.isEmpty(block.arguments_); - // TODO: argumentVarModels_ is undefined for call_return, but - // defined for call_noreturn. Make it defined for both. - /* chai.assert.isArray(block.argumentVarModels_); - chai.assert.isEmpty(block.argumentVarModels_); */ - chai.assert.equal(this.workspace.getAllBlocks().count, 2); - }); - }); - test('Caller W/ Params', function() { - this.callForAllTypes(function() { - Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - var callerXML = Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - var block = Blockly.Xml.domToBlock(callerXML, this.workspace); - - chai.assert.equal( - block.getFieldValue('NAME'), - 'do something'); - chai.assert.deepEqual(block.arguments_, ['x']); - chai.assert.deepEqual(block.argumentVarModels_, - [this.workspace.getVariableById('arg')]); - }); - }); - // TODO: How do you want it to behave in this situation? - test.skip('Caller W/out Params', function() { - this.callForAllTypes(function() { - Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - var callerXML = Blockly.Xml.textToDom( - '' + - ' ' + - '' - ); - // TODO: Remove this when you fix this test. - // eslint-disable-next-line no-unused-vars - var block = Blockly.Xml.domToBlock(callerXML, this.workspace); - }); - }); - // TODO: How do you want it to behave in this situation? - test.skip('Caller W/ Bad Params', function() { - this.callForAllTypes(function() { - Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' do something' + - ' ' + - ' ' + - ' ' + - '' - ), this.workspace); - var callerXML = Blockly.Xml.textToDom( - '' + - ' ' + - ' ' + - ' ' + - '' - ); - // TODO: Remove this when you fix this test. - // eslint-disable-next-line no-unused-vars - var block = Blockly.Xml.domToBlock(callerXML, this.workspace); - }); - }); - }); - }); -}); diff --git a/lib/blockly/tests/mocha/xml_test.js b/lib/blockly/tests/mocha/xml_test.js deleted file mode 100644 index 84f767c..0000000 --- a/lib/blockly/tests/mocha/xml_test.js +++ /dev/null @@ -1,715 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -suite('XML', function() { - var assertSimpleField = function(fieldDom, name, text) { - assertEquals(text, fieldDom.textContent); - assertEquals(name, fieldDom.getAttribute('name')); - }; - var assertNonSerializingField = function(fieldDom) { - assertEquals(undefined, fieldDom.childNodes[0]); - }; - var assertVariableField = function(fieldDom, name, type, id, text) { - assertEquals(name, fieldDom.getAttribute('name')); - assertEquals(type, fieldDom.getAttribute('variabletype')); - assertEquals(id, fieldDom.getAttribute('id')); - assertEquals(text, fieldDom.textContent); - }; - setup(function() { - Blockly.defineBlocksWithJsonArray([ - { - "type": "empty_block", - "message0": "", - "args0": [] - }, - ]); - }); - teardown(function() { - delete Blockly.Blocks['empty_block']; - }); - suite('Serialization', function() { - setup(function() { - this.workspace = new Blockly.Workspace(); - }); - teardown(function() { - this.workspace.dispose(); - }); - suite('Fields', function() { - test('Angle', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_angle_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_angle", - "name": "ANGLE", - "angle": 90 - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_angle_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'ANGLE', '90'); - delete Blockly.Blocks['field_angle_test_block']; - }); - test('Checkbox', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_checkbox_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_checkbox", - "name": "CHECKBOX", - "checked": true - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_checkbox_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'CHECKBOX', 'TRUE'); - delete Blockly.Blocks['field_checkbox_test_block']; - }); - test('Colour', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_colour_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_colour", - "name": "COLOUR", - "colour": '#000099' - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_colour_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'COLOUR', '#000099'); - delete Blockly.Blocks['field_colour_test_block']; - }); - /* If you want to run date tests add the date picker here: - * https://github.com/google/blockly/blob/master/core/blockly.js#L41 - * before unskipping. - */ - test.skip('Date', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_date_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_date", - "name": "DATE", - "date": "2020-02-20" - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_date_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'DATE', '2020-02-20'); - delete Blockly.Blocks['field_date_test_block']; - }); - test('Dropdown', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_dropdown_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_dropdown", - "name": "DROPDOWN", - "options": [ - [ - "a", - "A" - ], - [ - "b", - "B" - ], - [ - "c", - "C" - ] - ] - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_dropdown_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'DROPDOWN', 'A'); - delete Blockly.Blocks['field_dropdown_test_block']; - }); - test('Image', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_image_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_image", - "name": "IMAGE", - "src": "https://blockly-demo.appspot.com/static/tests/media/a.png", - "width": 32, - "height": 32, - "alt": "A" - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_image_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block); - assertNonSerializingField(resultFieldDom); - delete Blockly.Blocks['field_image_test_block']; - }); - test('Label', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_label_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_label", - "name": "LABEL", - "text": "default" - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_label_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block); - assertNonSerializingField(resultFieldDom); - delete Blockly.Blocks['field_label_test_block']; - }); - test('Label Serializable', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_label_serializable_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_label_serializable", - "name": "LABEL", - "text": "default" - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_label_serializable_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'LABEL', 'default'); - delete Blockly.Blocks['field_label_serializable_test_block']; - }); - test('Number', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_number_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_number", - "name": "NUMBER", - "value": 97 - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_number_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'NUMBER', '97'); - delete Blockly.Blocks['field_number_test_block']; - }); - test('Text Input', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "field_text_input_test_block", - "message0": "%1", - "args0": [ - { - "type": "field_input", - "name": "TEXT", - "text": "default" - } - ], - }]); - var block = new Blockly.Block(this.workspace, - 'field_text_input_test_block'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertSimpleField(resultFieldDom, 'TEXT', 'default'); - }); - suite('Variable Fields', function() { - setup(function() { - Blockly.defineBlocksWithJsonArray([{ - 'type': 'field_variable_test_block', - 'message0': '%1', - 'args0': [ - { - 'type': 'field_variable', - 'name': 'VAR', - 'variable': 'item' - } - ] - }]); - }); - teardown(function() { - delete Blockly.Blocks['field_variable_test_block']; - }); - test('Variable Trivial', function() { - this.workspace.createVariable('name1', '', 'id1'); - var block = new Blockly.Block(this.workspace, - 'field_variable_test_block'); - block.inputList[0].fieldRow[0].setValue('id1'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertVariableField(resultFieldDom, 'VAR', null, 'id1', 'name1'); - }); - test('Variable Typed', function() { - this.workspace.createVariable('name1', 'string', 'id1'); - var block = new Blockly.Block(this.workspace, - 'field_variable_test_block'); - block.inputList[0].fieldRow[0].setValue('id1'); - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - assertVariableField(resultFieldDom, 'VAR', 'string', 'id1', 'name1'); - }); - test('Variable Default Case', function() { - var cacheGenUid = Blockly.utils.genUid; - Blockly.utils.genUid = function() { - return '1'; - }; - - try { - this.workspace.createVariable('name1'); - - Blockly.Events.disable(); - var block = new Blockly.Block(this.workspace, - 'field_variable_test_block'); - block.inputList[0].fieldRow[0].setValue('1'); - Blockly.Events.enable(); - - var resultFieldDom = Blockly.Xml.blockToDom(block).childNodes[0]; - // Expect type is null and ID is '1' since we don't specify type and ID. - assertVariableField(resultFieldDom, 'VAR', null, '1', 'name1'); - } finally { - Blockly.utils.genUid = cacheGenUid; - } - }); - }); - }); - suite('Comments', function() { - suite('Headless', function() { - setup(function() { - this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - }); - test('Text', function() { - this.block.setCommentText('test text'); - var xml = Blockly.Xml.blockToDom(this.block); - var commentXml = xml.firstChild; - chai.assert.equal(commentXml.tagName, 'comment'); - chai.assert.equal(commentXml.innerHTML, 'test text'); - }); - test('No Text', function() { - var xml = Blockly.Xml.blockToDom(this.block); - chai.assert.isNull(xml.firstChild); - }); - test('Empty Text', function() { - this.block.setCommentText(''); - var xml = Blockly.Xml.blockToDom(this.block); - chai.assert.isNull(xml.firstChild); - }); - }); - suite('Rendered', function() { - setup(function() { - // Let the parent teardown dispose of it. - this.workspace = Blockly.inject('blocklyDiv', {comments: true}); - this.block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.workspace); - }); - test('Text', function() { - this.block.setCommentText('test text'); - var xml = Blockly.Xml.blockToDom(this.block); - var commentXml = xml.firstChild; - chai.assert.equal(commentXml.tagName, 'comment'); - chai.assert.equal(commentXml.innerHTML, 'test text'); - }); - test('No Text', function() { - var xml = Blockly.Xml.blockToDom(this.block); - chai.assert.isNull(xml.firstChild); - }); - test('Empty Text', function() { - this.block.setCommentText(''); - var xml = Blockly.Xml.blockToDom(this.block); - chai.assert.isNull(xml.firstChild); - }); - test('Size', function() { - this.block.setCommentText('test text'); - this.block.getCommentIcon().setBubbleSize(100, 200); - var xml = Blockly.Xml.blockToDom(this.block); - var commentXml = xml.firstChild; - chai.assert.equal(commentXml.tagName, 'comment'); - chai.assert.equal(commentXml.getAttribute('w'), 100); - chai.assert.equal(commentXml.getAttribute('h'), 200); - }); - test('Pinned True', function() { - this.block.setCommentText('test text'); - this.block.getCommentIcon().setVisible(true); - var xml = Blockly.Xml.blockToDom(this.block); - var commentXml = xml.firstChild; - chai.assert.equal(commentXml.tagName, 'comment'); - chai.assert.equal(commentXml.getAttribute('pinned'), 'true'); - }); - test('Pinned False', function() { - this.block.setCommentText('test text'); - var xml = Blockly.Xml.blockToDom(this.block); - var commentXml = xml.firstChild; - chai.assert.equal(commentXml.tagName, 'comment'); - chai.assert.equal(commentXml.getAttribute('pinned'), 'false'); - }); - }); - }); - }); - suite('Deserialization', function() { - setup(function() { - this.workspace = new Blockly.Workspace(); - }); - teardown(function() { - this.workspace.dispose(); - }); - suite('Dynamic Category Blocks', function() { - test('Untyped Variables', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "variables_get", - "message0": "%1", - "args0": [ - { - "type": "field_variable", - "name": "VAR", - } - ] - }, - { - "type": "variables_set", - "message0": "%1 %2", - "args0": [ - { - "type": "field_variable", - "name": "VAR" - }, - { - "type": "input_value", - "name": "VALUE" - } - ] - }, - { - "type": "math_change", - "message0": "%1 %2", - "args0": [ - { - "type": "field_variable", - "name": "VAR", - }, - { - "type": "input_value", - "name": "DELTA", - "check": "Number" - } - ] - }, - { - "type": "math_number", - "message0": "%1", - "args0": [{ - "type": "field_number", - "name": "NUM", - "value": 0 - }], - "output": "Number" - }]); - - this.workspace.createVariable('name1', '', 'id1'); - var blocksArray = Blockly.Variables.flyoutCategoryBlocks(this.workspace); - try { - for (var i = 0, xml; xml = blocksArray[i]; i++) { - Blockly.Xml.domToBlock(xml, this.workspace); - } - } finally { - delete Blockly.Blocks['variables_get']; - delete Blockly.Blocks['variables_set']; - delete Blockly.Blocks['math_change']; - delete Blockly.Blocks['math_number']; - } - }); - test('Typed Variables', function() { - Blockly.defineBlocksWithJsonArray([{ - "type": "variables_get", - "message0": "%1", - "args0": [ - { - "type": "field_variable", - "name": "VAR", - } - ] - }, - { - "type": "variables_set", - "message0": "%1 %2", - "args0": [ - { - "type": "field_variable", - "name": "VAR" - }, - { - "type": "input_value", - "name": "VALUE" - } - ] - }, - { - "type": "math_change", - "message0": "%1 %2", - "args0": [ - { - "type": "field_variable", - "name": "VAR", - }, - { - "type": "input_value", - "name": "DELTA", - "check": "Number" - } - ] - }, - { - "type": "math_number", - "message0": "%1", - "args0": [{ - "type": "field_number", - "name": "NUM", - "value": 0 - }], - "output": "Number" - }]); - - this.workspace.createVariable('name1', 'String', 'id1'); - this.workspace.createVariable('name2', 'Number', 'id2'); - this.workspace.createVariable('name3', 'Colour', 'id3'); - var blocksArray = Blockly.VariablesDynamic - .flyoutCategoryBlocks(this.workspace); - try { - for (var i = 0, xml; xml = blocksArray[i]; i++) { - Blockly.Xml.domToBlock(xml, this.workspace); - } - } finally { - delete Blockly.Blocks['variables_get']; - delete Blockly.Blocks['variables_set']; - delete Blockly.Blocks['math_change']; - delete Blockly.Blocks['math_number']; - } - }); - }); - suite('Comments', function() { - suite('Headless', function() { - test('Text', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.equal(block.getCommentText(), 'test text'); - }); - test('No Text', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - chai.assert.equal(block.getCommentText(), ''); - }); - test('Size', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.deepEqual(block.commentModel.size, - {width: 100, height: 200}); - }); - test('Pinned True', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.isTrue(block.commentModel.pinned); - }); - test('Pinned False', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.isFalse(block.commentModel.pinned); - }); - test('Pinned Undefined', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.isFalse(block.commentModel.pinned); - }); - }); - suite('Rendered', function() { - setup(function() { - // Let the parent teardown dispose of it. - this.workspace = Blockly.inject('blocklyDiv', {comments: true}); - }); - test('Text', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.equal(block.getCommentText(), 'test text'); - chai.assert.isNotNull(block.getCommentIcon()); - }); - test('No Text', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' ' + - '' - ), this.workspace); - chai.assert.equal(block.getCommentText(), ''); - chai.assert.isNotNull(block.getCommentIcon()); - }); - test('Size', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - chai.assert.deepEqual(block.commentModel.size, - {width: 100, height: 200}); - chai.assert.isNotNull(block.getCommentIcon()); - chai.assert.deepEqual(block.getCommentIcon().getBubbleSize(), - {width: 100, height: 200}); - }); - suite('Pinned', function() { - setup(function() { - this.clock = sinon.useFakeTimers(); - }); - teardown(function() { - this.clock.restore(); - }); - test('Pinned True', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.isTrue(block.commentModel.pinned); - chai.assert.isNotNull(block.getCommentIcon()); - chai.assert.isTrue(block.getCommentIcon().isVisible()); - }); - test('Pinned False', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.isFalse(block.commentModel.pinned); - chai.assert.isNotNull(block.getCommentIcon()); - chai.assert.isFalse(block.getCommentIcon().isVisible()); - }); - test('Pinned Undefined', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' + - ' test text' + - '' - ), this.workspace); - this.clock.tick(1); - chai.assert.isFalse(block.commentModel.pinned); - chai.assert.isNotNull(block.getCommentIcon()); - chai.assert.isFalse(block.getCommentIcon().isVisible()); - }); - }); - }); - }); - }); - suite('Round Tripping', function() { - setup(function() { - var options = { - comments: true - }; - this.renderedWorkspace = Blockly.inject('blocklyDiv', options); - this.headlessWorkspace = new Blockly.Workspace(options); - }); - teardown(function() { - this.renderedWorkspace.dispose(); - this.headlessWorkspace.dispose(); - }); - suite('Rendered -> XML -> Headless -> XML', function() { - setup(function() { - this.assertRoundTrip = function() { - var renderedXml = Blockly.Xml.workspaceToDom(this.renderedWorkspace); - Blockly.Xml.domToWorkspace(renderedXml, this.headlessWorkspace); - var headlessXml = Blockly.Xml.workspaceToDom(this.headlessWorkspace); - - var renderedText = Blockly.Xml.domToText(renderedXml); - var headlessText = Blockly.Xml.domToText(headlessXml); - - chai.assert.equal(headlessText, renderedText); - }; - }); - test('Comment', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.renderedWorkspace); - block.setCommentText('test text'); - block.getCommentIcon().setBubbleSize(100, 100); - block.getCommentIcon().setVisible(true); - - this.assertRoundTrip(); - }); - }); - suite('Headless -> XML -> Rendered -> XML', function() { - setup(function() { - this.assertRoundTrip = function() { - var headlessXml = Blockly.Xml.workspaceToDom(this.headlessWorkspace); - Blockly.Xml.domToWorkspace(headlessXml, this.renderedWorkspace); - var renderedXml = Blockly.Xml.workspaceToDom(this.renderedWorkspace); - - var renderedText = Blockly.Xml.domToText(renderedXml); - var headlessText = Blockly.Xml.domToText(headlessXml); - - chai.assert.equal(renderedText, headlessText); - }; - }); - test('Comment', function() { - var block = Blockly.Xml.domToBlock(Blockly.Xml.textToDom( - '' - ), this.headlessWorkspace); - block.setCommentText('test text'); - block.commentModel.size = new Blockly.utils.Size(100, 100); - block.commentModel.pinned = true; - - this.assertRoundTrip(); - }); - }); - }); -}); diff --git a/lib/blockly/tests/multi_playground.html b/lib/blockly/tests/multi_playground.html deleted file mode 100644 index f9d2686..0000000 --- a/lib/blockly/tests/multi_playground.html +++ /dev/null @@ -1,477 +0,0 @@ - - - - -Multi-toolbox Playground - - - - - - - - - - - - - - - -

      Blockly Multi Playground

      - -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      LTR, Vertical, StartRTL, Vertical, Start
      LTR, Vertical, EndRTL, Vertical, End
      LTR, Horizontal, StartRTL, Horizontal, Start
      LTR, Horizontal, EndRTL, Horizontal, End
      - - - - - - diff --git a/lib/blockly/tests/node/.eslintrc.json b/lib/blockly/tests/node/.eslintrc.json deleted file mode 100644 index 5021561..0000000 --- a/lib/blockly/tests/node/.eslintrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 6 - }, - "env": { - "browser": false, - "mocha": true - }, - "globals": { - "console": true, - "require": true - }, - "extends": "../../.eslintrc.json" -} diff --git a/lib/blockly/tests/node/mocha.opts b/lib/blockly/tests/node/mocha.opts deleted file mode 100644 index 240bd16..0000000 --- a/lib/blockly/tests/node/mocha.opts +++ /dev/null @@ -1,3 +0,0 @@ -# mocha.opts ---ui tdd ---reporter landing diff --git a/lib/blockly/tests/node/run_node_test.js b/lib/blockly/tests/node/run_node_test.js deleted file mode 100644 index 7e25306..0000000 --- a/lib/blockly/tests/node/run_node_test.js +++ /dev/null @@ -1,68 +0,0 @@ -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Mocha tests that test Blockly in Node. - */ - -var assert = require('chai').assert; -var Blockly = require('../../dist/'); - -var xmlText = ` - - - - Hello from Blockly! - - - -`; - -suite('Test Node.js', function() { - test('Import XML', function() { - const xml = Blockly.Xml.textToDom(xmlText); - - // Create workspace and import the XML - const workspace = new Blockly.Workspace(); - Blockly.Xml.domToWorkspace(xml, workspace); - }); - test('Roundtrip XML', function() { - const xml = Blockly.Xml.textToDom(xmlText); - - const workspace = new Blockly.Workspace(); - Blockly.Xml.domToWorkspace(xml, workspace); - - var headlessXml = Blockly.Xml.workspaceToDom(workspace, true); - var headlessText = Blockly.Xml.domToPrettyText(headlessXml); - - assert.equal(headlessText, xmlText, 'equal'); - }); - test('Generate Code', function() { - const xml = Blockly.Xml.textToDom(xmlText); - - // Create workspace and import the XML - const workspace = new Blockly.Workspace(); - Blockly.Xml.domToWorkspace(xml, workspace); - - // Convert code - const code = Blockly.JavaScript.workspaceToCode(workspace); - - // Check output - assert.equal(`window.alert('Hello from Blockly!');`, code.trim(), 'equal'); - }); -}); - diff --git a/lib/blockly/tests/playground.html b/lib/blockly/tests/playground.html deleted file mode 100644 index 1645477..0000000 --- a/lib/blockly/tests/playground.html +++ /dev/null @@ -1,1632 +0,0 @@ - - - - -Blockly Playground - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -

      Blockly Playground

      - -

      Show - - Hide

      - -
      - - - - -
      - -

      - -   - -
      - -   - -   - -   - -   - -
      - -

      - -

      - Stress test:   - - -

      -
        -
      • - - -
      • -
      • - - -
          -
        • -
        • - - -
        • -
        - - - - - - - - - - - - - - - - - diff --git a/lib/blockly/tests/playgrounds/iframe.html b/lib/blockly/tests/playgrounds/iframe.html deleted file mode 100644 index 9c57fbf..0000000 --- a/lib/blockly/tests/playgrounds/iframe.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - -Blockly <iframe> Playground - - - - -

        Outer Frame

        -